aboutsummaryrefslogtreecommitdiffstats
path: root/ucs2-lib
diff options
context:
space:
mode:
authorFulup Ar Foll <fulup@iot.bzh>2017-05-26 18:45:56 +0200
committerFulup Ar Foll <fulup@iot.bzh>2017-05-26 18:45:56 +0200
commitd2e42029ec04c3f224580f8007cdfbbfe0fc47a6 (patch)
treead2ccf167cf7997c84191d41e6ba55cb2efd6bed /ucs2-lib
parent18e393e1443fd4c38b34979888fb55d30448cf31 (diff)
Initial Commit
Diffstat (limited to 'ucs2-lib')
-rw-r--r--ucs2-lib/CMakeLists.txt26
-rw-r--r--ucs2-lib/LICENSE29
-rw-r--r--ucs2-lib/README.md1
-rw-r--r--ucs2-lib/_cfg/ucs_cfg.h110
-rw-r--r--ucs2-lib/_cfg/ucs_types_cfg.h43
-rw-r--r--ucs2-lib/_cfg/ucs_xrm_cfg.h58
-rw-r--r--ucs2-lib/cfg/ucs_cfg.h119
-rw-r--r--ucs2-lib/cfg/ucs_types_cfg.h51
-rw-r--r--ucs2-lib/cfg/ucs_xrm_cfg.h67
-rw-r--r--ucs2-lib/doc/html/OS81118-1.gifbin0 -> 1005 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-10.gifbin0 -> 1004 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-100.gifbin0 -> 1905 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-101.gifbin0 -> 7300 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-102.gifbin0 -> 10085 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-103.gifbin0 -> 1925 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-104.gifbin0 -> 6847 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-105.gifbin0 -> 1550 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-106.gifbin0 -> 1601 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-107.gifbin0 -> 1681 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-108.gifbin0 -> 6873 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-109.gifbin0 -> 1005 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-11.gifbin0 -> 3184 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-110.gifbin0 -> 1004 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-111.gifbin0 -> 7785 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-112.gifbin0 -> 5711 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-113.gifbin0 -> 1005 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-114.gifbin0 -> 1004 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-115.gifbin0 -> 1281 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-116.gifbin0 -> 1027 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-117.gifbin0 -> 1005 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-118.gifbin0 -> 1004 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-119.gifbin0 -> 1027 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-12.gifbin0 -> 3287 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-120.gifbin0 -> 1005 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-121.gifbin0 -> 1004 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-122.gifbin0 -> 5310 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-123.gifbin0 -> 3728 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-124.gifbin0 -> 15978 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-125.gifbin0 -> 3728 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-126.gifbin0 -> 5208 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-127.gifbin0 -> 5554 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-128.gifbin0 -> 21412 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-129.gifbin0 -> 2154 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-13.gifbin0 -> 14710 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-130.gifbin0 -> 7895 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-131.gifbin0 -> 5089 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-132.gifbin0 -> 12676 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-133.gifbin0 -> 1005 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-134.gifbin0 -> 1004 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-135.gifbin0 -> 1005 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-136.gifbin0 -> 1004 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-137.gifbin0 -> 6454 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-138.gifbin0 -> 4792 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-139.gifbin0 -> 5712 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-14.gifbin0 -> 13965 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-140.gifbin0 -> 6450 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-141.gifbin0 -> 1907 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-142.gifbin0 -> 1005 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-143.gifbin0 -> 1004 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-144.gifbin0 -> 1005 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-145.gifbin0 -> 1004 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-146.gifbin0 -> 1005 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-147.gifbin0 -> 1004 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-148.gifbin0 -> 1005 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-149.gifbin0 -> 1004 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-15.gifbin0 -> 10517 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-150.gifbin0 -> 1005 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-151.gifbin0 -> 1004 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-152.gifbin0 -> 1005 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-153.gifbin0 -> 1004 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-16.gifbin0 -> 5258 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-17.gifbin0 -> 6335 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-18.gifbin0 -> 14040 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-19.gifbin0 -> 5594 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-2.gifbin0 -> 1004 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-20.gifbin0 -> 1005 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-21.gifbin0 -> 1004 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-22.gifbin0 -> 6288 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-23.gifbin0 -> 4516 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-24.gifbin0 -> 8773 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-25.gifbin0 -> 8799 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-26.gifbin0 -> 4244 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-27.gifbin0 -> 1005 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-28.gifbin0 -> 1004 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-29.gifbin0 -> 11848 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-3.gifbin0 -> 1005 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-30.gifbin0 -> 7929 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-31.gifbin0 -> 1005 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-32.gifbin0 -> 1004 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-33.gifbin0 -> 1005 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-34.gifbin0 -> 1004 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-35.gifbin0 -> 5208 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-36.gifbin0 -> 9817 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-37.gifbin0 -> 11412 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-38.gifbin0 -> 6565 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-39.gifbin0 -> 6670 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-4.gifbin0 -> 1004 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-40.gifbin0 -> 1005 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-41.gifbin0 -> 1004 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-42.gifbin0 -> 1005 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-43.gifbin0 -> 1004 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-44.gifbin0 -> 3710 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-45.gifbin0 -> 1005 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-46.gifbin0 -> 1004 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-47.gifbin0 -> 1005 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-48.gifbin0 -> 1004 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-49.gifbin0 -> 3552 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-5.gifbin0 -> 1109 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-50.gifbin0 -> 3678 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-51.gifbin0 -> 4023 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-52.gifbin0 -> 1005 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-53.gifbin0 -> 1004 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-54.gifbin0 -> 1005 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-55.gifbin0 -> 1004 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-56.gifbin0 -> 1005 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-57.gifbin0 -> 1004 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-58.gifbin0 -> 2862 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-59.gifbin0 -> 4979 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-6.gifbin0 -> 904 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-60.gifbin0 -> 4954 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-61.gifbin0 -> 3130 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-62.gifbin0 -> 3918 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-63.gifbin0 -> 4486 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-64.gifbin0 -> 4619 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-65.gifbin0 -> 4741 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-66.gifbin0 -> 5115 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-67.gifbin0 -> 4743 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-68.gifbin0 -> 8526 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-69.gifbin0 -> 7103 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-7.gifbin0 -> 1005 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-70.gifbin0 -> 7829 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-71.gifbin0 -> 1005 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-72.gifbin0 -> 1004 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-73.gifbin0 -> 9064 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-74.gifbin0 -> 11316 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-75.gifbin0 -> 10622 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-76.gifbin0 -> 1005 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-77.gifbin0 -> 1004 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-78.gifbin0 -> 1924 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-79.gifbin0 -> 4570 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-8.gifbin0 -> 1004 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-80.gifbin0 -> 1005 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-81.gifbin0 -> 1004 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-82.gifbin0 -> 1925 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-83.gifbin0 -> 1005 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-84.gifbin0 -> 1004 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-85.gifbin0 -> 13528 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-86.gifbin0 -> 14054 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-87.gifbin0 -> 1005 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-88.gifbin0 -> 1004 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-89.gifbin0 -> 3665 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-9.gifbin0 -> 1005 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-90.gifbin0 -> 4355 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-91.gifbin0 -> 7201 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-92.gifbin0 -> 2142 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-93.gifbin0 -> 2912 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-94.gifbin0 -> 6969 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-95.gifbin0 -> 1681 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-96.gifbin0 -> 1646 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-97.gifbin0 -> 1005 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-98.gifbin0 -> 1004 bytes
-rw-r--r--ucs2-lib/doc/html/OS81118-99.gifbin0 -> 9269 bytes
-rw-r--r--ucs2-lib/doc/html/_p__d_o_c_u__a_p_p_e_n_d_i_x.html124
-rw-r--r--ucs2-lib/doc/html/_p__d_o_c_u__a_p_p_e_n_d_i_x.js36
-rw-r--r--ucs2-lib/doc/html/_p__u_m__b_a_c_k_c_h_a_n_n_e_l__d_i_a_g.html137
-rw-r--r--ucs2-lib/doc/html/_p__u_m__g_e_t_t_i_n_g__s_t_a_r_t_e_d.html140
-rw-r--r--ucs2-lib/doc/html/_p__u_m__g_e_t_t_i_n_g__s_t_a_r_t_e_d.js17
-rw-r--r--ucs2-lib/doc/html/_p__u_m__h_i_s_t_o_r_y.html174
-rw-r--r--ucs2-lib/doc/html/_p__u_m__o_s81118.html61785
-rw-r--r--ucs2-lib/doc/html/_p__u_m__o_s81118__i_m_g.html572
-rw-r--r--ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__a_m_s.html316
-rw-r--r--ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__c_m_d.html207
-rw-r--r--ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__i_n_i_t.html195
-rw-r--r--ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__l_l_d.html288
-rw-r--r--ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__m_g_r.html223
-rw-r--r--ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__n_e_t.html202
-rw-r--r--ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__n_o_d_e__d_i_s.html158
-rw-r--r--ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__n_o_d_e__s_c_r_i_p_t.html236
-rw-r--r--ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__p_r_e_p.html202
-rw-r--r--ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__p_r_o_g_r_a_m_m_i_n_g.html190
-rw-r--r--ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__r_m.html436
-rw-r--r--ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__s_r_v.html250
-rw-r--r--ucs2-lib/doc/html/_p__u_m__s_y_n_c__a_n_d__a_s_y_n_c__r_e_s_u_l_t_s.html186
-rw-r--r--ucs2-lib/doc/html/bc_s.pngbin0 -> 632 bytes
-rw-r--r--ucs2-lib/doc/html/bdwn.pngbin0 -> 138 bytes
-rw-r--r--ucs2-lib/doc/html/bullet.gifbin0 -> 39 bytes
-rw-r--r--ucs2-lib/doc/html/closed.pngbin0 -> 127 bytes
-rw-r--r--ucs2-lib/doc/html/dir_1e869ebbc6cce176ee0dbb76743ac339.html126
-rw-r--r--ucs2-lib/doc/html/dir_23d9d109a5b2f4ba089ae8b34b88462d.html160
-rw-r--r--ucs2-lib/doc/html/dir_29fd9872dd2074e872f144206a9fa4ae.html127
-rw-r--r--ucs2-lib/doc/html/dir_43e3e9ff88bb74457ac2677f9d724a71.html171
-rw-r--r--ucs2-lib/doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html124
-rw-r--r--ucs2-lib/doc/html/dir_73cb4d11b06c10448caf49ed02a351c4.html124
-rw-r--r--ucs2-lib/doc/html/dir_8f3a2693e968589ea19c320890ad56e9.html199
-rw-r--r--ucs2-lib/doc/html/dir_9ace0bdff5d34e41ad08105dc041a781.html145
-rw-r--r--ucs2-lib/doc/html/dir_a74bb488207285314d55b30438bec1a4.html157
-rw-r--r--ucs2-lib/doc/html/dir_aebb8dcc11953d78e620bbef0b9e2183.html138
-rw-r--r--ucs2-lib/doc/html/dir_bcbceec62d66502e9836c05663251230.html139
-rw-r--r--ucs2-lib/doc/html/dir_da61e3e9a357748887e3ca8d7c5a0c16.html139
-rw-r--r--ucs2-lib/doc/html/dir_ed6a9d7cb43517060d7c75c2b818a822.html202
-rw-r--r--ucs2-lib/doc/html/dir_f76ab352f358acad35889210ecc2b5d7.html127
-rw-r--r--ucs2-lib/doc/html/doxygen.pngbin0 -> 3512 bytes
-rw-r--r--ucs2-lib/doc/html/dynsections.js78
-rw-r--r--ucs2-lib/doc/html/favicon.icobin0 -> 8854 bytes
-rw-r--r--ucs2-lib/doc/html/ftv2blank.pngbin0 -> 86 bytes
-rw-r--r--ucs2-lib/doc/html/ftv2cl.pngbin0 -> 424 bytes
-rw-r--r--ucs2-lib/doc/html/ftv2doc.pngbin0 -> 713 bytes
-rw-r--r--ucs2-lib/doc/html/ftv2folderclosed.pngbin0 -> 543 bytes
-rw-r--r--ucs2-lib/doc/html/ftv2folderopen.pngbin0 -> 542 bytes
-rw-r--r--ucs2-lib/doc/html/ftv2lastnode.pngbin0 -> 86 bytes
-rw-r--r--ucs2-lib/doc/html/ftv2link.pngbin0 -> 713 bytes
-rw-r--r--ucs2-lib/doc/html/ftv2mlastnode.pngbin0 -> 241 bytes
-rw-r--r--ucs2-lib/doc/html/ftv2mnode.pngbin0 -> 241 bytes
-rw-r--r--ucs2-lib/doc/html/ftv2mo.pngbin0 -> 397 bytes
-rw-r--r--ucs2-lib/doc/html/ftv2node.pngbin0 -> 86 bytes
-rw-r--r--ucs2-lib/doc/html/ftv2ns.pngbin0 -> 371 bytes
-rw-r--r--ucs2-lib/doc/html/ftv2plastnode.pngbin0 -> 221 bytes
-rw-r--r--ucs2-lib/doc/html/ftv2pnode.pngbin0 -> 221 bytes
-rw-r--r--ucs2-lib/doc/html/ftv2splitbar.pngbin0 -> 282 bytes
-rw-r--r--ucs2-lib/doc/html/ftv2vertline.pngbin0 -> 86 bytes
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___a_m_s.html182
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___a_m_s.js21
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___a_m_s___t_y_p_e_s.html203
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___a_m_s___t_y_p_e_s.js55
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___a_m_s___t_y_p_e_s_ga113edf4cab85ce4e5e13ef257b5b7128.html137
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html164
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___a_m_s___t_y_p_e_s_ga60acfdd5b93a99906d751ac2f14623a9.html134
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html181
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___a_m_s_ga1305a1c706ece4772010c17734ab2f66.html124
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___a_m_s_ga6486fc060d0aa8b1bb34851d2e63b755.html170
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___a_m_s_ga6f571e2e15fac1e4be068cdf0ccac44d.html135
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___a_m_s_ga79608ce8c26f58a6875e72c30ac60bda.html130
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___a_m_s_ga80fa395bc924dca9ae92c185656db089.html130
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___a_m_s_ga9e03946330dcc4ed4111b1d43714308d.html146
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___a_m_s_ga9fe2ca761b3856b5e7c3446cc49e90ad.html135
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___a_m_s_gab096e481474195cc57d4d801f1d295f2.html139
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___a_m_s_gade9da5d6f847265fc4a8613d5ba6da60.html124
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___a_m_s_gae2eb8a7435144add2627537c6372ce69.html124
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___a_m_s_gae813e5093ce0bd11dd5ba9bd4fe77b77.html124
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___a_m_s_gafbcfeaaa6ff3d255609e404b16dbdf0f.html154
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___b_c___d_i_a_g.html141
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___b_c___d_i_a_g.js6
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s.html149
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s.js13
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html149
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga8ea444dafcef542cfafee9ee0e74a104.html124
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___b_c___d_i_a_g_ga9dcf9bd698b30335336ff78524866794.html133
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___b_c___d_i_a_g_gaaefed31b3c57ef52a29237c3f84fb566.html154
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___c_m_d.html140
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___c_m_d.js7
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___c_m_d___t_y_p_e_s.html161
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___c_m_d___t_y_p_e_s.js17
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___c_m_d___t_y_p_e_s_ga5a43bcb8d64270611848455343857bc8.html124
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___c_m_d___t_y_p_e_s_ga88dfb52f565e25938a8162e67aecd580.html143
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html146
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___c_m_d_ga70c8351102177badff83fe412c4962b7.html156
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___c_m_d_gaaad9e557acfca6cc8c125c7b191515f1.html161
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___c_m_d_gafe38ecf4cd5bc81074af03affa2374a4.html141
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o.html153
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o.js12
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o___t_y_p_e_s.html214
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o___t_y_p_e_s.js48
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga106c6afdd6f996c8bc5d632f08236912.html135
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga14238b74c9e86db4e775461f2cf9b1cb.html133
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga292134dc6bc30b6b4f0e3e8882c2e772.html134
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga69f4d52dfc38232662abd4568e18e3c2.html135
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga7432b6d95eb2af7bce5fe5809b08d88b.html139
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga99bb3bcb2b588bc66d41f3e03d478020.html135
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html191
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o_ga10b73bad28ba7e0f24d3676f082a11a1.html219
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o_ga76f4de37c98b0cdd7cc25a22a9dac8a9.html224
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o_gaa2dc67622555e9e64e4bb524a8e18642.html213
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o_gaf9ecc1f20870bf49d40521db09854a68.html245
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o_gaff68acc9fb26096cae9374694b43ae92.html245
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i2_c.html147
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i2_c.js10
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i2_c___t_y_p_e_s.html186
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i2_c___t_y_p_e_s.js34
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i2_c___t_y_p_e_s_ga3bdd3013545f8249a73c73e0d28713f7.html131
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i2_c___t_y_p_e_s_ga50029da1794f34d3ddac9df8d537c234.html135
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i2_c___t_y_p_e_s_ga631c2b70299a4c07ac77b6741b5b5e44.html137
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i2_c___t_y_p_e_s_ga7c7b4521cb5391bd20c02104876a811d.html134
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i2_c___t_y_p_e_s_ga8492cc027b5b9e2f436a172e526e1d5e.html134
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i2_c___t_y_p_e_s_ga8dd5d3515acabc6a95e9bf32629eb644.html136
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i2_c___t_y_p_e_s_ga930e829c3c689b8ead8f9fbf7f2ca237.html139
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i2_c___t_y_p_e_s_gae1f1b25aca1c240022464571187ea98f.html133
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i2_c_ga153f7ce3ea500b2f39544e0ccfc86503.html246
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i2_c_gac06f58d8a7775703373f12c3c677d687.html237
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i2_c_gade4a94669fe4f29f18fe5bfd4e102474.html284
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i_n_i_c.html134
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i_n_i_c.js7
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i_n_i_c___t_y_p_e_s.html191
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i_n_i_c___t_y_p_e_s.js45
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga132c4c68227062e63ffb99b321b9a677.html143
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga17139fe9e7d72bdb5a09d5a1ab39de4e.html137
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga4d4ad405b114eba3e3a2e5581a0b5d9c.html143
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i_n_i_c___t_y_p_e_s_gaca78cd7da871ae21b1d546c31e604772.html131
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i_n_i_c___t_y_p_e_s_gad0e1473ecd96b8d94131cb5d81295fc3.html140
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v.html185
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v.js30
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s.html224
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s.js60
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html124
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html158
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html155
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga9551cd80ce8a13fa6cce717cbc13e499.html134
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gaa573fbe79f76f263a17e51d6de99036d.html131
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gaba3a47e6c1d360c77e560cefe8c541e3.html131
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html152
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga0238420959cc58ee52c0b385741fccc9.html132
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga369c86a27ffee30a3af3423f6b3f3e59.html134
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga61381bd30fb6630b6c5d6ecc8968e983.html168
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga61a038694eeb972f6d298478f16a2de2.html130
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga64926a6a194cfb06703835e3d06475c6.html131
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga649fb9128df6f634fc86aa03b374d822.html134
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga64b50780725a0dc8693b5b73f8345ad6.html143
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga750688e4ce10e995d802e288540d19c4.html125
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga85a99b5d236b29e2d598bef51edad638.html130
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga981854177aa9ebd554ab522199193bd3.html131
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_gaea8d7735d41853167a2befdc06febe43.html183
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_gaff7821fdddebc32a8a3f61a5eebc405a.html129
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i_r_m.html150
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i_r_m.js9
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i_r_m_ga17bc521c78b99dc17f16161199cd4c1a.html125
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i_r_m_ga8d92898b48eeef24ac44a6e3ebdff460.html131
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___i_r_m_gae689267958c19afd9f9a097c36d017d3.html135
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___l_l_d.html150
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___l_l_d.js10
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___l_l_d___a_p_i.html143
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___l_l_d___a_p_i.js13
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___l_l_d___a_p_i_ga03c6fb96255dffab2fd1ca1a70204ad9.html131
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___l_l_d___a_p_i_ga59b99932c0fd7cd21f1c9788d60f1d4e.html131
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___l_l_d___a_p_i_ga5bfaf97236d417072fe606f24bb3c8ad.html133
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___l_l_d___a_p_i_gadc535a5be0f7bf336dc66cecfff8067d.html131
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___l_l_d___t_y_p_e_s.html136
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___l_l_d___t_y_p_e_s.js24
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___l_l_d_ga73f07fb097d3c1bb6c5bf048f088166e.html132
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___l_l_d_ga917011a0aed9ca6d0aaf2201dc8c0e9f.html131
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___l_l_d_gaa618347d194113c34f5b21d3c36ba7b6.html131
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___l_l_d_gabb4b73751b87fe9a63b3d15403a81965.html131
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___l_l_d_gae49a0953d88e8fbd4ebf2ce9c5f7b7f1.html131
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___m_g_r.html150
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___m_g_r.js19
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___m_g_r_gab85aa9ce377050505124af5e9549e445.html140
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___m_g_r_gad54678ad2a4671ec224422a8647b20f6.html133
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___m_i_s_c.html136
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___m_i_s_c.js7
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___m_i_s_c_ga74b0d1a6c74c93a79fc2751554806796.html124
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___m_i_s_c_gaadb74b48c69d7b6fc0a94eeb666e8183.html124
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___m_i_s_c_gaae920665e0a0d0c4213b8e037f6ce869.html124
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___m_i_s_c_gad0b327b6924e088113371b79e161cafe.html124
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___n_e_t.html163
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___n_e_t.js14
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___n_e_t___t_y_p_e_s.html201
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___n_e_t___t_y_p_e_s.js39
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___n_e_t___t_y_p_e_s_ga5f170c3358fc47999f969ee868d113ef.html124
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___n_e_t___t_y_p_e_s_ga6b0bec2ae9e4d0fb93eefd65752f0c74.html134
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html152
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html153
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___n_e_t___t_y_p_e_s_gab6ef28648a40efb679babf0a7a5173e6.html124
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___n_e_t___t_y_p_e_s_gad5ed0387c3c156602826d50ce94c9df7.html158
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___n_e_t_ga1e49ce81a42f09bcecc2202edc2b93fc.html158
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___n_e_t_ga3360b1585b5a9b54d24a934c22a44281.html173
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___n_e_t_ga3a71b7772ce265a77eefa7ad069c4819.html165
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___n_e_t_ga43fb9c04d5ad142f6abbf9566af82f8c.html150
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___n_e_t_ga83c2e74a4cc216aa10d7c6a1a517d459.html181
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___n_e_t_gaf08bc0be54565e30143166d675866f87.html135
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___n_e_t_gaf195e8ae396bc1fc358666fe50bf3f51.html195
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y.html150
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y.js9
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s.html150
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s.js16
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html146
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_gae1f89dbd75e3d76917273450df37ff66.html137
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_ga50a5b00d5bbd1ad324478509dc524eec.html143
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_ga61b182f93d2815857f62ea51782bb13d.html151
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_ga637e441520f7b203e551274f17febfb6.html143
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_gab3c981bc09b0e5033e5163b8e5aafca7.html134
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_gabab6c431e235fe0211f5f1525f9cff2e.html144
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___p_b_i.html130
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___p_b_i.js5
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___p_r_o_g___m_o_d_e.html140
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___p_r_o_g___m_o_d_e.js6
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s.html191
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s.js40
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html149
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html146
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gab29d4eadce18cb68209671a44c1eaa3a.html143
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gae01f703f9ca91d9d1b9efdcfddfe8464.html140
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___p_r_o_g___m_o_d_e_ga12071385b86ab6375472db80c00b80c7.html173
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___p_r_o_g___m_o_d_e_ga15045bde4d6a35f1b1e20eb6e3c688ab.html135
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g.html169
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g.js18
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s.html157
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s.js32
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga127a72f023d3c0289ab74b001f6edc25.html134
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html140
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g_ga32d004eb96f434f379614b29fe2a486a.html159
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g_ga57ca34a488f06d57f2219be23fa0259f.html201
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g_ga87a46a3aa0657e13f5884e5a04d16e17.html174
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g_ga91d851f4665839e2aac982565b007805.html132
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g_gaaa23aca8279da197192210fe11889452.html253
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g_gabb9185254132bb29ee0af137c36f50b8.html220
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g_gaefde5a8fbaeb6e5937e94b9e74ae70cb.html134
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g_gaf34398118f6a683a7e295f2fb89c5940.html215
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___s_c_r_i_p_t_i_n_g.html156
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___s_c_r_i_p_t_i_n_g.js22
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___s_c_r_i_p_t_i_n_g_ga2f2737e4d507b9c15e165918db3f1456.html225
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___s_c_r_i_p_t_i_n_g_gab0f1bc424462b8bbe0b2155d504025a5.html132
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___s_c_r_i_p_t_i_n_g_gabd3ecc8ab539f3b9de3fc8045c083b60.html134
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e.html152
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e.js8
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e___t_y_p_e_s.html224
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e___t_y_p_e_s.js66
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html188
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga151ca26ee8e23168141b57c7c672733c.html110
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga2e80fc8516fc34b7a601103291fb155f.html110
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga3d9b0fe84140fbc49ba03b685f6c0443.html124
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html167
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gacdfa5380b7e26d87ebe4f8d2478ce280.html110
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gaed7f13e95bb2324327de175834aa02ff.html124
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e_ga038add4a7ca8adb0f60c34cedbfcf8b9.html124
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e_gaebb5aec06a7196b1247805a53a96f926.html147
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e_gaf18b6867951fd06359788f6595b78195.html131
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e_gaf7f45aee7bbbd7f4a58b71a5268ecdb6.html147
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___x_r_m___c_f_g.html133
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___x_r_m___c_f_g.js6
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___x_r_m___c_f_g_ga70720ac0fdcbbbc7f4742654c8f8abc1.html125
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___x_r_m___c_f_g_ga9bbd7e20bff0c7ea54699df5969e933a.html125
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___x_r_m___c_f_g_gaddc205bcdb37b435fddb292c416f605b.html125
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m.html330
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m.js110
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga02741bef1059621aaf6cf4fa956cfccf.html143
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga066850ed913a19025120619cca07fac6.html131
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html152
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html155
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga16d6cd08e925676dfade13e980f460b0.html137
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga24bf81b4e52fc1fb01deba9165d7c79e.html137
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga28477f727fe10f9d6fd21cfc98a9c115.html134
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga3139c2b4d435622104235bd9fd9f478c.html137
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga6ea92012ace1c507dab36b727698a08e.html131
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga793fd94e2e48ff7a7fce092e6e0039e4.html131
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga83e210aa76632ea2191bd59ef7894432.html137
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga8836a818f79ff1315f7f76bcd8e50a4d.html137
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga902951b9083ff58a88e19e151b57106a.html134
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_gaa573e5854eb036998eec837e9fbf0ae1.html134
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_gaadbd9007127f39c3c257040adf063d07.html140
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_gab29e10223e27331045485facbe4102ee.html140
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_gae12684f1b74844d622e59da79f1a23f8.html131
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_gaef12892b897a1cd1013357cfe63f2434.html134
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html146
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_gafd56377a5a1f782e64260d18caf17dc9.html140
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___x_r_m___s_t_r_e_a_m.html130
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___x_r_m___s_t_r_e_a_m.js5
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___x_r_m___s_t_r_e_a_m_ga05e65cb477a3ff894de32425eb41294f.html211
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___x_r_m___s_t_r_e_a_m_ga481fb8455d6165c5913ead778765d46e.html265
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___x_r_m___t_y_p_e_s.html293
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___x_r_m___t_y_p_e_s.js167
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___x_r_m___t_y_p_e_s_ga10b22839e9b7b2fe0148713aeea0172c.html134
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___x_r_m___t_y_p_e_s_ga50384bb32b088e9cfd50c889ef562015.html137
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html140
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html160
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html125
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___x_r_m___t_y_p_e_s_ga80967b5f9bca0e603511f6ae4f8ac80d.html137
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___x_r_m___t_y_p_e_s_gab2f4b821b24db0cec150d1b30fe18783.html161
-rw-r--r--ucs2-lib/doc/html/group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html173
-rw-r--r--ucs2-lib/doc/html/header_bg.pngbin0 -> 18016 bytes
-rw-r--r--ucs2-lib/doc/html/icon_api_ref_120x120.pngbin0 -> 9454 bytes
-rw-r--r--ucs2-lib/doc/html/icon_api_ref_32x32.pngbin0 -> 1933 bytes
-rw-r--r--ucs2-lib/doc/html/icon_appendix_120x120.pngbin0 -> 6807 bytes
-rw-r--r--ucs2-lib/doc/html/icon_examples_32x32.pngbin0 -> 852 bytes
-rw-r--r--ucs2-lib/doc/html/icon_inic_16x16.pngbin0 -> 908 bytes
-rw-r--r--ucs2-lib/doc/html/icon_inic_32x32.pngbin0 -> 2241 bytes
-rw-r--r--ucs2-lib/doc/html/icon_manual_32x32.pngbin0 -> 734 bytes
-rw-r--r--ucs2-lib/doc/html/icon_overview_32x32.pngbin0 -> 858 bytes
-rw-r--r--ucs2-lib/doc/html/icon_started_120x120.pngbin0 -> 5387 bytes
-rw-r--r--ucs2-lib/doc/html/icon_started_32x32.pngbin0 -> 1134 bytes
-rw-r--r--ucs2-lib/doc/html/icon_sw_design_32x32.pngbin0 -> 1169 bytes
-rw-r--r--ucs2-lib/doc/html/index.html174
-rw-r--r--ucs2-lib/doc/html/inic.css5337
-rw-r--r--ucs2-lib/doc/html/jquery.js77
-rw-r--r--ucs2-lib/doc/html/logo.pngbin0 -> 5775 bytes
-rw-r--r--ucs2-lib/doc/html/logo_mchp.pngbin0 -> 5775 bytes
-rw-r--r--ucs2-lib/doc/html/modules.html153
-rw-r--r--ucs2-lib/doc/html/modules.js17
-rw-r--r--ucs2-lib/doc/html/nav_f.pngbin0 -> 141 bytes
-rw-r--r--ucs2-lib/doc/html/nav_g.pngbin0 -> 95 bytes
-rw-r--r--ucs2-lib/doc/html/nav_h.pngbin0 -> 94 bytes
-rw-r--r--ucs2-lib/doc/html/navtree.css143
-rw-r--r--ucs2-lib/doc/html/navtree.js515
-rw-r--r--ucs2-lib/doc/html/navtreeindex0.js253
-rw-r--r--ucs2-lib/doc/html/navtreeindex1.js253
-rw-r--r--ucs2-lib/doc/html/navtreeindex2.js253
-rw-r--r--ucs2-lib/doc/html/navtreeindex3.js102
-rw-r--r--ucs2-lib/doc/html/open.pngbin0 -> 114 bytes
-rw-r--r--ucs2-lib/doc/html/release_package_directory.pngbin0 -> 2177 bytes
-rw-r--r--ucs2-lib/doc/html/resize.js93
-rw-r--r--ucs2-lib/doc/html/routing_physical_pov.pngbin0 -> 12889 bytes
-rw-r--r--ucs2-lib/doc/html/search/all_61.html25
-rw-r--r--ucs2-lib/doc/html/search/all_61.js11
-rw-r--r--ucs2-lib/doc/html/search/all_62.html25
-rw-r--r--ucs2-lib/doc/html/search/all_62.js10
-rw-r--r--ucs2-lib/doc/html/search/all_63.html25
-rw-r--r--ucs2-lib/doc/html/search/all_63.js26
-rw-r--r--ucs2-lib/doc/html/search/all_64.html25
-rw-r--r--ucs2-lib/doc/html/search/all_64.js21
-rw-r--r--ucs2-lib/doc/html/search/all_65.html25
-rw-r--r--ucs2-lib/doc/html/search/all_65.js13
-rw-r--r--ucs2-lib/doc/html/search/all_66.html25
-rw-r--r--ucs2-lib/doc/html/search/all_66.js13
-rw-r--r--ucs2-lib/doc/html/search/all_67.html25
-rw-r--r--ucs2-lib/doc/html/search/all_67.js10
-rw-r--r--ucs2-lib/doc/html/search/all_68.html25
-rw-r--r--ucs2-lib/doc/html/search/all_68.js5
-rw-r--r--ucs2-lib/doc/html/search/all_69.html25
-rw-r--r--ucs2-lib/doc/html/search/all_69.js23
-rw-r--r--ucs2-lib/doc/html/search/all_6a.html25
-rw-r--r--ucs2-lib/doc/html/search/all_6a.js4
-rw-r--r--ucs2-lib/doc/html/search/all_6c.html25
-rw-r--r--ucs2-lib/doc/html/search/all_6c.js10
-rw-r--r--ucs2-lib/doc/html/search/all_6d.html25
-rw-r--r--ucs2-lib/doc/html/search/all_6d.js26
-rw-r--r--ucs2-lib/doc/html/search/all_6e.html25
-rw-r--r--ucs2-lib/doc/html/search/all_6e.js23
-rw-r--r--ucs2-lib/doc/html/search/all_6f.html25
-rw-r--r--ucs2-lib/doc/html/search/all_6f.js8
-rw-r--r--ucs2-lib/doc/html/search/all_70.html25
-rw-r--r--ucs2-lib/doc/html/search/all_70.js21
-rw-r--r--ucs2-lib/doc/html/search/all_72.html25
-rw-r--r--ucs2-lib/doc/html/search/all_72.js33
-rw-r--r--ucs2-lib/doc/html/search/all_73.html25
-rw-r--r--ucs2-lib/doc/html/search/all_73.js29
-rw-r--r--ucs2-lib/doc/html/search/all_74.html25
-rw-r--r--ucs2-lib/doc/html/search/all_74.js19
-rw-r--r--ucs2-lib/doc/html/search/all_75.html25
-rw-r--r--ucs2-lib/doc/html/search/all_75.js549
-rw-r--r--ucs2-lib/doc/html/search/all_78.html25
-rw-r--r--ucs2-lib/doc/html/search/all_78.js7
-rw-r--r--ucs2-lib/doc/html/search/classes_63.html25
-rw-r--r--ucs2-lib/doc/html/search/classes_63.js4
-rw-r--r--ucs2-lib/doc/html/search/classes_6d.html25
-rw-r--r--ucs2-lib/doc/html/search/classes_6d.js7
-rw-r--r--ucs2-lib/doc/html/search/classes_75.html25
-rw-r--r--ucs2-lib/doc/html/search/classes_75.js59
-rw-r--r--ucs2-lib/doc/html/search/close.pngbin0 -> 273 bytes
-rw-r--r--ucs2-lib/doc/html/search/enums_75.html25
-rw-r--r--ucs2-lib/doc/html/search/enums_75.js64
-rw-r--r--ucs2-lib/doc/html/search/enumvalues_75.html25
-rw-r--r--ucs2-lib/doc/html/search/enumvalues_75.js319
-rw-r--r--ucs2-lib/doc/html/search/functions_75.html25
-rw-r--r--ucs2-lib/doc/html/search/functions_75.js45
-rw-r--r--ucs2-lib/doc/html/search/groups_61.html25
-rw-r--r--ucs2-lib/doc/html/search/groups_61.js5
-rw-r--r--ucs2-lib/doc/html/search/groups_62.html25
-rw-r--r--ucs2-lib/doc/html/search/groups_62.js4
-rw-r--r--ucs2-lib/doc/html/search/groups_63.html25
-rw-r--r--ucs2-lib/doc/html/search/groups_63.js4
-rw-r--r--ucs2-lib/doc/html/search/groups_65.html25
-rw-r--r--ucs2-lib/doc/html/search/groups_65.js4
-rw-r--r--ucs2-lib/doc/html/search/groups_67.html25
-rw-r--r--ucs2-lib/doc/html/search/groups_67.js5
-rw-r--r--ucs2-lib/doc/html/search/groups_69.html25
-rw-r--r--ucs2-lib/doc/html/search/groups_69.js8
-rw-r--r--ucs2-lib/doc/html/search/groups_6c.html25
-rw-r--r--ucs2-lib/doc/html/search/groups_6c.js5
-rw-r--r--ucs2-lib/doc/html/search/groups_6d.html25
-rw-r--r--ucs2-lib/doc/html/search/groups_6d.js5
-rw-r--r--ucs2-lib/doc/html/search/groups_6e.html25
-rw-r--r--ucs2-lib/doc/html/search/groups_6e.js6
-rw-r--r--ucs2-lib/doc/html/search/groups_70.html25
-rw-r--r--ucs2-lib/doc/html/search/groups_70.js5
-rw-r--r--ucs2-lib/doc/html/search/groups_72.html25
-rw-r--r--ucs2-lib/doc/html/search/groups_72.js13
-rw-r--r--ucs2-lib/doc/html/search/groups_74.html25
-rw-r--r--ucs2-lib/doc/html/search/groups_74.js5
-rw-r--r--ucs2-lib/doc/html/search/groups_78.html25
-rw-r--r--ucs2-lib/doc/html/search/groups_78.js6
-rw-r--r--ucs2-lib/doc/html/search/mag_sel.pngbin0 -> 563 bytes
-rw-r--r--ucs2-lib/doc/html/search/nomatches.html12
-rw-r--r--ucs2-lib/doc/html/search/pages_61.html25
-rw-r--r--ucs2-lib/doc/html/search/pages_61.js5
-rw-r--r--ucs2-lib/doc/html/search/pages_62.html25
-rw-r--r--ucs2-lib/doc/html/search/pages_62.js4
-rw-r--r--ucs2-lib/doc/html/search/pages_63.html25
-rw-r--r--ucs2-lib/doc/html/search/pages_63.js4
-rw-r--r--ucs2-lib/doc/html/search/pages_67.html25
-rw-r--r--ucs2-lib/doc/html/search/pages_67.js4
-rw-r--r--ucs2-lib/doc/html/search/pages_69.html25
-rw-r--r--ucs2-lib/doc/html/search/pages_69.js4
-rw-r--r--ucs2-lib/doc/html/search/pages_6c.html25
-rw-r--r--ucs2-lib/doc/html/search/pages_6c.js5
-rw-r--r--ucs2-lib/doc/html/search/pages_6d.html25
-rw-r--r--ucs2-lib/doc/html/search/pages_6d.js4
-rw-r--r--ucs2-lib/doc/html/search/pages_6e.html25
-rw-r--r--ucs2-lib/doc/html/search/pages_6e.js7
-rw-r--r--ucs2-lib/doc/html/search/pages_6f.html25
-rw-r--r--ucs2-lib/doc/html/search/pages_6f.js4
-rw-r--r--ucs2-lib/doc/html/search/pages_70.html25
-rw-r--r--ucs2-lib/doc/html/search/pages_70.js5
-rw-r--r--ucs2-lib/doc/html/search/pages_72.html25
-rw-r--r--ucs2-lib/doc/html/search/pages_72.js5
-rw-r--r--ucs2-lib/doc/html/search/pages_73.html25
-rw-r--r--ucs2-lib/doc/html/search/pages_73.js5
-rw-r--r--ucs2-lib/doc/html/search/search.css238
-rw-r--r--ucs2-lib/doc/html/search/search.js811
-rw-r--r--ucs2-lib/doc/html/search/search_l.pngbin0 -> 604 bytes
-rw-r--r--ucs2-lib/doc/html/search/search_m.pngbin0 -> 158 bytes
-rw-r--r--ucs2-lib/doc/html/search/search_r.pngbin0 -> 612 bytes
-rw-r--r--ucs2-lib/doc/html/search/typedefs_75.html25
-rw-r--r--ucs2-lib/doc/html/search/typedefs_75.js48
-rw-r--r--ucs2-lib/doc/html/search/variables_61.html25
-rw-r--r--ucs2-lib/doc/html/search/variables_61.js7
-rw-r--r--ucs2-lib/doc/html/search/variables_62.html25
-rw-r--r--ucs2-lib/doc/html/search/variables_62.js8
-rw-r--r--ucs2-lib/doc/html/search/variables_63.html25
-rw-r--r--ucs2-lib/doc/html/search/variables_63.js23
-rw-r--r--ucs2-lib/doc/html/search/variables_64.html25
-rw-r--r--ucs2-lib/doc/html/search/variables_64.js21
-rw-r--r--ucs2-lib/doc/html/search/variables_65.html25
-rw-r--r--ucs2-lib/doc/html/search/variables_65.js12
-rw-r--r--ucs2-lib/doc/html/search/variables_66.html25
-rw-r--r--ucs2-lib/doc/html/search/variables_66.js13
-rw-r--r--ucs2-lib/doc/html/search/variables_67.html25
-rw-r--r--ucs2-lib/doc/html/search/variables_67.js7
-rw-r--r--ucs2-lib/doc/html/search/variables_68.html25
-rw-r--r--ucs2-lib/doc/html/search/variables_68.js5
-rw-r--r--ucs2-lib/doc/html/search/variables_69.html25
-rw-r--r--ucs2-lib/doc/html/search/variables_69.js17
-rw-r--r--ucs2-lib/doc/html/search/variables_6a.html25
-rw-r--r--ucs2-lib/doc/html/search/variables_6a.js4
-rw-r--r--ucs2-lib/doc/html/search/variables_6c.html25
-rw-r--r--ucs2-lib/doc/html/search/variables_6c.js6
-rw-r--r--ucs2-lib/doc/html/search/variables_6d.html25
-rw-r--r--ucs2-lib/doc/html/search/variables_6d.js19
-rw-r--r--ucs2-lib/doc/html/search/variables_6e.html25
-rw-r--r--ucs2-lib/doc/html/search/variables_6e.js16
-rw-r--r--ucs2-lib/doc/html/search/variables_6f.html25
-rw-r--r--ucs2-lib/doc/html/search/variables_6f.js7
-rw-r--r--ucs2-lib/doc/html/search/variables_70.html25
-rw-r--r--ucs2-lib/doc/html/search/variables_70.js17
-rw-r--r--ucs2-lib/doc/html/search/variables_72.html25
-rw-r--r--ucs2-lib/doc/html/search/variables_72.js21
-rw-r--r--ucs2-lib/doc/html/search/variables_73.html25
-rw-r--r--ucs2-lib/doc/html/search/variables_73.js27
-rw-r--r--ucs2-lib/doc/html/search/variables_74.html25
-rw-r--r--ucs2-lib/doc/html/search/variables_74.js17
-rw-r--r--ucs2-lib/doc/html/search/variables_75.html25
-rw-r--r--ucs2-lib/doc/html/search/variables_75.js6
-rw-r--r--ucs2-lib/doc/html/search/variables_78.html25
-rw-r--r--ucs2-lib/doc/html/search/variables_78.js4
-rw-r--r--ucs2-lib/doc/html/struct_c_programming.html197
-rw-r--r--ucs2-lib/doc/html/struct_c_programming_a06e0f1e69f5ee75281d8c1d541a9440a.html124
-rw-r--r--ucs2-lib/doc/html/struct_c_programming_a07ec3cc0de32c2b7496197f15e96c475.html124
-rw-r--r--ucs2-lib/doc/html/struct_c_programming_a0f7e779ac777da57585e57ff0d85c842.html124
-rw-r--r--ucs2-lib/doc/html/struct_c_programming_a2e6eb03384cae6a78a3ab2a9a63229e9.html124
-rw-r--r--ucs2-lib/doc/html/struct_c_programming_a510e91e91f2f7b75fb6ea9d7760fc81c.html124
-rw-r--r--ucs2-lib/doc/html/struct_c_programming_a52f06fda08f2eb2b225c6201e38d1788.html124
-rw-r--r--ucs2-lib/doc/html/struct_c_programming_a5ef650eccc58da14ca17f8480c0669eb.html124
-rw-r--r--ucs2-lib/doc/html/struct_c_programming_a64c85894e8881b2b033cad0e08afb227.html124
-rw-r--r--ucs2-lib/doc/html/struct_c_programming_a696f1f893876f5efa0878dd5255ebad9.html124
-rw-r--r--ucs2-lib/doc/html/struct_c_programming_a6faea6381a3c39905de4fca5cb966a81.html124
-rw-r--r--ucs2-lib/doc/html/struct_c_programming_a756790b5cd986a970dd934f4fdf8a0a9.html124
-rw-r--r--ucs2-lib/doc/html/struct_c_programming_a7e400d5be57c32dd73c2d0ffe8705602.html124
-rw-r--r--ucs2-lib/doc/html/struct_c_programming_a87ab79c86a6b6023f00cfdf465dad09a.html124
-rw-r--r--ucs2-lib/doc/html/struct_c_programming_a98d71a61e60458dc0106353ce1fd43fe.html124
-rw-r--r--ucs2-lib/doc/html/struct_c_programming_a9b9ca9dbb62f68667558e9ba9250f707.html124
-rw-r--r--ucs2-lib/doc/html/struct_c_programming_aa722c5fa0c9c6e4a8d5ea795f79beaae.html124
-rw-r--r--ucs2-lib/doc/html/struct_c_programming_aae5da389e9fa9462cd96740a8e288825.html124
-rw-r--r--ucs2-lib/doc/html/struct_c_programming_aaf0157ff97cce6b8ba8f142f65ef36e9.html124
-rw-r--r--ucs2-lib/doc/html/struct_c_programming_aba55669ce31313a3dcd2e04fb6e31a62.html124
-rw-r--r--ucs2-lib/doc/html/struct_c_programming_ac5cd5e459eb1d8746b5660c1f98c3906.html124
-rw-r--r--ucs2-lib/doc/html/struct_c_programming_ae20a8288958f7ad71b35a1e460f25d4c.html124
-rw-r--r--ucs2-lib/doc/html/struct_c_programming_ae6d9d0f0acd5d6473bfbb35d75a50857.html124
-rw-r--r--ucs2-lib/doc/html/struct_c_programming_aeed780a0cff38447179779c414cfdd54.html124
-rw-r--r--ucs2-lib/doc/html/struct_c_programming_af713f15b39baa1603eeb9984877e04ad.html124
-rw-r--r--ucs2-lib/doc/html/struct_msg___most_tel__t.html143
-rw-r--r--ucs2-lib/doc/html/struct_msg___most_tel__t_a3176fc4da0eba67428fa0627e15f86b6.html124
-rw-r--r--ucs2-lib/doc/html/struct_msg___most_tel__t_a67473c671719a1e3f3fe0ad16e95dd83.html124
-rw-r--r--ucs2-lib/doc/html/struct_msg___most_tel__t_a6d80d11eae3ae15f09cc8aff3dabb89b.html124
-rw-r--r--ucs2-lib/doc/html/struct_msg___most_tel__t_a703fce339153ac2b164c185137b59717.html124
-rw-r--r--ucs2-lib/doc/html/struct_msg___most_tel__t_a9420136f5d99f8b6c48445b5eb048d60.html124
-rw-r--r--ucs2-lib/doc/html/struct_msg___most_tel__t_abc779299d755d192cd021eb2c2a68013.html124
-rw-r--r--ucs2-lib/doc/html/struct_msg___msg_id__t.html137
-rw-r--r--ucs2-lib/doc/html/struct_msg___msg_id__t_a6cb0848efba59a9a23dbbe0480f04c85.html124
-rw-r--r--ucs2-lib/doc/html/struct_msg___msg_id__t_ab529e65a59b5c14626acf162f03fbfd4.html124
-rw-r--r--ucs2-lib/doc/html/struct_msg___msg_id__t_ac3f5682d1affe8931b94fa90c28f6f31.html124
-rw-r--r--ucs2-lib/doc/html/struct_msg___msg_id__t_afadabe68185500b54de12bf7701db13b.html124
-rw-r--r--ucs2-lib/doc/html/struct_msg___tel_data__t.html137
-rw-r--r--ucs2-lib/doc/html/struct_msg___tel_data__t_a0102c84947aadd0fd212a7972d2fb10d.html124
-rw-r--r--ucs2-lib/doc/html/struct_msg___tel_data__t_a880ca776e9ea8d0bbb714a7333da52cc.html124
-rw-r--r--ucs2-lib/doc/html/struct_msg___tel_data__t_a92083234f7755755f06bb85b3a6f2ea4.html124
-rw-r--r--ucs2-lib/doc/html/struct_msg___tel_data__t_afb4f9db23cd1c16b44c1e479e3f5e1cf.html124
-rw-r--r--ucs2-lib/doc/html/struct_msg___tx_options__t.html131
-rw-r--r--ucs2-lib/doc/html/struct_msg___tx_options__t_a454f250afc20ddc93a508bc004df753e.html129
-rw-r--r--ucs2-lib/doc/html/struct_msg___tx_options__t_a82997e00f317333173aa610d0902ab04.html125
-rw-r--r--ucs2-lib/doc/html/struct_ucs___ams___init_data__t.html134
-rw-r--r--ucs2-lib/doc/html/struct_ucs___ams___init_data__t_a8740ba80e30dd75e71d09fa1dcf04f3d.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___ams___init_data__t_a8e01298906b1fbe44765c6e9e4bbc888.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___ams___init_data__t_a976344e02b80d33e167c34d3c6ae9cab.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___ams_rx___init_data__t.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___ams_rx___init_data__t_a94cec5846cb407141e9c1e1a2ea205d3.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___ams_rx___msg__t.html143
-rw-r--r--ucs2-lib/doc/html/struct_ucs___ams_rx___msg__t_a1c691c4fcbb0562f9a9c9e07f1166319.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___ams_rx___msg__t_a6166cef59cbe432be35512925debeae6.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___ams_rx___msg__t_a689014fc11d4f26d264ddae2eaebc9d8.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___ams_rx___msg__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___ams_rx___msg__t_abb27f24f389ff3575a5ee33e74e66eb6.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___ams_rx___msg__t_af3ea491a2bc42c0f8a5911b4d21058d0.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___ams_tx___init_data__t.html131
-rw-r--r--ucs2-lib/doc/html/struct_ucs___ams_tx___init_data__t_a804bd7e626fd73b27d18af9a036d7ad4.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___ams_tx___init_data__t_a9217a093b6d7e68b7cd9d759c5cef192.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___ams_tx___msg__t.html143
-rw-r--r--ucs2-lib/doc/html/struct_ucs___ams_tx___msg__t_a1c691c4fcbb0562f9a9c9e07f1166319.html125
-rw-r--r--ucs2-lib/doc/html/struct_ucs___ams_tx___msg__t_a6166cef59cbe432be35512925debeae6.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___ams_tx___msg__t_a689014fc11d4f26d264ddae2eaebc9d8.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___ams_tx___msg__t_a82997e00f317333173aa610d0902ab04.html125
-rw-r--r--ucs2-lib/doc/html/struct_ucs___ams_tx___msg__t_a9a199f6a8a711b94ff827e6807980cb3.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___ams_tx___msg__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___cmd___msg_id__t.html132
-rw-r--r--ucs2-lib/doc/html/struct_ucs___cmd___msg_id__t_a689014fc11d4f26d264ddae2eaebc9d8.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___cmd___msg_id__t_a7a00edfeadc4cc2a50b9136d2d368c23.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___general___init_data__t.html143
-rw-r--r--ucs2-lib/doc/html/struct_ucs___general___init_data__t_a1694b517ad074d3b14b76b400f86c9db.html125
-rw-r--r--ucs2-lib/doc/html/struct_ucs___general___init_data__t_a4e1140be3951f0e14d4071840f4ebc8e.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___general___init_data__t_a7d2541cf63dfcea750c0d0ec2ef563c0.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___general___init_data__t_a9de73ec82699e45173702e9b0ccc917a.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___general___init_data__t_aa197d5a04c7eee7b95eb9e1de232d161.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___general___init_data__t_ad21ca235fca8aa5dbc81e6a82ca0f867.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___gpio___init_data__t.html147
-rw-r--r--ucs2-lib/doc/html/struct_ucs___gpio___init_data__t_abb586c1dd43ecda56d21209333104904.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___gpio___pin_configuration__t.html131
-rw-r--r--ucs2-lib/doc/html/struct_ucs___gpio___pin_configuration__t_a9f9602aa82b7dc511dfd57447039c1ab.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___gpio___pin_configuration__t_ab40a673fb19c1e650e1f79de91788aa5.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___gpio___result__t.html131
-rw-r--r--ucs2-lib/doc/html/struct_ucs___gpio___result__t_a5a25ac28b5135e04a465fdead03df796.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___gpio___result__t_a834bf2a84ecdbd878eb0edbf89bc0b88.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___gpio___result_details__t.html134
-rw-r--r--ucs2-lib/doc/html/struct_ucs___gpio___result_details__t_a87d6ba6c35b8ada8a002fee6caf0c28a.html131
-rw-r--r--ucs2-lib/doc/html/struct_ucs___gpio___result_details__t_abee2d1d2c9eebcbc9da920664e9eb248.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___gpio___result_details__t_ac8f7bd459f5052601dbbab267d9d8067.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___i2c___init_data__t.html141
-rw-r--r--ucs2-lib/doc/html/struct_ucs___i2c___init_data__t_a2d31f7e7ace9d7a9998a9d9427706a45.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___i2c___result__t.html131
-rw-r--r--ucs2-lib/doc/html/struct_ucs___i2c___result__t_a288b89d26129791b83b01a3b464d7351.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___i2c___result__t_aacd0e1eabaa18a3fe226a2b4f849832b.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___i2c___result_details__t.html134
-rw-r--r--ucs2-lib/doc/html/struct_ucs___i2c___result_details__t_abee2d1d2c9eebcbc9da920664e9eb248.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___i2c___result_details__t_ac8f7bd459f5052601dbbab267d9d8067.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___i2c___result_details__t_afbf6b21e51e2114bd8165bc6b9d920a5.html131
-rw-r--r--ucs2-lib/doc/html/struct_ucs___inic___init_data__t.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___inic___init_data__t_a238990027953e8302526513c7cbb4dc0.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___inic___version__t.html155
-rw-r--r--ucs2-lib/doc/html/struct_ucs___inic___version__t_a20c9cb94858deb6d8a9ab9a220fa8778.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___inic___version__t_a2aa984a9a3499db9e991535b402b3dca.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___inic___version__t_a384e7593c5c4c33e1f7c9936dab0b937.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___inic___version__t_a79fca74d233fe79b334ecc712ca688ea.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___inic___version__t_ab190dafd0511e594196f0d25f0cd99dc.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___inic___version__t_ab98cc6d6cb5cc92d5f6633419daa643e.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___inic___version__t_abae3da4c5cc12b7d7470701f1811caa2.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___inic___version__t_aed9e506bf23c33ccb10ba21404859a74.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___inic___version__t_aedae893bc0a52aed213d0dcef8262921.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___inic___version__t_afd5796c03158d03bb72378ce02535beb.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___init_data__t.html158
-rw-r--r--ucs2-lib/doc/html/struct_ucs___init_data__t_a1b49223d94d385d1229b6864ad7fa053.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___init_data__t_a41f828ebbe67a574ee39abd6c054bb6c.html125
-rw-r--r--ucs2-lib/doc/html/struct_ucs___init_data__t_a43e7559dfe1bc2860cb0d2749fa66071.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___init_data__t_a517c2ec800639c8a91183e70189b1875.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___init_data__t_a6788f8bea24665769ce00897162f84d4.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___init_data__t_a8619aaf795810b7508046fbfef6d6907.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___init_data__t_a97b13c03602cc54884ae1765c518bd7b.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___init_data__t_aa220785601aa16c0e0aff52f44380719.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___init_data__t_aaff1fbd74feb484366c4082f00f2aea7.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___init_data__t_ac0b0a4478bafe6e81ed3c3e2c72f4fc9.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___init_data__t_afc4097eb34fb5c24bb13e02b6f506b3c.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___lld___api__t.html137
-rw-r--r--ucs2-lib/doc/html/struct_ucs___lld___api__t_a3ed1d41d7cab149f0bc5d2ea13631b16.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___lld___api__t_a4621743277024b76d3afe1aed195f211.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___lld___api__t_a9fba62024daebe86940aee310c17ccfb.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___lld___api__t_ad4d0f461ff3009909e295910e5380835.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___lld___callbacks__t.html140
-rw-r--r--ucs2-lib/doc/html/struct_ucs___lld___callbacks__t_a44afa0156353f9fba156ff0c91873968.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___lld___callbacks__t_a90fa6db664734c2446327b71c51f5b52.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___lld___callbacks__t_a96bad24b6b49ffacfd9136230447cb22.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___lld___callbacks__t_ab0f955ca90942fda14ac12500422a437.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___lld___callbacks__t_ad8f7d021075e06672a999eb02da1d2e4.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___lld___rx_msg__t.html131
-rw-r--r--ucs2-lib/doc/html/struct_ucs___lld___rx_msg__t_a6166cef59cbe432be35512925debeae6.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___lld___rx_msg__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___lld___tx_msg__t.html131
-rw-r--r--ucs2-lib/doc/html/struct_ucs___lld___tx_msg__t_a0fae6a3f19d8a9bbdad3c3b1ead3e868.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___lld___tx_msg__t_ae6dfc382578b04d70665e7c805fdc4c2.html125
-rw-r--r--ucs2-lib/doc/html/struct_ucs___mem___buffer__t.html137
-rw-r--r--ucs2-lib/doc/html/struct_ucs___mem___buffer__t_a5245ce4ea7d022a357642b645e7ac645.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___mem___buffer__t_a6166cef59cbe432be35512925debeae6.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___mem___buffer__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___mem___buffer__t_af0c4b4b26e805f939299b203943976b2.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___mgr___init_data__t.html146
-rw-r--r--ucs2-lib/doc/html/struct_ucs___mgr___init_data__t_a30588f13e23cf04757b91e979e55c369.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___mgr___init_data__t_a4bda15e771fef671a47cd88a09707030.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___mgr___init_data__t_a8740ba80e30dd75e71d09fa1dcf04f3d.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___mgr___init_data__t_a980d5ec2fe728b8ca99de235be7858d2.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___mgr___init_data__t_ab0ad9592908a66a29460d67bf3146114.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___mgr___init_data__t_ac5131dba874debb5bb76b7f3b5a31818.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___mgr___init_data__t_ae261d2df7a2be21b4e8e4a582113643c.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___nd___init_data__t.html131
-rw-r--r--ucs2-lib/doc/html/struct_ucs___nd___init_data__t_a98b9ccad2c6c5fa2edaf472151ee853c.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___nd___init_data__t_ab9bc02a84c7daeff234344541d41be62.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___network___init_data__t.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___network___init_data__t_ae9d2b9f86bdd3a9667a348eb2b75da12.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___network___status__t.html152
-rw-r--r--ucs2-lib/doc/html/struct_ucs___network___status__t_a08f6acd8566e419c7017fc1874720223.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___network___status__t_ae7a618bc7852c52001d0756913c545c8.html145
-rw-r--r--ucs2-lib/doc/html/struct_ucs___ns___config_msg__t.html143
-rw-r--r--ucs2-lib/doc/html/struct_ucs___ns___config_msg__t_a08a6ee143e484d0a82593eb1ff632813.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___ns___config_msg__t_a4011d0b720d10f4eeacd939998ebe85d.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___ns___config_msg__t_ab81bc4284c46cfa5378520e45441ef32.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___ns___config_msg__t_ad076d2b6eaae6f9b32363de4729e9349.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___ns___config_msg__t_ad758e0bb7d48d20f40d5acbfcf916eb1.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___ns___config_msg__t_aeb1ff6787da243b8d6ced7bce3ee46d5.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___ns___script__t.html135
-rw-r--r--ucs2-lib/doc/html/struct_ucs___ns___script__t_a69ffffc951e73c7116876a2e908cf3ba.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___ns___script__t_a78234ed434c9f2e804d7466a45d0735d.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___ns___script__t_a916bebb6486ddd6e58ded2f18d97ee62.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___prg___command__t.html140
-rw-r--r--ucs2-lib/doc/html/struct_ucs___prg___command__t_aaeb273d8c806cdbebcb5d61a58b3a77d.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___prg___command__t_abe222f6d3581e7920dcad5306cc906a8.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___prg___command__t_ac0d31ca829f934cccd89f8054e02773e.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___prg___command__t_ac6e0813f6e305faff5b36579a4d1d727.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___prg___command__t_ad97c802f66f41e937c3f8b33337b8c6d.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___rm___end_point__t.html137
-rw-r--r--ucs2-lib/doc/html/struct_ucs___rm___end_point__t_a1022525e5f766bcdbcd0046c3313d3ac.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___rm___end_point__t_a7e46feb849d169800b21d689de273901.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___rm___end_point__t_aeba772076fc522f4d27dfb647457bb6d.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___rm___end_point__t_afb41e308e548fde7dd754172cfb44ccf.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___rm___init_data__t.html134
-rw-r--r--ucs2-lib/doc/html/struct_ucs___rm___init_data__t_a2420c468d89e6f991f68189ba2f61d15.html154
-rw-r--r--ucs2-lib/doc/html/struct_ucs___rm___init_data__t_a68590d8712353f94f2e9ccec1e21baa5.html151
-rw-r--r--ucs2-lib/doc/html/struct_ucs___rm___init_data__t_ab3de88c423837727c463947f57895e49.html168
-rw-r--r--ucs2-lib/doc/html/struct_ucs___rm___node__t.html144
-rw-r--r--ucs2-lib/doc/html/struct_ucs___rm___node__t_a12545084e0e46ea49b48c93385f75650.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___rm___node__t_a321da5e56aadf970749f66cfd284bb04.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___rm___node__t_a83b42042de7afe0e4e421de3e82ba5d6.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___rm___node__t_ae619e45bed87dee01aaf280635cf3911.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___rm___route__t.html140
-rw-r--r--ucs2-lib/doc/html/struct_ucs___rm___route__t_a05c940dbc220f5a723afd70071aebff8.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___rm___route__t_a5553fda80c8780a9e42916d87a0e82dd.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___rm___route__t_a8e5e3175ae36f8c87c22e2382d0bba4a.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___rm___route__t_abd3ce7c042005f4f8713f6c5359c1633.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___rm___route__t_af45aa1590137605530f1757465709d39.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___sd___report__t.html137
-rw-r--r--ucs2-lib/doc/html/struct_ucs___sd___report__t_a4516a98acab86432eea6035e2856a7e4.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___sd___report__t_a4b94cabfc6ee64196ca32cf1f0c1040f.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___sd___report__t_a6caff4f48d1e2f1afc97934836388272.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___sd___report__t_abfbddee81e60c6dc7a2ede0b5066c06a.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___sd___segment__t.html137
-rw-r--r--ucs2-lib/doc/html/struct_ucs___sd___segment__t_a26bfba1996180ca29222aeccbd62068c.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___sd___segment__t_a2c97de6d0a36e262e6e86b3eb7d64525.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___sd___segment__t_a730fee420fdc6d921c296c9920ce4135.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___sd___segment__t_abea371f9030e15a5d2a4c181576833d8.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___signature__t.html173
-rw-r--r--ucs2-lib/doc/html/struct_ucs___signature__t_a0057a5f105488012ba3448bbb1099ebe.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___signature__t_a0d446be5f898a8ae0738b2cefb0b8b37.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___signature__t_a1149e000267e8c93bed1aa393c09c047.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___signature__t_a15ea388e2fbe80fafdd20a6d8302ad05.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___signature__t_a20ed5721c4d2a493d8abd061950bd675.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___signature__t_a2139c6a8e2f491cdfbb8f3ce11ee39cb.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___signature__t_a550e0ded0fb13bc58b087d3a162d43c7.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___signature__t_a64f511e7134a5ebcab4fe44d180c2245.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___signature__t_a837edc8b3982713e064919786095b18d.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___signature__t_a8584c5e1f2a1ec30387f93538bdf2b00.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___signature__t_a85df7718b1da0f0b195926db0f22e24f.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___signature__t_a88e300db221e7a0382f2a4c289b9557d.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___signature__t_ab98cc6d6cb5cc92d5f6633419daa643e.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___signature__t_ac99479d164f096f8c3bc3c2c9043a75f.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___signature__t_ade0e080bbfc75844b7cbcc3dd13c48cb.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___signature__t_afd22089496c4f8c46afc7eabcbe3b8f7.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___std_result__t.html134
-rw-r--r--ucs2-lib/doc/html/struct_ucs___std_result__t_a02d8eefc721a797ac87f5030774972ef.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___std_result__t_ab89f4871a6526d4d409fca9ee58ce176.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___std_result__t_ab8c6e508e45bdac2dc20bfc1b0dff08c.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___avp_con__t.html137
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___avp_con__t_a1e377eede69f95567f72835634ac6241.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___avp_con__t_a21e5760677b48c43c5e4783306819f95.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___avp_con__t_a31e66e762767a78baf49f779d598a9cd.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___avp_con__t_ace5ef1fb3bd4337998a8f538645f47ed.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___combiner__t.html137
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___combiner__t_a155bb95b36c82e42f52872c92d49e102.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___combiner__t_a31e66e762767a78baf49f779d598a9cd.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___combiner__t_a3d1f833dbb35db5fed7638006fda4138.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___combiner__t_ab4f0942e9c11cfa5e9db135b352c17a5.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___default_created_port__t.html134
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___default_created_port__t_a31e66e762767a78baf49f779d598a9cd.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___default_created_port__t_a58cd72485f642399fb1815f026dbaae7.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___default_created_port__t_aae5a12e607d0f782506d9e6ec6179c64.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___dfi_phase_con__t.html134
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___dfi_phase_con__t_a21e5760677b48c43c5e4783306819f95.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___dfi_phase_con__t_a31e66e762767a78baf49f779d598a9cd.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___dfi_phase_con__t_ace5ef1fb3bd4337998a8f538645f47ed.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___init_data__t.html131
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___init_data__t_a7ad953f5414061df43df073ece15e25b.html125
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___init_data__t_a9497e039c582e7d2804ee470d6812e91.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___mlb_port__t.html134
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___mlb_port__t_a31e66e762767a78baf49f779d598a9cd.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___mlb_port__t_a7b2f976567481f67b381300eb1816c3e.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___mlb_port__t_aae5a12e607d0f782506d9e6ec6179c64.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___mlb_socket__t.html143
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___mlb_socket__t_a0008a6d765e7752725ad3dd2eb446033.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___mlb_socket__t_a31e66e762767a78baf49f779d598a9cd.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___mlb_socket__t_a37fe80d7da3769557b97ce02522623f0.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___mlb_socket__t_a6fc8b4a0550af42e193df56d3546108e.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___mlb_socket__t_a983b482b6f4a0468e6e76e8a53e848ea.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___mlb_socket__t_add5f2565470e3921623c880730abe765.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___most_socket__t.html140
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___most_socket__t_a0008a6d765e7752725ad3dd2eb446033.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___most_socket__t_a31e66e762767a78baf49f779d598a9cd.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___most_socket__t_a3d1f833dbb35db5fed7638006fda4138.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___most_socket__t_a6fc8b4a0550af42e193df56d3546108e.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___most_socket__t_a963061c04c4b780e3f9a11d61746904e.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___qo_s_con__t.html134
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___qo_s_con__t_a21e5760677b48c43c5e4783306819f95.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___qo_s_con__t_a31e66e762767a78baf49f779d598a9cd.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___qo_s_con__t_ace5ef1fb3bd4337998a8f538645f47ed.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___res_identity__t.html131
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___res_identity__t_a4fe7fcd3cdb160c239e65543ac025953.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___res_identity__t_ab557e7d7735054f8f7d8cf576d4521c3.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___result__t.html131
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___result__t_a7d575938c9e5eed9032435e39b376e90.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___result__t_ac704c276d74638909521f29cc722c8db.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___result_details__t.html143
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___result_details__t_a31e66e762767a78baf49f779d598a9cd.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___result_details__t_a41ee1e9319711802cf5d79a2be7adcbf.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___result_details__t_a4cb5ea6dd91baf049cf7d682202df0f4.html133
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___result_details__t_abee2d1d2c9eebcbc9da920664e9eb248.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___result_details__t_ac8f7bd459f5052601dbbab267d9d8067.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___result_details__t_aee65ac620e16fd7b0fe4135514394901.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___rmck_port__t.html137
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___rmck_port__t_a31e66e762767a78baf49f779d598a9cd.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___rmck_port__t_a43e498c160eab1409e0ebdeabe62d31b.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___rmck_port__t_aae5a12e607d0f782506d9e6ec6179c64.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___rmck_port__t_abb3d396baa2a9ee33f499bf58c7ca8de.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___splitter__t.html137
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___splitter__t_a155bb95b36c82e42f52872c92d49e102.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___splitter__t_a31e66e762767a78baf49f779d598a9cd.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___splitter__t_a3d1f833dbb35db5fed7638006fda4138.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___splitter__t_ace5ef1fb3bd4337998a8f538645f47ed.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___strm_port__t.html137
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___strm_port__t_a31e66e762767a78baf49f779d598a9cd.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___strm_port__t_a62dd690bdc5ee223e9b91014df94614e.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___strm_port__t_a924dbd8d86d71e043a36523760c368b4.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___strm_port__t_aae5a12e607d0f782506d9e6ec6179c64.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___strm_socket__t.html143
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___strm_socket__t_a0008a6d765e7752725ad3dd2eb446033.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___strm_socket__t_a2938957a0791aa899aaedcca5b8c0405.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___strm_socket__t_a31e66e762767a78baf49f779d598a9cd.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___strm_socket__t_a5a9618dfa6b3de3a36d0392911a4d421.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___strm_socket__t_a6fc8b4a0550af42e193df56d3546108e.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___strm_socket__t_ab9430187fbd36c83ef163a19dcdd735c.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___sync_con__t.html140
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___sync_con__t_a21e5760677b48c43c5e4783306819f95.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___sync_con__t_a31e66e762767a78baf49f779d598a9cd.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___sync_con__t_ac681806181c80437cfab37335f62ff39.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___sync_con__t_ace5ef1fb3bd4337998a8f538645f47ed.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___sync_con__t_ad24def4858c3013652eba166fe48d267.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___usb_port__t.html143
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___usb_port__t_a31e66e762767a78baf49f779d598a9cd.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___usb_port__t_a7d57b66daf059fcd226dc4b78be54e79.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___usb_port__t_a95973cbb7c525bbb846928066bebe8f8.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___usb_port__t_aa1e58aa745f43164a35bb10f76f27cf4.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___usb_port__t_aae5a12e607d0f782506d9e6ec6179c64.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___usb_port__t_aea7ae4f766b52f8f4fa492449ba24c14.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___usb_socket__t.html143
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___usb_socket__t_a10acc74574f398d6b12989cc1ed95fe0.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___usb_socket__t_a211077f7fcb5f6de9739ec4a6d0b0277.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___usb_socket__t_a31e66e762767a78baf49f779d598a9cd.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___usb_socket__t_a35a2e808843151ff172ad4ddd8ad5b8a.html128
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___usb_socket__t_a3fe892af2f377651d07638c52a163326.html124
-rw-r--r--ucs2-lib/doc/html/struct_ucs___xrm___usb_socket__t_a6fc8b4a0550af42e193df56d3546108e.html128
-rw-r--r--ucs2-lib/doc/html/style_html.css1607
-rw-r--r--ucs2-lib/doc/html/sync_off.pngbin0 -> 837 bytes
-rw-r--r--ucs2-lib/doc/html/sync_on.pngbin0 -> 817 bytes
-rw-r--r--ucs2-lib/doc/html/tab_a.pngbin0 -> 126 bytes
-rw-r--r--ucs2-lib/doc/html/tab_b.pngbin0 -> 154 bytes
-rw-r--r--ucs2-lib/doc/html/tab_h.pngbin0 -> 149 bytes
-rw-r--r--ucs2-lib/doc/html/tab_s.pngbin0 -> 159 bytes
-rw-r--r--ucs2-lib/doc/html/tabs.css60
-rw-r--r--ucs2-lib/doc/ucs.chmbin0 -> 1601008 bytes
-rw-r--r--ucs2-lib/doc/ucs.html6
-rw-r--r--ucs2-lib/inc/ucs_alm.h111
-rw-r--r--ucs2-lib/inc/ucs_amd.h141
-rw-r--r--ucs2-lib/inc/ucs_ams.h161
-rw-r--r--ucs2-lib/inc/ucs_ams_pb.h224
-rw-r--r--ucs2-lib/inc/ucs_amsallocator.h104
-rw-r--r--ucs2-lib/inc/ucs_amsmessage.h206
-rw-r--r--ucs2-lib/inc/ucs_amspool.h98
-rw-r--r--ucs2-lib/inc/ucs_amtp.h83
-rw-r--r--ucs2-lib/inc/ucs_api.h72
-rw-r--r--ucs2-lib/inc/ucs_attach.h102
-rw-r--r--ucs2-lib/inc/ucs_base.h93
-rw-r--r--ucs2-lib/inc/ucs_bc_diag.h104
-rw-r--r--ucs2-lib/inc/ucs_class.h297
-rw-r--r--ucs2-lib/inc/ucs_class_pb.h2063
-rw-r--r--ucs2-lib/inc/ucs_cmd.h93
-rw-r--r--ucs2-lib/inc/ucs_cmd_pb.h124
-rw-r--r--ucs2-lib/inc/ucs_dec.h126
-rw-r--r--ucs2-lib/inc/ucs_dl.h130
-rw-r--r--ucs2-lib/inc/ucs_eh.h128
-rw-r--r--ucs2-lib/inc/ucs_eh_pb.h66
-rw-r--r--ucs2-lib/inc/ucs_encoder.h116
-rw-r--r--ucs2-lib/inc/ucs_epm.h110
-rw-r--r--ucs2-lib/inc/ucs_epm_pv.h103
-rw-r--r--ucs2-lib/inc/ucs_exc.h323
-rw-r--r--ucs2-lib/inc/ucs_factory.h167
-rw-r--r--ucs2-lib/inc/ucs_fsm.h118
-rw-r--r--ucs2-lib/inc/ucs_gpio.h144
-rw-r--r--ucs2-lib/inc/ucs_gpio_pb.h143
-rw-r--r--ucs2-lib/inc/ucs_i2c.h147
-rw-r--r--ucs2-lib/inc/ucs_i2c_pb.h142
-rw-r--r--ucs2-lib/inc/ucs_inic.h858
-rw-r--r--ucs2-lib/inc/ucs_inic_pb.h932
-rw-r--r--ucs2-lib/inc/ucs_jobs.h173
-rw-r--r--ucs2-lib/inc/ucs_lld_pb.h222
-rw-r--r--ucs2-lib/inc/ucs_lldpool.h110
-rw-r--r--ucs2-lib/inc/ucs_memory.h110
-rw-r--r--ucs2-lib/inc/ucs_memory_pb.h70
-rw-r--r--ucs2-lib/inc/ucs_message.h182
-rw-r--r--ucs2-lib/inc/ucs_message_pb.h181
-rw-r--r--ucs2-lib/inc/ucs_mgr.h121
-rw-r--r--ucs2-lib/inc/ucs_misc.h153
-rw-r--r--ucs2-lib/inc/ucs_net.h179
-rw-r--r--ucs2-lib/inc/ucs_nodedis.h197
-rw-r--r--ucs2-lib/inc/ucs_nodeobserver.h101
-rw-r--r--ucs2-lib/inc/ucs_nodeobserver_pb.h105
-rw-r--r--ucs2-lib/inc/ucs_nsm.h200
-rw-r--r--ucs2-lib/inc/ucs_nsm_pb.h136
-rw-r--r--ucs2-lib/inc/ucs_obs.h195
-rw-r--r--ucs2-lib/inc/ucs_pmchannel.h175
-rw-r--r--ucs2-lib/inc/ucs_pmcmd.h90
-rw-r--r--ucs2-lib/inc/ucs_pmevent.h85
-rw-r--r--ucs2-lib/inc/ucs_pmfifo.h230
-rw-r--r--ucs2-lib/inc/ucs_pmfifos.h128
-rw-r--r--ucs2-lib/inc/ucs_pmp.h209
-rw-r--r--ucs2-lib/inc/ucs_pool.h80
-rw-r--r--ucs2-lib/inc/ucs_prog.h114
-rw-r--r--ucs2-lib/inc/ucs_ret_pb.h141
-rw-r--r--ucs2-lib/inc/ucs_rm_pb.h112
-rw-r--r--ucs2-lib/inc/ucs_rm_pv.h69
-rw-r--r--ucs2-lib/inc/ucs_rsm.h161
-rw-r--r--ucs2-lib/inc/ucs_rsm_pv.h145
-rw-r--r--ucs2-lib/inc/ucs_rtm.h127
-rw-r--r--ucs2-lib/inc/ucs_rtm_pv.h116
-rw-r--r--ucs2-lib/inc/ucs_rules.h59
-rw-r--r--ucs2-lib/inc/ucs_scheduler.h146
-rw-r--r--ucs2-lib/inc/ucs_segmentation.h144
-rw-r--r--ucs2-lib/inc/ucs_smm.h149
-rw-r--r--ucs2-lib/inc/ucs_smm_pb.h114
-rw-r--r--ucs2-lib/inc/ucs_sys_diag.h143
-rw-r--r--ucs2-lib/inc/ucs_telqueue.h91
-rw-r--r--ucs2-lib/inc/ucs_timer.h144
-rw-r--r--ucs2-lib/inc/ucs_trace.h237
-rw-r--r--ucs2-lib/inc/ucs_trace_pb.h52
-rw-r--r--ucs2-lib/inc/ucs_transceiver.h133
-rw-r--r--ucs2-lib/inc/ucs_xrm.h219
-rw-r--r--ucs2-lib/inc/ucs_xrm_pb.h578
-rw-r--r--ucs2-lib/inc/ucs_xrm_pv.h210
-rw-r--r--ucs2-lib/inc/ucs_xrmpool.h154
-rw-r--r--ucs2-lib/src/CMakeLists.txt38
-rw-r--r--ucs2-lib/src/ucs_alm.c275
-rw-r--r--ucs2-lib/src/ucs_amd.c570
-rw-r--r--ucs2-lib/src/ucs_ams.c669
-rw-r--r--ucs2-lib/src/ucs_amsmessage.c639
-rw-r--r--ucs2-lib/src/ucs_amspool.c335
-rw-r--r--ucs2-lib/src/ucs_amtp.c114
-rw-r--r--ucs2-lib/src/ucs_attach.c607
-rw-r--r--ucs2-lib/src/ucs_base.c69
-rw-r--r--ucs2-lib/src/ucs_bc_diag.c784
-rw-r--r--ucs2-lib/src/ucs_class.c1790
-rw-r--r--ucs2-lib/src/ucs_cmd.c191
-rw-r--r--ucs2-lib/src/ucs_dec.c131
-rw-r--r--ucs2-lib/src/ucs_dl.c390
-rw-r--r--ucs2-lib/src/ucs_eh.c153
-rw-r--r--ucs2-lib/src/ucs_encoder.c253
-rw-r--r--ucs2-lib/src/ucs_epm.c495
-rw-r--r--ucs2-lib/src/ucs_exc.c1711
-rw-r--r--ucs2-lib/src/ucs_factory.c830
-rw-r--r--ucs2-lib/src/ucs_fsm.c172
-rw-r--r--ucs2-lib/src/ucs_gpio.c713
-rw-r--r--ucs2-lib/src/ucs_i2c.c646
-rw-r--r--ucs2-lib/src/ucs_inic.c1817
-rw-r--r--ucs2-lib/src/ucs_inic_res.c3735
-rw-r--r--ucs2-lib/src/ucs_jobs.c369
-rw-r--r--ucs2-lib/src/ucs_lldpool.c99
-rw-r--r--ucs2-lib/src/ucs_message.c353
-rw-r--r--ucs2-lib/src/ucs_mgr.c354
-rw-r--r--ucs2-lib/src/ucs_misc.c80
-rw-r--r--ucs2-lib/src/ucs_net.c310
-rw-r--r--ucs2-lib/src/ucs_nodedis.c1038
-rw-r--r--ucs2-lib/src/ucs_nodeobserver.c341
-rw-r--r--ucs2-lib/src/ucs_nsm.c725
-rw-r--r--ucs2-lib/src/ucs_obs.c449
-rw-r--r--ucs2-lib/src/ucs_pmchannel.c307
-rw-r--r--ucs2-lib/src/ucs_pmcmd.c155
-rw-r--r--ucs2-lib/src/ucs_pmevent.c130
-rw-r--r--ucs2-lib/src/ucs_pmfifo.c1366
-rw-r--r--ucs2-lib/src/ucs_pmfifos.c448
-rw-r--r--ucs2-lib/src/ucs_pmp.c350
-rw-r--r--ucs2-lib/src/ucs_pool.c126
-rw-r--r--ucs2-lib/src/ucs_prog.c957
-rw-r--r--ucs2-lib/src/ucs_rsm.c640
-rw-r--r--ucs2-lib/src/ucs_rtm.c1366
-rw-r--r--ucs2-lib/src/ucs_scheduler.c258
-rw-r--r--ucs2-lib/src/ucs_segmentation.c550
-rw-r--r--ucs2-lib/src/ucs_smm.c219
-rw-r--r--ucs2-lib/src/ucs_sys_diag.c1343
-rw-r--r--ucs2-lib/src/ucs_telqueue.c117
-rw-r--r--ucs2-lib/src/ucs_timer.c456
-rw-r--r--ucs2-lib/src/ucs_transceiver.c290
-rw-r--r--ucs2-lib/src/ucs_xrm.c1174
-rw-r--r--ucs2-lib/src/ucs_xrm_res.c1443
-rw-r--r--ucs2-lib/src/ucs_xrmpool.c210
1119 files changed, 205149 insertions, 0 deletions
diff --git a/ucs2-lib/CMakeLists.txt b/ucs2-lib/CMakeLists.txt
new file mode 100644
index 0000000..8735677
--- /dev/null
+++ b/ucs2-lib/CMakeLists.txt
@@ -0,0 +1,26 @@
+###########################################################################
+# Copyright 2015, 2016, 2017 IoT.bzh
+#
+# author: Fulup Ar Foll <fulup@iot.bzh>
+#
+# 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.
+###########################################################################
+
+
+
+# Define subproject targets
+ADD_SUBDIRECTORY(src)
+
+
+
+
diff --git a/ucs2-lib/LICENSE b/ucs2-lib/LICENSE
new file mode 100644
index 0000000..b3fb3f7
--- /dev/null
+++ b/ucs2-lib/LICENSE
@@ -0,0 +1,29 @@
+BSD 3-Clause License
+
+Copyright (c) 2017, Microchip
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+* Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/ucs2-lib/README.md b/ucs2-lib/README.md
new file mode 100644
index 0000000..e876928
--- /dev/null
+++ b/ucs2-lib/README.md
@@ -0,0 +1 @@
+Unicens2 was release under BSD-3 license by Microchip on the 23-may-2017. This version is still based on candidate release and should be updated within the next couple of weeks.
diff --git a/ucs2-lib/_cfg/ucs_cfg.h b/ucs2-lib/_cfg/ucs_cfg.h
new file mode 100644
index 0000000..64d145d
--- /dev/null
+++ b/ucs2-lib/_cfg/ucs_cfg.h
@@ -0,0 +1,110 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+#ifndef UCS_CFG_H
+#define UCS_CFG_H
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_types_cfg.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Multi Instance API */
+/*------------------------------------------------------------------------------------------------*/
+/* Number of API instances which can be created by function Ucs_CreateInstance().
+ * One API instance is used to communicate with one local INIC. In this case the application
+ * is connected to one network.
+ * It is possible access multiple networks by having multiple API instances. Each API instance
+ * requires communication with an exclusive INIC.
+ * Valid range: 1..10. Default value: 1.
+ */
+/* #define UCS_NUM_INSTANCES 1 */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Resources Management */
+/*------------------------------------------------------------------------------------------------*/
+/* Maximum number of remote devices used by Resources Management modules.
+ * Valid range: 0..63. Default value: 0.
+ */
+/* #define UCS_NUM_REMOTE_DEVICES 0U */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Application Messages */
+/*------------------------------------------------------------------------------------------------*/
+/* Defines the number of reserved Rx message objects.
+ * Valid values: 5..255. Default value: 20.
+ */
+/* #define UCS_AMS_NUM_RX_MSGS 20 */
+
+/* Defines the payload size in bytes which is available for every Rx message object.
+ * Valid values: 45..65535. Default value: 45.
+ */
+/* #define UCS_AMS_SIZE_RX_MSG 45 */
+
+/* Defines the number of reserved Tx message objects.
+ * Valid values: 5..255. Default value: 20.
+ */
+/* #define UCS_AMS_NUM_TX_MSGS 20 */
+
+/* Defines the payload size in bytes which is available for every Tx message object.
+ * Valid values: 45..65535. Default value: 45.
+ */
+/* #define UCS_AMS_SIZE_TX_MSG 45 */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Memory Optimization */
+/*------------------------------------------------------------------------------------------------*/
+/* Define the following macros to reduces the RAM and ROM size of the UNICENS software by disabling
+ * certain features. If this macro is defined the following changes apply:
+ * - Reduction of low-level buffers
+ * - AMS does not support segmentation (payload > 45 bytes)
+ */
+/* #define UCS_FOOTPRINT_TINY */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Tracing & Debugging */
+/*------------------------------------------------------------------------------------------------*/
+/* Define the following macros to map info and error trace output to user defined functions.
+ * The purpose of these functions is debugging. It is not recommended to define these functions
+ * in a production system.
+ */
+/* #define UCS_TR_ERROR App_TraceError */
+/* #define UCS_TR_INFO App_TraceInfo */
+
+/* extern void App_TraceError(void *ucs_user_ptr, const char module_str[], const char entry_str[], uint16_t vargs_cnt, ...); */
+/* extern void App_TraceInfo(void *ucs_user_ptr, const char module_str[], const char entry_str[], uint16_t vargs_cnt, ...); */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* UCS_CFG_H */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/_cfg/ucs_types_cfg.h b/ucs2-lib/_cfg/ucs_types_cfg.h
new file mode 100644
index 0000000..69797f6
--- /dev/null
+++ b/ucs2-lib/_cfg/ucs_types_cfg.h
@@ -0,0 +1,43 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief UNICENS data types definitions.
+ */
+
+#ifndef UCS_TYPES_H
+#define UCS_TYPES_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include <stdint.h>
+#include <stddef.h>
+
+#include <stdbool.h>
+
+#endif /* #ifndef UCS_TYPES_H */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/_cfg/ucs_xrm_cfg.h b/ucs2-lib/_cfg/ucs_xrm_cfg.h
new file mode 100644
index 0000000..613b458
--- /dev/null
+++ b/ucs2-lib/_cfg/ucs_xrm_cfg.h
@@ -0,0 +1,58 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Configuration header file of the Extended Resource Manager (XRM).
+ */
+
+#ifndef UCS_XRM_CFG_H
+#define UCS_XRM_CFG_H
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Definitions */
+/*------------------------------------------------------------------------------------------------*/
+/* Defines the number of jobs executed by the Extended Resource Manager. Valid range: 1..254.
+ * Default value: 1.
+ */
+/* #define UCS_XRM_NUM_JOBS 1 */
+
+/* Defines the number of required resources. This value depends on the created resource objects
+ * associated with the jobs that are executed by the Extended Resource Manager.
+ * Valid range: 1..254. Default value: 8.
+ */
+/* #define UCS_XRM_NUM_RESOURCES 8 */
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_XRM_CFG_H */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/cfg/ucs_cfg.h b/ucs2-lib/cfg/ucs_cfg.h
new file mode 100644
index 0000000..fdf6d40
--- /dev/null
+++ b/ucs2-lib/cfg/ucs_cfg.h
@@ -0,0 +1,119 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3564 */
+/* Copyright 2017, Microchip Technology Inc. and its subsidiaries. */
+/* */
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions are met: */
+/* */
+/* 1. Redistributions of source code must retain the above copyright notice, this */
+/* list of conditions and the following disclaimer. */
+/* */
+/* 2. Redistributions in binary form must reproduce the above copyright notice, */
+/* this list of conditions and the following disclaimer in the documentation */
+/* and/or other materials provided with the distribution. */
+/* */
+/* 3. Neither the name of the copyright holder nor the names of its */
+/* contributors may be used to endorse or promote products derived from */
+/* this software without specific prior written permission. */
+/* */
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" */
+/* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE */
+/* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
+/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE */
+/* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL */
+/* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR */
+/* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, */
+/* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE */
+/* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+/*------------------------------------------------------------------------------------------------*/
+
+#ifndef UCS_CFG_H
+#define UCS_CFG_H
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_types_cfg.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Multi Instance API */
+/*------------------------------------------------------------------------------------------------*/
+/* Number of API instances which can be created by function Ucs_CreateInstance().
+ * One API instance is used to communicate with one local INIC. In this case the application
+ * is connected to one network.
+ * It is possible access multiple networks by having multiple API instances. Each API instance
+ * requires communication with an exclusive INIC.
+ * Valid range: 1..10. Default value: 1.
+ */
+#define UCS_NUM_INSTANCES 2
+
+/*------------------------------------------------------------------------------------------------*/
+/* Resources Management */
+/*------------------------------------------------------------------------------------------------*/
+/* Maximum number of remote devices used by Resources Management modules.
+ * Valid range: 0..63. Default value: 0.
+ */
+#define UCS_NUM_REMOTE_DEVICES 63
+
+/*------------------------------------------------------------------------------------------------*/
+/* Application Messages */
+/*------------------------------------------------------------------------------------------------*/
+/* Defines the number of reserved Rx message objects.
+ * Valid values: 5..255. Default value: 20.
+ */
+#define UCS_AMS_NUM_RX_MSGS 20
+
+/* Defines the payload size in bytes which is available for every Rx message object.
+ * Valid values: 45..65535. Default value: 45.
+ */
+#define UCS_AMS_SIZE_RX_MSG 45
+
+/* Defines the number of reserved Tx message objects.
+ * Valid values: 5..255. Default value: 20.
+ */
+#define UCS_AMS_NUM_TX_MSGS 20
+
+/* Defines the payload size in bytes which is available for every Tx message object.
+ * Valid values: 45..65535. Default value: 45.
+ */
+#define UCS_AMS_SIZE_TX_MSG 45
+
+/*------------------------------------------------------------------------------------------------*/
+/* Memory Optimization */
+/*------------------------------------------------------------------------------------------------*/
+/* Define the following macros to reduces the RAM and ROM size of the UNICENS software by disabling
+ * certain features. If this macro is defined the following changes apply:
+ * - Reduction of low-level buffers
+ * - AMS does not support segmentation (payload > 45 bytes)
+ */
+/* #define UCS_FOOTPRINT_TINY */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Tracing & Debugging */
+/*------------------------------------------------------------------------------------------------*/
+/* Define the following macros to map info and error trace output to user defined functions.
+ * The purpose of these functions is debugging. It is not recommended to define these functions
+ * in a production system.
+ */
+ #define UCS_TR_ERROR App_TraceError
+ /*#define UCS_TR_INFO App_TraceInfo*/
+
+extern void App_TraceError(void *ucs_user_ptr, const char module_str[], const char entry_str[], uint16_t vargs_cnt, ...);
+extern void App_TraceInfo(void *ucs_user_ptr, const char module_str[], const char entry_str[], uint16_t vargs_cnt, ...);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* UCS_CFG_H */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/cfg/ucs_types_cfg.h b/ucs2-lib/cfg/ucs_types_cfg.h
new file mode 100644
index 0000000..13bee58
--- /dev/null
+++ b/ucs2-lib/cfg/ucs_types_cfg.h
@@ -0,0 +1,51 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3564 */
+/* Copyright 2017, Microchip Technology Inc. and its subsidiaries. */
+/* */
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions are met: */
+/* */
+/* 1. Redistributions of source code must retain the above copyright notice, this */
+/* list of conditions and the following disclaimer. */
+/* */
+/* 2. Redistributions in binary form must reproduce the above copyright notice, */
+/* this list of conditions and the following disclaimer in the documentation */
+/* and/or other materials provided with the distribution. */
+/* */
+/* 3. Neither the name of the copyright holder nor the names of its */
+/* contributors may be used to endorse or promote products derived from */
+/* this software without specific prior written permission. */
+/* */
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" */
+/* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE */
+/* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
+/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE */
+/* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL */
+/* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR */
+/* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, */
+/* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE */
+/* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief UNICENS data types definitions.
+ */
+
+#ifndef UCS_TYPES_H
+#define UCS_TYPES_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include <stdint.h>
+#include <stddef.h>
+#include <stdbool.h>
+
+#endif /* #ifndef UCS_TYPES_H */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/cfg/ucs_xrm_cfg.h b/ucs2-lib/cfg/ucs_xrm_cfg.h
new file mode 100644
index 0000000..f9dc723
--- /dev/null
+++ b/ucs2-lib/cfg/ucs_xrm_cfg.h
@@ -0,0 +1,67 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3564 */
+/* Copyright 2017, Microchip Technology Inc. and its subsidiaries. */
+/* */
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions are met: */
+/* */
+/* 1. Redistributions of source code must retain the above copyright notice, this */
+/* list of conditions and the following disclaimer. */
+/* */
+/* 2. Redistributions in binary form must reproduce the above copyright notice, */
+/* this list of conditions and the following disclaimer in the documentation */
+/* and/or other materials provided with the distribution. */
+/* */
+/* 3. Neither the name of the copyright holder nor the names of its */
+/* contributors may be used to endorse or promote products derived from */
+/* this software without specific prior written permission. */
+/* */
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" */
+/* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE */
+/* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
+/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE */
+/* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL */
+/* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR */
+/* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, */
+/* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE */
+/* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Configuration header file of the Extended Resource Manager (XRM).
+ */
+
+#ifndef UCS_XRM_CFG_H
+#define UCS_XRM_CFG_H
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Definitions */
+/*------------------------------------------------------------------------------------------------*/
+/* Defines the number of jobs executed by the Extended Resource Manager. Valid range: 1..254.
+ * Default value: 1.
+ */
+#define UCS_XRM_NUM_JOBS 254
+
+/* Defines the number of required resources. This value depends on the created resource objects
+ * associated with the jobs that are executed by the Extended Resource Manager.
+ * Valid range: 1..254. Default value: 8.
+ */
+#define UCS_XRM_NUM_RESOURCES 254
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_XRM_CFG_H */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/doc/html/OS81118-1.gif b/ucs2-lib/doc/html/OS81118-1.gif
new file mode 100644
index 0000000..eef47e4
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-1.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-10.gif b/ucs2-lib/doc/html/OS81118-10.gif
new file mode 100644
index 0000000..69c422e
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-10.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-100.gif b/ucs2-lib/doc/html/OS81118-100.gif
new file mode 100644
index 0000000..fdc53fe
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-100.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-101.gif b/ucs2-lib/doc/html/OS81118-101.gif
new file mode 100644
index 0000000..b2b7df9
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-101.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-102.gif b/ucs2-lib/doc/html/OS81118-102.gif
new file mode 100644
index 0000000..9e9ec26
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-102.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-103.gif b/ucs2-lib/doc/html/OS81118-103.gif
new file mode 100644
index 0000000..71ed8af
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-103.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-104.gif b/ucs2-lib/doc/html/OS81118-104.gif
new file mode 100644
index 0000000..6e01577
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-104.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-105.gif b/ucs2-lib/doc/html/OS81118-105.gif
new file mode 100644
index 0000000..5de1726
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-105.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-106.gif b/ucs2-lib/doc/html/OS81118-106.gif
new file mode 100644
index 0000000..5820b6a
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-106.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-107.gif b/ucs2-lib/doc/html/OS81118-107.gif
new file mode 100644
index 0000000..e5cbdd6
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-107.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-108.gif b/ucs2-lib/doc/html/OS81118-108.gif
new file mode 100644
index 0000000..8cf4018
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-108.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-109.gif b/ucs2-lib/doc/html/OS81118-109.gif
new file mode 100644
index 0000000..221c690
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-109.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-11.gif b/ucs2-lib/doc/html/OS81118-11.gif
new file mode 100644
index 0000000..cbb6a09
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-11.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-110.gif b/ucs2-lib/doc/html/OS81118-110.gif
new file mode 100644
index 0000000..1bd8a02
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-110.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-111.gif b/ucs2-lib/doc/html/OS81118-111.gif
new file mode 100644
index 0000000..c7795a8
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-111.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-112.gif b/ucs2-lib/doc/html/OS81118-112.gif
new file mode 100644
index 0000000..dcfff4b
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-112.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-113.gif b/ucs2-lib/doc/html/OS81118-113.gif
new file mode 100644
index 0000000..221c690
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-113.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-114.gif b/ucs2-lib/doc/html/OS81118-114.gif
new file mode 100644
index 0000000..1bd8a02
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-114.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-115.gif b/ucs2-lib/doc/html/OS81118-115.gif
new file mode 100644
index 0000000..a14d476
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-115.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-116.gif b/ucs2-lib/doc/html/OS81118-116.gif
new file mode 100644
index 0000000..e899680
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-116.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-117.gif b/ucs2-lib/doc/html/OS81118-117.gif
new file mode 100644
index 0000000..c41d2d9
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-117.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-118.gif b/ucs2-lib/doc/html/OS81118-118.gif
new file mode 100644
index 0000000..1bd8a02
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-118.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-119.gif b/ucs2-lib/doc/html/OS81118-119.gif
new file mode 100644
index 0000000..a38b904
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-119.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-12.gif b/ucs2-lib/doc/html/OS81118-12.gif
new file mode 100644
index 0000000..28c4775
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-12.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-120.gif b/ucs2-lib/doc/html/OS81118-120.gif
new file mode 100644
index 0000000..6f0f258
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-120.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-121.gif b/ucs2-lib/doc/html/OS81118-121.gif
new file mode 100644
index 0000000..b3ca237
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-121.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-122.gif b/ucs2-lib/doc/html/OS81118-122.gif
new file mode 100644
index 0000000..5d30c94
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-122.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-123.gif b/ucs2-lib/doc/html/OS81118-123.gif
new file mode 100644
index 0000000..a161c8e
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-123.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-124.gif b/ucs2-lib/doc/html/OS81118-124.gif
new file mode 100644
index 0000000..fa97981
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-124.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-125.gif b/ucs2-lib/doc/html/OS81118-125.gif
new file mode 100644
index 0000000..4cf51c1
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-125.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-126.gif b/ucs2-lib/doc/html/OS81118-126.gif
new file mode 100644
index 0000000..0a00ae8
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-126.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-127.gif b/ucs2-lib/doc/html/OS81118-127.gif
new file mode 100644
index 0000000..b0548c6
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-127.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-128.gif b/ucs2-lib/doc/html/OS81118-128.gif
new file mode 100644
index 0000000..ec0a575
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-128.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-129.gif b/ucs2-lib/doc/html/OS81118-129.gif
new file mode 100644
index 0000000..ab21315
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-129.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-13.gif b/ucs2-lib/doc/html/OS81118-13.gif
new file mode 100644
index 0000000..045b9fa
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-13.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-130.gif b/ucs2-lib/doc/html/OS81118-130.gif
new file mode 100644
index 0000000..bc7b47b
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-130.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-131.gif b/ucs2-lib/doc/html/OS81118-131.gif
new file mode 100644
index 0000000..90025d1
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-131.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-132.gif b/ucs2-lib/doc/html/OS81118-132.gif
new file mode 100644
index 0000000..abbf576
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-132.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-133.gif b/ucs2-lib/doc/html/OS81118-133.gif
new file mode 100644
index 0000000..c41d2d9
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-133.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-134.gif b/ucs2-lib/doc/html/OS81118-134.gif
new file mode 100644
index 0000000..1bd8a02
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-134.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-135.gif b/ucs2-lib/doc/html/OS81118-135.gif
new file mode 100644
index 0000000..eef47e4
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-135.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-136.gif b/ucs2-lib/doc/html/OS81118-136.gif
new file mode 100644
index 0000000..013fe77
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-136.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-137.gif b/ucs2-lib/doc/html/OS81118-137.gif
new file mode 100644
index 0000000..6de02c0
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-137.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-138.gif b/ucs2-lib/doc/html/OS81118-138.gif
new file mode 100644
index 0000000..5d3750e
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-138.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-139.gif b/ucs2-lib/doc/html/OS81118-139.gif
new file mode 100644
index 0000000..b9e5b2f
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-139.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-14.gif b/ucs2-lib/doc/html/OS81118-14.gif
new file mode 100644
index 0000000..1a638e0
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-14.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-140.gif b/ucs2-lib/doc/html/OS81118-140.gif
new file mode 100644
index 0000000..caa031a
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-140.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-141.gif b/ucs2-lib/doc/html/OS81118-141.gif
new file mode 100644
index 0000000..c1a0323
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-141.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-142.gif b/ucs2-lib/doc/html/OS81118-142.gif
new file mode 100644
index 0000000..5e29a03
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-142.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-143.gif b/ucs2-lib/doc/html/OS81118-143.gif
new file mode 100644
index 0000000..a2e78cb
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-143.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-144.gif b/ucs2-lib/doc/html/OS81118-144.gif
new file mode 100644
index 0000000..6f0f258
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-144.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-145.gif b/ucs2-lib/doc/html/OS81118-145.gif
new file mode 100644
index 0000000..b3ca237
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-145.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-146.gif b/ucs2-lib/doc/html/OS81118-146.gif
new file mode 100644
index 0000000..5e29a03
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-146.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-147.gif b/ucs2-lib/doc/html/OS81118-147.gif
new file mode 100644
index 0000000..a2e78cb
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-147.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-148.gif b/ucs2-lib/doc/html/OS81118-148.gif
new file mode 100644
index 0000000..6f0f258
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-148.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-149.gif b/ucs2-lib/doc/html/OS81118-149.gif
new file mode 100644
index 0000000..b3ca237
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-149.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-15.gif b/ucs2-lib/doc/html/OS81118-15.gif
new file mode 100644
index 0000000..3cb03a9
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-15.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-150.gif b/ucs2-lib/doc/html/OS81118-150.gif
new file mode 100644
index 0000000..5e29a03
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-150.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-151.gif b/ucs2-lib/doc/html/OS81118-151.gif
new file mode 100644
index 0000000..a2e78cb
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-151.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-152.gif b/ucs2-lib/doc/html/OS81118-152.gif
new file mode 100644
index 0000000..6f0f258
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-152.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-153.gif b/ucs2-lib/doc/html/OS81118-153.gif
new file mode 100644
index 0000000..b3ca237
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-153.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-16.gif b/ucs2-lib/doc/html/OS81118-16.gif
new file mode 100644
index 0000000..4126f0e
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-16.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-17.gif b/ucs2-lib/doc/html/OS81118-17.gif
new file mode 100644
index 0000000..efa32ad
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-17.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-18.gif b/ucs2-lib/doc/html/OS81118-18.gif
new file mode 100644
index 0000000..aea4875
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-18.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-19.gif b/ucs2-lib/doc/html/OS81118-19.gif
new file mode 100644
index 0000000..d7edd33
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-19.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-2.gif b/ucs2-lib/doc/html/OS81118-2.gif
new file mode 100644
index 0000000..83e7cb0
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-2.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-20.gif b/ucs2-lib/doc/html/OS81118-20.gif
new file mode 100644
index 0000000..631e467
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-20.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-21.gif b/ucs2-lib/doc/html/OS81118-21.gif
new file mode 100644
index 0000000..1bd8a02
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-21.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-22.gif b/ucs2-lib/doc/html/OS81118-22.gif
new file mode 100644
index 0000000..aaa08a3
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-22.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-23.gif b/ucs2-lib/doc/html/OS81118-23.gif
new file mode 100644
index 0000000..8c998db
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-23.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-24.gif b/ucs2-lib/doc/html/OS81118-24.gif
new file mode 100644
index 0000000..9e66fce
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-24.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-25.gif b/ucs2-lib/doc/html/OS81118-25.gif
new file mode 100644
index 0000000..1954c44
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-25.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-26.gif b/ucs2-lib/doc/html/OS81118-26.gif
new file mode 100644
index 0000000..9e0db17
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-26.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-27.gif b/ucs2-lib/doc/html/OS81118-27.gif
new file mode 100644
index 0000000..631e467
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-27.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-28.gif b/ucs2-lib/doc/html/OS81118-28.gif
new file mode 100644
index 0000000..1bd8a02
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-28.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-29.gif b/ucs2-lib/doc/html/OS81118-29.gif
new file mode 100644
index 0000000..150062e
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-29.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-3.gif b/ucs2-lib/doc/html/OS81118-3.gif
new file mode 100644
index 0000000..cb9b929
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-3.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-30.gif b/ucs2-lib/doc/html/OS81118-30.gif
new file mode 100644
index 0000000..288286d
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-30.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-31.gif b/ucs2-lib/doc/html/OS81118-31.gif
new file mode 100644
index 0000000..cb9b929
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-31.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-32.gif b/ucs2-lib/doc/html/OS81118-32.gif
new file mode 100644
index 0000000..27e425c
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-32.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-33.gif b/ucs2-lib/doc/html/OS81118-33.gif
new file mode 100644
index 0000000..6f0f258
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-33.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-34.gif b/ucs2-lib/doc/html/OS81118-34.gif
new file mode 100644
index 0000000..318d092
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-34.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-35.gif b/ucs2-lib/doc/html/OS81118-35.gif
new file mode 100644
index 0000000..b425488
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-35.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-36.gif b/ucs2-lib/doc/html/OS81118-36.gif
new file mode 100644
index 0000000..bc8f296
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-36.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-37.gif b/ucs2-lib/doc/html/OS81118-37.gif
new file mode 100644
index 0000000..01d27b1
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-37.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-38.gif b/ucs2-lib/doc/html/OS81118-38.gif
new file mode 100644
index 0000000..dc4681f
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-38.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-39.gif b/ucs2-lib/doc/html/OS81118-39.gif
new file mode 100644
index 0000000..6e44cd5
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-39.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-4.gif b/ucs2-lib/doc/html/OS81118-4.gif
new file mode 100644
index 0000000..27e425c
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-4.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-40.gif b/ucs2-lib/doc/html/OS81118-40.gif
new file mode 100644
index 0000000..6f0f258
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-40.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-41.gif b/ucs2-lib/doc/html/OS81118-41.gif
new file mode 100644
index 0000000..318d092
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-41.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-42.gif b/ucs2-lib/doc/html/OS81118-42.gif
new file mode 100644
index 0000000..5e29a03
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-42.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-43.gif b/ucs2-lib/doc/html/OS81118-43.gif
new file mode 100644
index 0000000..a2e78cb
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-43.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-44.gif b/ucs2-lib/doc/html/OS81118-44.gif
new file mode 100644
index 0000000..8d410ac
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-44.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-45.gif b/ucs2-lib/doc/html/OS81118-45.gif
new file mode 100644
index 0000000..cb9b929
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-45.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-46.gif b/ucs2-lib/doc/html/OS81118-46.gif
new file mode 100644
index 0000000..27e425c
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-46.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-47.gif b/ucs2-lib/doc/html/OS81118-47.gif
new file mode 100644
index 0000000..6f0f258
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-47.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-48.gif b/ucs2-lib/doc/html/OS81118-48.gif
new file mode 100644
index 0000000..318d092
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-48.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-49.gif b/ucs2-lib/doc/html/OS81118-49.gif
new file mode 100644
index 0000000..e253174
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-49.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-5.gif b/ucs2-lib/doc/html/OS81118-5.gif
new file mode 100644
index 0000000..38877a6
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-5.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-50.gif b/ucs2-lib/doc/html/OS81118-50.gif
new file mode 100644
index 0000000..854b8a1
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-50.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-51.gif b/ucs2-lib/doc/html/OS81118-51.gif
new file mode 100644
index 0000000..829c1a3
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-51.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-52.gif b/ucs2-lib/doc/html/OS81118-52.gif
new file mode 100644
index 0000000..cb9b929
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-52.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-53.gif b/ucs2-lib/doc/html/OS81118-53.gif
new file mode 100644
index 0000000..27e425c
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-53.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-54.gif b/ucs2-lib/doc/html/OS81118-54.gif
new file mode 100644
index 0000000..6f0f258
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-54.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-55.gif b/ucs2-lib/doc/html/OS81118-55.gif
new file mode 100644
index 0000000..318d092
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-55.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-56.gif b/ucs2-lib/doc/html/OS81118-56.gif
new file mode 100644
index 0000000..5e29a03
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-56.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-57.gif b/ucs2-lib/doc/html/OS81118-57.gif
new file mode 100644
index 0000000..a2e78cb
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-57.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-58.gif b/ucs2-lib/doc/html/OS81118-58.gif
new file mode 100644
index 0000000..87460a4
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-58.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-59.gif b/ucs2-lib/doc/html/OS81118-59.gif
new file mode 100644
index 0000000..04374c0
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-59.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-6.gif b/ucs2-lib/doc/html/OS81118-6.gif
new file mode 100644
index 0000000..ba508ff
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-6.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-60.gif b/ucs2-lib/doc/html/OS81118-60.gif
new file mode 100644
index 0000000..0f980b6
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-60.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-61.gif b/ucs2-lib/doc/html/OS81118-61.gif
new file mode 100644
index 0000000..e4d0a9c
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-61.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-62.gif b/ucs2-lib/doc/html/OS81118-62.gif
new file mode 100644
index 0000000..a2a6409
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-62.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-63.gif b/ucs2-lib/doc/html/OS81118-63.gif
new file mode 100644
index 0000000..c8afba4
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-63.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-64.gif b/ucs2-lib/doc/html/OS81118-64.gif
new file mode 100644
index 0000000..d61be7f
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-64.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-65.gif b/ucs2-lib/doc/html/OS81118-65.gif
new file mode 100644
index 0000000..d744fe0
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-65.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-66.gif b/ucs2-lib/doc/html/OS81118-66.gif
new file mode 100644
index 0000000..b006543
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-66.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-67.gif b/ucs2-lib/doc/html/OS81118-67.gif
new file mode 100644
index 0000000..1603800
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-67.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-68.gif b/ucs2-lib/doc/html/OS81118-68.gif
new file mode 100644
index 0000000..33a27db
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-68.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-69.gif b/ucs2-lib/doc/html/OS81118-69.gif
new file mode 100644
index 0000000..7eead1c
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-69.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-7.gif b/ucs2-lib/doc/html/OS81118-7.gif
new file mode 100644
index 0000000..5e29a03
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-7.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-70.gif b/ucs2-lib/doc/html/OS81118-70.gif
new file mode 100644
index 0000000..ff7d294
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-70.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-71.gif b/ucs2-lib/doc/html/OS81118-71.gif
new file mode 100644
index 0000000..eef47e4
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-71.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-72.gif b/ucs2-lib/doc/html/OS81118-72.gif
new file mode 100644
index 0000000..83e7cb0
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-72.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-73.gif b/ucs2-lib/doc/html/OS81118-73.gif
new file mode 100644
index 0000000..16f2e1a
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-73.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-74.gif b/ucs2-lib/doc/html/OS81118-74.gif
new file mode 100644
index 0000000..cb4dcdc
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-74.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-75.gif b/ucs2-lib/doc/html/OS81118-75.gif
new file mode 100644
index 0000000..b9053c6
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-75.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-76.gif b/ucs2-lib/doc/html/OS81118-76.gif
new file mode 100644
index 0000000..c41d2d9
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-76.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-77.gif b/ucs2-lib/doc/html/OS81118-77.gif
new file mode 100644
index 0000000..318d092
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-77.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-78.gif b/ucs2-lib/doc/html/OS81118-78.gif
new file mode 100644
index 0000000..d1d5d1c
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-78.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-79.gif b/ucs2-lib/doc/html/OS81118-79.gif
new file mode 100644
index 0000000..50c1279
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-79.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-8.gif b/ucs2-lib/doc/html/OS81118-8.gif
new file mode 100644
index 0000000..a2e78cb
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-8.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-80.gif b/ucs2-lib/doc/html/OS81118-80.gif
new file mode 100644
index 0000000..46ea82e
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-80.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-81.gif b/ucs2-lib/doc/html/OS81118-81.gif
new file mode 100644
index 0000000..0c46c07
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-81.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-82.gif b/ucs2-lib/doc/html/OS81118-82.gif
new file mode 100644
index 0000000..6a67bc9
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-82.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-83.gif b/ucs2-lib/doc/html/OS81118-83.gif
new file mode 100644
index 0000000..2879937
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-83.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-84.gif b/ucs2-lib/doc/html/OS81118-84.gif
new file mode 100644
index 0000000..931522f
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-84.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-85.gif b/ucs2-lib/doc/html/OS81118-85.gif
new file mode 100644
index 0000000..af5d3b2
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-85.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-86.gif b/ucs2-lib/doc/html/OS81118-86.gif
new file mode 100644
index 0000000..abbf8c2
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-86.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-87.gif b/ucs2-lib/doc/html/OS81118-87.gif
new file mode 100644
index 0000000..eef47e4
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-87.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-88.gif b/ucs2-lib/doc/html/OS81118-88.gif
new file mode 100644
index 0000000..013fe77
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-88.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-89.gif b/ucs2-lib/doc/html/OS81118-89.gif
new file mode 100644
index 0000000..3ab928e
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-89.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-9.gif b/ucs2-lib/doc/html/OS81118-9.gif
new file mode 100644
index 0000000..bbb3043
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-9.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-90.gif b/ucs2-lib/doc/html/OS81118-90.gif
new file mode 100644
index 0000000..fec3e52
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-90.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-91.gif b/ucs2-lib/doc/html/OS81118-91.gif
new file mode 100644
index 0000000..0357a02
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-91.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-92.gif b/ucs2-lib/doc/html/OS81118-92.gif
new file mode 100644
index 0000000..bd9a05c
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-92.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-93.gif b/ucs2-lib/doc/html/OS81118-93.gif
new file mode 100644
index 0000000..aef1f61
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-93.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-94.gif b/ucs2-lib/doc/html/OS81118-94.gif
new file mode 100644
index 0000000..60d3b4e
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-94.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-95.gif b/ucs2-lib/doc/html/OS81118-95.gif
new file mode 100644
index 0000000..7697bb2
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-95.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-96.gif b/ucs2-lib/doc/html/OS81118-96.gif
new file mode 100644
index 0000000..8c63459
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-96.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-97.gif b/ucs2-lib/doc/html/OS81118-97.gif
new file mode 100644
index 0000000..221c690
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-97.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-98.gif b/ucs2-lib/doc/html/OS81118-98.gif
new file mode 100644
index 0000000..1bd8a02
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-98.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/OS81118-99.gif b/ucs2-lib/doc/html/OS81118-99.gif
new file mode 100644
index 0000000..153a28b
--- /dev/null
+++ b/ucs2-lib/doc/html/OS81118-99.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/_p__d_o_c_u__a_p_p_e_n_d_i_x.html b/ucs2-lib/doc/html/_p__d_o_c_u__a_p_p_e_n_d_i_x.html
new file mode 100644
index 0000000..653e5c3
--- /dev/null
+++ b/ucs2-lib/doc/html/_p__d_o_c_u__a_p_p_e_n_d_i_x.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Appendix</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_p__d_o_c_u__a_p_p_e_n_d_i_x.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Appendix </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><table border="1" class="overview_table">
+<tr>
+<td><div class="image">
+<img src="icon_appendix_120x120.png" alt="icon_appendix_120x120.png"/>
+</div>
+ </td><td><ul>
+<li><a class="el" href="_p__u_m__h_i_s_t_o_r_y.html">Release History</a></li>
+<li><a class="el" href="_p__u_m__o_s81118.html">OS81118 User's Guide</a> </li>
+</ul>
+</td></tr>
+</table>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/_p__d_o_c_u__a_p_p_e_n_d_i_x.js b/ucs2-lib/doc/html/_p__d_o_c_u__a_p_p_e_n_d_i_x.js
new file mode 100644
index 0000000..3bf909f
--- /dev/null
+++ b/ucs2-lib/doc/html/_p__d_o_c_u__a_p_p_e_n_d_i_x.js
@@ -0,0 +1,36 @@
+var _p__d_o_c_u__a_p_p_e_n_d_i_x =
+[
+ [ "Release History", "_p__u_m__h_i_s_t_o_r_y.html", null ],
+ [ "OS81118 User's Guide", "_p__u_m__o_s81118.html", [
+ [ "Introduction", "_p__u_m__o_s81118.html#SEC_OS81118_3", null ],
+ [ "Device Management", "_p__u_m__o_s81118.html#SEC_OS81118_4", null ],
+ [ "Power Management", "_p__u_m__o_s81118.html#SEC_OS81118_5", null ],
+ [ "Network Management", "_p__u_m__o_s81118.html#SEC_OS81118_6", null ],
+ [ "Network Administration", "_p__u_m__o_s81118.html#SEC_OS81118_7", null ],
+ [ "Resource Management", "_p__u_m__o_s81118.html#SEC_OS81118_8", null ],
+ [ "MOST Port", "_p__u_m__o_s81118.html#SEC_OS81118_9", null ],
+ [ "MediaLB Port", "_p__u_m__o_s81118.html#SEC_OS81118_10", null ],
+ [ "SPI Port", "_p__u_m__o_s81118.html#SEC_OS81118_11", null ],
+ [ "USB Port", "_p__u_m__o_s81118.html#SEC_OS81118_12", null ],
+ [ "Streaming Port", "_p__u_m__o_s81118.html#SEC_OS81118_13", null ],
+ [ "RMCK Port", "_p__u_m__o_s81118.html#SEC_OS81118_14", null ],
+ [ "I2C Port", "_p__u_m__o_s81118.html#SEC_OS81118_15", null ],
+ [ "GPIO Port", "_p__u_m__o_s81118.html#SEC_OS81118_16", null ],
+ [ "Combiner", "_p__u_m__o_s81118.html#SEC_OS81118_17", null ],
+ [ "Splitter", "_p__u_m__o_s81118.html#SEC_OS81118_18", null ],
+ [ "Control Connection", "_p__u_m__o_s81118.html#SEC_OS81118_19", null ],
+ [ "Packet Connections", "_p__u_m__o_s81118.html#SEC_OS81118_20", null ],
+ [ "Streaming Connections", "_p__u_m__o_s81118.html#SEC_OS81118_21", null ],
+ [ "Driver Control Interface", "_p__u_m__o_s81118.html#SEC_OS81118_22", null ],
+ [ "Command Reference", "_p__u_m__o_s81118.html#SEC_OS81118_23", null ],
+ [ "Configuration", "_p__u_m__o_s81118.html#SEC_OS81118_24", null ],
+ [ "Device Update Process", "_p__u_m__o_s81118.html#SEC_OS81118_25", null ],
+ [ "Diagnosis", "_p__u_m__o_s81118.html#SEC_OS81118_26", null ],
+ [ "Resource Planning", "_p__u_m__o_s81118.html#SEC_OS81118_27", null ],
+ [ "List of Abbreviations", "_p__u_m__o_s81118.html#SEC_OS81118_28", null ],
+ [ "API Functions in Numerical Order", "_p__u_m__o_s81118.html#SEC_OS81118_29", null ],
+ [ "API Functions in Alphabetical Order", "_p__u_m__o_s81118.html#SEC_OS81118_30", null ],
+ [ "List of Figures", "_p__u_m__o_s81118.html#SEC_OS81118_31", null ],
+ [ "List of Tables", "_p__u_m__o_s81118.html#SEC_OS81118_32", null ]
+ ] ]
+]; \ No newline at end of file
diff --git a/ucs2-lib/doc/html/_p__u_m__b_a_c_k_c_h_a_n_n_e_l__d_i_a_g.html b/ucs2-lib/doc/html/_p__u_m__b_a_c_k_c_h_a_n_n_e_l__d_i_a_g.html
new file mode 100644
index 0000000..7baefba
--- /dev/null
+++ b/ucs2-lib/doc/html/_p__u_m__b_a_c_k_c_h_a_n_n_e_l__d_i_a_g.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: BackChannel Diagnosis</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_p__u_m__b_a_c_k_c_h_a_n_n_e_l__d_i_a_g.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">BackChannel Diagnosis </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><h1>Introduction</h1>
+<p>BackChannel Diagnosis is performed on the TimingMaster node. It inspects the ring segment by segment until it finds a ring break or detects a closed ring.</p>
+<p>It cannot be performed during Node Discovery or Programming service.</p>
+<h1>Operation</h1>
+<p>Calling <a class="el" href="group___g___u_c_s___b_c___d_i_a_g_gaaefed31b3c57ef52a29237c3f84fb566.html#gaaefed31b3c57ef52a29237c3f84fb566">Ucs_Bcd_Start()</a> starts the BackChannel Diagnosis. The function has a parameter <b>report_fptr</b>. It points to the report callback function. <b>report_fptr</b> will deliver a result for each inspected segment as well as a result which indicates the end of the diagnosis session.</p>
+<p>Segment number 0 denotes the segment following the TimingMaster.</p>
+<table class="doxtable">
+<tr>
+<th>Parameter <em>code</em> </th><th>Parameter <em>segment</em> </th><th>Description</th></tr>
+<tr>
+<td><a class="el" href="group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#gga08b88fcd49483ac8d0ce004c104a4c12a9efd7ed8009ce371525bd17ba8cd33bb">UCS_BCD_RES_SUCCESS</a> </td><td>segment number </td><td>current segment is not broken </td></tr>
+<tr>
+<td><a class="el" href="group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#gga08b88fcd49483ac8d0ce004c104a4c12aa33f4df6db0d7b979097f3ea10b680af">UCS_BCD_RES_NO_RING_BREAK</a> </td><td>segment number </td><td>No ring break detected. <em>segment</em> = number of nodes - 1. </td></tr>
+<tr>
+<td><a class="el" href="group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#gga08b88fcd49483ac8d0ce004c104a4c12a135f26c3f41683d98230208b952f238f">UCS_BCD_RES_RING_BREAK</a> </td><td>segment number </td><td>Ring break detected in current segment. </td></tr>
+<tr>
+<td><a class="el" href="group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#gga08b88fcd49483ac8d0ce004c104a4c12a249b89261ce8db86eca6d76f43b84e1b">UCS_BCD_RES_TIMEOUT1</a> </td><td>segment number </td><td>Error during diagnosis: no communication on back channel. </td></tr>
+<tr>
+<td><a class="el" href="group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#gga08b88fcd49483ac8d0ce004c104a4c12a5782a90257b123278c8ebb4a17b2f264">UCS_BCD_RES_TIMEOUT2</a> </td><td><a class="el" href="group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga8ea444dafcef542cfafee9ee0e74a104.html#ga8ea444dafcef542cfafee9ee0e74a104">UCS_BCD_DUMMY_SEGMENT</a> </td><td>Error during diagnosis: no result received from local INIC. </td></tr>
+<tr>
+<td><a class="el" href="group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#gga08b88fcd49483ac8d0ce004c104a4c12a3a7748f1c2bab68f1c7969cfec95dabf">UCS_BCD_RES_ERROR</a> </td><td><a class="el" href="group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga8ea444dafcef542cfafee9ee0e74a104.html#ga8ea444dafcef542cfafee9ee0e74a104">UCS_BCD_DUMMY_SEGMENT</a> </td><td>An unexcpected error occurred. BackChannel Diagnosis was stopped. </td></tr>
+<tr>
+<td><a class="el" href="group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#gga08b88fcd49483ac8d0ce004c104a4c12a9cde6e2034d4ab681bc6978edb671b1e">UCS_BCD_RES_END</a> </td><td><a class="el" href="group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga8ea444dafcef542cfafee9ee0e74a104.html#ga8ea444dafcef542cfafee9ee0e74a104">UCS_BCD_DUMMY_SEGMENT</a> </td><td>BackChannel Diagnosis ended regularly. </td></tr>
+</table>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/_p__u_m__g_e_t_t_i_n_g__s_t_a_r_t_e_d.html b/ucs2-lib/doc/html/_p__u_m__g_e_t_t_i_n_g__s_t_a_r_t_e_d.html
new file mode 100644
index 0000000..5934325
--- /dev/null
+++ b/ucs2-lib/doc/html/_p__u_m__g_e_t_t_i_n_g__s_t_a_r_t_e_d.html
@@ -0,0 +1,140 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Getting Started</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_p__u_m__g_e_t_t_i_n_g__s_t_a_r_t_e_d.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Getting Started </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><table border="1" class="overview_table">
+<tr>
+<td><div class="image">
+<img src="icon_started_120x120.png" alt="icon_started_120x120.png"/>
+</div>
+ </td><td><p class="starttd"></p>
+<p>This section contains the information for getting started with UNICENS and it explains how to set up a basic example.</p>
+<p></p>
+<ul>
+<li><a class="el" href="_p__u_m__s_t_a_r_t_e_d__p_r_e_p.html">Preparations</a></li>
+<li><a class="el" href="_p__u_m__s_t_a_r_t_e_d__i_n_i_t.html">Initialization</a></li>
+<li><a class="el" href="_p__u_m__s_t_a_r_t_e_d__s_r_v.html">Service</a></li>
+<li><a class="el" href="_p__u_m__s_y_n_c__a_n_d__a_s_y_n_c__r_e_s_u_l_t_s.html">Synchronous vs. Asynchronous Results</a></li>
+<li><a class="el" href="_p__u_m__s_t_a_r_t_e_d__a_m_s.html">Application Message Service</a></li>
+<li><a class="el" href="_p__u_m__s_t_a_r_t_e_d__c_m_d.html">Command Interpreter</a></li>
+<li><a class="el" href="_p__u_m__s_t_a_r_t_e_d__n_e_t.html">Networking Management</a></li>
+<li><a class="el" href="_p__u_m__s_t_a_r_t_e_d__m_g_r.html">Manager</a></li>
+<li><a class="el" href="_p__u_m__s_t_a_r_t_e_d__n_o_d_e__d_i_s.html">Node Discovery</a></li>
+<li><a class="el" href="_p__u_m__s_t_a_r_t_e_d__p_r_o_g_r_a_m_m_i_n_g.html">Programming</a></li>
+<li><a class="el" href="_p__u_m__b_a_c_k_c_h_a_n_n_e_l__d_i_a_g.html">BackChannel Diagnosis</a></li>
+<li><a class="el" href="_p__u_m__s_t_a_r_t_e_d__r_m.html">Routing Management</a></li>
+<li><a class="el" href="_p__u_m__s_t_a_r_t_e_d__n_o_d_e__s_c_r_i_p_t.html">Node Scripting</a></li>
+<li><a class="el" href="_p__u_m__s_t_a_r_t_e_d__l_l_d.html">Low-Level Driver</a></li>
+</ul>
+<p class="endtd"></p>
+</td></tr>
+</table>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/_p__u_m__g_e_t_t_i_n_g__s_t_a_r_t_e_d.js b/ucs2-lib/doc/html/_p__u_m__g_e_t_t_i_n_g__s_t_a_r_t_e_d.js
new file mode 100644
index 0000000..0b31be5
--- /dev/null
+++ b/ucs2-lib/doc/html/_p__u_m__g_e_t_t_i_n_g__s_t_a_r_t_e_d.js
@@ -0,0 +1,17 @@
+var _p__u_m__g_e_t_t_i_n_g__s_t_a_r_t_e_d =
+[
+ [ "Preparations", "_p__u_m__s_t_a_r_t_e_d__p_r_e_p.html", null ],
+ [ "Initialization", "_p__u_m__s_t_a_r_t_e_d__i_n_i_t.html", null ],
+ [ "Service", "_p__u_m__s_t_a_r_t_e_d__s_r_v.html", null ],
+ [ "Synchronous vs. Asynchronous Results", "_p__u_m__s_y_n_c__a_n_d__a_s_y_n_c__r_e_s_u_l_t_s.html", null ],
+ [ "Application Message Service", "_p__u_m__s_t_a_r_t_e_d__a_m_s.html", null ],
+ [ "Command Interpreter", "_p__u_m__s_t_a_r_t_e_d__c_m_d.html", null ],
+ [ "Networking Management", "_p__u_m__s_t_a_r_t_e_d__n_e_t.html", null ],
+ [ "Manager", "_p__u_m__s_t_a_r_t_e_d__m_g_r.html", null ],
+ [ "Node Discovery", "_p__u_m__s_t_a_r_t_e_d__n_o_d_e__d_i_s.html", null ],
+ [ "Programming", "_p__u_m__s_t_a_r_t_e_d__p_r_o_g_r_a_m_m_i_n_g.html", null ],
+ [ "BackChannel Diagnosis", "_p__u_m__b_a_c_k_c_h_a_n_n_e_l__d_i_a_g.html", null ],
+ [ "Routing Management", "_p__u_m__s_t_a_r_t_e_d__r_m.html", null ],
+ [ "Node Scripting", "_p__u_m__s_t_a_r_t_e_d__n_o_d_e__s_c_r_i_p_t.html", null ],
+ [ "Low-Level Driver", "_p__u_m__s_t_a_r_t_e_d__l_l_d.html", null ]
+]; \ No newline at end of file
diff --git a/ucs2-lib/doc/html/_p__u_m__h_i_s_t_o_r_y.html b/ucs2-lib/doc/html/_p__u_m__h_i_s_t_o_r_y.html
new file mode 100644
index 0000000..3bfa8fe
--- /dev/null
+++ b/ucs2-lib/doc/html/_p__u_m__h_i_s_t_o_r_y.html
@@ -0,0 +1,174 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Release History</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_p__u_m__h_i_s_t_o_r_y.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Release History </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><h1>V2.1.0</h1>
+<table style="border:none;">
+<tr style="border:none;">
+<td style="padding-right:15px;"><b>Release Date:</b> </td><td>TBD </td></tr>
+<tr style="border:none;">
+<td style="padding-right:15px;"><b>Supported INICs:</b> </td><td>See conformity table (Package and Document information) </td></tr>
+</table>
+<h2>Resolved Items</h2>
+<table class="doxtable">
+<tr>
+<th>Type </th><th>Description</th></tr>
+<tr>
+<td>Feature </td><td>Introduced so called "Manager" that forces the network to available, handles NodeDiscovery events and notifies nodes to the RoutingManagement.<br/>
+ See related sections in <a class="el" href="group___g___u_c_s___m_g_r.html">API Reference</a> or <a class="el" href="group___g___u_c_s___m_g_r.html">Getting Started</a>. </td></tr>
+<tr>
+<td>Feature </td><td>Added <a class="el" href="group___g___u_c_s___a_m_s.html">Application Message API</a> into Management Library. Added option to disable the Application Message Service within the <a class="el" href="struct_ucs___ams___init_data__t.html">initialization stucture</a>. </td></tr>
+<tr>
+<td>Feature </td><td>Added new functions <a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g_gaf34398118f6a683a7e295f2fb89c5940.html#gaf34398118f6a683a7e295f2fb89c5940" title="Retrieves the reference(s) of the route(s) currently attached to the given endpoint and stores It int...">Ucs_Rm_GetAttachedRoutes()</a> and <a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g_ga87a46a3aa0657e13f5884e5a04d16e17.html#ga87a46a3aa0657e13f5884e5a04d16e17" title="Retrieves the ConnectionLabel of the given route.">Ucs_Rm_GetConnectionLabel()</a>. </td></tr>
+<tr>
+<td>Feature </td><td>Added support for node scripting. </td></tr>
+<tr>
+<td>Feature </td><td>Added support for reusable description of XRM resources. </td></tr>
+<tr>
+<td>Feature </td><td>Extended <a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g_gaefde5a8fbaeb6e5937e94b9e74ae70cb.html#gaefde5a8fbaeb6e5937e94b9e74ae70cb">Ucs_Rm_XrmResDebugCb_t</a> callback function to provide additional information related to endpoint. </td></tr>
+<tr>
+<td>Feature </td><td>Added new callback function <a class="el" href="struct_ucs___network___status__t.html">network.status.cb_fptr</a> and option <a class="el" href="struct_ucs___network___status__t.html">network.status.notification_mask</a>. </td></tr>
+<tr>
+<td>Feature </td><td>Added new macro <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_gaff7821fdddebc32a8a3f61a5eebc405a.html#gaff7821fdddebc32a8a3f61a5eebc405a">UCS_FOOTPRINT_TINY</a> that decreases RAM/ROM footprint for tiny controllers. </td></tr>
+<tr>
+<td>Feature </td><td>Added new macros <a class="el" href="group___g___u_c_s___m_i_s_c_ga74b0d1a6c74c93a79fc2751554806796.html#ga74b0d1a6c74c93a79fc2751554806796">UCS_VERSION_MAJOR</a>, <a class="el" href="group___g___u_c_s___m_i_s_c_gaae920665e0a0d0c4213b8e037f6ce869.html#gaae920665e0a0d0c4213b8e037f6ce869">UCS_VERSION_MINOR</a>, <a class="el" href="group___g___u_c_s___m_i_s_c_gad0b327b6924e088113371b79e161cafe.html#gad0b327b6924e088113371b79e161cafe">UCS_VERSION_RELEASE</a> and <a class="el" href="group___g___u_c_s___m_i_s_c_gaadb74b48c69d7b6fc0a94eeb666e8183.html#gaadb74b48c69d7b6fc0a94eeb666e8183">UCS_VERSION_BUILD</a>. </td></tr>
+<tr>
+<td>Change </td><td>Renamed attribute <code>disable_inic_watchdog</code> to <a class="el" href="struct_ucs___general___init_data__t_a1694b517ad074d3b14b76b400f86c9db.html#a1694b517ad074d3b14b76b400f86c9db">inic_watchdog_enabled</a> in <a class="el" href="struct_ucs___general___init_data__t.html">Ucs_General_InitData_t</a>. </td></tr>
+<tr>
+<td>Change </td><td>Changed signature of the trace macros <a class="el" href="group___g___u_c_s___t_r_a_c_e_gaebb5aec06a7196b1247805a53a96f926.html#gaebb5aec06a7196b1247805a53a96f926">UCS_TR_INFO</a> and <a class="el" href="group___g___u_c_s___t_r_a_c_e_gaf7f45aee7bbbd7f4a58b71a5268ecdb6.html#gaf7f45aee7bbbd7f4a58b71a5268ecdb6">UCS_TR_ERROR</a>. Added new parameter <code>ucs_user_ptr</code> of type void * that replaced the existing one <code>ucs_inst_id</code>. </td></tr>
+<tr>
+<td>Change </td><td>Renamed <code>Ucs_Xrm_ResourceDebugCb_t</code> to <a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g_gaefde5a8fbaeb6e5937e94b9e74ae70cb.html#gaefde5a8fbaeb6e5937e94b9e74ae70cb">Ucs_Rm_XrmResDebugCb_t</a> and moved the reference <a class="el" href="struct_ucs___rm___init_data__t_a68590d8712353f94f2e9ccec1e21baa5.html#a68590d8712353f94f2e9ccec1e21baa5">debug_resource_status_fptr</a> into <a class="el" href="struct_ucs___rm___init_data__t.html">Ucs_Rm_InitData_t</a>. </td></tr>
+<tr>
+<td>Change </td><td>Removed API functions <code>Ucs_I2c_SyncDevice()</code> and <code>Ucs_Gpio_SyncDevice()</code>. </td></tr>
+<tr>
+<td>Defect </td><td>Sources: Fixed library crash when calling I2C API. </td></tr>
+<tr>
+<td>Defect </td><td>Sources: Fixed the bug of uncalled <a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g_ga91d851f4665839e2aac982565b007805.html#ga91d851f4665839e2aac982565b007805" title="Function signature used for the results and reports of the Routing Manager.">Ucs_Rm_ReportCb_t()</a> after <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga61381bd30fb6630b6c5d6ecc8968e983.html#ga61381bd30fb6630b6c5d6ecc8968e983" title="Terminates the execution of UNICENS.">Ucs_Stop()</a>. </td></tr>
+<tr>
+<td>Defect </td><td>Sources: Improved robustness and maintainability of routing management. </td></tr>
+<tr>
+<td>Defect </td><td>Docu: Fixed wrong attribute names in AMS message structures of <a class="el" href="_p__u_m__s_t_a_r_t_e_d__a_m_s.html">Getting Started</a>. </td></tr>
+</table>
+<h1>V2.0.0</h1>
+<table style="border:none;">
+<tr style="border:none;">
+<td style="padding-right:15px;"><b>Release Date:</b> </td><td>2016-09-30 </td></tr>
+<tr style="border:none;">
+<td style="padding-right:15px;"><b>Supported INICs:</b> </td><td>See conformity table (Package and Document information) </td></tr>
+</table>
+<h2>Resolved Items</h2>
+<table class="doxtable">
+<tr>
+<th>Type </th><th>Description</th></tr>
+<tr>
+<td>Note </td><td>Initial Version </td></tr>
+</table>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/_p__u_m__o_s81118.html b/ucs2-lib/doc/html/_p__u_m__o_s81118.html
new file mode 100644
index 0000000..b9ef399
--- /dev/null
+++ b/ucs2-lib/doc/html/_p__u_m__o_s81118.html
@@ -0,0 +1,61785 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: OS81118 User&#39;s Guide</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_p__u_m__o_s81118.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">OS81118 User's Guide </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><script language="javascript">
+$(document).ready( function() {
+ $('.textblock .Chapter, .textblock .Chapter-NoSection, .textblock h1.Appendix, .textblock h1.Appendix-noSection, .textblock h1.Title').hide();
+ $('.textblock ul li').attr('style','background-image: none;');
+ $('.textblock h6').attr('style','text-transform: none;');
+ $('.textblock .Table-Head').attr('style','color: #fff;');
+ $('.textblock .doxtable tr:first-child td .Table-Head').attr('style','color: #000;');
+ $('.textblock .CellHeading').attr('style','color: #fff;');
+ $('.textblock td .CellHeading').attr('style','color: #000;');
+ $('.textblock .doxtable tr:first-child td .CellHeading').attr('style','color: #000;');
+ $('.textblock th *').attr('style','color: #fff;');
+ $('.textblock .Blue, .textblock .Link').attr('style','color: #000;');
+ $('.textblock a em').attr('style','color: #ef2121;');
+ $('.textblock .CellHeading a').attr('style','color: #fff; text-decoration: underline;');
+ $('.textblock .Level1IX, .textblock .Level2IX, .textblock .Level3IX').attr('style','font-size: 12px;');
+ $('.textblock .TableofContents').hide();
+});
+</script>
+<h1><a class="anchor" id="SEC_OS81118_3"></a>
+Introduction</h1>
+<DIV>
+<H1 CLASS="Chapter">
+<A NAME="50495562_pgfId-655270"></A><DIV>
+<IMG SRC="OS81118-7.gif" ALT="">
+</DIV>
+<A NAME="50495562_47728"></A>Introduction<DIV>
+<IMG SRC="OS81118-8.gif" ALT="">
+</DIV>
+</H1>
+<P CLASS="Body">
+<A NAME="50495562_pgfId-661415"></A>The OS81118 INIC (Intelligent Network Interface Controller) for a MOST device is part of a new generation of Network Interface Controllers that combines physical, MAC (Media Access Control), link and network layer on a single chip. It provides a highly cost-effective all-in-one multimedia network solution. A high level of integration and encapsulation of the network functions grants robustness, ease of use, and minimum time to market. In addition, the OS81118 INIC already implements most of the elements of <A NAME="50495562_marker-661416"></A>MOST core compliance on-chip.</P>
+<P CLASS="Body">
+<A NAME="50495562_pgfId-655184"></A>The <A NAME="50495562_marker-656753"></A>INIC family consists of various ICs that support different speed grades of MOST and physical layers. Electrical transmission, for example over unshielded twisted pair (<A NAME="50495562_marker-656758"></A>ePHY) or over the coax electrical physical layer (<A NAME="50495562_marker-656763"></A>cPHY), is supported as well as <EM CLASS="BlackMarker">
+transmission over the</EM>
+ optical physical layer (<A NAME="50495562_marker-656768"></A>oPHY). </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495562_pgfId-701727"></A>Note: This user&#8217;s guide describes the INIC firmware version 2.4.0-76_RELEASE that supports INIC hardware revisions D1A and D2A.<BR>
+Microchip recommends to use hardware revision D2A.<BR>
+Hardware revision D1A is deprecated. Its use is limited in respect to a hardware issue. For details refer to <A HREF="#50495580_25164" CLASS="XRef"><EM CLASS="Link">
+Section 19.4.1</EM>
+</A>.</Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495562_pgfId-697808"></A>&nbsp;</P>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495562_pgfId-656707"></A><A NAME="50495562_84600"></A>Interfacing to OS81118 INIC</H3>
+<P CLASS="Body">
+<A NAME="50495562_pgfId-667359"></A>The OS81118 INIC provides a <A NAME="50495562_marker-667357"></A>Universal Serial Bus (<A NAME="50495562_marker-667358"></A>USB) 2.0 High-Speed Port. The USB Port allows connection to the INIC (USB device) by an EHC (USB Host Controller) and supports on-PCB upstream USB 2.0 high-speed bulk transfers using a standard USB 2.0 physical layer at a rate of 480 Mbps. The USB Port provides access to the MOST network via an interface commonly found in most applications. This is especially useful for microcontrollers that do not support the typical interfaces (i.e., MediaLB<EM CLASS="Superscript">
+&#174;</EM>
+) found in an automotive application. USB can transport streaming data and packet data simultaneously.</P>
+<P CLASS="Body">
+<A NAME="50495562_pgfId-667372"></A>Furthermore, the INIC provides a <A NAME="50495562_marker-667360"></A>Serial Peripheral Interface (<A NAME="50495562_marker-667361"></A>SPI) Port that supports the transmission of asynchronous packets over an interface that is compatible with many micro-processors, data converters, and other devices. When the SPI Port is created, it operates as an SPI bus slave. </P>
+<P CLASS="Body">
+<A NAME="50495562_pgfId-667375"></A>In addition to these ports, an <A NAME="50495562_marker-667373"></A>I<EM CLASS="Superscript">
+2</EM>
+C Port and a <A NAME="50495562_marker-667374"></A>MediaLB (Media Local Bus) Port are offered.<BR>
+The I<EM CLASS="Superscript">
+2</EM>
+C Port can transport control data. Simple designs with OS81118 can make use of the traditional I<EM CLASS="Superscript">
+2</EM>
+C Port, enabling cost-effective realizations, while more advanced solutions may use the I<EM CLASS="Superscript">
+2</EM>
+C Port in combination with USB for versatile and high-speed data transport.<BR>
+The MediaLB Port serves as an on-PCB, serial inter-chip communication bus which can simultaneously transport all types of multimedia signals that are found in modern infotainment systems including streaming data, control data, and packet data. The MediaLB interface is synchronized to the MOST network thus providing seamless streaming capabilities to and from the MOST network without buffering and without delay. MediaLB allows cost effective interfacing of multiple ICs and their inter-chip communication. The communication between all participants of MediaLB is administered by INIC.</P>
+<P CLASS="Body">
+<A NAME="50495562_pgfId-669564"></A>The MOST Port enables support of port-specific network handling, including the selection of the physical layer to be used.</P>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495562_pgfId-668378"></A>Encapsulation of Network Services</H3>
+<P CLASS="Body">
+<A NAME="50495562_pgfId-663332"></A>The INIC encapsulates all network functionality including the major parts of the transport layers on chip. The result of this encapsulation is that INIC is a full network interface on silicon that cannot be set in undefined states, which can happen with traditional register controlled chips. Its command interface is the INIC API, which is an object-oriented software interface. In addition, the <A NAME="50495562_marker-663333"></A>MOST NetServices <EM CLASS="BlackMarker">
+V3.2.x that is running on the EHC, </EM>
+represents the application socket, implementing for example the application message service, a command interpreter, and a resource management.</P>
+<P CLASS="Body">
+<A NAME="50495562_pgfId-663223"></A>A very small number of high-level commands with MOST syntax are used for chip control. For management of the streaming resources of INIC, a port and socket concept is provided. Streaming connections can be managed easily by this high-level object-oriented control interface, usually known for example from some operating systems.</P>
+<P CLASS="Body">
+<A NAME="50495562_pgfId-655193"></A>The INIC architecture handles all time-critical, resource-intensive, and fail-safe relevant parts of the network functionality on-chip. Porting of the sensitive and time-critical portions of the network driver to customer&#8217;s environments is no longer required. This simplifies the implementation of MOST technology into a device and reduces time to market and development costs. </P>
+<P CLASS="Body">
+<A NAME="50495562_pgfId-655194"></A>Since all functions necessary to operate the MOST network including a minimum NetBlock are implemented on chip, INIC can independently start/join the network quickly, without waiting for an application to start. INIC is independent from the EHC&#8217;s startup behavior allowing immediate availability of the network. A MOST device based on INIC is able to answer requests to the NetBlock and run MOST, even if the application on EHC is not running or not yet started, thus providing maximum robustness for the network. This self-contained operation of the network is called Network Protected Mode. INIC leaves this mode and provides the services of the MOST network to the application only after the application has executed an attach procedure with INIC.</P>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495562_pgfId-655196"></A>MOST NetServices V3.2.x on EHC</H3>
+<P CLASS="Body">
+<A NAME="50495562_pgfId-663490"></A>MOST NetServices V3.2.x is the driver for the INIC running on the EHC. It implements the functionality of the MOST Network Service required by the MOST Specification <A HREF="#50495561_60695" CLASS="XRef"><EM CLASS="Blue">
+[1]</EM>
+</A>. <BR>
+The MOST NetServices API is easy to learn, which minimizes the risk of errors, simplifies evaluation, expedites development time, and spares configuration efforts especially for engineers starting with MOST. </P>
+<P CLASS="Body">
+<A NAME="50495562_pgfId-663489"></A>It is recommended to use the MOST NetServices V3.2.x, since it encapsulates the INIC API and it includes extended functionality. Thus the MOST NetServices V3.2.x provides the ideal solution for optimal network access.</P>
+</DIV>
+</DIV>
+<h1><a class="anchor" id="SEC_OS81118_4"></a>
+Device Management</h1>
+<DIV>
+<H1 CLASS="Chapter">
+<A NAME="50495533_pgfId-668404"></A><DIV>
+<IMG SRC="OS81118-9.gif" ALT="">
+</DIV>
+<A NAME="50495533_47728"></A>Device Management<DIV>
+<IMG SRC="OS81118-10.gif" ALT="">
+</DIV>
+</H1>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-759049"></A>The device management handles device-related tasks such as:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-759120"></A>&#8226; Operation of the <A NAME="50495533_marker-832842"></A>configuration interface</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-759198"></A>&#8226; Operation of the <A NAME="50495533_marker-832844"></A>application interface</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-759239"></A>&#8226; Control communication through Port Message Protocol (PMP) channels</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-759298"></A>&#8226; Setup of message routing</LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-763909"></A>The configuration interface and the application interface are two separate interfaces. This approach allows to operate the application interface without running the configuration interface and vice versa.</P>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495533_pgfId-739408"></A><A NAME="50495533_16511"></A>Port Message Protocol </H3>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-759721"></A>To be able to exchange control messages, the INIC provides a set of independent <A NAME="50495533_marker-761392"></A>Port Message Protocol (PMP) channels. The communication is handled through the PMP as specified inside the Port Message Protocol V2.0.1 Specification <A HREF="#50495561_49764" CLASS="XRef"><EM CLASS="Blue">
+[3]</EM>
+</A>. In PMP terms, the EHC will be referred to as <A NAME="50495533_marker-761397"></A>the Primary Device (PD), the INIC as <A NAME="50495533_marker-761398"></A>the Secondary Device (SD).</P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-759727"></A>The PMP provides multiple virtual channels, stated as FIFO channels. Each PMP channel is assigned to a unique <A NAME="50495533_marker-760127"></A>FIFO channel. This allows running multiple PMP channels through sockets on a single physical port, e.g., MediaLB Port. <A NAME="50495533_marker-760128"></A>Flow control and <A NAME="50495533_marker-760129"></A>hand-shaking mechanisms of the protocol prevent starvation or deadlocks when PMP channels share a common physical medium. Besides the bi-directional exchange of packet-based data, the protocol is used to communicate the delivery status back to the EHC and allows taking actions on delivery failures.</P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-759731"></A>The PMP is not designed for a specific application and thus its definition must be completed per application. This chapter extends the PMP specification in a way that is necessary to establish INIC-specific PMP channels. Therefore, INIC-specific details of the protocol will be defined hereinafter as part of a higher communication layer. This includes the assigned PMP channel numbers (see <A HREF="#50495533_10060" CLASS="XRef"><EM CLASS="Link">
+Table 2-1</EM>
+</A>), the data message content types and format, and the status message failure codes (see <A HREF="#50495533_78328" CLASS="XRef"><EM CLASS="Link">
+Table 2-3</EM>
+</A>).</P>
+<DIV>
+<A NAME="MNSH2-Channels" /><H6 CLASS="Heading2">
+<A NAME="50495533_pgfId-742831"></A><A NAME="50495533_PMPv2 Channels"></A>Channels</H6>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-739409"></A>There are different kinds of PMP channels available:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-739411"></A>&#8226; <A NAME="50495533_marker-762191"></A>MOST Control Message (<A NAME="50495533_marker-762210"></A>MCM) PMP channel</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-747153"></A>&#8226; <A NAME="50495533_marker-762200"></A>INIC Control Message (<A NAME="50495533_marker-762215"></A>ICM) PMP channel</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-739412"></A>&#8226; <A NAME="50495533_marker-762205"></A>Remote Control Message (<A NAME="50495533_marker-762220"></A>RCM) PMP channel</LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-739415"></A><A NAME="50495533_marker-760148"></A>To address a specific PMP channel, the channel number must be specified in the FPH field of the PMP header when a message is transmitted. Received PMP messages can be matched to a specific PMP channel through the same <A NAME="50495533_marker-760150"></A>FPH field. Addressing all PMP channels at once allows to transmit a message that will be received by all PMP channels. Typically, this feature will be used to transmit an UNSYNC command message to all channels. For all other communication, the destination channel should be unique. <A HREF="#50495533_10060" CLASS="XRef"><EM CLASS="Link">
+Table 2-1</EM>
+</A> contains a list of channel assignments.<EM CLASS="Underline">
+</EM>
+</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495533_pgfId-739424"></A>Table 2-1: <A NAME="50495533_10060"></A><A NAME="50495533_marker-760157"></A>PMP Channel Assignment</TableTitle>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495533_pgfId-739428"></A>Channel</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495533_pgfId-739430"></A>PMP Channel Number</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495533_pgfId-739432"></A>MCM</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495533_pgfId-739434"></A>0</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495533_pgfId-739440"></A>ICM</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495533_pgfId-739442"></A>2</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495533_pgfId-745245"></A>RCM</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495533_pgfId-745247"></A>6</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495533_pgfId-739444"></A>MCM, ICM and RCM</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495533_pgfId-739446"></A>3</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-739447"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-739448"></A>All PMP channels use the same Data Message format to transport a control message, as described in <A HREF="#50495533_51382" CLASS="XRef"><EM CLASS="Link">
+Section 2.1.2</EM>
+</A>. </P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-833940"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-ControlMessageFormat" /><H6 CLASS="Heading2">
+<A NAME="50495533_pgfId-739467"></A><A NAME="50495533_25172"></A><A NAME="50495533_51382"></A>Control Message Format</H6>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-739471"></A><A HREF="#50495533_17650" CLASS="XRef"><EM CLASS="Link">
+Figure 2-1</EM>
+</A> shows the Data Message format used to transport a control message. The message format consists of two main sections, the <A NAME="50495533_marker-760193"></A>PMP header and the <A NAME="50495533_marker-760194"></A>PMP payload.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495533_pgfId-739478"></A>Figure 2-1: <A NAME="50495533_marker-760197"></A><A NAME="50495533_17650"></A>Control Message Format</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495533_pgfId-739483"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-11.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-739485"></A>The PMP header contains the <A NAME="50495533_marker-760205"></A>ExtType field that must be 0x00 (only one format type is supported).</P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-739486"></A>If the INIC receives messages, any number of stuffing bytes is allowed. However, when transmitting messages to the INIC, it is strongly recommended to use 2 stuffing bytes. Control messages sent by the INIC will always use 2 stuffing bytes.</P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-739490"></A><A HREF="#50495533_84664" CLASS="XRef"><EM CLASS="Link">
+Figure 2-2</EM>
+</A> depicts the PMP payload fields. For the explanation of the PMP header fields refer to the Port Message Protocol V2.0.1 Specification <A HREF="#50495561_49764" CLASS="XRef"><EM CLASS="Blue">
+[3]</EM>
+</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495533_pgfId-739497"></A>Figure 2-2: <A NAME="50495533_84664"></A>PMP Payload</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495533_pgfId-739502"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-12.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-739626"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495533_pgfId-739506"></A>Table 2-2: <A NAME="50495533_23352"></A>PMP Payload Format Field Description</TableTitle>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495533_pgfId-739512"></A>Format Field</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495533_pgfId-739514"></A>Size</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495533_pgfId-739516"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739520"></A><A NAME="50495533_marker-760239"></A><A NAME="50495533_marker-760240"></A>SrcDeviceID</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739525"></A>16 bit<EM CLASS="Blue">
+<A HREF="#50495533_57468" CLASS="XRef"></A><EM CLASS="Superscript">
+1</EM>
+<EM CLASS="Blue">
+</EM>
+</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739527"></A>Source Device ID. Indicates the Logical Address of the device that sent the message.</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739528"></A>SourceID 0x0001 (LocalID) indicates a message coming from an internal FBlock.<BR>
+SourceID 0x0002 indicates a message coming from the EHC.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739532"></A><A NAME="50495533_marker-760251"></A><A NAME="50495533_marker-760252"></A>TgtDeviceID</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739537"></A>16 bit<EM CLASS="Blue">
+<A HREF="#50495533_57468" CLASS="XRef"></A><EM CLASS="Superscript">
+1</EM>
+<EM CLASS="Blue">
+</EM>
+</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739539"></A>Target Device ID. Indicates the device address to which the message is sent (DeviceID). The following addresses are reserved: 0x0000, 0x0001, 0xFFFF.</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739540"></A>0x0000 and 0xFFFF return format failure (0010) as transmitted message status.</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739541"></A>0x0001 (LocalID) is the Local ID. A message using this address is used for internal communication between EHC and INIC.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739545"></A><A NAME="50495533_marker-760264"></A><A NAME="50495533_marker-760265"></A>FBlockID</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739547"></A>8 bit</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739549"></A>Function Block ID. Determines the function block that is addressed.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739553"></A><A NAME="50495533_marker-760272"></A><A NAME="50495533_marker-760273"></A>InstID</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739555"></A>8 bit</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739557"></A>Instance ID. Determines the instance of the FBlock to unambiguously address FBlocks of the same type.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739561"></A><EM CLASS="BlackMarker">
+</EM>
+<A NAME="50495533_marker-760280"></A><A NAME="50495533_marker-760281"></A>FktID</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739566"></A>16 bit<EM CLASS="Blue">
+<A HREF="#50495533_57468" CLASS="XRef"></A><EM CLASS="Superscript">
+1</EM>
+<EM CLASS="Blue">
+</EM>
+</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739568"></A>Function ID. Determines the property or method that is addressed.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739572"></A><A NAME="50495533_marker-760291"></A><A NAME="50495533_marker-760292"></A>TelID</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739577"></A>4 bit<EM CLASS="Blue">
+<A HREF="#50495533_68999" CLASS="XRef"></A><EM CLASS="Superscript">
+2</EM>
+<EM CLASS="Blue">
+</EM>
+</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739579"></A>Telegram ID. Identifies the telegram type. Zero for a single transfer, non-zero (1...4) when transferring segmented messages.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739583"></A><A NAME="50495533_marker-760302"></A><A NAME="50495533_marker-760303"></A>OPType</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739588"></A>4 bit<EM CLASS="Blue">
+<A HREF="#50495533_68999" CLASS="XRef"></A><EM CLASS="Superscript">
+2</EM>
+<EM CLASS="Blue">
+</EM>
+</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739590"></A>Operation Type. Determines the operation on the property or method. Also indicates the direction in which messages are exchanged. <BR>
+This field is defined in the MOST Specification <A HREF="#50495561_60695" CLASS="XRef"><EM CLASS="Blue">
+[1]</EM>
+</A>.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739597"></A><A NAME="50495533_marker-760316"></A><A NAME="50495533_marker-760317"></A>LLRBC</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739599"></A>8 bit</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739601"></A>Low-Level Retry block count. The maximum block count number is limited to 100. If a higher number is entered, the value will be set to 100 automatically.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739605"></A><A NAME="50495533_marker-760324"></A><A NAME="50495533_marker-760325"></A>TelCnt</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739607"></A>8 bit</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739609"></A>Telegram Count. Counts the number of messages in the telegram. Starts at 0x00 for the first telegram and increases by 1 for each following telegram. When 0xFF is reached, the counter restarts at 0x00.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739613"></A><A NAME="50495533_marker-760332"></A><A NAME="50495533_marker-760333"></A>TelLen</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739615"></A>8 bit</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739617"></A>Telegram Length. Number of data bytes that are valid in the telegram. The maximum number is 45 bytes.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739621"></A><A NAME="50495533_marker-760340"></A><A NAME="50495533_marker-760341"></A>TelData</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739623"></A>0...45 bytes</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739625"></A>Contains the payload of the message.</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="TableFootnote1">
+<A NAME="50495533_pgfId-739629"></A>Note 1: <A NAME="50495533_57468"></A><A NAME="50495533_27917"></A>Big-endian</P>
+<P CLASS="TableFootnote">
+<A NAME="50495533_pgfId-739631"></A>2: <A NAME="50495533_68999"></A>TelID and OPType share one byte; TelID is stored in the high-nibble (bits 4-7), OPType information is stored in the low-nibble (bits 0-3).</P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-771767"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-ControlMessageTransmissionStatus" /><H6 CLASS="Heading2">
+<A NAME="50495533_pgfId-739634"></A><A NAME="50495533_91934"></A>Control Message Transmission Status</H6>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-739635"></A>If the INIC fails to deliver a control message, the affected PMP channel will turn into an error state and block further communication. If a PMP channel is blocked, the EHC is responsible to take action and perform error handling to unblock the channel and continue its operation. Other channels still remain usable, even if they share the same physical port. For more information refer to the Port Message Protocol V2.0.1 Specification <A HREF="#50495561_49764" CLASS="XRef"><EM CLASS="Blue">
+[3]</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-739639"></A>A channel failure will be reported through the PMP in form of a FIFO Control Message status, see Port Message Protocol V2.0.1 Specification <A HREF="#50495561_49764" CLASS="XRef"><EM CLASS="Blue">
+[3]</EM>
+</A>. The reason for the failure will be encoded into the status value with the TX_FAILURE type, see <A HREF="#50495533_78328" CLASS="XRef"><EM CLASS="Link">
+Table 2-3</EM>
+</A>. The error type categorizes the error values and indicates if a retry of the transmission is reasonable. If it is not reasonable, a retry will probably not solve the issue and instead result in the same error state again.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495533_pgfId-739649"></A>Table 2-3: <A NAME="50495533_78328"></A>Message Transmission Status</TableTitle>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495533_pgfId-739657"></A>Status Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495533_pgfId-739659"></A>Error Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495533_pgfId-739661"></A>Value</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495533_pgfId-739663"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="10" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495533_pgfId-739666"></A><A NAME="50495533_marker-760386"></A>TX_FAILURE</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495533_pgfId-739672"></A><A NAME="50495533_marker-760389"></A>CONFIG<EM CLASS="Blue">
+<A HREF="#50495533_56586" CLASS="XRef"></A><EM CLASS="Superscript">
+1</EM>
+<EM CLASS="Blue">
+</EM>
+</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495533_pgfId-739674"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739676"></A>MOST network is not accessible. <BR>
+The MOST network is never accessible via the ICM PMP channel.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="5" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495533_pgfId-739684"></A><A NAME="50495533_marker-760401"></A>ERROR<EM CLASS="Blue">
+<A HREF="#50495533_99931" CLASS="XRef"></A><EM CLASS="Superscript">
+2</EM>
+<EM CLASS="Blue">
+</EM>
+</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495533_pgfId-739686"></A>0x08</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739688"></A>Buffer full</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495533_pgfId-739694"></A>0x09</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739696"></A>CRC error</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495533_pgfId-739702"></A>0x0A</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739704"></A>Corrupted identifiers</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495533_pgfId-739710"></A>0x0B</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739712"></A>Corrupted Preemptive Acknowledgement (PACK) or CRC Acknowledgement (CACK)</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495533_pgfId-739718"></A>0x0C</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739720"></A>TX timeout</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495533_pgfId-739728"></A><A NAME="50495533_marker-760445"></A>FATAL<EM CLASS="Blue">
+<A HREF="#50495533_56586" CLASS="XRef"></A><EM CLASS="Superscript">
+1</EM>
+<EM CLASS="Blue">
+</EM>
+</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495533_pgfId-739730"></A>0x10</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739732"></A>Wrong target</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495533_pgfId-739738"></A>0x11</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739740"></A>Own node address</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495533_pgfId-739748"></A><A NAME="50495533_marker-760465"></A>UNAVAIL<EM CLASS="Blue">
+<A HREF="#50495533_56586" CLASS="XRef"></A><EM CLASS="Superscript">
+1</EM>
+<EM CLASS="Blue">
+</EM>
+</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495533_pgfId-739750"></A>0x18</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739752"></A>Control channel was switched off and a pending transmission has been canceled.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495533_pgfId-739758"></A>0x19</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-739760"></A>Control channel not available</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="TableFootnote1">
+<A NAME="50495533_pgfId-739762"></A>Note 1: <A NAME="50495533_56586"></A>An application retry isn't reasonable.</P>
+<P CLASS="TableFootnote">
+<A NAME="50495533_pgfId-739764"></A>2: <A NAME="50495533_99931"></A>Application can re-trigger transmission if reasonable.</P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-739766"></A>The value 0x01 is reported only for control messages targeted to INIC internal FBlocks and Shadows. All other values are reported if any transmission error on the MOST network has occurred.</P>
+</DIV>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495533_pgfId-739351"></A><A NAME="50495533_68879"></A>Configuration Interface</H3>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-763491"></A>The configuration interface is used by an EHC to control the INIC and to access the MOST network for management purposes. </P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-766167"></A>Typically, a MOST network device includes a microcontroller that manages the local INIC via the configuration interface. However, not all MOST network devices must necessarily incorporate a <A NAME="50495533_marker-766168"></A>microcontroller<A NAME="50495533_marker-766169"></A>. To cover these different approaches, the configuration interface supports the following cases of application: </P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-766171"></A>&#8226; <A NAME="50495533_marker-766170"></A>EHC controlled and </LI>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-766173"></A>&#8226; <A NAME="50495533_marker-766172"></A>Remote controlled. </LI>
+</UL>
+<DIV>
+<A NAME="MNSH2-EHCControlled" /><H6 CLASS="Heading2">
+<A NAME="50495533_pgfId-763522"></A>EHC Controlled</H6>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-833067"></A>The EHC-controlled configuration interface is shown in <A HREF="#50495533_20924" CLASS="XRef"><EM CLASS="Link">
+Figure 2-3</EM>
+</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495533_pgfId-832737"></A>Figure 2-3: <A NAME="50495533_20924"></A>Configuration Interface &#8211; EHC Controlled</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495533_pgfId-832739"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-13.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-763546"></A>A local EHC can utilize the <A NAME="50495533_marker-833464"></A>ICM and <A NAME="50495533_marker-833465"></A>RCM channels to access the configuration interface. It has to use the internal Device ID 0x0002 as the source address when sending messages. </P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-765799"></A>The address handling of a message forwarded by the INIC to the configuration interface is done as follows:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-765800"></A>&#8226; The source address is always the Local ID 0x0001 if the message was not received from the MOST network.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-765801"></A>&#8226; The target address for a received single cast message is replaced by the EHC&#8217;s internal Device ID 0x0002.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-771085"></A>&#8226; The target address for a multi cast message is not replaced.</LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-765835"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-765785"></A>The usage of the ICM PMP channel is as follows:<BR>
+Only access to local FBlock INIC.</P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-760791"></A>The usage of the RCM PMP channel is as follows:<BR>
+Full access to the MOST network for management purposes, which includes the control of remote INICs, NetworkMaster functionality and system diagnosis. Control messages received via the MOST network and/or the application interface (targeted to the Local ID 0x0001) are forwarded to the RCM PMP channel by using the following routing rules:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-764434"></A>&#8226; All FBlock INIC status messages</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-764664"></A>&#8226; All FBlock NetBlock status messages</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-764708"></A>&#8226; All FBlock NetworkMaster request messages</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-832492"></A>&#8226; All FBlock ExtendedNetworkControl status message</LI>
+</UL>
+</DIV>
+<DIV>
+<A NAME="MNSH2-RemoteControlled" /><H6 CLASS="Heading2">
+<A NAME="50495533_pgfId-763845"></A>Remote Controlled</H6>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-833668"></A>A remote EHC controls the INIC via the MOST network. For that it is required to set the <A HREF="#50495606_Device Management/Configuration Interface" CLASS="XRef">Configuration Interface</A> to <EM CLASS="Computer">
+None</EM>
+ (Remote Control Mode).</P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-833222"></A>The remote-controlled configuration interface is shown in <A HREF="#50495533_87633" CLASS="XRef"><EM CLASS="Link">
+Figure 2-4</EM>
+</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495533_pgfId-833216"></A>Figure 2-4: <A NAME="50495533_87633"></A>Configuration Interface &#8211; Remote Controlled</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495533_pgfId-833221"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-14.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<A NAME="MNSH2-OperationModes" /><H6 CLASS="Heading2">
+<A NAME="50495533_pgfId-765965"></A>Operation Modes</H6>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-766055"></A>Depending on the application design that requires either an EHC-controlled or a remote-controlled solution, the device needs to pass dedicated operation modes, see <A HREF="#50495533_15865" CLASS="XRef"><EM CLASS="Link">
+Figure 2-5</EM>
+</A>. Operation modes are:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-766060"></A>&#8226; <A NAME="50495533_marker-766059"></A>Protected Mode - used by the EHC-controlled and the remote-controlled application</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-766062"></A>&#8226; <A NAME="50495533_marker-766061"></A>Attached Mode - solely used by the EHC-controlled application </LI>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-766064"></A>&#8226; <A NAME="50495533_marker-766063"></A>Remote Control Mode - solely used by the remote-controlled application</LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-750432"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495533_pgfId-749780"></A>Figure 2-5: <A NAME="50495533_15865"></A>Configuration Interface Modes</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495533_pgfId-749785"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-15.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-749786"></A>&nbsp;</P>
+<DIV>
+<A NAME="MNSH3-ProtectedMode" /><H6 CLASS="Heading3">
+<A NAME="50495533_pgfId-749954"></A><A NAME="50495533_87094"></A>Protected Mode</H6>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-766457"></A>In Protected Mode the INIC autonomously controls all device management functionality including power management. In this mode all MOST sockets are destroyed and new sockets cannot be opened.</P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-749959"></A>While in Protected Mode, the MOST network remains <EM CLASS="Computer">
+<A HREF="#50495582_Available/Availability/MOSTNetworkStatus" CLASS="XRef"><EM CLASS="Computer">
+Available</EM>
+</A></EM>
+; all diagnosis tasks (e.g., RBD, physical layer test) will be finished.</P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-749960"></A>The Protected Mode incorporates the sub states:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-749961"></A>&#8226; Cleanup process</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-749962"></A>&#8226; Unsynchronized</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-749963"></A>&#8226; ICM/RCM PMP channels synchronized</LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-749964"></A>In Protected Mode <EM CLASS="Computer">
+INIC.DeviceStatus.Status.ConfigInterfaceMode</EM>
+ is <EM CLASS="Computer">
+Protected</EM>
+.</P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-749965"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-749967"></A><A NAME="50495533_25181"></A>Cleanup process</P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-749968"></A>The cleanup process can be triggered by several indicators:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-749969"></A>&#8226; PMP channel synchronization loss, which can occur on ICM and RCM PMP channels under the conditions shown in <A HREF="#50495533_15865" CLASS="XRef"><EM CLASS="Link">
+Figure 2-5</EM>
+</A>. Loss of synchronization can be based on different criteria, such as:</LI>
+<LI CLASS="Bullet2">
+<A NAME="50495533_pgfId-749973"></A>- The INIC receives a PMP SYNC command that addresses the ICM or RCM channel</LI>
+<LI CLASS="Bullet2">
+<A NAME="50495533_pgfId-749974"></A>- The PMP watchdog has expired</LI>
+<LI CLASS="Bullet2">
+<A NAME="50495533_pgfId-749975"></A>- PMP channel re-synchronization occurred due to an EHC reset</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-749976"></A>&#8226; The NetInterface Off state has been entered while being in Remote Control Mode.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-749977"></A>&#8226; The application controlling the INIC remotely has sent an <EM CLASS="Computer">
+INIC.DeviceSync(Synchronization</EM>
+ = <EM CLASS="Computer">
+Sync)</EM>
+ or <EM CLASS="Computer">
+INIC.DeviceSync(Synchronization</EM>
+ = <EM CLASS="Computer">
+UnSync)</EM>
+ message.</LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-749978"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-749979"></A>After the cleanup process state has been entered, the INIC performs the following actions:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-749981"></A>&#8226; Regains power management control</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-749983"></A>&#8226; Broadcasts <EM CLASS="Computer">
+NWM.Configuration.Status(NotOK)</EM>
+, if FBlock NetworkMaster is local. Will be forwarded to the application interface if in Attached Mode.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-749984"></A>&#8226; Disables message routing to the ICM and RCM PMP channels</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-749985"></A>&#8226; Destroys all resources created during runtime</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-749986"></A>&#8226; Removes all FBlock INIC notifications</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-749987"></A>&#8226; Drives the <EM CLASS="Pin-Name">
+MUTE/</EM>
+<EM CLASS="Overline">
+RSOUT</EM>
+<EM CLASS="Pin-Name">
+/GP8</EM>
+ pin low for 10 ms if the pin is configured to signal reset (see <A HREF="#50495606_DeviceManagement/MUTE/RSOUT Configuration" CLASS="XRef">MUTE/RSOUT Configuration</A>)</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-749991"></A>&#8226; Cancels a pending startup process that was initiated by function <EM CLASS="Computer">
+INIC.MOSTNetworkStartup()</EM>
+</LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-749995"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495533_pgfId-749994"></A>Note: The INIC remains in the cleanup process state until all actions listed above have been finished. Therefore, all ICM and RCM PMP channel re-synchronization attempts are blocked during this period of time.</Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-749996"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-749998"></A><A NAME="50495533_marker-770678"></A>Unsynchronized</P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-749999"></A>The unsynchronized state is the default state that is entered after the INIC is reset or a cleanup process has been finished.</P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-750690"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-750001"></A><A NAME="50495533_12230"></A><A NAME="50495533_marker-750000"></A>ICM/RCM PMP channels synchronized</P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-750002"></A>The PMP channel synchronized state is entered as soon as the EHC has finished ICM and RCM PMP channel synchronization. Now, the EHC has full access to all API functions.</P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-750005"></A>Before PMP channel synchronization can start, the ICM and RCM PMP channels must have been setup and configured as explained in <A HREF="#50495533_16511" CLASS="XRef"><EM CLASS="Link">
+Section 2.1</EM>
+</A>. ICM and RCM PMP channels get synchronized by the PMP channel synchronization procedure, which is described in the Port Message Protocol V2.0.1 Specification <A HREF="#50495561_49764" CLASS="XRef"><EM CLASS="Blue">
+[3]</EM>
+</A>. </P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-750012"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<A NAME="MNSH3-AttachedMode" /><H6 CLASS="Heading3">
+<A NAME="50495533_pgfId-750014"></A>Attached Mode</H6>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-750015"></A>In Attached Mode, the EHC takes over responsibility for the power management. </P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-750016"></A>When the Attached Mode is entered by calling the API command <EM CLASS="Computer">
+INIC.DeviceAttach()</EM>
+, <A HREF="#50495582_48199" CLASS="XRef">DeviceAttach (0x223)</A>, the INIC performs the following steps:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-769718"></A>&#8226; Notifications to all API properties are set, except <EM CLASS="Computer">
+INIC.GPIOPortTriggerEvent()</EM>
+ </LI>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-769729"></A>&#8226; Enables message routing to the ICM and RCM PMP channels</LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-750020"></A>In Attached Mode <EM CLASS="Computer">
+INIC.DeviceStatus.Status.ConfigInterfaceMode</EM>
+ is <EM CLASS="Computer">
+Attached</EM>
+.</P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-769640"></A>The following sequence chart shows the required steps to reach Attached Mode.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495533_pgfId-769545"></A>Figure 2-6: <A NAME="50495533_marker-770683"></A>Steps to Reach Attached Mode</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495533_pgfId-769547"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-16.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-750175"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<A NAME="MNSH3-RemoteControlMode" /><H6 CLASS="Heading3">
+<A NAME="50495533_pgfId-750179"></A><A NAME="50495533_11796"></A>Remote Control Mode</H6>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-750180"></A>In general, the Remote Control Mode is used only by devices that do not incorporate a local microcontroller. Hence, all functionality is remotely controlled and must be handled by a remote application.</P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-750183"></A>To enable the Remote Control Mode, the configuration string property <A HREF="#50495606_Device Management/Configuration Interface" CLASS="XRef">Configuration Interface</A> must be set to <EM CLASS="Computer">
+None</EM>
+. The synchronization of the remote application to the INIC and entering the Remote Control Mode is done by sending the command sequence as shown in <A HREF="#50495533_39039" CLASS="XRef"><EM CLASS="Link">
+Figure 2-7</EM>
+</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495533_pgfId-750194"></A>Figure 2-7: <A NAME="50495533_39039"></A>Remote Control Command Sequence</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495533_pgfId-750199"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-17.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-750203"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495533_pgfId-750202"></A>Note: To allow a clean synchronization, the command sequence must be executed by the remote application whenever:<BR>
+- the network transitions from state <EM CLASS="Computer">
+NotAvailable</EM>
+ to <EM CLASS="Computer">
+Available</EM>
+,<BR>
+- the remote application restarts, or<BR>
+- the remotely controlled INIC restarts.</Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-750204"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-750205"></A>In Remote Control Mode the FBlock INIC is visible to the MOST network and reported by the INIC's <EM CLASS="Computer">
+FBlockIDs.Status()</EM>
+ message. Hence, a proper InstID for the FBlock INIC should be assigned. This can be done by using the configuration string property <A HREF="#50495606_DeviceManagement/Default Instance ID" CLASS="XRef">Default Instance ID</A>.</P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-750210"></A>Control messages with OPTypes Set, SetGet, Start, and StartResult initiated from MOST network side are only executable in Remote Control Mode. However, the use of these operations is limited, see <A HREF="#50495533_63281" CLASS="XRef"><EM CLASS="Link">
+Table 2-4</EM>
+</A>. The following function operations are not accessible and therefore will return a function-specific error if the configuration interface is in Remote Control Mode.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495533_pgfId-767693"></A>Table 2-4: <A NAME="50495533_63281"></A>Limited Write Operations</TableTitle>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495533_pgfId-767695"></A>Operation</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-767697"></A>INIC.DevicePowerOff.SetGet</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-767699"></A>INIC.DeviceAttach.StartResult</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-767701"></A>INIC.MOSTNetworkStartup.StartResult</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-767703"></A>INIC.MOSTNetworkShutdown.StartResult</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-767705"></A>INIC.MOSTNetworkRBD.StartResult</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-767707"></A>INIC.MOSTNetworkForceNotAvailable.SetGet</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-767709"></A>INIC.MOSTNetworkSystemDiagnosis.StartResult</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495533_pgfId-832598"></A>INIC.MOSTNetworkSystemDiagnosisEnd.StartResult</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-749748"></A>&nbsp;</P>
+</DIV>
+</DIV>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495533_pgfId-739389"></A><A NAME="50495533_58055"></A>Application Interface</H3>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-767882"></A>The application interface is used by a local EHC to send and receive application-specific control messages. This interface can be used independently from the configuration interface. This allows to have a local EHC connected to the application interface although the INIC is remote controlled.</P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-833754"></A>The application interface is shown in <A HREF="#50495533_80850" CLASS="XRef"><EM CLASS="Link">
+Figure 2-8</EM>
+</A>. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495533_pgfId-832775"></A>Figure 2-8: <A NAME="50495533_80850"></A>Application Interface</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495533_pgfId-832777"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-18.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-767891"></A>A local EHC can utilize the MCM PMP channel as the communication interface. It has to use the internal Device ID 0x0003 as the source address when sending messages. </P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-767892"></A>The address handling of a message forwarded by the INIC to the application interface is done as follows:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-767893"></A>&#8226; The source address is always the Local ID 0x0001 if the message was not received from the MOST network.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-767894"></A>&#8226; The target address for a received single cast message is replaced by the EHC&#8217;s internal Device ID 0x0003.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-771160"></A>&#8226; The target address for a multi cast message is not replaced.</LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-767895"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-767896"></A>The usage of the MCM PMP channel is as follows:<BR>
+Full access to the MOST network for application purposes. Control messages received via the MOST network and/or the configuration interface (targeted to the Local ID 0x0001) are forwarded to the MCM PMP channel by using the routing rules as follows:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-767899"></A>&#8226; All FBlock NetBlock request messages</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-767900"></A>&#8226; All NetworkMaster status messages</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-768576"></A>&#8226; All request or status messages that don&#8217;t match the other rules</LI>
+</UL>
+<DIV>
+<A NAME="MNSH2-OperationModes" /><H6 CLASS="Heading2">
+<A NAME="50495533_pgfId-761236"></A>Operation Modes</H6>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-751049"></A>The application interface can reside in the following operation modes, see <A HREF="#50495533_55793" CLASS="XRef"><EM CLASS="Link">
+Figure 2-9</EM>
+</A>:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-751238"></A>&#8226; Protected Mode - no network access</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-751245"></A>&#8226; Attached Mode - network access</LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-770272"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495533_pgfId-751374"></A>Figure 2-9: <A NAME="50495533_55793"></A>Application Interface Modes</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495533_pgfId-751376"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-19.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-751208"></A>&nbsp;</P>
+<DIV>
+<A NAME="MNSH3-ProtectedMode" /><H6 CLASS="Heading3">
+<A NAME="50495533_pgfId-751218"></A><A NAME="50495533_70818"></A>Protected Mode</H6>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-768918"></A>In Protected Mode the application interface is not connected. The INIC autonomously answers to any <EM CLASS="Computer">
+NetBlock.FBlockIDs()</EM>
+ request message. </P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-768923"></A>The Protected Mode incorporates the following sub states:</P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-768924"></A>&#8226; Cleanup process</P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-768925"></A>&#8226; Unsynchronized</P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-768899"></A>In Protected Mode <EM CLASS="Computer">
+INIC.DeviceStatus.Status.AppInterfaceMode</EM>
+ is <EM CLASS="Computer">
+Protected</EM>
+.</P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-769339"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-768904"></A>Cleanup process</P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-766811"></A>The cleanup process can be triggered by PMP channel synchronization loss, which can occur on the MCM PMP channel under the conditions as shown in <A HREF="#50495533_15865" CLASS="XRef"><EM CLASS="Link">
+Figure 2-5</EM>
+</A>. Loss of synchronization can be based on different criteria, such as:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-766816"></A>&#8226; The INIC receives a PMP SYNC command that addresses the MCM PMP channel.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-766817"></A>&#8226; The PMP watchdog has expired.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-766818"></A>&#8226; PMP channel re-synchronization occurred due to an EHC reset.</LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-766821"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-766822"></A>After the cleanup process state has been entered, the INIC performs the following actions:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-766823"></A>&#8226; Regains NetBlock handling</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-766825"></A>&#8226; Unregisters all application FBlocks by sending an appropriate FBlock list, if a NetworkMaster is known</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-766827"></A>&#8226; Disables message routing to the MCM PMP channel</LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-766838"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495533_pgfId-766837"></A>Note: The INIC remains in the cleanup process state until all actions listed above have been finished. Therefore, all MCM PMP channel re-synchronization attempts are blocked during this period of time.</Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-766807"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<A NAME="MNSH3-AttachedMode" /><H6 CLASS="Heading3">
+<A NAME="50495533_pgfId-751551"></A><A NAME="50495533_70199"></A>Attached Mode</H6>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-751618"></A>In Attached Mode, the local EHC has full access to the MOST network.</P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-751619"></A>When entering the Attached Mode, the INIC performs the following actions:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-751621"></A>&#8226; Sends the latest <EM CLASS="Computer">
+NWM.Configuration.Status()</EM>
+ to the EHC</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-751622"></A>&#8226; Stops autonomous NetBlock handling; this means, it stops answering FBlockID list requests and routes all appropriate NetBlock request to the EHC</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495533_pgfId-751623"></A>&#8226; Enables message routing to the MCM PMP channel</LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-762756"></A>In Attached Mode INIC.DeviceStatus.Status.AppInterfaceMode is Attached.</P>
+</DIV>
+</DIV>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495533_pgfId-739453"></A>Configuration</H3>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-739457"></A>As outlined in <A HREF="#50495606_34947" CLASS="XRef"><EM CLASS="Link">
+Section 22.1</EM>
+</A>, the configuration string allows the configuration of the peripheral ports used by the <A HREF="#50495606_Device Management/Configuration Interface" CLASS="XRef">Configuration Interface</A> and <A HREF="#50495606_Device Management/Application Interface" CLASS="XRef">Application Interface</A>.</P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-769920"></A>The INIC automatically creates appropriate sockets and other resource objects. The chosen configuration will be available after chip startup. </P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-739458"></A>If the <A HREF="#50495606_Device Management/Configuration Interface" CLASS="XRef">Configuration Interface</A> is set to <EM CLASS="Computer">
+None</EM>
+, the controlling application can only be a remote application, which excludes the use of an local EHC for configuration purposes. In this case the application interface can still be used.</P>
+<P CLASS="Body">
+<A NAME="50495533_pgfId-770511"></A>&nbsp;</P>
+</DIV>
+</DIV>
+<h1><a class="anchor" id="SEC_OS81118_5"></a>
+Power Management</h1>
+<DIV>
+<H1 CLASS="Chapter">
+<A NAME="50495566_pgfId-630401"></A><DIV>
+<IMG SRC="OS81118-20.gif" ALT="">
+</DIV>
+<A NAME="50495566_47728"></A>Power Management<DIV>
+<IMG SRC="OS81118-21.gif" ALT="">
+</DIV>
+</H1>
+<P CLASS="Body">
+<A NAME="50495566_pgfId-655613"></A>The INIC is able to handle several power states, see <A HREF="#50495582_60092" CLASS="XRef"><EM CLASS="Link">
+Section 21.2.2.1</EM>
+</A>. For this purpose, it provides a power management interface, which consists of two input pins (<EM CLASS="Pin-Name">
+PS0</EM>
+<A NAME="50495566_marker-777810"></A> and <EM CLASS="Pin-Name">
+PS1</EM>
+<A NAME="50495566_marker-777811"></A> pins) and one output pin (<EM CLASS="Pin-Name">
+PWROFF</EM>
+<A NAME="50495566_marker-777812"></A> pin). The power management interface can be used to signal the current power state of a device and to trigger a Ring Break Diagnosis or a network startup by using an external glue logic or hardware power management (Microchip&#8217;s MPM85000 <A HREF="#50495561_27422" CLASS="XRef"><EM CLASS="Blue">
+[11]</EM>
+</A>). The power management is based on the <A NAME="50495566_marker-777816"></A>configuration interface.</P>
+<P CLASS="Body">
+<A NAME="50495566_pgfId-677269"></A>Possible states that can be signaled by the power management interface are described in the table below:</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495566_pgfId-668582"></A>Table 3-1: <A NAME="50495566_23533"></A>Power States Signaled by PS0 and PS1 Pins (Continued)</TableTitle>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495566_pgfId-668592"></A>PS1</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495566_pgfId-668594"></A>PS0</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495566_pgfId-668596"></A>Power State</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495566_pgfId-668598"></A>Action Set in the Configuration String</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495566_pgfId-668600"></A>Behavior in Configuration Interface Mode</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495566_pgfId-668709"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495566_pgfId-668711"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495566_pgfId-668714"></A><A NAME="50495566_marker-771820"></A>U<EM CLASS="Subscript">
+Normal,</EM>
+ <BR>
+see <A HREF="#50495566_17645" CLASS="XRef"><EM CLASS="Link">
+Figure 3-2</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495566_pgfId-668716"></A>n/a</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495566_pgfId-756785"></A>Protected Mode:</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495566_pgfId-756786"></A>Withdraws the actions done on U<EM CLASS="Subscript">
+Low.</EM>
+</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495566_pgfId-756787"></A>Attached Mode:<BR>
+Device signals U<EM CLASS="Subscript">
+Normal.</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495566_pgfId-668720"></A>0</P>
+</TD>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495566_pgfId-668722"></A>1</P>
+</TD>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495566_pgfId-668724"></A><A NAME="50495566_marker-771833"></A>Switch-To-Power (STP), <BR>
+see <A HREF="#50495566_27303" CLASS="XRef"><EM CLASS="Link">
+Figure 3-4</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495566_pgfId-668726"></A>None</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495566_pgfId-756813"></A>Protected Mode:</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495566_pgfId-756814"></A>No action occurs.</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495566_pgfId-756815"></A>Attached Mode:<BR>
+Device signals STP.<EM CLASS="Subscript">
+</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495566_pgfId-668736"></A><A NAME="50495566_marker-771848"></A>StartDiagnosisSlave</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495566_pgfId-675469"></A>Protected Mode:<BR>
+Device triggers a Ring Break Diagnosis, see <A HREF="#50495565_10447" CLASS="XRef"><EM CLASS="Link">
+Section 4.6</EM>
+</A>. </P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495566_pgfId-675405"></A>Attached Mode:<BR>
+Device signals STP.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495566_pgfId-754424"></A><A NAME="50495566_marker-771860"></A>StartDiagnosisMaster</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495566_pgfId-777266"></A><A NAME="50495566_marker-777349"></A>StartNetwork</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495566_pgfId-777309"></A>Protected Mode:<BR>
+Device triggers a network startup, see <A HREF="#50495565_28700" CLASS="XRef"><EM CLASS="Link">
+Section 4.2</EM>
+</A>. </P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495566_pgfId-777268"></A>Attached Mode:<BR>
+Device signals STP.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495566_pgfId-668740"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495566_pgfId-668742"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495566_pgfId-668745"></A><A NAME="50495566_marker-771869"></A>U<EM CLASS="Subscript">
+Critical,</EM>
+ <BR>
+see <A HREF="#50495566_35888" CLASS="XRef"><EM CLASS="Link">
+Figure 3-5</EM>
+</A><EM CLASS="Subscript">
+</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495566_pgfId-668747"></A>n/a</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495566_pgfId-771000"></A>Protected Mode:</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495566_pgfId-771001"></A>No action occurs.</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495566_pgfId-771002"></A>Attached Mode:<BR>
+Device signals U<EM CLASS="Subscript">
+Critical.</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495566_pgfId-668761"></A>1</P>
+</TD>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495566_pgfId-668763"></A>1</P>
+</TD>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495566_pgfId-668766"></A><A NAME="50495566_marker-771882"></A>U<EM CLASS="Subscript">
+Low,</EM>
+ <BR>
+see <A HREF="#50495566_94690" CLASS="XRef"><EM CLASS="Link">
+Figure 3-3</EM>
+</A><EM CLASS="Subscript">
+</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495566_pgfId-668768"></A>None</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495566_pgfId-756729"></A>Protected Mode:</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495566_pgfId-668770"></A>No action occurs.</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495566_pgfId-756754"></A>Attached Mode:<BR>
+Device signals U<EM CLASS="Subscript">
+Low.</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495566_pgfId-668778"></A><A NAME="50495566_marker-771897"></A>PowerOff</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495566_pgfId-668780"></A>Protected Mode:</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495566_pgfId-675505"></A>Device sets <EM CLASS="Pin-Name">
+PWROFF</EM>
+ pin high.</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495566_pgfId-675605"></A>Attached Mode:<BR>
+Device signals U<EM CLASS="Subscript">
+Low.</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495566_pgfId-668788"></A><A NAME="50495566_marker-771910"></A>ForcedNA</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495566_pgfId-668793"></A>Protected Mode:</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495566_pgfId-675524"></A>Device enters <EM CLASS="Computer">
+<A HREF="#50495582_NotAvailable/Availability/MOSTNetworkStatus" CLASS="XRef"><EM CLASS="Computer">
+NotAvailable</EM>
+</A></EM>
+ state. </P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495566_pgfId-675631"></A>Attached Mode:<BR>
+Device signals U<EM CLASS="Subscript">
+Low.</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495566_pgfId-668801"></A><A NAME="50495566_marker-771926"></A>PowerOffForcedNA</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495566_pgfId-668803"></A>Protected Mode:</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495566_pgfId-675543"></A>Device sets <EM CLASS="Pin-Name">
+PWROFF</EM>
+ pin high and enters <EM CLASS="Computer">
+<A HREF="#50495582_NotAvailable/Availability/MOSTNetworkStatus" CLASS="XRef"><EM CLASS="Computer">
+NotAvailable</EM>
+</A></EM>
+ state.</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495566_pgfId-675656"></A>Attached Mode:</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495566_pgfId-675658"></A>Device signals U<EM CLASS="Subscript">
+Low.</EM>
+</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495566_pgfId-777454"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495566_pgfId-655241"></A>The INIC provides a timer, <A HREF="#50495606_PowerManagement/Power Off Time" CLASS="XRef">Power Off Time</A>, to set the <EM CLASS="Pin-Name">
+PWROFF</EM>
+ pin to high when the MOST network is in NetInterface Off state (see <A HREF="#50495565_73589" CLASS="XRef"><EM CLASS="Link">
+Figure 4-1</EM>
+</A>) and the INIC has entered Protected Mode. The timer starts counting when both conditions are met and stops when one of the conditions has left its state, which means, either the MOST network leaves NetInterface Off state or INIC leaves Protected Mode. Then, the timer is cleared and the <EM CLASS="Pin-Name">
+PWROFF</EM>
+ pin will either stay low or be driven low if it was high.</P>
+<P CLASS="Body">
+<A NAME="50495566_pgfId-677276"></A>Take into account, if <A HREF="#50495606_PowerManagement/Power Off Time" CLASS="XRef">Power Off Time</A> is used to control the power supply of the device via the <EM CLASS="Pin-Name">
+PWROFF</EM>
+ pin, the timer value must be chosen higher, compared to the time a device would require to stay in NetInterface Off state and Protected Mode. This timing requirement must be fulfilled for example when the EHC is flashed, otherwise a power off will interrupt the flash process.</P>
+<P CLASS="Body">
+<A NAME="50495566_pgfId-675940"></A>Power Off Pin</P>
+<P CLASS="Body">
+<A NAME="50495566_pgfId-655249"></A>The <EM CLASS="Pin-Name">
+PWROFF</EM>
+ pin is set high due to the following conditions:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495566_pgfId-655256"></A>&#8226; <EM CLASS="Pin-Name">
+PS0</EM>
+ and <EM CLASS="Pin-Name">
+PS1</EM>
+ pins signal <EM CLASS="Computer">
+<A HREF="#50495582_DeviceStatus/PowerState/ULow" CLASS="XRef"><EM CLASS="Computer">
+ULow</EM>
+</A></EM>
+, INIC is in Protected Mode, and <A HREF="#50495606_PowerManagement/Action On U_Low" CLASS="XRef">Action On U_Low</A> is <EM CLASS="Computer">
+PowerOff</EM>
+ or <EM CLASS="Computer">
+PowerOffForcedNA</EM>
+.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495566_pgfId-655260"></A>&#8226; <A HREF="#50495606_PowerManagement/Power Off Time" CLASS="XRef">Power Off Time</A> is expired and INIC is in Protected Mode.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495566_pgfId-655261"></A>&#8226; <EM CLASS="Pin-Name">
+PWROFF</EM>
+ pin was set to high by function <EM CLASS="Computer">
+INIC.DevicePowerOff.SetGet(PowerOff </EM>
+= <EM CLASS="Computer">
+True)</EM>
+.</LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495566_pgfId-655262"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495566_pgfId-655263"></A>As long as one of the above mentioned conditions is true, the <EM CLASS="Pin-Name">
+PWROFF</EM>
+ pin will stay high.</P>
+<P CLASS="Body">
+<A NAME="50495566_pgfId-777460"></A>If the <EM CLASS="Pin-Name">
+PWROFF</EM>
+ pin was set to high because of <EM CLASS="Pin-Name">
+PS0</EM>
+ and <EM CLASS="Pin-Name">
+PS1</EM>
+ pins signaled <EM CLASS="Computer">
+<A HREF="#50495582_DeviceStatus/PowerState/ULow" CLASS="XRef"><EM CLASS="Computer">
+ULow</EM>
+</A></EM>
+ in Protected Mode, the <EM CLASS="Pin-Name">
+PWROFF</EM>
+ pin will stay high even when INIC switches to Attached Mode. In order to drive the <EM CLASS="Pin-Name">
+PWROFF</EM>
+ pin low, <EM CLASS="Computer">
+INIC.DevicePowerOff.SetGet(PowerOff</EM>
+ = <EM CLASS="Computer">
+FALSE)</EM>
+ must be sent to INIC.</P>
+<P CLASS="Body">
+<A NAME="50495566_pgfId-677297"></A>If the <EM CLASS="Pin-Name">
+PWROFF</EM>
+ pin was set to high due to sending <EM CLASS="Computer">
+INIC.DevicePowerOff.SetGet(PowerOff</EM>
+ = <EM CLASS="Computer">
+True)</EM>
+ and INIC switches to Protected Mode, the <EM CLASS="Pin-Name">
+PWROFF</EM>
+ pin may be driven low if no other condition occurs that forces the <EM CLASS="Pin-Name">
+PWROFF</EM>
+ pin to be set high.</P>
+<P CLASS="Body">
+<A NAME="50495566_pgfId-675919"></A>Availability</P>
+<P CLASS="Body">
+<A NAME="50495566_pgfId-675895"></A>The network interface is set to <EM CLASS="Computer">
+<A HREF="#50495582_NotAvailable/Availability/MOSTNetworkStatus" CLASS="XRef"><EM CLASS="Computer">
+NotAvailable</EM>
+</A></EM>
+ and remains in this state based on the following conditions:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495566_pgfId-655281"></A>&#8226; <EM CLASS="Pin-Name">
+PS0</EM>
+ and <EM CLASS="Pin-Name">
+PS1</EM>
+ pins signal <EM CLASS="Computer">
+<A HREF="#50495582_DeviceStatus/PowerState/ULow" CLASS="XRef"><EM CLASS="Computer">
+ULow</EM>
+</A></EM>
+, INIC is in Protected Mode, and <A HREF="#50495606_PowerManagement/Action On U_Low" CLASS="XRef">Action On U_Low</A> is <EM CLASS="Computer">
+ForcedNA</EM>
+ or <EM CLASS="Computer">
+PowerOffForcedNA</EM>
+</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495566_pgfId-655285"></A>&#8226; <EM CLASS="Computer">
+<A HREF="#50495582_ForcedNA/AvailInfo/MostStatus" CLASS="XRef"><EM CLASS="Computer">
+ForcedNA</EM>
+</A></EM>
+ was set by function <EM CLASS="Computer">
+INIC.MOSTNetworkForceNotAvailable.SetGet(Force</EM>
+ = <EM CLASS="Computer">
+True)</EM>
+</LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495566_pgfId-655286"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495566_pgfId-655289"></A>As long as one of the above mentioned conditions is true, the network interface remains in <EM CLASS="Computer">
+<A HREF="#50495582_NotAvailable/Availability/MOSTNetworkStatus" CLASS="XRef"><EM CLASS="Computer">
+NotAvailable</EM>
+</A></EM>
+ state, regardless of the MOST network activity state on Rx. If <EM CLASS="Computer">
+<A HREF="#50495582_NotAvailable/Availability/MOSTNetworkStatus" CLASS="XRef"><EM CLASS="Computer">
+NotAvailable</EM>
+</A></EM>
+ state was set since the <EM CLASS="Pin-Name">
+PS0</EM>
+ and <EM CLASS="Pin-Name">
+PS1</EM>
+ pins signaled <EM CLASS="Computer">
+<A HREF="#50495582_DeviceStatus/PowerState/ULow" CLASS="XRef"><EM CLASS="Computer">
+ULow</EM>
+</A></EM>
+ in Protected Mode, the INIC will stay in <EM CLASS="Computer">
+<A HREF="#50495582_NotAvailable/Availability/MOSTNetworkStatus" CLASS="XRef"><EM CLASS="Computer">
+NotAvailable</EM>
+</A></EM>
+ state, even when INIC switches to Attached Mode. In order to clear <EM CLASS="Computer">
+<A HREF="#50495582_NotAvailable/Availability/MOSTNetworkStatus" CLASS="XRef"><EM CLASS="Computer">
+NotAvailable</EM>
+</A></EM>
+, <EM CLASS="Computer">
+INIC.MOSTNetworkForceNotAvailable.SetGet(Force</EM>
+ = <EM CLASS="Computer">
+FALSE)</EM>
+ must be sent to INIC.</P>
+<P CLASS="Body">
+<A NAME="50495566_pgfId-677300"></A>If <EM CLASS="Computer">
+<A HREF="#50495582_ForcedNA/AvailInfo/MostStatus" CLASS="XRef"><EM CLASS="Computer">
+ForcedNA</EM>
+</A></EM>
+ was set due to sending <EM CLASS="Computer">
+INIC.MOSTNetworkForceNotAvailable.SetGet(Force</EM>
+ = <EM CLASS="Computer">
+True)</EM>
+ and INIC switches to Protected Mode, <EM CLASS="Computer">
+ForcedNA</EM>
+ may be cleared if no other condition occurs that requires <EM CLASS="Computer">
+ForcedNA</EM>
+ to be set.</P>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495566_pgfId-655304"></A>Configuration</H3>
+<P CLASS="Body">
+<A NAME="50495566_pgfId-675964"></A>The behavior of the power management can be defined in the configuration string, but it is also possible to interfere in the INIC&#8217;s operational behavior during runtime if there is a condition detected that requires such an action. This means, if the INIC is in Attached Mode and an erroneous <EM CLASS="Computer">
+<A HREF="#50495582_INIC/DeviceStatus/PowerState" CLASS="XRef">PowerState</A></EM>
+ is detected, the EHC can send <EM CLASS="Computer">
+INIC.DevicePowerOff.SetGet(PowerOff</EM>
+ = <EM CLASS="Computer">
+True)</EM>
+, <A HREF="#50495582_58079" CLASS="XRef">DevicePowerOff (0x222)</A>, to set the state of the <EM CLASS="Pin-Name">
+PWROFF</EM>
+ pin to high. Since it could be also required to force the network interface to enter <EM CLASS="Computer">
+<A HREF="#50495582_NotAvailable/Availability/MOSTNetworkStatus" CLASS="XRef"><EM CLASS="Computer">
+NotAvailable</EM>
+</A></EM>
+ state due to an erroneous <EM CLASS="Computer">
+<A HREF="#50495582_INIC/DeviceStatus/PowerState" CLASS="XRef">PowerState</A></EM>
+, the EHC can send <EM CLASS="Computer">
+INIC.MOSTNetworkForceNotAvailable.SetGet(Force</EM>
+ = <EM CLASS="Computer">
+True)</EM>
+, <A HREF="#50495582_92391" CLASS="XRef">MOSTNetworkForceNotAvailable (0x52B)</A>. </P>
+<P CLASS="Body">
+<A NAME="50495566_pgfId-747142"></A>The behavior of the <EM CLASS="Pin-Name">
+PWROFF</EM>
+ pin after detecting an erroneous power condition and thus INIC&#8217;s automatic handling of the network interface in Protected Mode, can be defined in the configuration string, see properties <A HREF="#50495606_PowerManagement/Action On U_Low" CLASS="XRef">Action On U_Low</A> and <A HREF="#50495606_PowerManagement/Power Off Time" CLASS="XRef">Power Off Time</A>. In addition, if <EM CLASS="Pin-Name">
+PS0</EM>
+ and <EM CLASS="Pin-Name">
+PS1</EM>
+ pins indicate the respective power state conditions, property <A HREF="#50495606_PowerManagement/Action On STP" CLASS="XRef">Action On STP</A> can trigger an RBD, see <A HREF="#50495566_23533" CLASS="XRef"><EM CLASS="Link">
+Table 3-1</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495566_pgfId-747158"></A>If the INIC is in Attached Mode, it reports the respective power state in <EM CLASS="Computer">
+INIC.Device-Status(PowerState)</EM>
+ to the EHC without initiating any action, <A HREF="#50495582_60092" CLASS="XRef">DeviceStatus (0x220)</A>.</P>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495566_pgfId-655339"></A><A NAME="50495566_26891"></A>Power States</H3>
+<P CLASS="Body">
+<A NAME="50495566_pgfId-655343"></A><A HREF="#50495566_21277" CLASS="XRef"><EM CLASS="Link">
+Figure 3-1</EM>
+</A> gives an overview of the INIC&#8217;s power states, which are <EM CLASS="Computer">
+<A HREF="#50495582_DeviceStatus/PowerState/UNormal" CLASS="XRef"><EM CLASS="Computer">
+UNormal</EM>
+</A></EM>
+, <EM CLASS="Computer">
+<A HREF="#50495582_DeviceStatus/PowerState/ULow" CLASS="XRef"><EM CLASS="Computer">
+ULow</EM>
+</A></EM>
+, <EM CLASS="Computer">
+<A HREF="#50495582_DeviceStatus/PowerState/STP" CLASS="XRef"><EM CLASS="Computer">
+STP</EM>
+</A></EM>
+, and <EM CLASS="Computer">
+<A HREF="#50495582_DeviceStatus/PowerState/UCritical" CLASS="XRef"><EM CLASS="Computer">
+UCritical</EM>
+</A></EM>
+. Whenever a change occurs, the power management will be updated on any of the following triggers:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495566_pgfId-674944"></A>&#8226; A change on the <EM CLASS="Pin-Name">
+PS0</EM>
+ and <EM CLASS="Pin-Name">
+PS1</EM>
+ pins</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495566_pgfId-674945"></A>&#8226; A change in the operation mode (on a transition to Protected Mode or on a transition to Attached Mode)</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495566_pgfId-674949"></A>&#8226; Timer <A HREF="#50495606_PowerManagement/Power Off Time" CLASS="XRef">Power Off Time</A> has expired</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495566_pgfId-655350"></A>&#8226; <EM CLASS="Computer">
+INIC.DevicePowerOff()</EM>
+ message was received</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495566_pgfId-655351"></A>&#8226; <EM CLASS="Computer">
+INIC.MOSTNetworkForceNotAvailable()</EM>
+ message was received</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495566_pgfId-779335"></A>&#8226; Start of Ring Break Diagnosis failed</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495566_pgfId-779356"></A>&#8226; Start of network startup failed</LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495566_pgfId-659247"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495566_pgfId-655876"></A>Figure 3-1: <A NAME="50495566_21277"></A><A NAME="50495566_marker-663589"></A>Power States</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495566_pgfId-655878"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-22.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495566_pgfId-655364"></A><A HREF="#50495566_17645" CLASS="XRef"><EM CLASS="Link">
+Figure 3-2</EM>
+</A> through <A HREF="#50495566_35888" CLASS="XRef"><EM CLASS="Link">
+Figure 3-5</EM>
+</A> depict the power states in detail and show environmental conditions that can influence these states.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495566_pgfId-656113"></A>Figure 3-2: <A NAME="50495566_marker-752884"></A><A NAME="50495566_17645"></A>Power State is U<EM CLASS="Subscript">
+Normal</EM>
+</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495566_pgfId-656115"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-23.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495566_pgfId-656910"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495566_pgfId-656919"></A>Figure 3-3: <A NAME="50495566_marker-776945"></A><A NAME="50495566_94690"></A>Power State is U<EM CLASS="Subscript">
+Low</EM>
+</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495566_pgfId-656924"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-24.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495566_pgfId-657010"></A> &nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495566_pgfId-776772"></A>Figure 3-4: <A NAME="50495566_27303"></A>Power State is STP</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495566_pgfId-776650"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-25.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495566_pgfId-656090"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495566_pgfId-656192"></A>Figure 3-5: <A NAME="50495566_35888"></A><A NAME="50495566_marker-776974"></A>Power State is U<EM CLASS="Subscript">
+Critical</EM>
+</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495566_pgfId-656194"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-26.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495566_pgfId-676657"></A>&nbsp;</P>
+</DIV>
+</DIV>
+<h1><a class="anchor" id="SEC_OS81118_6"></a>
+Network Management</h1>
+<DIV>
+<H1 CLASS="Chapter">
+<A NAME="50495565_pgfId-678298"></A><DIV>
+<IMG SRC="OS81118-27.gif" ALT="">
+</DIV>
+<A NAME="50495565_47728"></A>Network Management<DIV>
+<IMG SRC="OS81118-28.gif" ALT="">
+</DIV>
+</H1>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-678299"></A>The network management handles MOST network related tasks, such as:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495565_pgfId-680246"></A>&#8226; NetInterface handling including <A NAME="50495565_marker-743575"></A>MOST network startup and <A NAME="50495565_marker-743580"></A>shutdown, <A NAME="50495565_marker-743585"></A>Ring Break Diagnosis, <A NAME="50495565_marker-743590"></A>physical layer test, and system diagnosis</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495565_pgfId-679964"></A>&#8226; Addressing for MCM and MDP</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495565_pgfId-680032"></A>&#8226; Provision of <A NAME="50495565_marker-757344"></A>FBlock NetBlock, FBlock <A NAME="50495565_marker-757345"></A>NetworkMaster Shadow, and FBlock <BR>
+ExtendedNetworkControl functionality</LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-680251"></A>MOST network management for the EHC is only provided when the configuration interface is in Attached Mode, see <A HREF="#50495533_70199" CLASS="XRef"><EM CLASS="Link">
+Section 2.3.1.2</EM>
+</A>.</P>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495565_pgfId-655184"></A><A NAME="50495565_48977"></A>NetInterface</H3>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-655185"></A>The INIC contains a <A NAME="50495565_marker-661014"></A>MOST Supervisor kernel, which implements the NetInterface state diagram and the flow between the states. NetInterface states are abstracted to the general states <EM CLASS="Computer">
+<A HREF="#50495582_Available/Availability/MOSTNetworkStatus" CLASS="XRef"><EM CLASS="Computer">
+Available</EM>
+</A></EM>
+ and <EM CLASS="Computer">
+<A HREF="#50495582_NotAvailable/Availability/MOSTNetworkStatus" CLASS="XRef"><EM CLASS="Computer">
+NotAvailable</EM>
+</A></EM>
+, see <A HREF="#50495565_73589" CLASS="XRef"><EM CLASS="Link">
+Figure 4-1</EM>
+</A>. If the network is in <A NAME="50495565_marker-661019"></A>NetInterface Normal Operation state, the network is considered available and data communication including packet, control, and streaming data, is possible. In all other NetInterface states it is considered not available; in these states data communication is not possible.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495565_pgfId-655817"></A>Figure 4-1: <A NAME="50495565_73589"></A><A NAME="50495565_marker-661088"></A>NetInterface State Diagram</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495565_pgfId-655819"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-29.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495565_pgfId-674450"></A><A NAME="50495565_28700"></A>Startup</H3>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-674451"></A>By command or network activity</P>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-740977"></A>Before the MOST network can be available, it must be started by an application request, whereas the application is a device that is configured as TimingMaster. The MOST network can be started by the EHC using the <EM CLASS="Computer">
+INIC.MOSTNetworkStartup()</EM>
+ function. After function <EM CLASS="Computer">
+INIC.MOSTNetworkStartup()</EM>
+ has been called, the INIC is started as TimingMaster. The function must be called only by the TimingMaster device to avoid a multi-master failure situation. </P>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-751603"></A>If the INIC is woken up by network activity, it starts up as TimingSlave, which is the default device mode of the INIC. As long as the INIC detects activity at its Rx, it enables its signal on Tx.</P>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-813054"></A>By PS0 and PS1 pins</P>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-813083"></A>Another way for the TimingMaster to start the MOST network is checking the signals on the <EM CLASS="Pin-Name">
+PS0</EM>
+ and <EM CLASS="Pin-Name">
+PS1</EM>
+ pins. The feature can be enabled in the configuration string by selecting <EM CLASS="Computer">
+NetworkStartup</EM>
+ in property <A HREF="#50495606_PowerManagement/Action On STP" CLASS="XRef">Action On STP</A>. In this case two additional properties become visible: <A HREF="#50495606_PowerManagement/Auto Forced Not Available Time" CLASS="XRef">Auto Forced Not Available Time</A> and <A HREF="#50495606_PowerManagement/Packet Bandwidth" CLASS="XRef">Packet Bandwidth</A>.</P>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-813595"></A>A network startup is triggered when <EM CLASS="Pin-Name">
+PS0</EM>
+ and <EM CLASS="Pin-Name">
+PS1</EM>
+ indicate STP, see <A HREF="#50495566_23533" CLASS="XRef"><EM CLASS="Link">
+Table 3-1</EM>
+</A>. If a network startup should be executed on every INIC reset and no power state needs to be signaled by <EM CLASS="Pin-Name">
+PS0</EM>
+ and <EM CLASS="Pin-Name">
+PS1</EM>
+, STP can be applied statically. If the network startup should be controlled by an external controller, STP can be applied on demand. If the network should not be started after reset, U<EM CLASS="Subscript">
+Normal</EM>
+ must be applied, see <A HREF="#50495566_23533" CLASS="XRef"><EM CLASS="Link">
+Table 3-1</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-813697"></A>Triggering a network startup on <EM CLASS="Pin-Name">
+PS0</EM>
+ and <EM CLASS="Pin-Name">
+PS1</EM>
+ is only possible after a reset of the INIC and if the configuration interface resides in Protected Mode. Once the configuration interface has changed to Attached Mode or a network startup on <EM CLASS="Pin-Name">
+PS0</EM>
+ and <EM CLASS="Pin-Name">
+PS1</EM>
+ was triggered, an additional network startup on <EM CLASS="Pin-Name">
+PS0</EM>
+ and <EM CLASS="Pin-Name">
+PS1</EM>
+ is no longer possible, until the INIC goes through reset again.</P>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-813688"></A>The INIC starts the network on a <EM CLASS="Pin-Name">
+PS0</EM>
+ and <EM CLASS="Pin-Name">
+PS1</EM>
+ trigger condition until the INIC gains NetInterface Normal Operation (Network Available) state or until the timer <A HREF="#50495606_PowerManagement/Auto Forced Not Available Time" CLASS="XRef">Auto Forced Not Available Time</A> has expired. In case the INIC gains Normal Operation state and the configuration interface resides in Protected Mode, the network will be set to <EM CLASS="Computer">
+<A HREF="#50495582_ForcedNA/AvailInfo/MostStatus" CLASS="XRef"><EM CLASS="Computer">
+ForcedNA</EM>
+</A></EM>
+ state, in case the <A HREF="#50495606_PowerManagement/Auto Forced Not Available Time" CLASS="XRef">Auto Forced Not Available Time</A> timer has expired. To avoid an <A HREF="#50495606_PowerManagement/Auto Forced Not Available Time" CLASS="XRef">Auto Forced Not Available Time</A> timer expiration, the EHC has to attach to the INIC within <A HREF="#50495606_PowerManagement/Auto Forced Not Available Time" CLASS="XRef">Auto Forced Not Available Time</A> or the <A HREF="#50495606_PowerManagement/Auto Forced Not Available Time" CLASS="XRef">Auto Forced Not Available Time</A> timer has to be set to 0xFFFF, which is not recommended.</P>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-673917"></A>Failed </P>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-687296"></A>If the MOST network startup was initiated by sending the <EM CLASS="Computer">
+INIC.MOSTNetworkStartup()</EM>
+ command to the INIC, the INIC tries to start the network until NetInterface Normal Operation state is gained or until <EM CLASS="Computer">
+INIC.MOSTNetworkShutdown()</EM>
+ is called by the EHC. The INIC cancels a pending startup, if it enters Protected Mode. If the network startup was canceled, a new startup can be tried immediately again. </P>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-741653"></A>Reasons for a failed network startup are as follows: </P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495565_pgfId-687297"></A>&#8226; stable lock cannot be gained (e.g., the MOST ring is not closed) or</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495565_pgfId-687298"></A>&#8226; the network has a multi-master condition (only one TimingMaster is allowed).</LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-655260"></A>In addition, a MOST network startup is not possible if the INIC is in <EM CLASS="Computer">
+<A HREF="#50495582_ForcedNA/AvailInfo/MostStatus" CLASS="XRef"><EM CLASS="Computer">
+ForcedNA</EM>
+</A></EM>
+ state or in <EM CLASS="Computer">
+<A HREF="#50495582_Diagnosis/AvailInfo/MostStatus" CLASS="XRef"><EM CLASS="Computer">
+Diagnosis</EM>
+</A></EM>
+ state. If in this situation the network was started up by using <EM CLASS="Computer">
+INIC.MOSTNetworkStartup()</EM>
+ function, an immediate error is returned. A new startup is only possible after the error state has been freed.</P>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-813019"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-813049"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-743694"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495565_pgfId-655261"></A>Available</H3>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-675690"></A>If the startup was successful, the MOST network and its port will enter the available state, meaning <EM CLASS="Computer">
+INIC.MOSTNetworkStatus.Availability</EM>
+ (<A HREF="#50495582_92652" CLASS="XRef">MOSTNetworkStatus (0x520)</A>) and <EM CLASS="Computer">
+INIC.MOSTPortStatus.Availability</EM>
+ (<A HREF="#50495582_18468" CLASS="XRef">MOSTPortStatus (0x602)</A>) change their state to <EM CLASS="Computer">
+Available</EM>
+, which in turn means that the network is now in NetInterface Normal Operation state, see <A HREF="#50495565_73589" CLASS="XRef"><EM CLASS="Link">
+Figure 4-1</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-684553"></A><EM CLASS="Computer">
+<A HREF="#50495582_INIC/MOSTNetworkStatus/AvailabilityTransitionCause" CLASS="XRef">AvailabilityTransitionCause</A></EM>
+ indicates one of the initial startup reasons: <EM CLASS="Computer">
+Command</EM>
+ or <EM CLASS="Computer">
+RxActivity</EM>
+. During the startup period, only the first initiated startup trigger is reported, even if there are several reasons that have been received from INIC.</P>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-684556"></A>Network-management related information is reported by the <EM CLASS="Computer">
+INIC.MOSTNetworkStatus()</EM>
+ function; port-specific information, such as streaming data bandwidth, is reported by the <EM CLASS="Computer">
+INIC.MOSTPortStatus()</EM>
+ function.</P>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-675703"></A>As soon as the MOST network is available, the last valid <EM CLASS="Computer">
+NodePosition</EM>
+ and <EM CLASS="Computer">
+MaxPosition</EM>
+ are returned within <EM CLASS="Computer">
+INIC.MOSTNetworkStatus()</EM>
+. The <EM CLASS="Computer">
+MaxPosition</EM>
+ is synchronized with the Network Change Event (see <A HREF="#50495582_INIC/MOSTNetworkStatus/Events" CLASS="XRef">Events</A>), which is delayed at least 100 ms after the <EM CLASS="Computer">
+MaxPosition</EM>
+ information has been changed. Also, the valid <A HREF="#50495582_INIC/MOSTNetworkStatus/PacketBW" CLASS="XRef">PacketBW</A> in <EM CLASS="Computer">
+INIC.MOSTNetworkStatus()</EM>
+ and the valid <A HREF="#50495582_INIC/MOSTPortStatus/FreeStreamingBW" CLASS="XRef">FreeStreamingBW</A> in <EM CLASS="Computer">
+INIC.MOSTPortStatus()</EM>
+ are reported. </P>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-675598"></A>If a network unlock occurs during the time that the network is available, <A HREF="#50495582_INIC/MOSTNetworkStatus/AvailabilityInfo" CLASS="XRef">AvailabilityInfo</A> changes to <EM CLASS="Computer">
+Unstable</EM>
+, indicating that network communication is disturbed. It changes back to <EM CLASS="Computer">
+Stable</EM>
+ as soon as stable lock is re-gained.</P>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495565_pgfId-655262"></A>Shutdown </H3>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-682101"></A>By command</P>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-683143"></A>Similar to the network startup scenario, also the network shutdown function call <EM CLASS="Computer">
+INIC.MOSTNetworkShutdown()</EM>
+, <A HREF="#50495582_84308" CLASS="XRef">MOSTNetworkShutdown (0x525)</A>, can occur at the same time on several nodes. The device triggering the network shutdown can be either the TimingMaster or a TimingSlave. For all network nodes <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MOSTNetworkStatus/AvailabilityTransitionCause" CLASS="XRef">AvailabilityTransitionCause</A></EM>
+ changes to <EM CLASS="Computer">
+Normal</EM>
+. However, if a TimingSlave shuts down the network, the TimingMaster ignores the Shutdown Flag and reports <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MOSTNetworkStatus/AvailabilityTransitionCause" CLASS="XRef">AvailabilityTransitionCause</A> ErrorSuddenSignalOff</EM>
+. </P>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-683153"></A>If the network is already being shut down by another node and <EM CLASS="Computer">
+INIC.MOSTNetworkShutdown()</EM>
+ function is called again, the running shutdown process will not be affected. If the network shutdown is initiated by the <EM CLASS="Computer">
+INIC.MOSTNetworkShutdown()</EM>
+function and the shutdown process has been finished, the status is returned. The result is delayed and sent until t<EM CLASS="Subscript">
+Restart</EM>
+ is expired; hence an immediate startup procedure can be initiated.</P>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-655267"></A>Network-management related information is reported by the <EM CLASS="Computer">
+INIC.MOSTNetworkStatus()</EM>
+ function. Port-specific information, such as streaming data bandwidth, is reported by the <EM CLASS="Computer">
+INIC.MOSTPortStatus()</EM>
+ function.</P>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-676929"></A>By error</P>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-676789"></A>An error shutdown can have different reasons: </P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495565_pgfId-677017"></A>&#8226; <EM CLASS="Computer">
+ErrorSuddenSignalOff</EM>
+, </LI>
+<LI CLASS="Bullet1">
+<A NAME="50495565_pgfId-677039"></A>&#8226; <EM CLASS="Computer">
+ErrorCriticalUnlock</EM>
+, or </LI>
+<LI CLASS="Bullet1">
+<A NAME="50495565_pgfId-677046"></A>&#8226; <EM CLASS="Computer">
+ErrorSystem</EM>
+. </LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-682421"></A><EM CLASS="Computer">
+<A HREF="#50495582_INIC/MOSTNetworkStatus/AvailabilityTransitionCause" CLASS="XRef">AvailabilityTransitionCause</A></EM>
+ indicates the reason for the network shutdown trigger.</P>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-743712"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495565_pgfId-682423"></A>NotAvailable</H3>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-677756"></A>When the network starts the shutdown process, <EM CLASS="Computer">
+AvailabilityInfo</EM>
+ changes to <EM CLASS="Computer">
+NotAvailable</EM>
+ in <EM CLASS="Computer">
+INIC.MOSTNetworkStatus()</EM>
+ (<A HREF="#50495582_92652" CLASS="XRef">MOSTNetworkStatus (0x520)</A>) and in <EM CLASS="Computer">
+INIC.MOSTPortStatus()</EM>
+ (<A HREF="#50495582_18468" CLASS="XRef">MOSTPortStatus (0x602)</A>). <EM CLASS="Computer">
+NotAvailable</EM>
+ indicates that the network is in NetInterface Off state.</P>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-677769"></A><EM CLASS="Computer">
+NodePosition</EM>
+, <EM CLASS="Computer">
+MaxPosition</EM>
+, <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MOSTNetworkStatus/PacketBW" CLASS="XRef">PacketBW</A></EM>
+, and <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MOSTPortStatus/FreeStreamingBW" CLASS="XRef">FreeStreamingBW</A></EM>
+ values are invalid if the network is in <EM CLASS="Computer">
+<A HREF="#50495582_NotAvailable/Availability/MOSTNetworkStatus" CLASS="XRef"><EM CLASS="Computer">
+NotAvailable</EM>
+</A></EM>
+ state. </P>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495565_pgfId-655291"></A><A NAME="50495565_10447"></A>Ring Break Diagnosis</H3>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-655292"></A>To verify the integrity of the MOST network, the INIC embeds the Ring Break Diagnosis (RBD) as specified in the MOST Specification <A HREF="#50495561_60695" CLASS="XRef"><EM CLASS="Blue">
+[1]</EM>
+</A>. </P>
+<DIV>
+<A NAME="MNSH2-Phase1:Activation" /><H6 CLASS="Heading2">
+<A NAME="50495565_pgfId-677833"></A>Phase 1: Activation</H6>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-803992"></A><A NAME="50495565_marker-661058"></A>RBD can be triggered either by a <EM CLASS="Computer">
+INIC.MOSTNetworkRBD()</EM>
+ command or via the power management, signaling <EM CLASS="Computer">
+<A HREF="#50495582_DeviceStatus/PowerState/STP" CLASS="XRef"><EM CLASS="Computer">
+STP</EM>
+</A></EM>
+ on the <EM CLASS="Pin-Name">
+PS0</EM>
+/<EM CLASS="Pin-Name">
+PS1</EM>
+ pins, see also <A HREF="#50495566_23533" CLASS="XRef"><EM CLASS="Link">
+Table 3-1</EM>
+</A>. If the RBD is triggered via <EM CLASS="Pin-Name">
+PS0</EM>
+/<EM CLASS="Pin-Name">
+PS1</EM>
+, the INIC performs the RBD as specified. </P>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-741743"></A>If the network has been already started up by the <EM CLASS="Computer">
+INIC.MOSTNetworkStartup()</EM>
+ function or was woken up due to activity, it is also possible to start RBD. </P>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-666388"></A>The MOST Specification <A HREF="#50495561_60695" CLASS="XRef"><EM CLASS="Blue">
+[1]</EM>
+</A> requires that the RBD must be started in all nodes within the time window t<EM CLASS="Subscript">
+Diag_Start,</EM>
+ so that the result of the diagnosis is reliable and interpretable.</P>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-678046"></A>During RBD all network and port values are invalid; this includes <EM CLASS="Computer">
+NodePosition</EM>
+, <EM CLASS="Computer">
+MaxPosition</EM>
+, <EM CLASS="Computer">
+FreeStreamingBW</EM>
+ and <EM CLASS="Computer">
+PacketBW</EM>
+.</P>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-678050"></A>If INIC enters <A HREF="#50495582_ForcedNA/AvailInfo/MostStatus" CLASS="XRef"><EM CLASS="Computer">
+ForcedNA</EM>
+</A> state during the period that RBD is performed, it leaves RBD.</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-Phase2:Diagnosis" /><H6 CLASS="Heading2">
+<A NAME="50495565_pgfId-677878"></A>Phase 2: Diagnosis</H6>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-666389"></A>When RBD is entered, <EM CLASS="Computer">
+Availability</EM>
+ changes to <EM CLASS="Computer">
+NotAvailable</EM>
+ in <EM CLASS="Computer">
+INIC.MOSTNetworkStatus()</EM>
+ (<A HREF="#50495582_92652" CLASS="XRef">MOSTNetworkStatus (0x520)</A>) and <EM CLASS="Computer">
+INIC.MOSTPortStatus()</EM>
+ (<A HREF="#50495582_18468" CLASS="XRef">MOSTPortStatus (0x602)</A>). In this stage, no network communication is possible. <A HREF="#50495582_INIC/MOSTNetworkStatus/AvailabilityInfo" CLASS="XRef">AvailabilityInfo</A> changes to <EM CLASS="Computer">
+Diagnosis</EM>
+.</P>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-676298"></A>If a network-related failure is detected, either <EM CLASS="Computer">
+PosDetected</EM>
+, <EM CLASS="Computer">
+DiagFailed</EM>
+ or <EM CLASS="Computer">
+Pos0WeakSig</EM>
+ can be returned. If <EM CLASS="Computer">
+RBDResult</EM>
+ is <EM CLASS="Computer">
+PosDetected</EM>
+, the exact position can be read by means of parameter <EM CLASS="Computer">
+RBDPosition</EM>
+. If the result is <EM CLASS="Computer">
+DiagFailed</EM>
+, RBD exits and RBD Phase 3 will not be entered. For <EM CLASS="Computer">
+PosDetected</EM>
+ or <EM CLASS="Computer">
+Pos0WeakSig</EM>
+, RBD is continued with Phase 3 (for additional information refer to the MOST Specification <A HREF="#50495561_60695" CLASS="XRef"><EM CLASS="Blue">
+[1]</EM>
+</A>). </P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-Phase3:DeliveryofResult" /><H6 CLASS="Heading2">
+<A NAME="50495565_pgfId-677913"></A>Phase 3: Delivery of Result</H6>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-677915"></A>The result is sent by the INIC that is directly located after the ring break; in this case the INIC broadcasts the <EM CLASS="Computer">
+NetBlock.RBDResult.RBDStatus</EM>
+ message (<A HREF="#50495582_63389" CLASS="XRef">RBDResult (0x405)</A>) to the MOST network and to the EHC.</P>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-684532"></A>RBD is finished after the <EM CLASS="Computer">
+INIC.MOSTNetworkRBD.Result</EM>
+ message has been sent to the EHC. The result is presented in function <EM CLASS="Computer">
+INIC.MOSTNetworkRBDResult()</EM>
+, <A HREF="#50495582_75275" CLASS="XRef">MOSTNetworkRBDResult (0x527)</A>. If the value inside <EM CLASS="Computer">
+INIC.MOSTNetworkRBDResult()</EM>
+ has not yet been updated or RBD was just started, then the content is <EM CLASS="Computer">
+Pending</EM>
+. After RBD is finished, the INIC enters NetInterface Off state, even if the ring is closed.</P>
+</DIV>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495565_pgfId-759501"></A><A NAME="50495565_78749"></A>System Diagnosis</H3>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-765914"></A>The system diagnosis defines a process that is used to collect diagnostic relevant information of all devices present in the network. It can be also used to examine the physical connection status between two devices. The system diagnosis process is controlled by the system diagnosis module, which is part of the application layer. The INIC provides functionality, which is needed to interact with the system diagnosis module; in addition, the INIC completely encapsulates methods required by the system diagnosis processes, such as e.g. cable link verification.</P>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-765915"></A>Since the system diagnosis needs a diagnosis module running on the application layer of the TimingMaster, the TimingMaster node requires an EHC. TimingSlave nodes do not require an EHC. Hence, also remote-controlled devices can run the system diagnosis. The communication between the TimingMaster and the TimingSlaves is done by use of MOST Control Messages via the MOST network. Therefore, the system diagnosis process can be executed without any additional hardware, such as electrical trigger lines.</P>
+<DIV>
+<A NAME="MNSH2-Preconditions" /><H6 CLASS="Heading2">
+<A NAME="50495565_pgfId-759504"></A>Preconditions</H6>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495565_pgfId-759505"></A>&#8226; The MOST Port that shall be observed must run in full duplex coax mode. <BR>
+A MOST Port that is not running in full duplex coax mode will be disabled during system diagnosis and cannot be enabled. All devices connected afterwards are not considered. </LI>
+<LI CLASS="Bullet1">
+<A NAME="50495565_pgfId-759511"></A>&#8226; In order to start the system diagnosis, the MOST network needs to reside in NetInterface Off state.</LI>
+</UL>
+</DIV>
+<DIV>
+<A NAME="MNSH2-DiagnosisMode" /><H6 CLASS="Heading2">
+<A NAME="50495565_pgfId-759513"></A>Diagnosis Mode</H6>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-766127"></A>The diagnosis state is signaled on a system wide level by use of a special system bit distributed by the TimingMaster. By using the system bit during the diagnosis phase, a TimingSlave will always end up in diagnosis mode, even in case of a reset. During the presence of the system bit, the network is in <EM CLASS="Computer">
+NotAvailable</EM>
+ state. Thus, any application communication using the MOST network is not possible in diagnosis state.</P>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-760221"></A>Whenever the network is started in diagnosis mode, the TimingMaster and a TimingSlave perform the actions as described below:</P>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-759515"></A>TimingMaster:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495565_pgfId-759516"></A>&#8226; Distributes diagnosis system bit</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495565_pgfId-759517"></A>&#8226; Enters diagnosis mode </LI>
+<LI CLASS="Bullet1">
+<A NAME="50495565_pgfId-759518"></A>&#8226; Disables all MOST Ports </LI>
+<LI CLASS="Bullet1">
+<A NAME="50495565_pgfId-759519"></A>&#8226; Sets network <EM CLASS="Computer">
+Availability</EM>
+ to <EM CLASS="Computer">
+NotAvailable</EM>
+</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495565_pgfId-759520"></A>&#8226; Sets node address to an uninitialized value (0x0FFE) </LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-759521"></A>TimingSlave:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495565_pgfId-759522"></A>&#8226; Enters diagnosis mode </LI>
+<LI CLASS="Bullet1">
+<A NAME="50495565_pgfId-759523"></A>&#8226; Disables all MOST Ports beside the clock reference port</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495565_pgfId-759524"></A>&#8226; Sets network <EM CLASS="Computer">
+Availability</EM>
+ to <EM CLASS="Computer">
+NotAvailable</EM>
+</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495565_pgfId-759525"></A>&#8226; Sets node address to uninitialized value (0x0FFE)</LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-759526"></A>Above described actions are always executed by a TimingMaster on any successful reception of <EM CLASS="Computer">
+INIC.MOSTNetworkSystemDiagnosis.StartResult</EM>
+ and respectively by a TimingSlave on any transition from NetInterface Off to system diagnosis state.</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-Execution" /><H6 CLASS="Heading2">
+<A NAME="50495565_pgfId-759527"></A>Execution</H6>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-766258"></A>In order to run the system diagnosis, the INIC provides several functions that are used to run and complete the system diagnosis process, see below:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495565_pgfId-766260"></A>&#8226; <EM CLASS="Computer">
+INIC.MOSTNetworkSystemDiagnosis()</EM>
+ to start the system diagnosis on the TimingMaster device, see <EM CLASS="CrossReference">
+<A HREF="#50495582_12494" CLASS="XRef"></A><EM CLASS="Link">
+Section 21.2.3.9</EM>
+<EM CLASS="CrossReference">
+</EM>
+</EM>
+.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495565_pgfId-766261"></A>&#8226; <EM CLASS="Computer">
+ExtendedNetworkControl.Hello()</EM>
+ to get system diagnosis relevant information of a certain node, see <EM CLASS="CrossReference">
+<A HREF="#50495582_16872" CLASS="XRef"></A><EM CLASS="Link">
+Section 21.4.1</EM>
+<EM CLASS="CrossReference">
+</EM>
+</EM>
+.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495565_pgfId-766262"></A>&#8226; <EM CLASS="Computer">
+ExtendedNetworkControl.Welcome()</EM>
+ to give a unique and temporary node address during the system diagnosis phase, see <EM CLASS="CrossReference">
+<A HREF="#50495582_20297" CLASS="XRef"></A><EM CLASS="Link">
+Section 21.4.2</EM>
+<EM CLASS="CrossReference">
+</EM>
+</EM>
+.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495565_pgfId-766263"></A>&#8226; <EM CLASS="Computer">
+ExtendedNetworkControl.EnablePort()</EM>
+ to enable/disable a MOST Port during the system diagnosis phase, see <EM CLASS="CrossReference">
+<A HREF="#50495582_14227" CLASS="XRef"></A><EM CLASS="Link">
+Section 21.4.5</EM>
+<EM CLASS="CrossReference">
+</EM>
+</EM>
+.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495565_pgfId-766264"></A>&#8226; <EM CLASS="Computer">
+ExtendedNetworkControl.CableLinkDiagnosis()</EM>
+ to start a cable link diagnosis of a full duplex coax MOST network connection, see <EM CLASS="CrossReference">
+<A HREF="#50495582_27532" CLASS="XRef"></A><EM CLASS="Link">
+Section 21.4.6</EM>
+<EM CLASS="CrossReference">
+</EM>
+</EM>
+.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495565_pgfId-766265"></A>&#8226; <EM CLASS="Computer">
+INIC.MOSTNetworkSystemDiagnosisEnd()</EM>
+ to finish the system diagnosis, see <EM CLASS="CrossReference">
+<A HREF="#50495582_26050" CLASS="XRef"></A><EM CLASS="Link">
+Section 21.2.3.10</EM>
+<EM CLASS="CrossReference">
+</EM>
+</EM>
+.</LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-767713"></A>For further information contact: <EM CLASS="Blue">
+<A HREF="mailto:support-ais-de@microchip.com " CLASS="URL">support-ais-de@microchip.com.</A></EM>
+</P>
+</DIV>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495565_pgfId-759534"></A><A NAME="50495565_30629"></A>Cable Link Diagnosis</H3>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-759536"></A>The cable link diagnosis is used to verify the physical connection between two INIC MOST Ports running in full duplex coax mode. The cable link diagnosis is started with <EM CLASS="Computer">
+ExtendedNetworkControl.CableLinkDiagnosis.StartResult()</EM>
+. Typically, this is done by the system diagnosis module. The cable link diagnosis can be performed only on a single MOST Port of the INIC at the same time. Parameter <A HREF="#50495582_ENC/CableLinkDiagnosis/PortNumber" CLASS="XRef">PortNumber</A> identifies the MOST Port on which the cable link diagnosis should be performed. </P>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-768222"></A>The <A HREF="#50495582_ENC/CableLinkDiagnosis/Result" CLASS="XRef">Result</A> of the verification process can be either</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495565_pgfId-767838"></A>&#8226; a not connected or shorted cable,</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495565_pgfId-767844"></A>&#8226; a physically terminated connection, </LI>
+<LI CLASS="Bullet1">
+<A NAME="50495565_pgfId-804124"></A>&#8226; a passive connection,</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495565_pgfId-767847"></A>&#8226; an active connection or</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495565_pgfId-768244"></A>&#8226; a failure detected during execution. </LI>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495565_pgfId-768288"></A>Note: A connected debug tool (e.g., INIC Explorer Interface Box) can affect the cable link diagnosis execution. A failure will be reported by a respective result.</Note: >
+</TD>
+</TR>
+</TABLE>
+</UL>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-768684"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-759538"></A>All necessary tasks and algorithms of the cable link diagnosis are encapsulated in the INIC firmware. In order to perform a proper cable link diagnosis, the INIC firmware is no longer responsive to the outside, neither via the MOST Port interface nor via the configuration interface. Also the I<EM CLASS="Superscript">
+2</EM>
+C Port is not serviced during the verification phase, which may lead to I<EM CLASS="Superscript">
+2</EM>
+C clock stretching. For this reason the application has to take care that the application watchdog is adjusted to a safe timeout value and that the I<EM CLASS="Superscript">
+2</EM>
+C Port on EHC side handles clock stretching in a proper way.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495565_pgfId-762138"></A>Note: The maximum period of time all ports are not serviced is 200 ms.</Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-762135"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495565_pgfId-681080"></A><A NAME="50495565_32994"></A><A NAME="50495565_12322"></A>Physical Layer Test</H3>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-681081"></A>The INIC provides integrated functions to support testing of the physical layer as defined in the MOST150 Limited Physical Layer Compliance Specification <A HREF="#50495561_40727" CLASS="XRef"><EM CLASS="Blue">
+[12]</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-681085"></A>For executing the test, a <A NAME="50495565_marker-681418"></A>Physical Layer Stress Test Tool (PhLSTT) is needed. The tool must be connected via MOST to the OS81118 Device Under Test (DUT). During the test it feeds the OS81118 DUT with a defined stress test pattern (see the MOST150 oPhy Automotive Physical Layer Sub-Specification <A HREF="#50495561_20420" CLASS="XRef"><EM CLASS="Blue">
+[13]</EM>
+</A>). Both the test tool and the DUT log coding errors and unlocks to evaluate the physical layer for errors.</P>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-681089"></A>The PhLSTT uses the FBlock ExtendedNetworkControl (see <A HREF="#50495582_94136" CLASS="XRef"><EM CLASS="Link">
+Section 21.4</EM>
+</A>) in the INIC to start the Physical Layer Test and to retrieve the corresponding result.</P>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-681096"></A>At test start the INIC switches to <EM CLASS="Computer">
+<A HREF="#50495582_Type/RetimedBypassMaster" CLASS="XRef"><EM CLASS="Computer">
+RetimedBypassMaster</EM>
+</A></EM>
+ or <EM CLASS="Computer">
+<A HREF="#50495582_Type/RetimedBypassSlave" CLASS="XRef"><EM CLASS="Computer">
+RetimedBypassSlave</EM>
+</A></EM>
+, depending on the <EM CLASS="Computer">
+<A HREF="#50495582_ENC/PhysicalLayerTest/Type" CLASS="XRef">Type</A></EM>
+ selected. After the test is finished, the INIC switches back to its original mode.</P>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-681109"></A>The test duration spans the time of <EM CLASS="Computer">
+<A HREF="#50495582_ENC/PhysicalLayerTest/LeadIn" CLASS="XRef">LeadIn</A></EM>
+ and <EM CLASS="Computer">
+<A HREF="#50495582_ENC/PhysicalLayerTest/Duration" CLASS="XRef">Duration</A></EM>
+ and <EM CLASS="Computer">
+<A HREF="#50495582_ENC/PhysicalLayerTest/LeadOut" CLASS="XRef">LeadOut</A></EM>
+. During the test, the MOST network is in <EM CLASS="Computer">
+<A HREF="#50495582_NotAvailable/Availability/MOSTNetworkStatus" CLASS="XRef"><EM CLASS="Computer">
+NotAvailable</EM>
+</A></EM>
+ state, <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MOSTNetworkStatus/AvailabilityInfo" CLASS="XRef">AvailabilityInfo</A></EM>
+ is <EM CLASS="Computer">
+<A HREF="#50495582_Diagnosis/AvailInfo/MostStatus" CLASS="XRef"><EM CLASS="Computer">
+Diagnosis</EM>
+</A></EM>
+.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495565_pgfId-681121"></A>Figure 4-2: <A NAME="50495565_78083"></A>Physical Layer Test Flow</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495565_pgfId-681125"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-30.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495565_pgfId-662033"></A><A NAME="50495565_11800"></A>Events</H3>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-655332"></A>Events are generated on the INIC and reported to the EHC inside an event field of a status function. Events related to changes on the MOST network are reported by the <EM CLASS="Computer">
+INIC.MOSTNetworkStatus()</EM>
+ function. </P>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-655333"></A>A status function does not only incorporate event fields, but also general network parameters. The handling of event fields and general network parameters is different: An event is only reported once. This means, if the status function incorporates an event, this event will be cleared or reset to its default value after it has been sent to the EHC. General network parameters, also sent within the status function, still keep their values and will remain untouched.</P>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-655334"></A>INIC events are always in relation to the notification; therefore, to get an event, the EHC should be notified for the appropriate functions. Once the EHC has set a notification for a status function containing an event field, previous events are not remembered and hence not reported. When a notification is set, the event field is cleared or set to its default value.</P>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495565_pgfId-744617"></A><A NAME="50495565_77401"></A>Addressing</H3>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-744618"></A>The addresses recognized by the INIC define on which address types distributed over the MOST network the INIC does react. This can be considered as an address matching mechanism. Address types are:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495565_pgfId-672014"></A>&#8226; <A NAME="50495565_marker-672018"></A>NodeAddress</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495565_pgfId-672015"></A>&#8226; <A NAME="50495565_marker-672023"></A>NodePositionAddress</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495565_pgfId-672010"></A>&#8226; <A NAME="50495565_marker-672028"></A>GroupAddress</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495565_pgfId-743964"></A>&#8226; MAC Address</LI>
+</UL>
+<DIV>
+<A NAME="MNSH2-NodeAddress" /><H6 CLASS="Heading2">
+<A NAME="50495565_pgfId-744594"></A><A NAME="50495565_31917"></A>Node Address</H6>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-744596"></A>This is the logical address of the INIC and used for MCMs and MDPs. The <A NAME="50495565_marker-817553"></A>NodeAddress and its customizable ranges are as follows: </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495565_pgfId-744599"></A>0xFFFF<BR>
+(factory default value):</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495565_pgfId-744601"></A>Defines the mechanism of calculating the node address. <BR>
+In general, this value is only valid in the identification string. <BR>
+The final node address is then calculated as described below.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495565_pgfId-744603"></A>0x0100...0x013F:</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495565_pgfId-744606"></A>This range is used for <A NAME="50495565_Dynamic Calculated Node Addresses"></A>dynamic calculated node addresses and depends on the device's position in the network (node address = 0x0100 + position). It is calculated on transition to <EM CLASS="Computer">
+<A HREF="#50495582_Available/Availability/MOSTNetworkStatus" CLASS="XRef"><EM CLASS="Computer">
+Available</EM>
+</A></EM>
+ state if the value is 0xFFFF. It is also calculated on each reception of command <EM CLASS="Computer">
+NWM.Configuration.Status(NotOK)</EM>
+. If a value in the dynamic node address range is entered as a default value, it will be used as a valid node address, until the next reception of command <EM CLASS="Computer">
+NWM.Configuration.Status(NotOK)</EM>
+, which leads to a new calculation of the node address.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495565_pgfId-744611"></A>0x0010...0x00FF, <BR>
+0x0140...0x02FF, <BR>
+0x0500...0x0EFF:</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495565_pgfId-744613"></A>These ranges are used for static node addresses, which are independent of the node position. The reception of command <EM CLASS="Computer">
+NWM.Configuration.Status(NotOK)</EM>
+ does not lead to a new address calculation. </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495565_pgfId-817352"></A>0x0F00...0x0FEF:</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495565_pgfId-817354"></A>This range is used for administrative purposes. The values of this range can only be set by <A HREF="#50495582_ENC/Welcome/AdminNodeAddress" CLASS="XRef">AdminNodeAddress</A>.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495565_pgfId-817474"></A>0x0FFE:</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495565_pgfId-817476"></A>As long as the node is not welcomed, this node address is used when <A HREF="#50495606_Device Management/System Mode" CLASS="XRef">System Mode</A> is <EM CLASS="Computer">
+UNICENS </EM>
+or the device is in system diagnosis mode. </P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-743743"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-NodePositionAddress" /><H6 CLASS="Heading2">
+<A NAME="50495565_pgfId-743745"></A><A NAME="50495565_66596"></A>Node Position Address</H6>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-668456"></A>The NodePositionAddress of the INIC is used for MCMs and MDPs. The Node-<BR>
+PositionAddress is a combination of 0x0400 (factory default value) plus the node position. Hence, 0x0405 indicates the INIC is on node position five in the MOST network.</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-GroupAddress" /><H6 CLASS="Heading2">
+<A NAME="50495565_pgfId-745339"></A><A NAME="50495565_51563"></A>Group Address</H6>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-745340"></A>The GroupAddress of the INIC is used for MCMs and MDPs. Devices of the same type can be assigned the same group address and thus can be administered together. A message sent to this group address controls the entire device group. If message transmission fails the error of the last retry is reported.</P>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-683926"></A>The INIC has three group addresses, defined as follows: </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495565_pgfId-669261"></A><A NAME="50495565_marker-805267"></A>Blocking Broadcast<BR>
+Address:</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495565_pgfId-669267"></A>The value of this group address is fixed to 0x03C8 and is not user-configurable. The broadcast message sent to this address targets all MOST network nodes. The control communication over the MOST network is blocked unless not every device has acknowledged the broadcast message or all retries are exhausted.<BR>
+The blocking broadcast message is not supported for MDPs.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495565_pgfId-669269"></A><A NAME="50495565_marker-805272"></A>Unblocking Broadcast Address:</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495565_pgfId-669272"></A>The value of this group address is fixed to 0x03FF and is not user-configurable. The control and packet communication over the MOST network is not blocked. The broadcast message is used for uncritical data transmissions. Hence, messages sent to this address are not required to reach every MOST network node.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495565_pgfId-669274"></A><A NAME="50495565_marker-805277"></A>User-configurable Group Address:</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495565_pgfId-669276"></A>The value of the group address is user-configurable in the range of 0x0300 up to 0x03FE. A control or packet message that is sent to a group address targets all MOST network nodes that are part of the group, i.e., all nodes that have the same value for the <EM CLASS="Computer">
+<A HREF="#50495582_NB/GroupAddress/GroupAddress" CLASS="XRef">GroupAddress</A></EM>
+. This parameter can be customized via the <A HREF="#50495606_31610" CLASS="XRef">Identification String</A>.</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-669226"></A>For more information on addressing, refer to the MOST Specification <A HREF="#50495561_60695" CLASS="XRef"><EM CLASS="Blue">
+[1]</EM>
+</A>.</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-MACAddress" /><H6 CLASS="Heading2">
+<A NAME="50495565_pgfId-745178"></A><A NAME="50495565_52379"></A>MAC Address</H6>
+<P CLASS="Body">
+<A NAME="50495565_pgfId-745179"></A>For MEPs the INIC uses 48-bit MAC-addressing. The MAC address can be configured by function <EM CLASS="Computer">
+INIC.MOSTNetworkConfiguration()</EM>
+ or by using the Driver Control Interface, see <A HREF="#50495579_48522" CLASS="XRef"><EM CLASS="Link">
+Section 18.2.3</EM>
+</A> and <A HREF="#50495581_47728" CLASS="XRef"><EM CLASS="Blue">
+Chapter 20</EM>
+</A>.</P>
+</DIV>
+<DIV>
+<H4 CLASS="ZNotes">
+<A NAME="50495565_pgfId-759542"></A><A NAME="50495565_91784"></A><A NAME="50495565_86846"></A><A NAME="50495565_27812"></A>&nbsp;</H4>
+</DIV>
+</DIV>
+</DIV>
+<h1><a class="anchor" id="SEC_OS81118_7"></a>
+Network Administration</h1>
+<DIV>
+<H1 CLASS="Chapter">
+<A NAME="50495523_pgfId-678298"></A><DIV>
+<IMG SRC="OS81118-31.gif" ALT="">
+</DIV>
+<A NAME="50495523_47728"></A>Network Administration<DIV>
+<IMG SRC="OS81118-32.gif" ALT="">
+</DIV>
+</H1>
+<P CLASS="Body">
+<A NAME="50495523_pgfId-769178"></A>This chapter describes the components implemented by the INIC to perform network administration tasks.</P>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495523_pgfId-655337"></A>NetBlock</H3>
+<P CLASS="Body">
+<A NAME="50495523_pgfId-655338"></A>The FBlock NetBlock incorporates all functions that are relevant for network management. These functions have been implemented in the FBlock NetBlock according to the definitions prescribed by the MOST Cooperation in the MOST FunctionBlock NetBlock, Rev. 3.0.3 <A HREF="#50495561_53000" CLASS="XRef"><EM CLASS="Blue">
+[2]</EM>
+</A> specification.</P>
+<P CLASS="Body">
+<A NAME="50495523_pgfId-684103"></A>The behavior for some FBlock NetBlock functions is different depending on whether the application interface is in Protected or Attached Mode; for more details refer to <A HREF="#50495582_26908" CLASS="XRef"><EM CLASS="Link">
+Section 21.1</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495523_pgfId-684543"></A>All functions that are not supported by the FBlock NetBlock will be answered with error code 0x03, FktID not available, or forwarded to the EHC, if it is attached.</P>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495523_pgfId-769362"></A>NetworkMaster</H3>
+<P CLASS="Body">
+<A NAME="50495523_pgfId-769386"></A>In the following situations the INIC acts as a NetworkMaster substitute to send <EM CLASS="Computer">
+NetworkMaster.ConfigurationStatus(NotOK)</EM>
+: </P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495523_pgfId-769648"></A>&#8226; On any transition to NetInterface Off state and the NetworkMaster is remote.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495523_pgfId-769650"></A>&#8226; After a <EM CLASS="Computer">
+NetBlock.Shutdown.Start(Execute)</EM>
+ message was received and the NetworkMaster is remote. The NetworkMaster configuration status message is only sent to the internal NetworkMaster Shadow.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495523_pgfId-769653"></A>&#8226; PMP channel synchronization is lost and the NetworkMaster is local; <A HREF="#50495533_12230" CLASS="XRef">ICM/RCM PMP channels synchronized</A> for information on how the INIC handles PMP synchronization loss.</LI>
+</UL>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495523_pgfId-655350"></A><A NAME="50495523_86846"></A>NetworkMaster Shadow</H3>
+<P CLASS="Body">
+<A NAME="50495523_pgfId-655351"></A>The INIC contains a controller for the <A NAME="50495523_marker-661073"></A>FBlock NetworkMaster functionality, which is called FBlock NetworkMaster Shadow. The <A NAME="50495523_marker-661078"></A>FBlock NetworkMaster <A NAME="50495523_marker-665232"></A>Shadow checks status messages that come from the FBlock NetworkMaster and stores its address information (logical address) and system configuration state. Additionally, when the application interface is in Attached Mode, all status messages will be forwarded to the EHC without changing the content of the received message. </P>
+<DIV>
+<A NAME="MNSH2-LocalizingtheFBlockNetworkMaster" /><H6 CLASS="Heading2">
+<A NAME="50495523_pgfId-655352"></A>Localizing the FBlock NetworkMaster</H6>
+<P CLASS="Body">
+<A NAME="50495523_pgfId-655353"></A>The INIC stores the address information of the FBlock NetworkMaster whenever the following conditions apply: </P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495523_pgfId-655354"></A>&#8226; A <EM CLASS="Computer">
+NWM.Configuration.Status(OK</EM>
+, <EM CLASS="Computer">
+NewExt</EM>
+, or <EM CLASS="Computer">
+Invalid)</EM>
+ message is received.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495523_pgfId-655355"></A>&#8226; A <EM CLASS="Computer">
+NetBlock.FBlockIDs.Get</EM>
+ message is received and the current system configuration state is <EM CLASS="Computer">
+NotOK</EM>
+.</LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495523_pgfId-655357"></A>Based on this address information, the INIC is capable to determine the location of the FBlock NetworkMaster, which can be either:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495523_pgfId-655358"></A>&#8226; Local - which means that the FBlock NetworkMaster is hosted in the EHC and connected to the configuration interface or</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495523_pgfId-655359"></A>&#8226; Remote - which means that an external network device incorporates the FBlock NetworkMaster</LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495523_pgfId-655361"></A>After reset the address information is uninitialized; as a result the FBlock NetworkMaster location is unknown.</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-DerivingtheSystemConfigurationState" /><H6 CLASS="Heading2">
+<A NAME="50495523_pgfId-655363"></A>Deriving the <A NAME="50495523_marker-661083"></A>System Configuration State</H6>
+<P CLASS="Body">
+<A NAME="50495523_pgfId-655364"></A>The INIC's internal system configuration state is derived as follows:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495523_pgfId-655365"></A>&#8226; A reception of <EM CLASS="Computer">
+NWM.Configuration.Status(OK</EM>
+, <EM CLASS="Computer">
+NewExt</EM>
+, or <EM CLASS="Computer">
+Invalid)</EM>
+ leads to the system state <EM CLASS="Computer">
+OK</EM>
+.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495523_pgfId-655366"></A>&#8226; A reception of <EM CLASS="Computer">
+NWM.Configuration.Status(NotOK)</EM>
+ leads to the system state <EM CLASS="Computer">
+NotOK</EM>
+.</LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495523_pgfId-655368"></A>After reset, the system configuration state is initialized to <EM CLASS="Computer">
+NotOK</EM>
+.</P>
+<P CLASS="Body">
+<A NAME="50495523_pgfId-655369"></A>Every time the INIC receives a <EM CLASS="Computer">
+NWM.Configuration.Status(NotOK)</EM>
+ message, a re-calculation of the device's dynamic <EM CLASS="Computer">
+<A HREF="#50495582_NB/NodeAddress/NodeAddress" CLASS="XRef"><EM CLASS="BlackMarker">
+NodeAddress</EM>
+</A></EM>
+ will be triggered. </P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-ResettingStoredInformation" /><H6 CLASS="Heading2">
+<A NAME="50495523_pgfId-655375"></A><A NAME="50495523_57991"></A>Resetting Stored Information</H6>
+<P CLASS="Body">
+<A NAME="50495523_pgfId-655376"></A>The INIC resets its stored address information to an uninitialized value if a <EM CLASS="Computer">
+INIC.Configuration.Status(NotOK)</EM>
+ message was received.</P>
+<P CLASS="Body">
+<A NAME="50495523_pgfId-655385"></A>On each configuration state transition from <EM CLASS="Computer">
+OK</EM>
+ to <EM CLASS="Computer">
+NotOK</EM>
+, resources are invalidated (see <EM CLASS="Red">
+<A HREF="#50495567_91107" CLASS="XRef"></A><EM CLASS="Link">
+Section 6.7</EM>
+<EM CLASS="Red">
+</EM>
+</EM>
+).</P>
+</DIV>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495523_pgfId-759542"></A><A NAME="50495523_27812"></A>FBlock ExtendedNetworkControl</H3>
+<P CLASS="Body">
+<A NAME="50495523_pgfId-759543"></A>The FBlock ExtendedNetworkControl provides functions which are used to administer the INIC. In opposite to FBlock INIC, FBlock ExtendedNetworkControl is accessible from MOST network side as well as from the configuration interface, regardless of whether the INIC resides in RemoteControl Mode or not. </P>
+<P CLASS="Body">
+<A NAME="50495523_pgfId-759544"></A>FBlock ExtendedNetworkControl functions are used to control and support:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495523_pgfId-759545"></A>&#8226; <A HREF="#50495565_78749" CLASS="XRef">System Diagnosis</A></LI>
+<LI CLASS="Bullet1">
+<A NAME="50495523_pgfId-782162"></A>&#8226; Device diagnosis</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495523_pgfId-782180"></A>&#8226; UNICENS</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495523_pgfId-759546"></A>&#8226; <A HREF="#50495565_32994" CLASS="XRef">Physical Layer Test</A> execution</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495523_pgfId-759547"></A>&#8226; Memory read and write functionality (see <A HREF="#50495582_34952" CLASS="XRef"><EM CLASS="Link">
+Section 21.4.11</EM>
+</A> and <A HREF="#50495582_74500" CLASS="XRef"><EM CLASS="Link">
+Section 21.4.12</EM>
+</A>)</LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495523_pgfId-767377"></A>&nbsp;</P>
+</DIV>
+</DIV>
+<h1><a class="anchor" id="SEC_OS81118_8"></a>
+Resource Management</h1>
+<DIV>
+<H1 CLASS="Chapter">
+<A NAME="50495567_pgfId-666613"></A><DIV>
+<IMG SRC="OS81118-33.gif" ALT="">
+</DIV>
+<A NAME="50495567_47728"></A>Resource Management<DIV>
+<IMG SRC="OS81118-34.gif" ALT="">
+</DIV>
+</H1>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-732405"></A>The purpose of the INIC&#8217;s resource management is to <A NAME="50495567_marker-732404"></A>monitor the states of all resource objects, to define the handling of invalid resources and the behavior of the INIC supported muting.</P>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-758969"></A>An overview of all routing resources is shown in <A HREF="#50495615_47728" CLASS="XRef">Resource Planning</A>.</P>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495567_pgfId-666614"></A><A NAME="50495567_36522"></A>Resource Objects</H3>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-666634"></A>The INIC allows the customer to configure advanced routing of packet and streaming data in a simple and object-oriented fashion through a concept of on-chip resources, such as ports, sockets, and connections objects.</P>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-724961"></A>INIC supports a limited number of concurrent resources; therefore a free slot in the resource table is reserved on-demand by the call to the specific resource create function, e.g., <EM CLASS="Computer">
+INIC.MOSTSocketCreate()</EM>
+. A free slot is required to be able to create a new resource. If no free slot is available, an error code is reported. See <A HREF="#50495567_29286" CLASS="XRef"><EM CLASS="Link">
+Table 6-1</EM>
+</A> for information on how many tables and resources the INIC supports. After a resource has been created, a handle to the created resource is reported to the caller.</P>
+<DIV>
+<A NAME="MNSH2-Port" /><H6 CLASS="Heading2">
+<A NAME="50495567_pgfId-666635"></A><A NAME="50495567_marker-669157"></A>Port</H6>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-781218"></A>A port encapsulates a dedicated on-chip hardware interface together with the associated configuration.</P>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-781219"></A>Some ports are created by default by INIC, for example the MOST Port. Others can be configured to be created either by default or manually, for example the USB Port. Other ports can only be created manually by using an INIC API function, for example a Streaming Port.</P>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-665290"></A>Once a port has been created by using an INIC API function, it may be disabled and possibly re-created with a new configuration. This allows ports to be disabled when not currently in use.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495567_pgfId-930696"></A>Note: It is not possible to disable a port that was created by default.</Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-930790"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-666626"></A>A port must be created in order to allow sockets to be attached to it.<BR>
+All created sockets attached to the port must be disabled before the port can be disabled.</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-Socket" /><H6 CLASS="Heading2">
+<A NAME="50495567_pgfId-666628"></A><A NAME="50495567_75746"></A><A NAME="50495567_marker-669166"></A>Socket</H6>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-666629"></A>A socket encapsulates a data channel of the port it is attached to. This data channel is where data is routed to or from, when the socket is connected; a socket can be seen as one of the end points of a data route through the chip.</P>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-665295"></A>A socket has a data type classifier, a direction, and a size. The direction specifies if data is received or transmitted on the interface. The size specifies the highest-required bandwidth value that is necessary to ensure a safe data transmission.</P>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-666606"></A>A socket cannot be destroyed if it is currently being used in a connection.</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-Connection" /><H6 CLASS="Heading2">
+<A NAME="50495567_pgfId-666608"></A><A NAME="50495567_99719"></A><A NAME="50495567_marker-669175"></A>Connection</H6>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-666609"></A>In order to enable routing of data between two sockets, the sockets are required to be connected &#8211; which is accomplished when creating a connection.</P>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-665300"></A>A socket of direction <EM CLASS="Computer">
+Input</EM>
+ can only be connected to another socket of direction <EM CLASS="Computer">
+Output</EM>
+, where both sockets must be of the same data type. </P>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-665301"></A>Depending on the data type, different rules for connecting sockets may apply. The rules are introduced by INIC as a way to ensure safe data transmission when two sockets have been successfully connected.</P>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-666590"></A>INIC provides on-chip support for enforcing requirements defined by the MOST Specification <A HREF="#50495561_60695" CLASS="XRef"><EM CLASS="Blue">
+[1]</EM>
+</A> regarding system connection management and muting, where socket connections may be automatically muted or cleaned up depending on, for example, network-related events.</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-Combiner" /><H6 CLASS="Heading2">
+<A NAME="50495567_pgfId-666582"></A><A NAME="50495567_48279"></A><A NAME="50495567_marker-669180"></A>Combiner</H6>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-724896"></A>A <A NAME="50495567_marker-666583"></A>combiner enables streaming data to be routed from a MOST socket to a specified segment of a peripheral socket. The same combiner may be used in multiple connections, which enables grouping of data streams from multiple MOST sockets into the same peripheral socket. For details refer to <A HREF="#50495576_47728" CLASS="XRef"><EM CLASS="Blue">
+Chapter 15</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-724945"></A>A combiner cannot be destroyed if it is currently being used in a connection.</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-Splitter" /><H6 CLASS="Heading2">
+<A NAME="50495567_pgfId-666572"></A><A NAME="50495567_marker-669185"></A>Splitter<A NAME="50495567_97841"></A></H6>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-724924"></A>A <A NAME="50495567_marker-666573"></A>splitter enables two variants of routing to be set-up. The first variant is a splitter created with a peripheral socket. It enables data routing from a specified segment of the peripheral socket to a MOST socket. The second variant is a splitter created with a MOST socket. This variant enables data routing in its whole (no segments) from the MOST socket to multiple peripheral sockets. For details refer to <A HREF="#50495577_47728" CLASS="XRef"><EM CLASS="Blue">
+Chapter 16</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-724948"></A>A splitter cannot be destroyed if it is currently being used in a connection.</P>
+</DIV>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495567_pgfId-666561"></A><A NAME="50495567_86799"></A>Object Type, Identifier, and Index</H3>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-666563"></A>To identify any kind of resource, so-called resource handles are used. A <A NAME="50495567_marker-666562"></A>resource handle is a 16-bit value that is a combination of the resource identifier and its unique index. The resource identifier is stored in the high byte and its index is stored in the low byte. </P>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-856382"></A><A HREF="#50495567_29286" CLASS="XRef"><EM CLASS="Link">
+Table 6-1</EM>
+</A> shows the assignment between object type, resource identifier and index.</P>
+<P CLASS="Body-Text">
+<A NAME="50495567_pgfId-857126"></A> </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495567_pgfId-1000077"></A>Table 6-1: <A NAME="50495567_marker-1017732"></A><A NAME="50495567_29286"></A>Object Type, Resource Identifier and Index</TableTitle>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495567_pgfId-1000085"></A>Object Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495567_pgfId-1000087"></A>Resource Identifier</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495567_pgfId-1000090"></A><A NAME="50495567_Index"></A>Index</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495567_pgfId-1000092"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="4">
+<P CLASS="CellBody">
+<A NAME="50495567_pgfId-1000094"></A><EM CLASS="Bold">
+Port</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-1000102"></A>MediaLB</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495567_pgfId-1000104"></A>0x0A</P>
+</TD>
+<TD ROWSPAN="7" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-1000106"></A>0</P>
+</TD>
+<TD ROWSPAN="7" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-1000108"></A>Number of ports</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-1000110"></A>MOST</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495567_pgfId-1000112"></A>0x0D</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-1000118"></A>I<EM CLASS="Superscript">
+2</EM>
+C</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495567_pgfId-1000120"></A>0x0F</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-1000126"></A>SPI </P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495567_pgfId-1000128"></A>0x10</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-1000134"></A>USB </P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495567_pgfId-1000136"></A>0x12</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-1000142"></A>RMCK </P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495567_pgfId-1000144"></A>0x1A</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-1000150"></A>GPIO </P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495567_pgfId-1000152"></A>0x1D</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-1000158"></A>Streaming </P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495567_pgfId-1000160"></A>0x16</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-1000162"></A>0...1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-1000164"></A>0 is Port A; 1 is Port B</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="4">
+<P CLASS="CellBody">
+<A NAME="50495567_pgfId-1000166"></A><EM CLASS="Bold">
+Socket</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-1000174"></A>MediaLB</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495567_pgfId-1000176"></A>0x0B</P>
+</TD>
+<TD ROWSPAN="5" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-1000178"></A>0...39</P>
+</TD>
+<TD ROWSPAN="5" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-1000180"></A>Number of sockets</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-1000182"></A>MOST</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495567_pgfId-1000184"></A>0x0E</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-1000190"></A>SPI</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495567_pgfId-1000192"></A>0x11</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-1000198"></A>USB </P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495567_pgfId-1000200"></A>0x13</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-1000206"></A>Streaming </P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495567_pgfId-1000208"></A>0x17</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="4">
+<P CLASS="CellBody">
+<A NAME="50495567_pgfId-1000222"></A><EM CLASS="Bold">
+Connection</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-1000230"></A>Packet</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495567_pgfId-1000232"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-1000234"></A>0</P>
+</TD>
+<TD ROWSPAN="7" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-1000236"></A>Number of connections</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-1000238"></A>Synchronous</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495567_pgfId-1000240"></A>0x02</P>
+</TD>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-1000242"></A>0...19</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-1000246"></A>AVP</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495567_pgfId-1000248"></A>0x04</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-1000254"></A>QoS</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495567_pgfId-1000256"></A>0x05</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-1000262"></A>DiscFramePhase</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495567_pgfId-1000264"></A>0x09</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-1000278"></A>Combiner</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495567_pgfId-1000280"></A>0x07</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-1000282"></A>0...2</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-1000286"></A>Splitter</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495567_pgfId-1000288"></A>0x08</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="4">
+<P CLASS="CellBody">
+<A NAME="50495567_pgfId-1000294"></A><EM CLASS="Bold">
+Others</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-1000302"></A>PMP channel</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495567_pgfId-1000304"></A>0x03</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-1000306"></A>0...2</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-1000308"></A>Number of channels</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-1000309"></A>0 is MCM; 1 is ICM; 2 is RCM</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body-Text">
+<A NAME="50495567_pgfId-857127"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-665822"></A>Examples: </P>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-720441"></A>The MediaLB Port is represented by port resource identifier 0x0A. The port index for this port is 0x00. Hence, the port resource handle 0x0A00.</P>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-720727"></A>The MediaLB socket is represented by socket resource identifier 0x0B. For the seventeenth MediaLB socket the resource handle will be 0x0B10.</P>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-720895"></A>An invalid resource handle has the value 0xFFFF.</P>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495567_pgfId-655554"></A><A NAME="50495567_84569"></A><A NAME="50495567_16843"></A>Resource Destruction</H3>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-655555"></A>The INIC provides a mechanism where multiple resources can be destroyed by a single request.</P>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-736367"></A><EM CLASS="Computer">
+INIC.ResourceDestroy()</EM>
+, <A HREF="#50495582_84433" CLASS="XRef">ResourceDestroy (0x800)</A>, takes a list of resource handles as a parameter. Each resource handle is processed one at a time and an empty result message is returned when all resources have been destroyed. The order in which resources should be destroyed is: connection first, followed by socket and port.</P>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-736386"></A>If an error occurs, the handle of the failed resource is included in the error message returned to the EHC. All handles prior to the failed handle in the list can be acknowledged as successfully destroyed, while all resource handles after the failed handle in the list are unprocessed.</P>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495567_pgfId-655587"></A>Resource States</H3>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-655588"></A>A resource can be in one of the following states:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495567_pgfId-655589"></A>&#8226; <A NAME="50495567_marker-662549"></A>Valid: This is the normal state.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495567_pgfId-662637"></A>&#8226; <A NAME="50495567_marker-662636"></A>TemporaryInvalid: This is a temporary state in which it cannot be guaranteed that the resource is fully functional. This state can be reached for example during a network unlock.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495567_pgfId-662639"></A>&#8226; <A NAME="50495567_marker-662638"></A>Invalid: This is a permanent state in which the resource is unrecoverable.<BR>
+This state can be reached due to an event (e.g., the network has entered NetInterface Off state) that makes the resource unrecoverable. For information on events that can make resources invalid, refer to <A HREF="#50495567_91107" CLASS="XRef"><EM CLASS="Link">
+Section 6.7</EM>
+</A>. </LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-659835"></A>While an Invalid resource state requires the resource to be destroyed (see <A HREF="#50495567_84569" CLASS="XRef"><EM CLASS="Link">
+Section 6.3</EM>
+</A>), the TemporaryInvalid resource state can change back to the Valid state after recovering from the temporary condition.</P>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-736405"></A>In either case, the EHC must be able to quickly detect invalid resources and mute the output of the routed data, see <A HREF="#50495567_81652" CLASS="XRef"><EM CLASS="Link">
+Section 6.5.1</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-657517"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495567_pgfId-655669"></A>Figure 6-1: State Diagram of a <A NAME="50495567_marker-662587"></A>Monitored Connection</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495567_pgfId-655671"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-35.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-655749"></A>The INIC sets monitored connections to TemporaryInvalid if an event occurs that either requires verification of the resources or the event is temporary. After the condition has ended or if the resources became Invalid, the EHC is notified.</P>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495567_pgfId-655752"></A><A NAME="50495567_59946"></A>Monitoring</H3>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-704971"></A>The INIC contains a resource monitor that monitors the states of resources and handles the muting. As long as it does not require attention from the EHC, it is in <EM CLASS="Computer">
+<A HREF="#50495582_INIC/ResourceMonitor/State" CLASS="XRef">State</A></EM>
+ <EM CLASS="Computer">
+OK</EM>
+. In the case there are events that require the EHC to take an action, the resource monitor enters the state <EM CLASS="Computer">
+ActionRequired</EM>
+, and notifies the EHC. It stays in this state until the EHC requests the resource monitor to reset itself. Resetting the resource monitor means that it will go back to the default state and release the <EM CLASS="Pin-Name">
+MUTE/</EM>
+<EM CLASS="Overline">
+RSOUT</EM>
+<EM CLASS="Pin-Name">
+/GP8</EM>
+ pin, if possible (the pin was configured as <EM CLASS="Pin-Name">
+MUTE</EM>
+<A NAME="50495567_marker-719093"></A> pin, see <A HREF="#50495606_DeviceManagement/MUTE/RSOUT Configuration" CLASS="XRef">MUTE/RSOUT Configuration</A>). If there are still resources that are Invalid, it will immediately go back to <EM CLASS="Computer">
+<A HREF="#50495582_INIC/ResourceMonitor/State" CLASS="XRef">State</A></EM>
+ <EM CLASS="Computer">
+ActionRequired</EM>
+ and notify the EHC; in this case there will be no intermediate notification of <EM CLASS="Computer">
+<A HREF="#50495582_INIC/ResourceMonitor/State" CLASS="XRef">State</A></EM>
+ <EM CLASS="Computer">
+OK</EM>
+. </P>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-655763"></A>The handling of resource monitoring is the same for all resources. However, the <A NAME="50495567_marker-662564"></A>resource monitoring mechanism shown in <A HREF="#50495567_31787" CLASS="XRef"><EM CLASS="Link">
+Section 6.5.2.1</EM>
+</A> can be extended by implementing the muting concept, see <A HREF="#50495567_26737" CLASS="XRef"><EM CLASS="Link">
+Section 6.5.2.2</EM>
+</A>.</P>
+<DIV>
+<A NAME="MNSH2-Muting" /><H6 CLASS="Heading2">
+<A NAME="50495567_pgfId-733317"></A><A NAME="50495567_81652"></A>Muting</H6>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-733318"></A>Muting applies only to synchronous streaming sink connections. Apart from the manual muting that is set by API function <EM CLASS="Computer">
+INIC.SyncMute()</EM>
+, the INIC supports the features described in this section.</P>
+<DIV>
+<A NAME="MNSH3-MutePin" /><H6 CLASS="Heading3">
+<A NAME="50495567_pgfId-655801"></A><A NAME="50495567_37100"></A>Mute Pin</H6>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-659986"></A>In order to provide a fast indicator to assist devices when muting is required, the INIC has a <EM CLASS="Pin-Name">
+MUTE</EM>
+ pin that can signal such conditions (<EM CLASS="Pin-Name">
+GP8</EM>
+ was configured as <EM CLASS="Pin-Name">
+MUTE</EM>
+<A NAME="50495567_marker-716838"></A> pin, see the OS81118 Hardware Data Sheet <EM CLASS="CrossReference">
+<A HREF="#50495561_65912" CLASS="XRef"></A><EM CLASS="Blue">
+[4]</EM>
+<EM CLASS="CrossReference">
+</EM>
+</EM>
+). It is enabled by registering streaming sink connections for mute signaling by setting their <A HREF="#50495582_INIC/SyncCreate/MuteMode" CLASS="XRef">MuteMode</A> to <EM CLASS="Computer">
+MuteSignal</EM>
+. If an event occurs that can corrupt the data for any registered connection, the <EM CLASS="Pin-Name">
+MUTE</EM>
+<A NAME="50495567_marker-690929"></A> pin will be raised. The devices that are receiving the data must be connected to the <EM CLASS="Pin-Name">
+MUTE</EM>
+ pin and mute when it is high. The <EM CLASS="Pin-Name">
+MUTE</EM>
+ pin is released by resetting the resource monitor from state <EM CLASS="Computer">
+ActionRequired</EM>
+, unless there is still a condition that prevents it. It cannot be released if any registered connection is in a TemporaryInvalid or Invalid state; in either case there will be another <EM CLASS="Computer">
+ActionRequired</EM>
+ notification. The EHC can unmute the devices when receiving <EM CLASS="Computer">
+<A HREF="#50495582_INIC/ResourceMonitor/State" CLASS="XRef">State</A></EM>
+ <EM CLASS="Computer">
+OK</EM>
+ from the resource monitor. However, devices must immediately mute again if the <EM CLASS="Pin-Name">
+MUTE</EM>
+ pin is already raised; if necessary, the EHC should check the <EM CLASS="Pin-Name">
+MUTE</EM>
+ pin state before attempting unmute, to reduce unnecessary glitches.</P>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-655806"></A><EM CLASS="BlackMarker">
+Setting the </EM>
+<EM CLASS="Pin-Name">
+MUTE</EM>
+ pin<EM CLASS="BlackMarker">
+ is global for all monitored connections.</EM>
+</P>
+</DIV>
+<DIV>
+<A NAME="MNSH3-MuteMode" /><H6 CLASS="Heading3">
+<A NAME="50495567_pgfId-655807"></A>Mute Mode</H6>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-655811"></A>The <A HREF="#50495582_INIC/SyncCreate/MuteMode" CLASS="XRef">MuteMode</A> configures how the resource monitor will handle events that have made a streaming sink connection invalid. The <EM CLASS="Computer">
+MuteMode</EM>
+ can be configured as follows: </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495567_pgfId-845960"></A>Table 6-2: Mute Modes</TableTitle>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Head">
+<A NAME="50495567_pgfId-845964"></A>Mute Mode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Head">
+<A NAME="50495567_pgfId-845966"></A>Behavior</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-845969"></A><EM CLASS="Computer">
+NoMuting</EM>
+<A NAME="50495567_marker-845968"></A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-845971"></A>No mute monitoring</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-845974"></A><EM CLASS="Computer">
+MuteSignal</EM>
+<A NAME="50495567_marker-845973"></A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-845976"></A>The <EM CLASS="Pin-Name">
+MUTE</EM>
+ pin is asserted when any registered connection may stream corrupted data<EM CLASS="BlackMarker">
+.</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-845979"></A><EM CLASS="Computer">
+AutoMute</EM>
+<A NAME="50495567_marker-845978"></A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-845981"></A>Routes zeros on a temporarily invalid or invalid registered connection as soon as an event happens that may corrupt the connection, and it stops after it has verified that the connection state has been changed back to valid. These connections are not using the <EM CLASS="Pin-Name">
+MUTE</EM>
+ pin. Manual muting, which is defined by function <EM CLASS="Computer">
+INIC.SyncMute()</EM>
+, overrides automatic muting and will therefore prevent automatic unmuting as long as it is<EM CLASS="BlackMarker">
+ set.</EM>
+</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-1027647"></A>&nbsp;</P>
+</DIV>
+</DIV>
+<DIV>
+<A NAME="MNSH2-EHCImplementation" /><H6 CLASS="Heading2">
+<A NAME="50495567_pgfId-790708"></A>EHC Implementation</H6>
+<DIV>
+<A NAME="MNSH3-WithoutMuting" /><H6 CLASS="Heading3">
+<A NAME="50495567_pgfId-790583"></A><A NAME="50495567_31787"></A>Without Muting</H6>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-790584"></A>When the EHC receives a <EM CLASS="Computer">
+ResourceMonitor.Status(ActionRequired)</EM>
+, it must check for any invalid resources and destroy all of them, see <A HREF="#50495567_60752" CLASS="XRef"><EM CLASS="Link">
+Figure 6-2</EM>
+</A>. It does this by first sending <EM CLASS="Computer">
+ResourceInvalidList.Get()</EM>
+, which will return invalid handles in the order they must be destroyed. Any returned handles are then sent in <EM CLASS="Computer">
+ResourceDestroy.StartResult()</EM>
+, <A HREF="#50495582_84433" CLASS="XRef">ResourceDestroy (0x800)</A>. When the handles have been successfully destroyed, the EHC reads the list again and continues the process until it has received the END identifier in the list of invalid resource handles. While destroying resources, the resource monitor stays in <EM CLASS="Computer">
+<A HREF="#50495582_INIC/ResourceMonitor/State" CLASS="XRef">State</A></EM>
+ <EM CLASS="Computer">
+ActionRequired</EM>
+ until receiving a Reset. Therefore, the EHC only has to care about handling this processing. Finally, it sends <EM CLASS="Computer">
+ResourceMonitor.Set(Reset)</EM>
+, <A HREF="#50495582_14382" CLASS="XRef">ResourceMonitor (0x802)</A>, to request the resource monitor to go back to the default state. The process is then done.</P>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-790597"></A>The resource handles reported to the EHC are sorted for immediate processing. The sort order is predefined by INIC. Handles of socket connections are reported first, then all sockets, and last all ports. This is to simplify processing on EHC side, in that no special consideration has to be taken to the destruction rules. A port resource cannot be destroyed if there are still sockets attached to it, and a socket resource cannot be destroyed if it is still being used in a connection.</P>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-790601"></A><A HREF="#50495567_60752" CLASS="XRef"><EM CLASS="Link">
+Figure 6-2</EM>
+</A> depicts a recommendation for a proper EHC implementation without considering the muting concept. An EHC example implementation with muting is shown in <A HREF="#50495567_26737" CLASS="XRef"><EM CLASS="Link">
+Section 6.5.2.2</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-793057"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495567_pgfId-790609"></A>Figure 6-2: <A NAME="50495567_60752"></A>EHC Implementation Proposal for <A NAME="50495567_marker-790608"></A>Resource Handling without Muting</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495567_pgfId-790614"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-36.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-790577"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<A NAME="MNSH3-WithMuting" /><H6 CLASS="Heading3">
+<A NAME="50495567_pgfId-655834"></A><A NAME="50495567_26737"></A>With Muting</H6>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-732748"></A><A HREF="#50495567_69329" CLASS="XRef"><EM CLASS="Link">
+Figure 6-3</EM>
+</A> shows an EHC implementation example that supports muting.</P>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-736458"></A>If the EHC has sink connections muted by the <EM CLASS="Pin-Name">
+MUTE</EM>
+ pin, it should ensure that the <EM CLASS="Pin-Name">
+MUTE</EM>
+ pin is not asserted when receiving <EM CLASS="Computer">
+<A HREF="#50495582_INIC/ResourceMonitor/State" CLASS="XRef">State</A></EM>
+ <EM CLASS="Computer">
+OK</EM>
+ and if so, unmute them. Since the sink connections must mute immediately if the signal is set, it is recommended to do the implementation in a way that avoids short unmuted pulses.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495567_pgfId-732756"></A>Figure 6-3: <A NAME="50495567_69329"></A>EHC Implementation Proposal for <A NAME="50495567_marker-732755"></A>Resource Handling with Muting</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495567_pgfId-732761"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-37.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-655850"></A>&nbsp;</P>
+</DIV>
+</DIV>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495567_pgfId-655851"></A>Application Examples</H3>
+<DIV>
+<A NAME="MNSH2-TemporarilyInvalidConnections" /><H6 CLASS="Heading2">
+<A NAME="50495567_pgfId-655852"></A> Temporarily Invalid Connections</H6>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-655853"></A><A HREF="#50495567_87193" CLASS="XRef"><EM CLASS="Link">
+Figure 6-4</EM>
+</A> shows an example in which a network unlock temporarily invalidates connections that are registered for <EM CLASS="Pin-Name">
+MUTE</EM>
+ pin changes. When Stable Lock has been acquired, the connections will go back to Valid; this event is notified with <EM CLASS="Computer">
+ResourceMonitor.Status(ActionRequired)</EM>
+. The EHC reads the list of invalid resources. Since there are no invalid resources, the EHC will get an empty list with the <EM CLASS="BlackMarker">
+END</EM>
+<A NAME="50495567_marker-662622"></A> identifier. It then resets the resource monitor. After the EHC has received the response that the INIC had released the signal, it unmutes the devices; however, they must mute immediately if the <EM CLASS="Pin-Name">
+MUTE</EM>
+ pin has been driven high again<EM CLASS="BlackMarker">
+.</EM>
+</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495567_pgfId-657742"></A>Figure 6-4: <A NAME="50495567_marker-662612"></A><A NAME="50495567_87193"></A>Unlock with Temporarily Invalid Connection</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495567_pgfId-657744"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-38.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<A NAME="MNSH2-PermanentlyInvalidatedConnections" /><H6 CLASS="Heading2">
+<A NAME="50495567_pgfId-655861"></A>Permanently Invalidated Connections</H6>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-742005"></A><A HREF="#50495567_39828" CLASS="XRef"><EM CLASS="Link">
+Figure 6-5</EM>
+</A> shows an example in which monitored connections become permanently invalid, due to the INIC entering the NetInterface Off state. The EHC reads the list of invalid resources. Since there are more results to be reported than can fit in one message, the <A NAME="50495567_marker-742006"></A>END identifier is not included and the EHC detects that it must read again. As destroyed resources are removed, the EHC can read and destroy in sequence; it will get the next handles in the following read. The EHC may not be able to pass all the received handles to the destroy function and must then send multiple destroy requests. For simplicity it can request the list again after each completed destruction, the destroyed handles are then removed. In the figure it is assumed that all the handles could be sent in the final destroy.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495567_pgfId-742011"></A>Figure 6-5: <A NAME="50495567_39828"></A><A NAME="50495567_marker-742010"></A>Permanently Invalidated Connection</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495567_pgfId-742016"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-39.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-742017"></A>&nbsp;</P>
+</DIV>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495567_pgfId-742019"></A><A NAME="50495567_91107"></A>Events That Make a Resource Invalid</H3>
+<DIV>
+<A NAME="MNSH2-ConfigurationInterfaceEntersProtectedMode" /><H6 CLASS="Heading2">
+<A NAME="50495567_pgfId-664194"></A><A NAME="50495567_83655"></A>Configuration Interface Enters Protected Mode</H6>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-664219"></A>When the configuration interface enters Protected Mode, all MOST resources are marked invalid.</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-MOSTPortAvailability" /><H6 CLASS="Heading2">
+<A NAME="50495567_pgfId-1000566"></A><A NAME="50495567_62132"></A>MOST Port Availability</H6>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-1000567"></A>If the configuration interface is in Attached Mode, a transition from <EM CLASS="Computer">
+INIC.MOSTPortStatus.Availability</EM>
+ <EM CLASS="Computer">
+=</EM>
+ <EM CLASS="Computer">
+<A HREF="#50495582_Available/Availability/MOSTNetworkStatus" CLASS="XRef"><EM CLASS="Computer">
+Available</EM>
+</A></EM>
+ to <EM CLASS="Computer">
+<A HREF="#50495582_NotAvailable/Availability/MOSTNetworkStatus" CLASS="XRef"><EM CLASS="Computer">
+NotAvailable</EM>
+</A></EM>
+ will cause resources associated with the MOST Port to be marked invalid and reported to the EHC for processing.</P>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-1000574"></A>Routing will be stopped automatically and any allocated network bandwidth will be released. The MOST Port is no longer available for streaming data. <BR>
+An example of invalidated connections and the handling of them is shown in <A HREF="#50495567_39828" CLASS="XRef"><EM CLASS="Link">
+Figure 6-5</EM>
+</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495567_pgfId-1000580"></A>Note: A transition from <EM CLASS="Computer">
+INIC.MOSTNetworkStatus.Availability</EM>
+ <EM CLASS="Computer">
+= Available</EM>
+ to <EM CLASS="Computer">
+NotAvailable</EM>
+ implicitly means the MOST Port is not available, <A HREF="#50495582_92652" CLASS="XRef">MOSTNetworkStatus (0x520)</A> for more information.</Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-1000584"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-1000585"></A>The EHC is always in control of destroying resources, even when INIC has automatically marked them as invalid.</P>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-1000586"></A>In Remote Control Mode, a transition from <EM CLASS="Computer">
+INIC.MOSTPortStatus.Availability</EM>
+ = <EM CLASS="Computer">
+Available</EM>
+ to <EM CLASS="Computer">
+NotAvailable</EM>
+ will trigger the INIC to enter Protected Mode.</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-NetworkEvents" /><H6 CLASS="Heading2">
+<A NAME="50495567_pgfId-655891"></A>Network Events</H6>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-768381"></A>The INIC enables on-chip support for aiding an EHC application in fulfilling system connection management requirements for streaming data connections as defined in the MOST Specification <A HREF="#50495561_60695" CLASS="XRef"><EM CLASS="Blue">
+[1]</EM>
+</A>. The following event causes invalid resources:</P>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-768385"></A>The network configuration status <EM CLASS="Computer">
+NWM.Configuration.Status(NotOK)</EM>
+ triggers a transition from system state OK to system state NotOK.</P>
+</DIV>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495567_pgfId-738077"></A><A NAME="50495567_61156"></A>Routing Budget</H3>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-672738"></A>Routing memories and channels are shared between multiple resource objects. To use these resources in an optimum manner, resource planning is important. If an application is to be defined, the resource budget must be planned, to prevent resource conflicts and waste of memory space.</P>
+<DIV>
+<A NAME="MNSH2-RoutingMemory" /><H6 CLASS="Heading2">
+<A NAME="50495567_pgfId-672739"></A><A NAME="50495567_40711"></A>Routing Memory</H6>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-759597"></A>Routing memory is required to ensure a safe routing path (no data loss) for data between two resource objects. INIC manages routing memory internally when creating or destroying resource objects. Allocation and deallocation of routing memory can occur frequently. Although INIC uses a best-fit algorithm when managing routing memory, fragmentation may occur if memory blocks of varying sizes are allocated and deallocated in a highly dynamic fashion.</P>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-759658"></A><A HREF="#50495567_64336" CLASS="XRef"><EM CLASS="Link">
+Table 6-3</EM>
+</A> gives an overview of data types and resource budget.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495567_pgfId-759604"></A>Table 6-3: <A NAME="50495567_64336"></A>Data Type, Routing Memory Resource Budget</TableTitle>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495567_pgfId-759610"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495567_pgfId-759612"></A> Resource Budget</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495567_pgfId-759614"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495567_pgfId-759616"></A>Standard Routing Memory</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-759622"></A><EM CLASS="Computer">
+- Sync </EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495567_pgfId-759624"></A>384 bytes</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-759626"></A>-</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-759628"></A><EM CLASS="Computer">
+- AVPacketized</EM>
+</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-759629"></A><EM CLASS="Computer">
+- QoSPacket</EM>
+</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-759630"></A>- <EM CLASS="Computer">
+DiscFramePhase</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495567_pgfId-759632"></A>4352 bytes</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-759634"></A>-</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495567_pgfId-759638"></A>1024 bytes</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-759642"></A>Available only after the <A HREF="#50495606_PacketConnection/Reduced Transmission Buffer" CLASS="XRef">Reduced Transmission Buffer</A> functionality has been enabled in the configuration string.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellBody">
+<A NAME="50495567_pgfId-759645"></A>Aggregation Routing Memory</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-759651"></A><EM CLASS="Computer">
+- Sync </EM>
+</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-759652"></A><EM CLASS="Computer">
+- AVPacketized</EM>
+</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-759653"></A><EM CLASS="Computer">
+- QoSPacket</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495567_pgfId-759655"></A>8192 bytes</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-759657"></A>Used to allow optimized data transmission over USB.</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-759659"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-RoutingChannels" /><H6 CLASS="Heading2">
+<A NAME="50495567_pgfId-672781"></A><A NAME="50495567_37665"></A>Routing Channels</H6>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-672782"></A>A routing channel is required to enable data transfer between two resource objects (uni-directional). INIC manages the routing channels internally when creating or destroying resource objects. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495567_pgfId-846000"></A>Table 6-4: <A NAME="50495567_15351"></A>Data Type, Routing Channel Resource Budget</TableTitle>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495567_pgfId-846004"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495567_pgfId-846006"></A> Resource Budget</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-846008"></A><EM CLASS="Computer">
+- Sync </EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495567_pgfId-846010"></A>32 channels</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-846012"></A><EM CLASS="Computer">
+- AVPacketized</EM>
+</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-846013"></A><EM CLASS="Computer">
+- QoSPacket</EM>
+</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495567_pgfId-846014"></A>- <EM CLASS="Computer">
+DiscFramePhase</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495567_pgfId-846016"></A>16 channels</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495567_pgfId-758728"></A>&nbsp;</P>
+</DIV>
+</DIV>
+</DIV>
+<h1><a class="anchor" id="SEC_OS81118_9"></a>
+MOST Port</h1>
+<DIV>
+<H1 CLASS="Chapter">
+<A NAME="50495568_pgfId-630401"></A><DIV>
+<IMG SRC="OS81118-40.gif" ALT="">
+</DIV>
+<A NAME="50495568_47728"></A>MOST Port<DIV>
+<IMG SRC="OS81118-41.gif" ALT="">
+</DIV>
+</H1>
+<P CLASS="Body">
+<A NAME="50495568_pgfId-684781"></A>A MOST Port enables support of port-specific network handling. It provides different interface capabilities, which are <A NAME="50495568_marker-678349"></A>cPHY (coax electrical physical layer) or <A NAME="50495568_marker-678350"></A>oPHY (optical physical layer). Different transmission classes are available for transferring data over the MOST network:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495568_pgfId-673402"></A>&#8226; <A NAME="50495568_marker-673400"></A>Synchronous </LI>
+<LI CLASS="Bullet1">
+<A NAME="50495568_pgfId-661275"></A>&#8226; <A NAME="50495568_marker-661278"></A>Isochronous - The isochronous transmission class consists of sub-classes, as listed below:</LI>
+<LI CLASS="Bullet2">
+<A NAME="50495568_pgfId-660984"></A>- A/V Packetized Isochronous Streaming</LI>
+<LI CLASS="Bullet2">
+<A NAME="50495568_pgfId-670889"></A>- DiscreteFrame Isochronous Streaming phase</LI>
+<LI CLASS="Bullet2">
+<A NAME="50495568_pgfId-670811"></A>- QoS IP Streaming</LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495568_pgfId-680412"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495568_pgfId-686282"></A>If a MOST Port is available, it provides information on <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MOSTPortStatus/FreeStreamingBW" CLASS="XRef">FreeStreamingBW</A></EM>
+. If a port is not available, the <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MOSTPortStatus/FreeStreamingBW" CLASS="XRef">FreeStreamingBW</A></EM>
+ is 0xFFFF. The <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MOSTPortStatus/FreeStreamingBW" CLASS="XRef">FreeStreamingBW</A></EM>
+ depends on the configured <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MOSTNetworkStartup/PacketBW" CLASS="XRef">PacketBW</A></EM>
+, see also <A HREF="#50495582_91547" CLASS="XRef"><EM CLASS="Link">
+Table 21-4</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495568_pgfId-685433"></A>A MOST Port can be either <EM CLASS="Computer">
+<A HREF="#50495582_MOSTPortStatus/Availability/Available" CLASS="XRef"><EM CLASS="Computer">
+Available</EM>
+</A></EM>
+ or <EM CLASS="Computer">
+<A HREF="#50495582_MOSTPortStatus/Availability/NotAvailable" CLASS="XRef"><EM CLASS="Computer">
+NotAvailable</EM>
+</A></EM>
+. Additional information is given in <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MOSTPortStatus/AvailabilityInfo" CLASS="XRef">AvailabilityInfo</A></EM>
+.<EM CLASS="Computer">
+ </EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495568_pgfId-688240"></A>If the MOST network is <EM CLASS="Computer">
+<A HREF="#50495582_Available/Availability/MOSTNetworkStatus" CLASS="XRef"><EM CLASS="Computer">
+Available</EM>
+</A></EM>
+, a MOST Port becomes also <EM CLASS="Blue">
+<A HREF="#50495582_MOSTPortStatus/Availability/Available" CLASS="XRef"><EM CLASS="Computer">
+Available</EM>
+</A></EM>
+. </P>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495568_pgfId-677669"></A>Configuration</H3>
+<P CLASS="Body">
+<A NAME="50495568_pgfId-793892"></A>In contrast to other resources, a MOST Port is always created at startup. The port cannot be destroyed during runtime and it also remains persistent when the INIC enters Protected Mode.</P>
+<P CLASS="Body">
+<A NAME="50495568_pgfId-677515"></A><EM CLASS="Blue">
+<A HREF="#50495606_MOSTPort/Physical Layer" CLASS="XRef">Physical Layer</A></EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495568_pgfId-689751"></A>This configuration setting defines the physical layer to be used.</P>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495568_pgfId-689753"></A><A NAME="50495568_88992"></A>Sockets</H3>
+<P CLASS="Body">
+<A NAME="50495568_pgfId-689754"></A>A MOST Port socket encapsulates the configuration settings that are required to access data streams on specific MOST network channels. The <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MOSTSocketCreate/DataType" CLASS="XRef">DataType</A></EM>
+ can be specified by function <EM CLASS="Code">
+INIC.MOSTSocketCreate()</EM>
+. Packet and control sockets are automatically managed by the INIC, <A HREF="#50495582_40783" CLASS="XRef">MOSTSocketCreate (0x611)</A>.</P>
+<P CLASS="Body">
+<A NAME="50495568_pgfId-661612"></A>To establish MOST based data routing, the MOST socket must connect to a MOST Port using the <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MOSTSocketCreate/MOSTSocketHandle" CLASS="XRef">MOSTSocketHandle</A></EM>
+.</P>
+<P CLASS="Body">
+<A NAME="50495568_pgfId-666552"></A>INIC attempts to allocate the required network bandwidth when a MOST socket of direction <EM CLASS="Computer">
+Output</EM>
+ is created. While creating an <EM CLASS="Computer">
+Input</EM>
+ socket, INIC will attempt to connect to the provided MOST <EM CLASS="Computer">
+ConnectionLabel</EM>
+. If the allocation or connection attempt fails, an error message is reported back with failure information. INIC automatically handles cleanup of partially allocated or connected MOST network bandwidth in the event of an error.</P>
+<P CLASS="Body">
+<A NAME="50495568_pgfId-666556"></A>The network bandwidth, specified by parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MOSTSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A></EM>
+ when creating a socket, must be large enough to allow a safe data transmission. The selection of this value depends on the transmission class used, see <A HREF="#50495580_76053" CLASS="XRef"><EM CLASS="Link">
+Section 19.4</EM>
+</A>. </P>
+<P CLASS="Body">
+<A NAME="50495568_pgfId-667941"></A>Additionally, each MOST socket requires a routing channel according to the data type for which it is created, see <A HREF="#50495567_64336" CLASS="XRef"><EM CLASS="Link">
+Table 6-3</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495568_pgfId-670696"></A>For general socket information refer to <A HREF="#50495567_75746" CLASS="XRef"><EM CLASS="Link">
+Section 6.1.2</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495568_pgfId-670702"></A>&nbsp;</P>
+</DIV>
+</DIV>
+<h1><a class="anchor" id="SEC_OS81118_10"></a>
+MediaLB Port</h1>
+<DIV>
+<H1 CLASS="Chapter">
+<A NAME="50495569_pgfId-630401"></A><DIV>
+<IMG SRC="OS81118-42.gif" ALT="">
+</DIV>
+<A NAME="50495569_47728"></A>MediaLB Port<DIV>
+<IMG SRC="OS81118-43.gif" ALT="">
+</DIV>
+</H1>
+<P CLASS="Body">
+<A NAME="50495569_pgfId-655472"></A>The MediaLB Port is the interface to the Media Local Bus. It supports the handling of all MOST network data types and is available in two pin-out options: <A NAME="50495569_marker-661404"></A>MediaLB 3-Pin (single-ended) and <A NAME="50495569_marker-661413"></A>MediaLB 6-Pin (differential). Both pin-out options are available on chip, whereas the use of these options is mutually exclusive, i.e., either MediaLB 3-Pin or MediaLB 6-Pin can be used.</P>
+<P CLASS="Body">
+<A NAME="50495569_pgfId-676578"></A>The clock speed on which the MediaLB Port is running, is a multiple of the MOST network frame rate Fs; thus the maximum frequency for MediaLB 3-Pin is 1024Fs and for MediaLB 6-Pin it is 8192Fs.</P>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495569_pgfId-655184"></A>Configuration</H3>
+<P CLASS="Body">
+<A NAME="50495569_pgfId-675105"></A>The MediaLB Port can be created either by customization of the <A HREF="#50495606_34947" CLASS="XRef">Configuration String</A> or via the <EM CLASS="Computer">
+INIC.MediaLBPortCreate()</EM>
+ function, <A HREF="#50495582_15455" CLASS="XRef">MediaLBPortCreate (0x621)</A>.</P>
+<P CLASS="Body">
+<A NAME="50495569_pgfId-676585"></A>If the MediaLB Port is created via the configuration string, the port cannot be destroyed during runtime and it also remains persistent when the INIC enters Protected Mode.</P>
+<P CLASS="Body">
+<A NAME="50495569_pgfId-708098"></A>If it is desired to create the MediaLB Port during runtime, the <EM CLASS="Computer">
+INIC.MediaLBPortCreate()</EM>
+ function must be used. This time, the port will be destroyed when the INIC enters Protected Mode.</P>
+<P CLASS="Body">
+<A NAME="50495569_pgfId-708099"></A><EM CLASS="Bold">
+Clock Config</EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495569_pgfId-708100"></A>This configuration setting provides various speed grades to define the clock speed on which the MediaLB Port should be run. The speed grades can be customized by the configuration string via property <A HREF="#50495606_MediaLBPort/PortSpeed" CLASS="XRef">Port Speed</A> or during runtime by changing parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MediaLBPortCreate/ClockConfig" CLASS="XRef">ClockConfig</A></EM>
+. Based on the chosen speed grade, either the MediaLB 3-Pin Port or the MediaLB 6-Pin Port will be created. </P>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495569_pgfId-655201"></A><A NAME="50495569_74740"></A>Sockets</H3>
+<P CLASS="Body">
+<A NAME="50495569_pgfId-664529"></A>A MediaLB socket encapsulates the configuration settings that are required to access data streams on specific MediaLB channels. The <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MediaLBSocketCreate/DataType" CLASS="XRef">DataType</A></EM>
+ can be specified by function <EM CLASS="Code">
+INIC.MediaLBSocketCreate()</EM>
+, <A HREF="#50495582_66727" CLASS="XRef">MediaLBSocketCreate (0x631)</A>.</P>
+<P CLASS="Body">
+<A NAME="50495569_pgfId-657807"></A>To establish MediaLB-based data routing, the MediaLB socket must connect to the <BR>
+MediaLB Port using the <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MediaLBPortCreate/MediaLBPortHandle" CLASS="XRef">MediaLBPortHandle</A></EM>
+.</P>
+<P CLASS="Body">
+<A NAME="50495569_pgfId-669677"></A>When a MediaLB socket is created, INIC attempts to allocate the required bandwidth and assigns the allocated channel to the specified application channel address. If the allocation attempt fails, an error message is reported back with failure information. INIC automatically handles cleanup of partially allocated MediaLB bandwidth in the event of an error.</P>
+<P CLASS="Body">
+<A NAME="50495569_pgfId-675064"></A>For general socket information refer to <A HREF="#50495567_75746" CLASS="XRef"><EM CLASS="Link">
+Section 6.1.2</EM>
+</A>.</P>
+<DIV>
+<A NAME="MNSH2-Padding" /><H6 CLASS="Heading2">
+<A NAME="50495569_pgfId-674532"></A><EM CLASS="Bold">
+Padding</EM>
+<A NAME="50495569_48020"></A></H6>
+<P CLASS="Body">
+<A NAME="50495569_pgfId-674533"></A>Although bandwidth is allocated in quadlets, INIC is able to handle routing of a lesser number or a number not equally divisible by 4. Parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MediaLBSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A></EM>
+ specifies the number of bytes that should be routed. For example, a data stream which is 6 bytes wide &#8211; two 24-bit channels (stereo) &#8211; needs to have parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MediaLBSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A></EM>
+ set to 6 bytes. The allocated bandwidth on MediaLB will be padded to 8 bytes (2 quadlets). The padding mechanism must be considered when planning the resource budget for an application. The total available MediaLB bandwidth is decided by the configured clock speed.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495569_pgfId-674545"></A>Note: If a MediaLB <EM CLASS="Computer">
+Output</EM>
+ socket is created with parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MediaLBSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A></EM>
+ set to a value not evenly divisible by 4, the contents of the padded bytes are not guaranteed.</Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495569_pgfId-670861"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495569_pgfId-670862"></A>The MediaLB bandwidth required to allow a safe data transmission depends on the transmission class selected.</P>
+<P CLASS="Body">
+<A NAME="50495569_pgfId-720413"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495569_pgfId-720414"></A> &nbsp;</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-PacketMultiplexing" /><H6 CLASS="Heading2">
+<A NAME="50495569_pgfId-715714"></A><A NAME="50495569_14717"></A>Packet Multiplexing</H6>
+<P CLASS="Body">
+<A NAME="50495569_pgfId-716033"></A>MediaLB sockets of type <EM CLASS="Computer">
+Packet</EM>
+ provide a packet multiplexing feature, which allows two MediaLB sockets of opposite direction to share the same physical channel(s). Using this feature requires a socket <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MediaLBSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A></EM>
+ of at least 12 bytes.</P>
+<P CLASS="Body">
+<A NAME="50495569_pgfId-716068"></A><A HREF="#50495569_10385" CLASS="XRef"><EM CLASS="Link">
+Figure 8-1</EM>
+</A> depicts the packet multiplexing feature. Two physical channels are reserved: one for Tx and one for Rx direction. The remaining physical channels are used as multiplexed channels (see also <A HREF="#50495569_88947" CLASS="XRef"><EM CLASS="Link">
+Table 8-1</EM>
+</A>).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495569_pgfId-716040"></A>Figure 8-1: <A NAME="50495569_10385"></A>Packet Multiplexing</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495569_pgfId-716045"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-44.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495569_pgfId-716176"></A>The INIC monitors the Command field for activity. If the command is idle (NoData) or when an RxStatus busy has been detected, the controller will switch the ChannelAddress (e.g., from transmit address to receive address). It takes 12 bytes after a ChannelAddress has been transmitted until the MediaLB controller can detect if a channel is idle. Hence, an address switch will only occur every 12 bytes for an idle channel. As soon as the Command field signals Tx (or Rx), the shared physical channels will lock to that direction.</P>
+<P CLASS="Body">
+<A NAME="50495569_pgfId-716280"></A><A HREF="#50495569_88947" CLASS="XRef"><EM CLASS="Link">
+Table 8-1</EM>
+</A> gives an overview over the allocated MediaLB <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MediaLBSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A></EM>
+ and the number of physical channels available for multiplexing. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495569_pgfId-716284"></A>Table 8-1: <A NAME="50495569_88947"></A>Packet Multiplexing - Physical Channel Allocation</TableTitle>
+</CAPTION>
+<TR>
+<TH ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495569_pgfId-716292"></A>Bandwidth in Bytes</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495569_pgfId-716294"></A>Physical Channels</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="2">
+<P CLASS="CellHeading">
+<A NAME="50495569_pgfId-716302"></A>Reserved</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Head">
+<A NAME="50495569_pgfId-716306"></A>Multiplexed</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495569_pgfId-716310"></A>Tx </P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495569_pgfId-716312"></A>Rx </P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495569_pgfId-716314"></A>Tx or Rx</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495569_pgfId-716316"></A>12</P>
+</TD>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495569_pgfId-716318"></A>1</P>
+</TD>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495569_pgfId-716320"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495569_pgfId-716322"></A>1</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495569_pgfId-716324"></A>16</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495569_pgfId-716330"></A>2</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495569_pgfId-716332"></A>20</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495569_pgfId-716338"></A>3</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495569_pgfId-716340"></A>...</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495569_pgfId-716346"></A>...</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495569_pgfId-716347"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495569_pgfId-709788"></A>The packet multiplexing feature can be enabled via <A HREF="#50495606_PacketConnection/Multiplexing" CLASS="XRef">Multiplexing</A> in the configuration string. For the MediaLB address and bandwidth settings refer to properties: <A HREF="#50495606_PacketConnection/MediaLB Input Address" CLASS="XRef">MediaLB Input Address</A>, <A HREF="#50495606_PacketConnection/MediaLB Input Bandwidth" CLASS="XRef">MediaLB Input Bandwidth</A>, <A HREF="#50495606_PacketConnection/MediaLB Output Address" CLASS="XRef">MediaLB Output Address</A>, and <A HREF="#50495606_PacketConnection/MediaLB Output Bandwidth" CLASS="XRef">MediaLB Output Bandwidth</A>.</P>
+<P CLASS="Body">
+<A NAME="50495569_pgfId-712269"></A>The feature can also be enabled during runtime. Function <EM CLASS="Computer">
+INIC.MediaLBSocketCreate()</EM>
+ is required to create a <EM CLASS="Computer">
+Packet</EM>
+ socket, see <A HREF="#50495582_66727" CLASS="XRef"><EM CLASS="Link">
+Section 21.2.5.2</EM>
+</A>. The <EM CLASS="Computer">
+MediaLBSocketHandle</EM>
+ returned is then used with the <EM CLASS="Computer">
+INIC.MediaLBPacketMuxSocket-Create()</EM>
+ function to enable the multiplexing mechanism, see <A HREF="#50495582_40183" CLASS="XRef"><EM CLASS="Link">
+Section 21.2.5.3</EM>
+</A>. </P>
+<P CLASS="Body">
+<A NAME="50495569_pgfId-712836"></A>When calling <EM CLASS="Computer">
+INIC.MediaLBPacketMuxSocketCreate()</EM>
+, the INIC creates a new socket based on the characteristics of the provided socket. It has the</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495569_pgfId-712837"></A>&#8226; same data type,</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495569_pgfId-712820"></A>&#8226; same size, </LI>
+<LI CLASS="Bullet1">
+<A NAME="50495569_pgfId-713263"></A>&#8226; opposite direction, and</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495569_pgfId-713353"></A>&#8226; MediaLB ChannelAddress of the provided socket address + 2 (e.g., 0x0006 and 0x0008) </LI>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495569_pgfId-714973"></A>Note: Due to the dependency established, the socket created by <EM CLASS="Computer">
+INIC.MediaLBPacketMuxSocketCreate()</EM>
+must be destroyed first if the packet multiplexing feature is no longer used.</Note: >
+</TD>
+</TR>
+</TABLE>
+</UL>
+<P CLASS="Body">
+<A NAME="50495569_pgfId-714577"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495569_pgfId-714581"></A>To enable packet data routing, the handle of both sockets may be used with function <EM CLASS="Computer">
+INIC.PacketAttach()</EM>
+, see <A HREF="#50495582_48169" CLASS="XRef"><EM CLASS="Link">
+Section 21.2.13.1</EM>
+</A>.</P>
+</DIV>
+</DIV>
+</DIV>
+<h1><a class="anchor" id="SEC_OS81118_11"></a>
+SPI Port</h1>
+<DIV>
+<H1 CLASS="Chapter">
+<A NAME="50495570_pgfId-630401"></A><DIV>
+<IMG SRC="OS81118-45.gif" ALT="">
+</DIV>
+<A NAME="50495570_47728"></A>SPI Port<DIV>
+<IMG SRC="OS81118-46.gif" ALT="">
+</DIV>
+</H1>
+<P CLASS="Body">
+<A NAME="50495570_pgfId-655266"></A>The Serial Peripheral Interface (SPI) Port of the INIC allows to directly interface with microcontrollers that provide a standard SPI.</P>
+<P CLASS="Body">
+<A NAME="50495570_pgfId-660534"></A>Besides the standard SPI signals (<EM CLASS="Overline">
+CS</EM>
+, <EM CLASS="Pin-Name">
+SCLK</EM>
+, <EM CLASS="Pin-Name">
+SDIN</EM>
+ and <EM CLASS="Pin-Name">
+SDOUT</EM>
+), the INIC provides an interrupt line, <EM CLASS="Overline">
+SINT</EM>
+ (see the OS81118 Hardware Data Sheet <EM CLASS="CrossReference">
+<A HREF="#50495561_65912" CLASS="XRef"></A><EM CLASS="Blue">
+[4]</EM>
+<EM CLASS="CrossReference">
+</EM>
+</EM>
+), which is used for byte-level flow control such as required for half-duplex transmission.</P>
+<P CLASS="Body">
+<A NAME="50495570_pgfId-655187"></A>When the SPI Port is created, the INIC operates as an SPI bus slave and supports the exchange of asynchronous data packets (MDPs and MEPs).</P>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495570_pgfId-655188"></A><A NAME="50495570_94143"></A>Configuration</H3>
+<P CLASS="Body">
+<A NAME="50495570_pgfId-655192"></A>The SPI Port can be created either by customization of the <A HREF="#50495606_34947" CLASS="XRef">Configuration String</A> or via the <EM CLASS="Computer">
+INIC.SPIPortCreate()</EM>
+ function, <A HREF="#50495582_84315" CLASS="XRef">SPIPortCreate (0x641)</A>.</P>
+<P CLASS="Body">
+<A NAME="50495570_pgfId-660541"></A>If the SPI Port is created via the configuration string, the port cannot be destroyed during runtime and it also remains persistent when the INIC enters Protected Mode.</P>
+<P CLASS="Body">
+<A NAME="50495570_pgfId-660544"></A>If it is desired to create the SPI Port during runtime, the <EM CLASS="Computer">
+INIC.SPIPortCreate()</EM>
+ function must be used. This time, the port will be destroyed when the INIC enters Protected Mode.</P>
+<P CLASS="Body">
+<A NAME="50495570_pgfId-655196"></A><EM CLASS="Bold">
+<A HREF="#50495582_INIC/SPIPortCreate/ClockMode" CLASS="XRef">ClockMode</A></EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495570_pgfId-655197"></A>This configuration setting provides various <EM CLASS="Pin-Name">
+SCLK </EM>
+clock modes for the phase and polarity signals used by the SPI bus slave. </P>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495570_pgfId-655201"></A>Sockets</H3>
+<P CLASS="Body">
+<A NAME="50495570_pgfId-655202"></A>An SPI Port socket encapsulates the configuration settings that are required to access data on the SPI. The <EM CLASS="Computer">
+<A HREF="#50495582_INIC/SPISocketCreate/DataType" CLASS="XRef">DataType</A></EM>
+ can be specified by function <EM CLASS="Code">
+INIC.SPISocketCreate()</EM>
+, <A HREF="#50495582_62253" CLASS="XRef">SPISocketCreate (0x651)</A>.</P>
+<P CLASS="Body">
+<A NAME="50495570_pgfId-655205"></A>To establish SPI-based data routing, the SPI socket must connect to an SPI Port using the <EM CLASS="Computer">
+<A HREF="#50495582_INIC/SPIPortCreate/SPIPortHandle" CLASS="XRef">SPIPortHandle</A></EM>
+. This, as well as further socket-related parameter settings, can be accomplished by using the <EM CLASS="Computer">
+INIC.SPISocketCreate()</EM>
+ function.</P>
+<P CLASS="Body">
+<A NAME="50495570_pgfId-660032"></A>For general socket information refer to <A HREF="#50495567_75746" CLASS="XRef"><EM CLASS="Link">
+Section 6.1.2</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495570_pgfId-658565"></A>&nbsp;</P>
+<DIV>
+<H4 CLASS="ZNotes">
+<A NAME="50495570_pgfId-637803"></A>&nbsp;</H4>
+</DIV>
+</DIV>
+</DIV>
+<h1><a class="anchor" id="SEC_OS81118_12"></a>
+USB Port</h1>
+<DIV>
+<H1 CLASS="Chapter">
+<A NAME="50495571_pgfId-670881"></A><DIV>
+<IMG SRC="OS81118-47.gif" ALT="">
+</DIV>
+<A NAME="50495571_47728"></A>USB Port<DIV>
+<IMG SRC="OS81118-48.gif" ALT="">
+</DIV>
+</H1>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-699060"></A>The USB Port allows the connection of an INIC as a USB device to any USB 2.0-compliant host. It supports the handling of all MOST network data types (except <EM CLASS="Computer">
+QoSPacket</EM>
+) and provides two physical layer options: a <A NAME="50495571_marker-699061"></A>USB 2.0 default layer and a <A NAME="50495571_marker-699062"></A>USB 2.0 HSIC (High-Speed Inter-Chip) layer, which is a layer variant designed for inter-chip communication. Both options are available on chip, whereas the use of these options is mutually exclusive, i.e., either the default USB 2.0 layer or the HSIC layer can be used.</P>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-670885"></A>The INIC implements a high-speed USB device with a rate of 480 Mbit/s. As with any USB-compliant device, it is capable of falling back to full-speed mode (12 Mbit/s) if connected to a <A NAME="50495571_marker-670887"></A>USB 1.x Port. In this mode, the INIC does not provide any Endpoint, therefore creation of USB sockets is not possible. </P>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-701413"></A>USB device communication is based on pipes. A pipe is an association between a device Endpoint and the host controller. System software of the host controller establishes a pipe with each Endpoint address the host wants to communicate with. This is part of the enumeration process. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495571_pgfId-701416"></A>Note: USB OUT Endpoints represent the communication flow from EHC to INIC and USB IN Endpoints represent the communication flow from INIC to EHC, where the EHC is the USB host.</Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-701418"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-670889"></A>The USB Port only supports bulk transfers. The maximum packet size of a bulk transaction is 512 bytes.</P>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-670893"></A>An overview of descriptors reported by the INIC can be found in <A HREF="#50495571_92338" CLASS="XRef"><EM CLASS="Link">
+Section 10.5</EM>
+</A>.</P>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495571_pgfId-708442"></A><A NAME="50495571_48969"></A>Requirements</H3>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-708470"></A>The INIC contains a limited number of internal resources. In respect to this, data-type dependent USB Endpoint requirements as listed in this section need to be considered to achieve proper operation. If the requirements are not met, data loss can happen.</P>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-708471"></A>The requirements define the least required number of bulk transactions per USB Microframe used for one USB Endpoint. The number of transactions depends on the desired data bandwidth of the connection.</P>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-708472"></A>With one bulk transaction per USB Microframe, a maximum data bandwidth of <BR>
+32 Mbit/s is reachable. Whenever a higher data bandwidth is required, the number of bulk transactions per Microframe needs to be increased.</P>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-708473"></A>A/V Packetized</P>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-708474"></A>For A/V packetized connections the number of required bulk transactions per Micro-frame of a desired data bandwidth depends on the isochronous packet size and the number of frames packed into one bulk transaction. More details can be found in <A HREF="#50495580_55549" CLASS="XRef"><EM CLASS="Link">
+Table 19-2</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-708475"></A>Synchronous</P>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-708476"></A>For synchronous connections the number of required bulk transactions per Microframe is fixed to 1.</P>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-708477"></A>Control and Packet</P>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-708478"></A>The packet connection has no dedicated requirement to the number of bulk transactions per Microframe. In general, the number of bulk transactions needs to be in a range that covers the maximum throughput required.</P>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495571_pgfId-670895"></A><A NAME="50495571_63989"></A>Configuration</H3>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-670896"></A>The USB Port can be created either by customization of the <A HREF="#50495606_34947" CLASS="XRef">Configuration String</A> or via the <EM CLASS="Computer">
+INIC.USBPortCreate()</EM>
+ function, <A HREF="#50495582_32798" CLASS="XRef">USBPortCreate (0x661)</A>.</P>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-671437"></A>If the USB Port is created via the configuration string, the port cannot be destroyed during runtime and it also remains persistent when the INIC enters Protected Mode.<BR>
+If it is desired to create the USB Port during runtime, the <EM CLASS="Computer">
+INIC.USBPortCreate()</EM>
+ function must be used. This time, the port will be destroyed when the INIC enters Protected Mode.</P>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-670903"></A><EM CLASS="Bold">
+<A HREF="#50495582_INIC/USBPortCreate/PhysicalLayer" CLASS="XRef">PhysicalLayer</A></EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-699323"></A>This configuration setting allows to define the USB Port&#8217;s physical layer either as standard USB 2.0 layer or as HSIC layer.</P>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-699327"></A><EM CLASS="Bold">
+<A HREF="#50495582_INIC/USBPortCreate/DeviceInterfaces" CLASS="XRef">DeviceInterfaces</A></EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-699328"></A>The USB interfaces that the device should support must be defined once the USB Port is created. This configuration is persistent as long as the port exists. The setting affects the content of the USB configuration descriptor returned by the INIC, see <A HREF="#50495571_45165" CLASS="XRef"><EM CLASS="Link">
+Section 10.5.3</EM>
+</A>. In full-speed mode, e. g. if connected to a USB 1.x Port, the returned device configuration will only contain an empty interface with no Endpoints, independent from the configuration. In this mode, the creation of USB sockets is not possible.</P>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-699289"></A>The following device interfaces are supported:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495571_pgfId-699191"></A>&#8226; <A HREF="#50495606_USBPort/Control Interface" CLASS="XRef">Control Interface</A><BR>
+This interface provides the Endpoints 0x0F (OUT) and 0x8F (IN). These Endpoints can be used for the communication of control messages. For more information see <A HREF="#50495533_47728" CLASS="XRef">Device Management</A>.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495571_pgfId-699430"></A>&#8226; <A HREF="#50495606_USBPort/Packet Interface" CLASS="XRef">Packet Interface</A><BR>
+This interface provides the Endpoints 0x0E (OUT) and 0x8E (IN). These Endpoints can be used later on for USB socket creation, restricted to the packet data type.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495571_pgfId-702195"></A>&#8226; <A HREF="#50495606_USBPort/Streaming Interface" CLASS="XRef">Streaming Interface</A><BR>
+This interface provides a configurable amount of up to 10 OUT and up to 10 IN Endpoints. These Endpoints can be used later on for USB socket creation, restricted to the <EM CLASS="Computer">
+Sync</EM>
+ and <EM CLASS="Computer">
+AVPacketized</EM>
+ data types.<BR>
+The USB Port configuration allows to specify the number of Endpoints for each direction. Endpoint allocation starts with the Endpoint number 1 (Endpoint address 0x01 for the OUT, and Endpoint address 0x81 for the IN direction). <A HREF="#50495571_96697" CLASS="XRef"><EM CLASS="Link">
+Table 10-1</EM>
+</A> shows the maximum range of Endpoint addresses available for the streaming interface. </LI>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495571_pgfId-705188"></A>Table 10-1: <A NAME="50495571_96697"></A>Endpoint Directions and Addresses</TableTitle>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495571_pgfId-705193"></A><A NAME="50495571_marker-705192"></A>Endpoint Direction</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495571_pgfId-705196"></A><A NAME="50495571_marker-705195"></A>Endpoint Address</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495571_pgfId-705198"></A>OUT</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495571_pgfId-705200"></A>0x01...0x0A</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495571_pgfId-705202"></A>IN</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495571_pgfId-705204"></A>0x81...0x8A</P>
+</TD>
+</TR>
+</TABLE>
+</UL>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-705177"></A> &nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495571_pgfId-702201"></A>Note: If the streaming interface is enabled, it is not allowed to set both Endpoint numbers to zero.</Note: >
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495571_pgfId-670945"></A><A NAME="50495571_83761"></A>Sockets</H3>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-670946"></A>A USB socket encapsulates the configuration settings that are required to access data streams on specific USB pipes. The <EM CLASS="Computer">
+<A HREF="#50495582_INIC/USBSocketCreate/DataType" CLASS="XRef">DataType</A></EM>
+ can be specified by function <EM CLASS="Computer">
+INIC.USBSocketCreate()</EM>
+, <A HREF="#50495582_75965" CLASS="XRef">USBSocketCreate (0x671)</A>.</P>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-670953"></A>To establish USB-based data routing, the USB socket must be connected to a USB Port using the <EM CLASS="Computer">
+<A HREF="#50495582_INIC/USBPortCreate/USBPortHandle" CLASS="XRef">USBPortHandle</A></EM>
+. This, as well as further socket-related parameter settings, can be accomplished by using the <EM CLASS="Computer">
+INIC.USBSocketCreate()</EM>
+ function, <A HREF="#50495582_75965" CLASS="XRef">USBSocketCreate (0x671)</A>. The Endpoint address used to create sockets must be made available by the port configuration, once the USB Port is created. Otherwise the request will fail.</P>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-670963"></A>The parameter <A HREF="#50495582_INIC/USBSocketCreate/FramesPerTransaction" CLASS="XRef">FramesPerTransaction</A> defines the number of data frames that are transferred within one USB bulk transaction. The value depends on the data type being used, see <A HREF="#50495580_47728" CLASS="XRef"><EM CLASS="Blue">
+Chapter 19</EM>
+</A> for details. </P>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-670970"></A>For general socket information refer to <A HREF="#50495567_75746" CLASS="XRef"><EM CLASS="Link">
+Section 6.1.2</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-670974"></A>For USB-related information refer to the USB 2.0 Specification <A HREF="#50495561_92689" CLASS="XRef"><EM CLASS="Blue">
+[5]</EM>
+</A>.</P>
+<DIV>
+<A NAME="MNSH2-PaddinginSynchronousBulkTransactions" /><H6 CLASS="Heading2">
+<A NAME="50495571_pgfId-702348"></A><A NAME="50495571_25408"></A>Padding in Synchronous Bulk Transactions</H6>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-702748"></A>Since the duration of the MOST network frame is six times shorter than the duration of one USB Microframe, the minimum number of <A HREF="#50495582_INIC/USBSocketCreate/FramesPerTransaction" CLASS="XRef">FramesPerTransaction</A> must be 7. &#8216;n&#8217; is the maximum number of <A HREF="#50495582_INIC/USBSocketCreate/FramesPerTransaction" CLASS="XRef">FramesPerTransaction</A>. The value of &#8216;n&#8217; depends on the MOST socket bandwidth. The data bytes per one transaction must not exceed 512 bytes. Therefore, the product of <A HREF="#50495582_INIC/USBSocketCreate/FramesPerTransaction" CLASS="XRef">FramesPerTransaction</A> multiplied by the specified MOST socket bandwidth must be less than or equal to 512 bytes, see also the example shown below.</P>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-702740"></A>If the data bytes within a bulk transaction are less than 512 bytes, padding is applied by the INIC. This means, INIC always sends a packet of 512 bytes to the EHC, whereas the remaining number of bytes will be filled with dummy bytes. If the EHC is sending the packets to the INIC, it can either send shorter packets (without dummy bytes) or the packets with dummy bytes. In the latter case, the INIC discards the dummy bytes.</P>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-702387"></A>Example: </P>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-702656"></A>The MOST socket bandwidth is 30 bytes. The value defined in parameter <A HREF="#50495582_INIC/USBSocketCreate/FramesPerTransaction" CLASS="XRef">FramesPerTransaction</A> is 0x000F. The calculated number of bytes results in a valid number, which is 450 bytes.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495571_pgfId-702662"></A>Figure 10-1: <A NAME="50495571_marker-702661"></A>Synchronous Bulk Transaction with Padding</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495571_pgfId-702667"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-49.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-702841"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-PaddinginA/VPacketizedBulkTransactions" /><H6 CLASS="Heading2">
+<A NAME="50495571_pgfId-702668"></A><A NAME="50495571_25065"></A>Padding in A/V Packetized Bulk Transactions</H6>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-702882"></A><A HREF="#50495582_INIC/USBSocketCreate/FramesPerTransaction" CLASS="XRef">FramesPerTransaction</A> defines the number of isochronous packets filled-in into one USB transaction. The size of an isochronous packet can either be 188, 196, or 206 bytes.</P>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-702672"></A>If <EM CLASS="Blue">
+<A HREF="#50495582_INIC/USBSocketCreate/FramesPerTransaction" CLASS="XRef">FramesPerTransaction</A></EM>
+ is 0x0002, padding is applied if the INIC is the transmitting device. This means, if INIC is sending a packet of 512 bytes to the EHC with two A/V packets filled in, the remaining bytes will be filled with dummy bytes. If the EHC is sending the packets to the INIC, it can either send shorter packets (without dummy bytes) or the packets with dummy bytes. In the latter case, the INIC discards the dummy bytes.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495571_pgfId-702677"></A>Figure 10-2: <A NAME="50495571_marker-703240"></A>A/V Packetized Bulk Transaction with Padding</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495571_pgfId-702682"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-50.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-702574"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-702588"></A>If <EM CLASS="Blue">
+<A HREF="#50495582_INIC/USBSocketCreate/FramesPerTransaction" CLASS="XRef">FramesPerTransaction</A></EM>
+ is 0xFFFF, no padding is applied.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495571_pgfId-702582"></A>Figure 10-3: <A NAME="50495571_marker-702580"></A>A/V Packetized Bulk Transaction without Padding</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495571_pgfId-702587"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-51.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-702589"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-702590"></A>The number of bulk transactions per USB Microframe depends on the performance of the USB host, which is the EHC and the initiator of USB transactions. Higher speeds require more than one transaction per Microframe, therefore it must be ensured that the performance of the EHC is suitable.</P>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-702591"></A>The maximum number of bulk transactions per Microframe is 13. Therefore, the maximum number of A/V Packetized Isochronous Streaming connections depends on the number of USB bulk transactions required.</P>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-702552"></A>&nbsp;</P>
+</DIV>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495571_pgfId-670976"></A><A NAME="50495571_76709"></A>Vendor-Specific Requests</H3>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-670977"></A>All parameters of a USB vendor request are transported in little-endian format. This section describes all vendor-specific requests the INIC supports. </P>
+<DIV>
+<A NAME="MNSH2-AccesstheDriverControlInterfaceDCI" /><H6 CLASS="Heading2">
+<A NAME="50495571_pgfId-670979"></A><A NAME="50495571_14312"></A>Access the Driver Control Interface (DCI)</H6>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-670980"></A>The DCI provides direct access to an internal register set as an auxiliary INIC control interface. If the USB device driver has no access to the regular INIC API (e.g., through the ICM channel), it can read or write DCI registers by issuing vendor-specific requests over USB. The register set description can be found in <A HREF="#50495581_47728" CLASS="XRef"><EM CLASS="Blue">
+Chapter 20</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-671027"></A>There are two vendor-specific device requests for reading and writing DCI registers:</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495571_pgfId-670986"></A>bmRequestType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495571_pgfId-670988"></A>bRequest</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495571_pgfId-670990"></A>wValue</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495571_pgfId-670992"></A>wIndex</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495571_pgfId-670994"></A>wLength</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495571_pgfId-670996"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495571_pgfId-670998"></A>11000000b</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495571_pgfId-671000"></A>0xA0<BR>
+(read register)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495571_pgfId-671002"></A>0x0000</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495571_pgfId-671004"></A>Register index</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495571_pgfId-671006"></A>0x0002, 0x0004,<BR>
+0x0006, 0x0008</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495571_pgfId-671011"></A><A HREF="#50495571_56764" CLASS="XRef"><EM CLASS="Link">
+Note 1</EM>
+</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495571_pgfId-671013"></A>01000000b</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495571_pgfId-671015"></A>0xA1<BR>
+(write register)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495571_pgfId-671017"></A>Register value</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495571_pgfId-671019"></A>Register index</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495571_pgfId-671021"></A>0x0000,<BR>
+0x0004...0xFFFC</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495571_pgfId-671026"></A><A HREF="#50495571_93221" CLASS="XRef"><EM CLASS="Link">
+Note 2</EM>
+</A></P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="TableFootnote1">
+<A NAME="50495571_pgfId-671029"></A>Note 1: <A NAME="50495571_56764"></A>Returns the content of the requested registers to the host, starting with the first indexed register. wLength specifies the number of bytes to read and must be a multiple of 2. Not more than 8 bytes (4 consecutive registers) can be read at once.</P>
+<P CLASS="TableFootnote">
+<A NAME="50495571_pgfId-671031"></A>2: <A NAME="50495571_93221"></A>If wLength is zero, no data will be sent to the device. Only one register will be written in this case, as described by the <EM CLASS="Italic">
+register index</EM>
+ and <EM CLASS="Italic">
+register value</EM>
+ inside the setup packet.<BR>
+If wLength is larger than zero, the data stage will contain further <EM CLASS="Italic">
+register index</EM>
+ and <EM CLASS="Italic">
+register value</EM>
+ pairs. Each of these 4 byte tuples will result in an additional register write. wLength must be a multiple of 4 bytes.</P>
+</DIV>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495571_pgfId-703343"></A><A NAME="50495571_92338"></A>Descriptors</H3>
+<DIV>
+<A NAME="MNSH2-Device" /><H6 CLASS="Heading2">
+<A NAME="50495571_pgfId-703368"></A><A NAME="50495571_16473"></A>Device</H6>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-703469"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495571_pgfId-703374"></A>Table 10-2: <A NAME="50495571_75234"></A><A NAME="50495571_marker-703372"></A><A NAME="50495571_marker-703373"></A>Device Descriptor</TableTitle>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495571_pgfId-703380"></A>Name</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495571_pgfId-703382"></A>Value</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495571_pgfId-703384"></A>Hex</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703386"></A>bLength</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703388"></A>18</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703390"></A>0x12</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703392"></A>bDescriptorType</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703394"></A>DEVICE</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703396"></A>0x01</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703398"></A>bcdUSB</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703400"></A>2.0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703402"></A>0x0200</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703404"></A>bDeviceClass</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703406"></A>Class defined at interface level</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703408"></A>0x00</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703410"></A>bDeviceSubClass</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703412"></A>Subclass defined at interface level</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703414"></A>0x00</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703416"></A>bDeviceProtocol</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703418"></A>None</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703420"></A>0x00</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703422"></A>bMaxPacketSize</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703424"></A>64</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703426"></A>0x40</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703428"></A>idVendor</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703430"></A>Microchip-SMSC</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703432"></A>0x0424</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703434"></A>idProduct</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703436"></A>0xCF18</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703438"></A>0xCF18</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703440"></A>bcdDevice</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703442"></A>0.0.1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703444"></A>0x0001</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703446"></A>iManufacturer</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703448"></A>String descriptor #1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703450"></A>0x01</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703452"></A>iProduct</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703454"></A>String descriptor #2</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703456"></A>0x02</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703458"></A>iSerialNumber</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703460"></A>String descriptor #3</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703462"></A>0x03</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703464"></A>bNumConfigurations</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703466"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703468"></A>0x01</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-703470"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-String" /><H6 CLASS="Heading2">
+<A NAME="50495571_pgfId-703471"></A><A NAME="50495571_37022"></A>String</H6>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-703504"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495571_pgfId-703475"></A>Table 10-3: <A NAME="50495571_marker-703474"></A>String Descriptor #0</TableTitle>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495571_pgfId-703481"></A>Name</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495571_pgfId-703483"></A>Value</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495571_pgfId-703485"></A>Hex</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703487"></A>bLength</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703489"></A>4</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703491"></A>0x04</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703493"></A>bDescriptorType</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703495"></A>STRING</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703497"></A>0x03</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703499"></A>wLANGID[0]</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703501"></A>English (US)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703503"></A>0x0409</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-703538"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495571_pgfId-703509"></A>Table 10-4: <A NAME="50495571_19783"></A><A NAME="50495571_marker-703508"></A>String Descriptor #1</TableTitle>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495571_pgfId-703515"></A>Name</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495571_pgfId-703517"></A>Value</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495571_pgfId-703519"></A>Hex</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703521"></A>bLength</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703523"></A>30</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703525"></A>0x1E</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703527"></A>bDescriptorType</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703529"></A>STRING</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703531"></A>0x03</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703533"></A>Content</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703535"></A>&#8220;Microchip-SMSC&#8221;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703537"></A>&#8230;</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-703571"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495571_pgfId-703542"></A>Table 10-5: <A NAME="50495571_marker-703541"></A>String Descriptor #2</TableTitle>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495571_pgfId-703548"></A>Name</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495571_pgfId-703550"></A>Value</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495571_pgfId-703552"></A>Hex</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703554"></A>bLength</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703556"></A>16</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703558"></A>0x10</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703560"></A>bDescriptorType</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703562"></A>STRING</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703564"></A>0x03</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703566"></A>Content</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703568"></A>&#8220;OS81118&#8221;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703570"></A>&#8230;</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-703572"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-703606"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495571_pgfId-703577"></A>Table 10-6: <A NAME="50495571_81248"></A><A NAME="50495571_marker-703576"></A>String Descriptor #3</TableTitle>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495571_pgfId-703583"></A>Name</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495571_pgfId-703585"></A>Value</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495571_pgfId-703587"></A>Hex</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703589"></A>bLength</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703591"></A>28</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703593"></A>0x1C</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703595"></A>bDescriptorType</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703597"></A>STRING</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703599"></A>0x03</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703601"></A>Content<A HREF="#50495571_98965" CLASS="XRef"><EM CLASS="Superscript">
+1</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703603"></A><A HREF="#50495606_DeviceManagement/Diag ID" CLASS="XRef">Diag ID</A>-unique firmware built number e.g., &#8220;00AB-00000060&#8221;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703605"></A>&#8230;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="3">
+<P CLASS="TableFootnote1">
+<A NAME="50495571_pgfId-706759"></A>Note 1: <A NAME="50495571_98965"></A><A NAME="50495571_33884"></A>The string consists of two values in zero-padded hex notation, concatenated by a hyphen: &#8220;XXXX-XXXXXXXX&#8221;. The first value is the <A HREF="#50495606_DeviceManagement/Diag ID" CLASS="XRef">Diag ID</A> as defined in the configuration string. The second value is a unique firmware built number.</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-703607"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-Configuration" /><H6 CLASS="Heading2">
+<A NAME="50495571_pgfId-703609"></A><A NAME="50495571_45165"></A>Configuration</H6>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-704616"></A>This descriptor is used in USB high-speed mode.</P>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-704259"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495571_pgfId-703618"></A>Table 10-7: <A NAME="50495571_88741"></A><A NAME="50495571_marker-703613"></A><A NAME="50495571_marker-703614"></A>Configuration Descriptor (Continued)</TableTitle>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495571_pgfId-703624"></A>Name</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495571_pgfId-703626"></A>Value</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495571_pgfId-703628"></A>Hex</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellBody">
+<A NAME="50495571_pgfId-703630"></A>Configuration Descriptor</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703636"></A>bLength</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703638"></A>9</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703640"></A>0x09</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703642"></A>bDescriptorType</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703644"></A>CONFIGURATION</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703646"></A>0x02</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703648"></A>wTotalLength</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703650"></A>Depends on the USB Port settings</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703652"></A>0xXXXX</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703654"></A>bNumInterface</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703656"></A>Depends on the USB Port settings</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703658"></A>0x00&#8230;0x04</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703660"></A>bConfigurationValue</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703662"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703664"></A>0x01</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703666"></A>iConfiguration</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703668"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703670"></A>0x00</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703672"></A>bmAttributes</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703674"></A>Remote Wakeup = No, Self Powered = Yes</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703676"></A>0xC0</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703678"></A>bMaxPower</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703680"></A>2 mA</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703682"></A>0x01</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellBody">
+<A NAME="50495571_pgfId-703684"></A>Control Interface Descriptor (Depends on the USB Port Settings)</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703690"></A>bLength</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703692"></A>9</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703694"></A>0x09</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703696"></A>bDescriptorType</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703698"></A>INTERFACE</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703700"></A>0x04</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703702"></A>bInterfaceNumber</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703704"></A>Depends on the USB Port settings</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703706"></A>0x00...0x03</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703708"></A>bAlternateSetting</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703710"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703712"></A>0x00</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703714"></A>bNumEndpoints</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703716"></A>2</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703718"></A>0x02</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703720"></A>bInterfaceClass</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703722"></A>Vendor specific</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703724"></A>0xFF</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703726"></A>bInterfaceSubClass</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703728"></A>Control interface</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703730"></A>0x01</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703732"></A>bInterfaceProtocol</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703734"></A>Reserved</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703736"></A>0x00</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703738"></A>iInterface</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703740"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703742"></A>0x00</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703744"></A>Endpoint Descriptor</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703750"></A>bLength</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703752"></A>7</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703754"></A>0x07</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703756"></A>bDescriptorType</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703758"></A>ENDPOINT</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703760"></A>0x05</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703762"></A>bEndpointAddress</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703764"></A>Direction = OUT, Endpoint ID = 15</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703766"></A>0x0F</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703768"></A>bmAttributes</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703770"></A>Transfer Type = Bulk</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703772"></A>0x02</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703774"></A>wMaxPacketSize</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703776"></A>Max. 512 Bytes</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703778"></A>0x0200</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703780"></A>bInterval</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703782"></A>Never NAKs</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703784"></A>0x00</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703786"></A>Endpoint Descriptor</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703792"></A>bLength</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703794"></A>7</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703796"></A>0x07</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703798"></A>bDescriptorType</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703800"></A>ENDPOINT</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703802"></A>0x05</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703804"></A>bEndpointAddress</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703806"></A>Direction = IN, Endpoint ID = 15</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703808"></A>0x8F</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703810"></A>bmAttributes</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703812"></A>Transfer Type = Bulk</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703814"></A>0x02</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703816"></A>wMaxPacketSize</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703818"></A>Max. 512 Bytes</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703820"></A>0x0200</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703822"></A>bInterval</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703824"></A>Never NAKs</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703826"></A>0x00</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellBody">
+<A NAME="50495571_pgfId-703828"></A>Packet Interface Descriptor (Depends on the USB Port Settings)</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703834"></A>bLength</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703836"></A>9</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703838"></A>0x09</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703840"></A>bDescriptorType</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703842"></A>INTERFACE</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703844"></A>0x04</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703846"></A>bInterfaceNumber</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703848"></A>Depends on the USB Port settings</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703850"></A>0x00...0x03</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703852"></A>bAlternateSetting</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703854"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703856"></A>0x00</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703858"></A>bNumEndpoints</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703860"></A>2</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703862"></A>0x02</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703864"></A>bInterfaceClass</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703866"></A>Vendor specific</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703868"></A>0xFF</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703870"></A>bInterfaceSubClass</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703872"></A>Packet interface</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703874"></A>0x02</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703876"></A>bInterfaceProtocol</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703878"></A>Reserved</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703880"></A>0x00</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703882"></A>iInterface</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703884"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703886"></A>0x00</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703888"></A>Endpoint Descriptor</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703894"></A>bLength</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703896"></A>7</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703898"></A>0x07</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703900"></A>bDescriptorType</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703902"></A>ENDPOINT</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703904"></A>0x05</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703906"></A>bEndpointAddress</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703908"></A>Direction = OUT, Endpoint ID = 14</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703910"></A>0x0E</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703912"></A>bmAttributes</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703914"></A>Transfer Type = Bulk</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703916"></A>0x02</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703918"></A>wMaxPacketSize</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703920"></A>Max. 512 Bytes</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703922"></A>0x0200</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703924"></A>bInterval</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703926"></A>Never NAKs</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703928"></A>0x00</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703930"></A>Endpoint Descriptor</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703936"></A>bLength</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703938"></A>7</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703940"></A>0x07</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703942"></A>bDescriptorType</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703944"></A>ENDPOINT</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703946"></A>0x05</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703948"></A>bEndpointAddress</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703950"></A>Direction = IN, Endpoint ID = 14</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703952"></A>0x8E</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703954"></A>bmAttributes</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703956"></A>Transfer Type = Bulk</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703958"></A>0x02</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703960"></A>wMaxPacketSize</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703962"></A>Max. 512 Bytes</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703964"></A>0x0200</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703966"></A>bInterval</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703968"></A>Never NAKs</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-703970"></A>0x00</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellBody">
+<A NAME="50495571_pgfId-704116"></A>Streaming Interface Descriptor (Depends on the USB Port Settings)</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704122"></A>bLength</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704124"></A>9</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704126"></A>0x09</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704128"></A>bDescriptorType</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704130"></A>INTERFACE</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704132"></A>0x04</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704134"></A>bInterfaceNumber</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704136"></A>Depends on the USB Port settings</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704138"></A>0x00...0x03</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704140"></A>bAlternateSetting</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704142"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704144"></A>0x00</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704146"></A>bNumEndpoints</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704148"></A>1&#8230;20</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704150"></A>0x01&#8230;0x14</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704152"></A>bInterfaceClass</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704154"></A>Vendor specific</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704156"></A>0xFF</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704158"></A>bInterfaceSubClass</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704160"></A>Streaming interface</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704162"></A>0x04</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704164"></A>bInterfaceProtocol</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704166"></A>Reserved</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704168"></A>0x00</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704170"></A>iInterface</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704172"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704174"></A>0x00</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704176"></A>Endpoint Descriptor (One for Each OUT Endpoint)</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704182"></A>bLength</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704184"></A>7</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704186"></A>0x07</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704188"></A>bDescriptorType</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704190"></A>ENDPOINT</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704192"></A>0x05</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704194"></A>bEndpointAddress</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704196"></A>Direction = OUT, Endpoint ID = 1&#8230;10</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704198"></A>0x01&#8230;0x0A</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704200"></A>bmAttributes</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704202"></A>Transfer Type = Bulk</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704204"></A>0x02</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704206"></A>wMaxPacketSize</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704208"></A>Max. 512 Bytes</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704210"></A>0x0200</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704212"></A>bInterval</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704214"></A>Never NAKs</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704216"></A>0x00</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704218"></A>Endpoint Descriptor (One for Each IN Endpoint)</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704224"></A>bLength</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704226"></A>7</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704228"></A>0x07</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704230"></A>bDescriptorType</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704232"></A>ENDPOINT</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704234"></A>0x05</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704236"></A>bEndpointAddress</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704238"></A>Direction = IN, Endpoint ID = 1...10</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704240"></A>0x81&#8230;0x8A</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704242"></A>bmAttributes</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704244"></A>Transfer Type = Bulk</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704246"></A>0x02</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704248"></A>wMaxPacketSize</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704250"></A>Max. 512 Bytes</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704252"></A>0x0200</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704254"></A>bInterval</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704256"></A>Never NAKs</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704258"></A>0x00</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-704559"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-Other-SpeedConfiguration" /><H6 CLASS="Heading2">
+<A NAME="50495571_pgfId-704260"></A>Other-Speed Configuration</H6>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-704705"></A>This descriptor is used in USB high-speed mode.</P>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-704390"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495571_pgfId-704265"></A>Table 10-8: <A NAME="50495571_marker-704263"></A><A NAME="50495571_marker-704264"></A><A NAME="50495571_78280"></A>Other-Speed Configuration Descriptor</TableTitle>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495571_pgfId-704271"></A>Name</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495571_pgfId-704273"></A>Value</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495571_pgfId-704275"></A>Hex</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellBody">
+<A NAME="50495571_pgfId-704277"></A>Configuration Descriptor</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704283"></A>bLength</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704285"></A>9</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704287"></A>0x09</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704289"></A>bDescriptorType</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704291"></A>OTHER_SPEED_CONFIGURATION</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704293"></A>0x07</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704295"></A>wTotalLength</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704297"></A>18</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704299"></A>0x0012</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704301"></A>bNumInterface</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704303"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704305"></A>0x01</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704307"></A>bConfigurationValue</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704309"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704311"></A>0x01</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704313"></A>iConfiguration</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704315"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704317"></A>0x00</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704319"></A>bmAttributes</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704321"></A>Remote Wakeup = No, Self Powered = Yes</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704323"></A>0xC0</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704325"></A>bMaxPower</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704327"></A>2 mA</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704329"></A>0x01</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellBody">
+<A NAME="50495571_pgfId-704331"></A>Interface Descriptor</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704337"></A>bLength</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704339"></A>9</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704341"></A>0x09</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704343"></A>bDescriptorType</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704345"></A>INTERFACE</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704347"></A>0x04</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704349"></A>bInterfaceNumber</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704351"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704353"></A>0x00</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704355"></A>bAlternateSetting</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704357"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704359"></A>0x00</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704361"></A>bNumEndpoints</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704363"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704365"></A>0x00</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704367"></A>bInterfaceClass</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704369"></A>Vendor specific</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704371"></A>0xFF</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704373"></A>bInterfaceSubClass</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704375"></A>Vendor specific</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704377"></A>0x06</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704379"></A>bInterfaceProtocol</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704381"></A>Vendor specific</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704383"></A>0x50</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704385"></A>iInterface</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704387"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704389"></A>0x00</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-704391"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-DeviceQualifier" /><H6 CLASS="Heading2">
+<A NAME="50495571_pgfId-704392"></A>Device Qualifier </H6>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-704462"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495571_pgfId-704397"></A>Table 10-9: <A NAME="50495571_marker-704395"></A><A NAME="50495571_marker-704396"></A>Device Qualifier Descriptor</TableTitle>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495571_pgfId-704403"></A>Name</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495571_pgfId-704405"></A>Value</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495571_pgfId-704407"></A>Hex</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704409"></A>bLength</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704411"></A>10</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704413"></A>0x0A</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704415"></A>bDescriptorType</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704417"></A>DEVICE_QUALIFIER</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704419"></A>0x06</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704421"></A>bcdUSB</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704423"></A>2.0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704425"></A>0x0200</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704427"></A>bDeviceClass</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704429"></A>Class defined at interface level</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704431"></A>0x00</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704433"></A>bDeviceSubClass</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704435"></A>Subclass defined at interface level</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704437"></A>0x00</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704439"></A>bDeviceProtocol</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704441"></A>None</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704443"></A>0x00</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704445"></A>bMaxPacketSize0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704447"></A>64 bytes</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704449"></A>0x40</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704451"></A>bNumConfigurations</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704453"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704455"></A>0x01</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704457"></A>bReserved</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704459"></A>-</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495571_pgfId-704461"></A>0x00</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495571_pgfId-664913"></A>&nbsp;</P>
+</DIV>
+</DIV>
+</DIV>
+<h1><a class="anchor" id="SEC_OS81118_13"></a>
+Streaming Port</h1>
+<DIV>
+<H1 CLASS="Chapter">
+<A NAME="50495572_pgfId-627503"></A><DIV>
+<IMG SRC="OS81118-52.gif" ALT="">
+</DIV>
+<A NAME="50495572_65088"></A>Streaming Port<DIV>
+<IMG SRC="OS81118-53.gif" ALT="">
+</DIV>
+</H1>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-664065"></A>The INIC enables a set of two Streaming Ports: Streaming Port A and Streaming Port B.</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-686588"></A>A Streaming Port can be configured to be compatible to one of the several industry-standard serial data formats, which support media connections to multimedia source and/or sink devices that handle frame-based data streams.</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-663812"></A>The Streaming Port supports the Synchronous Streaming MOST network transmission type.</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-684586"></A>Each Streaming Port has a dedicated set of serial data pins: <EM CLASS="Pin-Name">
+SRXA0</EM>
+ and <EM CLASS="Pin-Name">
+SRXA1</EM>
+ for Streaming Port A and <EM CLASS="Pin-Name">
+SRXB0</EM>
+ and <EM CLASS="Pin-Name">
+SRXB1</EM>
+ for Streaming Port B. Streaming Port A is the only instance that has a set of clock (<EM CLASS="Pin-Name">
+SCK</EM>
+) and synchronization (<EM CLASS="Pin-Name">
+FSY</EM>
+) signals in addition to the serial data pins. Streaming Port B can be configured to be linked to Streaming Port A, in which case these clocking signals are shared by all the data pins of the two ports.</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-663817"></A>The Streaming Port provides a <A NAME="50495572_marker-671337"></A>loopback feature; streaming data received from a network channel can be routed back to the network on a different network channel, see <A HREF="#50495582_37733" CLASS="XRef"><EM CLASS="Link">
+Section 21.2.8.3</EM>
+</A>. </P>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495572_pgfId-663822"></A><A NAME="50495572_55422"></A>Configuration</H3>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-663823"></A>Some of the parameters of the Streaming Port configuration define the <A NAME="50495572_marker-671346"></A>base configuration. These are static parameters that are set once and not intended to be changed during runtime. Parameters of this type are: <EM CLASS="Computer">
+OperationMode</EM>
+, <EM CLASS="Computer">
+PortOption</EM>
+, <EM CLASS="Computer">
+ClockMode</EM>
+, and <EM CLASS="Computer">
+ClockDataDelay</EM>
+. </P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-663824"></A>Other parameters of the Streaming Port configuration can be set when the port is created. These settings can be changed by destroying and recreating the Streaming Port resource, hence these are dynamic configuration options. Parameters of this type are: <EM CLASS="Computer">
+ClockSpeed</EM>
+ and <EM CLASS="Computer">
+DataAlignment</EM>
+.</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-663825"></A>The base configuration can be set either through the <A HREF="#50495606_34947" CLASS="XRef">Configuration String</A> or by using the FBlock INIC API function <EM CLASS="Computer">
+INIC.StreamPortConfiguration()</EM>
+, <A HREF="#50495582_22296" CLASS="XRef">StreamPortConfiguration (0x680)</A>. If the configuration string is used, the property <A HREF="#50495606_StreamingPort/Base Configuration Load" CLASS="XRef">Base Configuration Load</A> enables the base configuration to be automatically loaded at startup. If the FBlock INIC API function is used, the base configuration has to be set on EHC attaching to INIC, since it is cleared on a detach event. A defined base configuration for both Streaming Port A and Streaming Port B is required in order to create the respective port resources.</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-675649"></A>&nbsp;</P>
+<DIV>
+<A NAME="MNSH2-BaseConfigurationOptions" /><H6 CLASS="Heading2">
+<A NAME="50495572_pgfId-663833"></A><A NAME="50495572_60195"></A>Base Configuration Options</H6>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-663834"></A><EM CLASS="Bold">
+Operation mode</EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-674985"></A>This configuration setting defines the operation mode of the Streaming Port. The available operation mode is: </P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-677965"></A><EM CLASS="Computer">
+<A HREF="#50495582_Generic" CLASS="XRef"><EM CLASS="Computer">
+Generic</EM>
+</A></EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-683009"></A>In this operation mode Streaming Port B is linked to Streaming Port A. All data pins share the <EM CLASS="Pin-Name">
+FSY</EM>
+ and <EM CLASS="Pin-Name">
+SCK</EM>
+ signals. Clocking signals are enabled when Streaming Port A is created. Creating Streaming Port B is optional. Therefore, the following conditions must be taken into account when creating ports:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495572_pgfId-678942"></A>&#8226; The port configurations for both ports must have been set before the ports can be created.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495572_pgfId-677968"></A>&#8226; Streaming Port A must be created before Streaming Port B can be created.</LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-683258"></A>When destroying the ports, the following must be taken into account:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495572_pgfId-677970"></A>&#8226; Streaming Port B must be destroyed before Streaming Port A can be destroyed. </LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-663839"></A><EM CLASS="Bold">
+Port option</EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-663840"></A>This configuration setting defines the direction of the physical data pins of the port. Various options are available depending on the selected operation mode. See OS81118 Hardware Data Sheet <A HREF="#50495561_65912" CLASS="XRef"><EM CLASS="Blue">
+[4]</EM>
+</A> for an overview of available options.</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-663844"></A><EM CLASS="Bold">
+Clock mode (Streaming Port A)</EM>
+<A NAME="50495572_marker-671351"></A></P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-663845"></A>This configuration setting only applies to Streaming Port A when configured in operation mode <EM CLASS="Computer">
+<A HREF="#50495582_Generic" CLASS="XRef"><EM CLASS="Computer">
+Generic</EM>
+</A></EM>
+. If <A NAME="50495572_marker-671356"></A>Streaming Port B is additionally configured in operation mode <EM CLASS="Computer">
+<A HREF="#50495582_Generic" CLASS="XRef"><EM CLASS="Computer">
+Generic</EM>
+</A></EM>
+, this means it shares the clock and synchronization signals with Streaming Port A, the clock configuration applies for data pins of both ports. </P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-663846"></A><EM CLASS="Computer">
+<A HREF="#50495582_Output" CLASS="XRef"><EM CLASS="Computer">
+Output</EM>
+</A>/<A HREF="#50495582_Input" CLASS="XRef"><EM CLASS="Computer">
+Input</EM>
+</A></EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-663847"></A>While configured as <EM CLASS="Computer">
+Output</EM>
+, INIC drives the <EM CLASS="Pin-Name">
+FSY/SCK</EM>
+ signals as outputs, frequency locked to the network clock.</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-686603"></A>When configured as <EM CLASS="Computer">
+Input</EM>
+, the <EM CLASS="Pin-Name">
+FSY/SCK</EM>
+ signals must be driven externally, where the RMCK, which is frequency locked to the network clock, is used as reference for clock generation.</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-663851"></A><EM CLASS="Bold">
+Clock data delay (Streaming Port A)</EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-663852"></A>This configuration setting applies only to Streaming Port A when configured in operation mode <A NAME="50495572_marker-671361"></A><EM CLASS="Computer">
+<A HREF="#50495582_Generic" CLASS="XRef"><EM CLASS="Computer">
+Generic</EM>
+</A></EM>
+. If Streaming Port B is additionally configured in operation mode <EM CLASS="Computer">
+<A HREF="#50495582_Generic" CLASS="XRef"><EM CLASS="Computer">
+Generic</EM>
+</A></EM>
+, this means it shares the clock and synchronization signals with Streaming Port A, the clock configuration applies for the data pins of both ports.</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-663853"></A>This setting indicates if there should be a single clock cycle delay between the start of frame and the start of the frame data. When enabled, start of frame data is required to occur on the falling edge of the synchronization signal. For example, left-channel audio data of a stereo stream should occur on the falling edge; this is required for I<EM CLASS="Superscript">
+2</EM>
+S&#8482; compatibility. </P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-663854"></A>When set, only left-justified or sequential formats are available.</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-DynamicConfigurationOptions" /><H6 CLASS="Heading2">
+<A NAME="50495572_pgfId-663857"></A><A NAME="50495572_42623"></A>Dynamic Configuration Options</H6>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-663858"></A><EM CLASS="Bold">
+Clock speed</EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-663859"></A>This configuration setting only applies to Streaming Port A when configured in operation mode <EM CLASS="Computer">
+<A HREF="#50495582_Generic" CLASS="XRef"><EM CLASS="Computer">
+Generic</EM>
+</A></EM>
+. However, if Streaming Port B is additionally configured in operation mode <EM CLASS="Computer">
+<A HREF="#50495582_Generic" CLASS="XRef"><EM CLASS="Computer">
+Generic</EM>
+</A></EM>
+, meaning it shares the clock and synchronization signals with Streaming Port A, the clock configuration applies for data pins of both ports.</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-663860"></A>This setting indicates the clock speed configuration of the <EM CLASS="Pin-Name">
+SCK</EM>
+ signal. Fs should be seen as an umbrella term referring to F<EM CLASS="Subscript">
+Network</EM>
+, which is the MOST network sampling frequency used for the synchronous mode.</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-663861"></A><EM CLASS="Bold">
+Data alignment</EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-663862"></A>This configuration setting specifies in what way the data bytes are required to be located within the Streaming Port frame, so that they can be routed correctly. Multiple industry standard formats are supported, see OS81118 Hardware Data Sheet <A HREF="#50495561_65912" CLASS="XRef"><EM CLASS="Blue">
+[4]</EM>
+</A> for more information.</P>
+</DIV>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495572_pgfId-663867"></A><A NAME="50495572_29338"></A>Sockets</H3>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-688420"></A>A Streaming Port socket encapsulates the configuration settings required to enable routing of streaming data between a MOST network channel and a serial interface pin. The <EM CLASS="Computer">
+<A HREF="#50495582_INIC/StreamSocketCreate/DataType" CLASS="XRef">DataType</A></EM>
+ can be specified by function <EM CLASS="Code">
+INIC.StreamSocketCreate()</EM>
+.</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-688421"></A>Parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/StreamPortConfiguration/PortOption" CLASS="XRef">PortOption</A></EM>
+ of the Streaming Port&#8217;s base configuration configures the availability and direction of the data pins. The direction of a socket must comply with the direction of the pin to which it is associated.</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-663870"></A>The size of the socket specifies the number of bytes per Streaming Port frame to be routed. The clock speed configured for the Streaming Port and the chosen routing format limit the compatible sizes.</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-663874"></A>See <A HREF="#50495572_86503" CLASS="XRef"><EM CLASS="Link">
+Section 11.3.1</EM>
+</A> for an example where a routing format, compliant to the I<EM CLASS="Superscript">
+2</EM>
+S standard, is configured. Refer to <A HREF="#50495582_73924" CLASS="XRef"><EM CLASS="Link">
+Section 21.2.8.4</EM>
+</A> for a reference of the API command used in <EM CLASS="Computer">
+INIC.StreamSocketCreate()</EM>
+.</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-685124"></A>For general socket information refer to <A HREF="#50495567_75746" CLASS="XRef"><EM CLASS="Link">
+Section 6.1.2</EM>
+</A>.</P>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495572_pgfId-663879"></A><A NAME="50495572_67096"></A>Typical Application Examples</H3>
+<DIV>
+<A NAME="MNSH2-Inter-ICSoundIS" /><H6 CLASS="Heading2">
+<A NAME="50495572_pgfId-663881"></A><A NAME="50495572_86503"></A>Inter-IC Sound (I&#178;S)</H6>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-663882"></A>This section gives an example of how to configure the Streaming Port and sockets to setup a use case for 16-bit stereo audio streaming between the INIC and an external audio codec using an I<EM CLASS="Superscript">
+2</EM>
+S-compatible format. The INIC generates the clock signals required by the codec. The clock signals are frequency locked to the time base of the MOST network (synchronous).</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-663886"></A><EM CLASS="Bold">
+Approach 1: base configuration using the configuration string (see <A HREF="#50495606_47728" CLASS="XRef"></A><EM CLASS="Blue">
+Chapter 22</EM>
+<EM CLASS="Bold">
+</EM>
+)</EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-663887"></A>Implement the steps as follows to configure Streaming Port A and Streaming Port B:</P>
+<DIV>
+<H6 CLASS="Numbered1">
+<A NAME="50495572_pgfId-663891"></A>Set <A HREF="#50495606_StreamingPort/Base Configuration Load" CLASS="XRef">Base Configuration Load</A> to <EM CLASS="Computer">
+LoadedAtStartup</EM>
+.</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495572_pgfId-664796"></A>Note: This does not mean that the Streaming Port(s) resources are created per default. Only the base configuration is set.</Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-665757"></A>&nbsp;</P>
+<LI CLASS="Numbered">
+<A NAME="50495572_pgfId-665764"></A>2. Set <EM CLASS="Computer">
+OperationMode</EM>
+ (<A HREF="#50495606_StreamingPort/Port A Operation Mode" CLASS="XRef">Port A Operation Mode</A> and <A HREF="#50495606_StreamingPort/Port B Operation Mode" CLASS="XRef">Port B Operation Mode</A>) to <EM CLASS="Computer">
+Generic</EM>
+.<BR>
+Data pins of Streaming Port B share the clock and synchronization signals of Streaming Port A.</LI>
+<LI CLASS="Numbered">
+<A NAME="50495572_pgfId-663905"></A>3. Set <EM CLASS="Computer">
+PortOption</EM>
+ (<A HREF="#50495606_StreamingPort/Port A Option" CLASS="XRef">Port A Option</A> and <A HREF="#50495606_StreamingPort/Port B Option" CLASS="XRef">Port B Option</A>) to <EM CLASS="Computer">
+InOut</EM>
+.</LI>
+<LI CLASS="Numbered">
+<A NAME="50495572_pgfId-663909"></A>4. Set the clock mode (<A HREF="#50495606_StreamingPort/Por tA Clock Mode" CLASS="XRef">Port A Clock Mode</A>) to <EM CLASS="Computer">
+Output</EM>
+. </LI>
+<LI CLASS="Numbered">
+<A NAME="50495572_pgfId-663913"></A>5. Set the clock delay for data (<A HREF="#50495606_StreamingPort/Port A Clock Data Delay" CLASS="XRef">Port A Clock Data Delay</A>) to <EM CLASS="Computer">
+Delayed</EM>
+.<BR>
+This setting adjusts the start of frame such that it occurs on the falling edge of <EM CLASS="Pin-Name">
+FSY</EM>
+. It also introduces one clock cycle of delay between start of frame and start of frame data. Enabling this setting is required for I<EM CLASS="Superscript">
+2</EM>
+S compatibility.</LI>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-663914"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-663918"></A><EM CLASS="Bold">
+Approach 2: base configuration using the INIC.StreamPortConfiguration.SetGet() command (see </EM>
+<A HREF="#50495582_22296" CLASS="XRef"><EM CLASS="Link">
+Section 21.2.8.1</EM>
+</A><EM CLASS="Bold">
+)</EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-663919"></A>Send the following command to configure Streaming Port A:</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-665877"></A><EM CLASS="Computer">
+INIC.StreamPortConfiguration.SetGet() (Index = StreamPortA,<BR>
+ OperationMode = Generic,<BR>
+ PortOption = InOut,<BR>
+ ClockMode = Output,<BR>
+ ClockDataDelay = Delayed<BR>
+</EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-663921"></A>Send the following command to configure Streaming Port B:</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-663922"></A><EM CLASS="Computer">
+INIC.StreamPortConfiguration.SetGet() (Index = StreamPortB,<BR>
+ OperationMode = Generic,<BR>
+ PortOption = InOut,<BR>
+ ClockMode = Wildcard,<BR>
+ ClockDataDelay = Wildcard)</EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-663923"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-663924"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-663925"></A>After the base configuration is done, proceed with the steps as follows:</P>
+</DIV>
+<DIV>
+<H6 CLASS="Numbered1">
+<A NAME="50495572_pgfId-663926"></A>Create the Streaming Port resource </H6>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-705349"></A><EM CLASS="Computer">
+INIC.StreamPortCreate.StartResult (</EM>
+ <EM CLASS="Computer">
+Index</EM>
+ = <EM CLASS="Computer">
+StreamPortA</EM>
+,<BR>
+ <EM CLASS="Computer">
+ClockConfig</EM>
+ = <EM CLASS="Computer">
+64Fs</EM>
+ ,<BR>
+<EM CLASS="Computer">
+ </EM>
+ <EM CLASS="Computer">
+ DataAlignment</EM>
+ = <EM CLASS="Computer">
+Left16Bit)</EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-789505"></A><EM CLASS="Computer">
+INIC.StreamPortCreate.Result (StreamPortHandle</EM>
+ = 0x1600<EM CLASS="Computer">
+)<BR>
+</EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-705343"></A>Create the Network Port socket of direction input (ConnectionLabel 0x0043 already exists on the network)</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-676765"></A><EM CLASS="Computer">
+INIC.MOSTSocketCreate.StartResult (MOSTPortHandle</EM>
+ = 0x0D00,<BR>
+ <EM CLASS="Computer">
+Direction</EM>
+ = <EM CLASS="Computer">
+Input</EM>
+,<BR>
+ <EM CLASS="Computer">
+DataType</EM>
+ = <EM CLASS="Computer">
+Sync</EM>
+,<BR>
+ <EM CLASS="Computer">
+Bandwidth</EM>
+ = 0x0004,<BR>
+ <EM CLASS="Computer">
+ConnectionLabel</EM>
+ = 0x0043 <EM CLASS="Computer">
+)</EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-663931"></A><EM CLASS="Computer">
+INIC.MOSTSocketCreate.Result(MOSTSocketHandle</EM>
+ = 0x0E02<EM CLASS="Computer">
+)<BR>
+</EM>
+</P>
+<LI CLASS="Numbered">
+<A NAME="50495572_pgfId-663932"></A>2. Create a Streaming Port socket of direction output </LI>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-666957"></A><EM CLASS="Computer">
+INIC.StreamSocketCreate.StartResult(StreamPortHandle</EM>
+ = 0x1600,<BR>
+ <EM CLASS="Computer">
+Direction</EM>
+ = <EM CLASS="Computer">
+Output</EM>
+,<BR>
+ <EM CLASS="Computer">
+DataType</EM>
+ = <EM CLASS="Computer">
+Sync</EM>
+,<BR>
+ <EM CLASS="Computer">
+Bandwidth</EM>
+ = 0x0004,<BR>
+ <EM CLASS="Computer">
+StreamPinID</EM>
+ = <EM CLASS="Computer">
+SRXA1)</EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-666330"></A><EM CLASS="Computer">
+INIC.StreamSocketCreate.Result(StreamSocketHandle</EM>
+ = 0x1703<EM CLASS="Computer">
+)</EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-663935"></A>&nbsp;</P>
+<LI CLASS="Numbered">
+<A NAME="50495572_pgfId-663936"></A>3. Connect the sockets </LI>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-667020"></A><EM CLASS="Computer">
+INIC.SyncCreate.StartResult(</EM>
+ <BR>
+<EM CLASS="Computer">
+ SocketHandleIn</EM>
+ = <EM CLASS="Computer">
+MOSTSocketHandle</EM>
+ (0x0E02), <BR>
+ <EM CLASS="Computer">
+SocketHandleOut</EM>
+ = <EM CLASS="Computer">
+StreamSocketHandle</EM>
+ (0x1703),<BR>
+ <EM CLASS="Computer">
+DefaultMute</EM>
+ = <EM CLASS="Computer">
+False)</EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-667021"></A><EM CLASS="Computer">
+INIC.SyncCreate.Result(SyncHandle</EM>
+ = 0x0200<EM CLASS="Computer">
+)</EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-663939"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-663940"></A>By using either approach 1 or 2 for the base configuration and performing the steps required to setup the socket connection, now the 16-bit audio stream is routed to the output pin <EM CLASS="Pin-Name">
+SRXA1</EM>
+ on Streaming Port A according to the Delayed-Bit Alignment format, see OS81118 Hardware Data Sheet <A HREF="#50495561_65912" CLASS="XRef"><EM CLASS="Blue">
+[4]</EM>
+</A>.</P>
+</DIV>
+</DIV>
+<DIV>
+<H4 CLASS="ZNotes">
+<A NAME="50495572_pgfId-663944"></A>&nbsp;</H4>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-663945"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-663962"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495572_pgfId-665667"></A>&nbsp;</P>
+</DIV>
+</DIV>
+</DIV>
+<h1><a class="anchor" id="SEC_OS81118_14"></a>
+RMCK Port</h1>
+<DIV>
+<H1 CLASS="Chapter">
+<A NAME="50495573_pgfId-630401"></A><DIV>
+<IMG SRC="OS81118-54.gif" ALT="">
+</DIV>
+<A NAME="50495573_47728"></A>RMCK Port<DIV>
+<IMG SRC="OS81118-55.gif" ALT="">
+</DIV>
+</H1>
+<P CLASS="Body">
+<A NAME="50495573_pgfId-655219"></A>The RMCK Port encapsulates the configuration of the <EM CLASS="Pin-Name">
+RMCK</EM>
+ pin. It can generate a clock signal that is synchronous to the <A NAME="50495573_marker-657042"></A>network clock, which can be used as a master clock to synchronize external components on the node to the common network clock. </P>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495573_pgfId-655220"></A>Configuration</H3>
+<P CLASS="Body">
+<A NAME="50495573_pgfId-655224"></A>The output frequency on the <EM CLASS="Pin-Name">
+RMCK</EM>
+ pin is decided by parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/RMCKPortCreate/Divisor" CLASS="XRef">Divisor</A></EM>
+, which divides a 3072Fs clock that is phase locked to the network, i.e., the output frequency is synchronous to the network clock. <BR>
+The RMCK Port can be opened by default by enabling it in the configuration string (see <A HREF="#50495606_RMCKPort/Port Create" CLASS="XRef">Port Create</A>) and configured by setting the desired divisor (see <A HREF="#50495606_RMCKPort/Divisor" CLASS="XRef">Divisor</A>).</P>
+<DIV>
+<H4 CLASS="ZNotes">
+<A NAME="50495573_pgfId-655616"></A>&nbsp;</H4>
+</DIV>
+</DIV>
+</DIV>
+<h1><a class="anchor" id="SEC_OS81118_15"></a>
+I2C Port</h1>
+<DIV>
+<H1 CLASS="Chapter">
+<A NAME="50495574_pgfId-630401"></A><DIV>
+<IMG SRC="OS81118-56.gif" ALT="">
+</DIV>
+<A NAME="50495574_47728"></A>I&#178;C Port<DIV>
+<IMG SRC="OS81118-57.gif" ALT="">
+</DIV>
+</H1>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-678383"></A>The <A NAME="50495574_marker-678382"></A>Inter-Integrated Circuit (I<EM CLASS="Superscript">
+2</EM>
+C) Port of the INIC allows to directly interface with devices that provide a standard I<EM CLASS="Superscript">
+2</EM>
+C interface.</P>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-678384"></A>The INIC offers two operation modes:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495574_pgfId-678385"></A>&#8226; Slave mode - only used in conjunction with an EHC applying the PMP protocol (see <A HREF="#50495533_47728" CLASS="XRef"><EM CLASS="Blue">
+Chapter 2</EM>
+</A>)</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495574_pgfId-660684"></A>&#8226; Master mode - INIC generates the clock signals and initiates the communication to a slave device</LI>
+</UL>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495574_pgfId-658112"></A><A NAME="50495574_86335"></A>Configuration</H3>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-658538"></A>The I<EM CLASS="Superscript">
+2</EM>
+C Port can be created by customization of the <A HREF="#50495606_34947" CLASS="XRef">Configuration String</A> or via the <EM CLASS="Computer">
+INIC.I2CPortCreate()</EM>
+ function, <A HREF="#50495582_98351" CLASS="XRef">I2CPortCreate (0x6C1)</A>.</P>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-667560"></A>If the I<EM CLASS="Superscript">
+2</EM>
+C Port availability is configured via the configuration string, the port cannot be destroyed during runtime and it also remains persistent when the INIC enters Protected Mode.</P>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-667563"></A>If it is desired to create the I<EM CLASS="Superscript">
+2</EM>
+C Port during runtime, the <EM CLASS="Computer">
+INIC.I2CPortCreate()</EM>
+ function must be used. In this case, the port will be destroyed when the INIC enters Protected Mode.</P>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-658119"></A><EM CLASS="Bold">
+Slave mode</EM>
+<A NAME="50495574_marker-660212"></A></P>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-677598"></A>When the I<EM CLASS="Superscript">
+2</EM>
+C Port is created at startup (<A HREF="#50495606_I2CPort/Port Create" CLASS="XRef">Port Create</A> in the configuration string must be set to <EM CLASS="Computer">
+CreatedAtStartup</EM>
+), the INIC operates as an I<EM CLASS="Superscript">
+2</EM>
+C-bus slave. This mode is static and therefore cannot be changed during runtime.</P>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-677604"></A><EM CLASS="Underline">
+Master mode</EM>
+<A NAME="50495574_marker-677603"></A></P>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-659998"></A>To use the I<EM CLASS="Superscript">
+2</EM>
+C Port as I<EM CLASS="Superscript">
+2</EM>
+C-bus master, <A HREF="#50495606_I2CPort/Port Create" CLASS="XRef">Port Create</A> in the configuration string must be set to <EM CLASS="Computer">
+NotCreatedAtStartup</EM>
+. In addition, the interfaces for PMP communication (<A HREF="#50495606_Device Management/Configuration Interface" CLASS="XRef">Configuration Interface</A> and <A HREF="#50495606_Device Management/Application Interface" CLASS="XRef">Application Interface</A>) must be set to <EM CLASS="Computer">
+MediaLB</EM>
+ or <EM CLASS="Computer">
+USB</EM>
+. If the INIC is not connected to an EHC, <EM CLASS="Computer">
+None</EM>
+ must be selected.</P>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-658132"></A>Calling the <EM CLASS="Computer">
+INIC.I2CPortCreate()</EM>
+ function during runtime and setting the <EM CLASS="Computer">
+<A HREF="#50495582_INIC/I2CPortCreate/OperationMode" CLASS="XRef">OperationMode</A></EM>
+ to <EM CLASS="Computer">
+Master</EM>
+, enables the I<EM CLASS="Superscript">
+2</EM>
+C-bus master mode. Using this mode makes the <EM CLASS="Overline">
+INT</EM>
+ pin available as GPIO.</P>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495574_pgfId-670226"></A><A NAME="50495574_88136"></A>Slave Mode</H3>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-670228"></A>Once the I<EM CLASS="Superscript">
+2</EM>
+C Port is created in slave configuration, the port will be available to the EHC as the communication interface. Control message exchange is processed bi-directional, over the PMP channels, see <A HREF="#50495533_PMPv2 Channels" CLASS="XRef"><EM CLASS="Link">
+Section 2.1.1</EM>
+</A>. The EHC acts as I<EM CLASS="Superscript">
+2</EM>
+C bus master.</P>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-670237"></A>The I<EM CLASS="Superscript">
+2</EM>
+C bus master may drive the bus with a clock rate of up to 400 kHz. Clock stretching provides an appropriate handshake mechanism to let the INIC adapt the data transfer rate dynamically. The actual processing time varies, based on the overall load of tasks.</P>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-670769"></A>The I<EM CLASS="Superscript">
+2</EM>
+C slave address of the INIC is specified in the 7-bit slave addressing scheme. The value defaults to 0x20, however the <A HREF="#50495606_I2CPort/PortAddress" CLASS="XRef">Port Address</A> can be changed via the configuration string. </P>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-676056"></A>Besides the standard I<EM CLASS="Superscript">
+2</EM>
+C signals (<EM CLASS="Pin-Name">
+SDA</EM>
+ and <EM CLASS="Pin-Name">
+SCL</EM>
+), the INIC provides an interrupt line, <EM CLASS="Overline">
+INT</EM>
+ (see the OS81118 Hardware Data Sheet <EM CLASS="CrossReference">
+<A HREF="#50495561_65912" CLASS="XRef"></A><EM CLASS="Blue">
+[4]</EM>
+<EM CLASS="CrossReference">
+</EM>
+</EM>
+), which is used for byte-level flow control such as required for half-duplex transmission. The <EM CLASS="Overline">
+INT</EM>
+ line is used to signal the communication status to the bus master, which eliminates the need for a polling mechanism.</P>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-669223"></A>The <EM CLASS="Overline">
+INT</EM>
+ pin is an open-drain, active-low output that must be connected to the bus master&#8217;s interrupt logic, see <A HREF="#50495574_59280" CLASS="XRef"><EM CLASS="Link">
+Figure 13-1</EM>
+</A>. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495574_pgfId-771639"></A>Figure 13-1: <A NAME="50495574_59280"></A><A NAME="50495574_marker-771638"></A>I&#178;C Port Pin Connection</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495574_pgfId-771644"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-58.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-669230"></A>Limitations in slave mode:</P>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-669231"></A>Driving the I<EM CLASS="Superscript">
+2</EM>
+C bus in slave mode does not support a repeated START condition. Therefore, each message must be terminated by a STOP condition before the next message can be started.</P>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-773346"></A>&nbsp;</P>
+<DIV>
+<A NAME="MNSH2-SendingaMessage" /><H6 CLASS="Heading2">
+<A NAME="50495574_pgfId-669238"></A>Sending a Message</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495574_pgfId-673462"></A>Figure 13-2: <A NAME="50495574_marker-679162"></A>I&#178;C Write Transaction</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495574_pgfId-673467"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-59.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-676596"></A>Sending a message to the I<EM CLASS="Superscript">
+2</EM>
+C Port can be initiated by performing an I<EM CLASS="Superscript">
+2</EM>
+C write transaction. Thus, the device address and the write identifier have to be exposed on the I<EM CLASS="Superscript">
+2</EM>
+C bus. After the reception of the acknowledge bit, the message can be written to the port. A write transaction allows only a single message to be transmitted.</P>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-669244"></A>Sending messages to the INIC does not involve the <EM CLASS="Overline">
+INT</EM>
+ line.</P>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-669245"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-ReceivingaMessage" /><H6 CLASS="Heading2">
+<A NAME="50495574_pgfId-676797"></A>Receiving a Message</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495574_pgfId-676825"></A>Figure 13-3: <A NAME="50495574_marker-679167"></A>I&#178;C Read Transaction</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495574_pgfId-676830"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-60.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-676783"></A>A read transaction allows only one message to be fetched. After an entire message is read, the INIC will drop the message from the queue. In addition, if more bytes are read than the message length specified by the PML or if no more messages are queued, the INIC will return zero values in the read result.</P>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-669254"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-669255"></A>Every time a message is available for reception, the INIC will drive the <EM CLASS="Overline">
+INT</EM>
+ pin low to inform the bus master. The bus master has to react on this event and initiates a read transaction to fetch the pending message from the INIC queue.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495574_pgfId-673418"></A>Figure 13-4: <A NAME="50495574_40955"></A><A NAME="50495574_marker-774054"></A>Single Read Transaction </FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495574_pgfId-673422"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-61.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-677835"></A>When the INIC is addressed by a read operation, it will release the <EM CLASS="Overline">
+INT</EM>
+ line. The <EM CLASS="Overline">
+INT</EM>
+ line may also be released if the INIC cancels the transmission of a message and empties its queue. </P>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-774002"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-677935"></A>During the STOP condition of a read transaction, the <EM CLASS="Overline">
+INT</EM>
+ line will be driven low again if not all message bytes were read, see <A HREF="#50495574_28698" CLASS="XRef"><EM CLASS="Link">
+Figure 13-5</EM>
+</A>. This signals the master to repeat the read transaction for this message.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495574_pgfId-676949"></A>Figure 13-5: <A NAME="50495574_28698"></A><A NAME="50495574_marker-679177"></A>Two-Staged Read Transaction</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495574_pgfId-676951"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-62.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-679617"></A>After a message was completely fetched, the INIC sets the <EM CLASS="Overline">
+INT</EM>
+ line low to signal that it is ready to transmit the next message from its queue. If there are no further messages in the queue, the <EM CLASS="Overline">
+INT</EM>
+ line remains high.</P>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-772800"></A>If the bus master (or the controlling application) does not completely fetch the message, the INIC will run into a timeout after t<EM CLASS="Subscript">
+TxDriver </EM>
+(see Port Message Protocol Specification <A HREF="#50495561_49764" CLASS="XRef"><EM CLASS="Blue">
+[3]</EM>
+</A>). Then the INIC will cancel the transaction and remove the failed message from its queue. If there are no further messages in the queue, the <EM CLASS="Overline">
+INT</EM>
+ line will be switched high again.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495574_pgfId-772944"></A>Note: If ICM, RCM or MCM PMP channels are connected to the I<EM CLASS="Superscript">
+2</EM>
+C Port, then the <EM CLASS="Overline">
+INT</EM>
+ pin will be pulled low right after power on or reset. This happens, since the INIC attempts to send a startup message for each control channel during startup. The <EM CLASS="Overline">
+INT</EM>
+ pin will go back high after all messages were fetched, or if the EHC is not present at that time, all messages were canceled.</Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-774007"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-772798"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-679618"></A>Messages can be polled by the EHC without using the interrupt mechanism. Reading the PML value inside the first two bytes of the PMP header (see <A HREF="#50495533_17650" CLASS="XRef"><EM CLASS="Link">
+Figure 2-1</EM>
+</A>) indicates if a message is pending. If this value is zero, no message can be read from the INIC. However, such a polling mechanism will keep the bus busy, hence preventing other transactions from being processed. </P>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-677367"></A>The following methods can be used to fetch a pending message from the INIC. The methods are listed in recommended (most efficient to least efficient) order: </P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495574_pgfId-672867"></A>&#8226; The most common method is to read the message directly in a single read transaction, as shown in <A HREF="#50495574_40955" CLASS="XRef"><EM CLASS="Link">
+Figure 13-4</EM>
+</A>. Therefore the I<EM CLASS="Superscript">
+2</EM>
+C bus master must be capable to pause the communication after reading the PML (first 2 bytes of the message). During this time, the bus master can allocate the necessary heap and proceed with reading the remaining bytes of the message. Such a feature may not be supported by any I<EM CLASS="Superscript">
+2</EM>
+C driver. In such a case, one of the alternative methods (listed below) should be used.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495574_pgfId-669266"></A>&#8226; An alternative possibility is to read the control message in a two-staged transaction, as shown in <A HREF="#50495574_28698" CLASS="XRef"><EM CLASS="Link">
+Figure 13-5</EM>
+</A>. The first read transaction is necessary to acquire the length information (PML field). After allocating the required heap, the bus master must initiate a second read transaction to receive the entire message. </LI>
+<LI CLASS="Bullet1">
+<A NAME="50495574_pgfId-669268"></A>&#8226; Another alternative is to read the maximum length of the port message in one read cycle, every time. This happens regardless of the actual PML value and may result in a very high bus traffic when transmitting the attached remaining zero's. Such an inefficient way should only be chosen if the other ways can't be used.</LI>
+</UL>
+</DIV>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495574_pgfId-660328"></A>Master Mode</H3>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-660768"></A>Once the I<EM CLASS="Superscript">
+2</EM>
+C Port is created in master configuration, the read and write sequences are initiated with the <EM CLASS="Computer">
+INIC.I2CPortRead()</EM>
+ and <EM CLASS="Computer">
+INIC.I2CPortWrite()</EM>
+ functions. The functions specify the handle of the port, the transfer mode (<EM CLASS="Computer">
+<A HREF="#50495582_INIC/I2CPortWrite/Mode" CLASS="XRef">Mode</A></EM>
+), the slave address, and the length of data.</P>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-660769"></A>The I<EM CLASS="Superscript">
+2</EM>
+C-bus master driver supports the following message types:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495574_pgfId-660770"></A>&#8226; Single message - master writes n data bytes to a slave device (<EM CLASS="Computer">
+DefaultMode</EM>
+)</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495574_pgfId-660771"></A>&#8226; Single message - master reads n data bytes from a slave device (<EM CLASS="Computer">
+DefaultMode</EM>
+)</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495574_pgfId-660772"></A>&#8226; Single message - master writes n data bytes, divided in m blocks of chunks, to a slave device (<EM CLASS="Computer">
+BurstMode</EM>
+)</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495574_pgfId-667572"></A>&#8226; Combined message - master issues multiple reads/writes to one slave device (<A HREF="#50495582_I2CPortWrite/Mode/RepeatedStartMode" CLASS="XRef"><EM CLASS="Computer">
+RepeatedStartMode</EM>
+</A>)</LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-667573"></A>&nbsp;</P>
+<DIV>
+<A NAME="MNSH2-AddressingMode" /><H6 CLASS="Heading2">
+<A NAME="50495574_pgfId-667574"></A>Addressing Mode</H6>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-660776"></A>When operating as an I<EM CLASS="Superscript">
+2</EM>
+C-bus master, the INIC supports the standard 7-bit addressing as well as the enhanced 10-bit addressing mode. </P>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-660778"></A><EM CLASS="Bold">
+7-bit Addressing</EM>
+<A NAME="50495574_marker-663187"></A></P>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-661236"></A>This is the most commonly used addressing mode. The 7-bit address is transferred with the most significant bit first and followed by a direction bit. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495574_pgfId-661230"></A>Figure 13-6: <A NAME="50495574_marker-663168"></A>7-bit Address Write</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495574_pgfId-661235"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-63.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-660782"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495574_pgfId-662130"></A>Figure 13-7: <A NAME="50495574_marker-663177"></A>7-bit Address Read</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495574_pgfId-662134"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-64.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-660785"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-660786"></A><EM CLASS="Bold">
+10-bit Addressing</EM>
+<A NAME="50495574_marker-663182"></A></P>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-660787"></A>The 10-bit addressing expands the number of possible device addresses while maintaining backwards-compatibility with devices that only support 7-bit addressing.</P>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-660789"></A>Per the I<EM CLASS="Superscript">
+2</EM>
+C-bus specification <A HREF="#50495561_89252" CLASS="XRef"><EM CLASS="Blue">
+[9]</EM>
+</A>, a '11110' following a START condition indicates the use of the 10-bit addressing mode. </P>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-660791"></A>For a 10-bit address write operation on a slave device, the first byte contains the two most significant bits of the 10-bit device address as well as the R/W flag. The remaining eight bits of the address are sent in the second byte. Therefore, if the message payload contains n data bytes, the length parameter must be set to n+1.</P>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-663080"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495574_pgfId-662155"></A>Figure 13-8: <A NAME="50495574_marker-663192"></A>10-bit Address Write</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495574_pgfId-662159"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-65.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-660795"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-663104"></A>For a 10-bit address read operation on a slave device, a repeated start sequence has to be used. The first message (<EM CLASS="Computer">
+INIC.I2CPortWrite()</EM>
+) issues the 10-bit address and the second message (<EM CLASS="Computer">
+INIC.I2CPortRead()</EM>
+) initiates the read sequence.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495574_pgfId-662178"></A>Figure 13-9: <A NAME="50495574_marker-663197"></A>10-bit Address Read</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495574_pgfId-662182"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-66.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-660800"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-TransferSpeed" /><H6 CLASS="Heading2">
+<A NAME="50495574_pgfId-662374"></A>Transfer Speed</H6>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-662461"></A>The INIC offers two different settings for the transfer speed: 100 kHz (Standard-mode, default) and 400 kHz (Fast-mode). Faster speed grades, such as Fast-mode Plus or High-speed mode, as defined in the I<EM CLASS="Superscript">
+2</EM>
+C-bus specification <A HREF="#50495561_89252" CLASS="XRef"><EM CLASS="Blue">
+[9]</EM>
+</A>, are not supported.</P>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-660803"></A>The transfer speed (<EM CLASS="Computer">
+<A HREF="#50495582_INIC/I2CPortCreate/Speed" CLASS="XRef">Speed</A></EM>
+) can be set by using the <EM CLASS="Computer">
+INIC.I2CPortCreate()</EM>
+ function.</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-ClockStretching" /><H6 CLASS="Heading2">
+<A NAME="50495574_pgfId-661352"></A>Clock Stretching</H6>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-661353"></A>The clock stretching mechanism, used by slave devices to control the transfer rate of the master, is also supported. In general, the slave device is permitted to pull down the clock line to reduce the transfer rate. This can happen, if a slave has not processed the current data request and the master tries to attempt sending the next bit or byte. To ensure backwards compatibility, the INIC supports clock stretching on bit and byte boundary.</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-Multi-MasterSupport" /><H6 CLASS="Heading2">
+<A NAME="50495574_pgfId-660808"></A>Multi-Master Support</H6>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-660809"></A>According to the I<EM CLASS="Superscript">
+2</EM>
+C-bus Specification <A HREF="#50495561_89252" CLASS="XRef"><EM CLASS="Blue">
+[9]</EM>
+</A>, driving the I<EM CLASS="Superscript">
+2</EM>
+C bus with more than one master device at the same time is allowed. INIC implements the necessary bus-busy-state detection and bus arbitration logic to prevent data collision during read/write transfers inside a multi-master environment.</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-RepeatedStartCombinedFormat" /><H6 CLASS="Heading2">
+<A NAME="50495574_pgfId-660812"></A>Repeated Start (Combined Format)</H6>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-660813"></A>Usually each I<EM CLASS="Superscript">
+2</EM>
+C message consists of a START and STOP identifier. When the INIC is configured in <EM CLASS="Computer">
+RepeatedStartMode</EM>
+, it sends the START identifier, but suppresses the STOP condition. If the STOP condition is not issued, the bus remains busy and the controlling device can complete subsequent transactions. </P>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-662771"></A>A typical example is the communication flow to an EEPROM device. If data is to be written to a certain address inside the EEPROM, an I<EM CLASS="Superscript">
+2</EM>
+C transfer is initiated using <EM CLASS="Computer">
+INIC.I2CPortWrite.StartResult.Mode.RepeatedStartMode</EM>
+. The INIC sets a START identifier and issues the slave address of the EEPROM device. The address will be acknowledged and the following byte will set the desired memory address inside the EEPROM. The next message, for example <EM CLASS="Computer">
+INIC.I2CPortWrite.Start-Result.Mode.DefaultMode</EM>
+ will write the payload into the memory address and generate a STOP condition on the bus. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495574_pgfId-662765"></A>Figure 13-10: <A NAME="50495574_marker-663202"></A>Repeated Start</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495574_pgfId-662770"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-67.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-660815"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-ErrorConditions" /><H6 CLASS="Heading2">
+<A NAME="50495574_pgfId-660820"></A>Error Conditions</H6>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495574_pgfId-660822"></A>&#8226; Arbitration Lost - If INIC detects a START condition issued by another bus master, the INIC acts as a slave device until the bus is free.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495574_pgfId-660825"></A>&#8226; Abort - An I<EM CLASS="Superscript">
+2</EM>
+C transaction was aborted prior to completion. </LI>
+<LI CLASS="Bullet1">
+<A NAME="50495574_pgfId-660828"></A>&#8226; NACK - INIC detects a NACK condition on the bus. INIC responds by issuing a STOP condition.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495574_pgfId-660831"></A>&#8226; Internal Error - An unexpected event has occurred that is related to the I<EM CLASS="Superscript">
+2</EM>
+C read/write transaction.</LI>
+</UL>
+</DIV>
+<DIV>
+<A NAME="MNSH2-ApplicationExamples" /><H6 CLASS="Heading2">
+<A NAME="50495574_pgfId-662795"></A>Application Examples</H6>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-664422"></A>The following examples depict some standard communication sequences, which can be used for most use cases.</P>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-663874"></A><A HREF="#50495574_70683" CLASS="XRef"><EM CLASS="Link">
+Figure 13-11</EM>
+</A> shows an example of a single read/write transaction.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495574_pgfId-663868"></A>Figure 13-11: <A NAME="50495574_marker-663866"></A><A NAME="50495574_70683"></A>I&#178;C Read/Write </FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495574_pgfId-663873"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-68.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-664461"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-665264"></A><A HREF="#50495574_59506" CLASS="XRef"><EM CLASS="Link">
+Figure 13-12</EM>
+</A> shows an example of a burst transaction writing multiple data chunks.</P>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-665304"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495574_pgfId-665269"></A>Figure 13-12: <A NAME="50495574_marker-665267"></A><A NAME="50495574_59506"></A>I&#178;C Write Burst Mode</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495574_pgfId-665274"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-69.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495574_pgfId-665279"></A><A HREF="#50495574_47512" CLASS="XRef"><EM CLASS="Link">
+Figure 13-13</EM>
+</A> shows an example of a repeated start transaction. At the beginning a write is initiated with a subsequent read.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495574_pgfId-665284"></A>Figure 13-13: <A NAME="50495574_marker-665282"></A><A NAME="50495574_47512"></A>I&#178;C Repeated Start</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495574_pgfId-665289"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-70.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+</DIV>
+<h1><a class="anchor" id="SEC_OS81118_16"></a>
+GPIO Port</h1>
+<DIV>
+<H1 CLASS="Chapter">
+<A NAME="50495575_pgfId-666843"></A><DIV>
+<IMG SRC="OS81118-71.gif" ALT="">
+</DIV>
+<A NAME="50495575_47728"></A>GPIO Port<DIV>
+<IMG SRC="OS81118-72.gif" ALT="">
+</DIV>
+</H1>
+<P CLASS="Body">
+<A NAME="50495575_pgfId-666845"></A>The INIC allows certain pins to be reprogrammed from their default functionality to support general purpose input/output (GPIO) functionality. GPIOs are not available as long as they are used in any of the INIC API functions (apart from those that are related to GPIOs configuration) or configured in the configuration string.</P>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495575_pgfId-674320"></A><A NAME="50495575_71902"></A>Configuration</H3>
+<P CLASS="Body">
+<A NAME="50495575_pgfId-674321"></A>The GPIO Port can be created via the <EM CLASS="Computer">
+INIC.GPIOPortCreate()</EM>
+ function, see <A HREF="#50495582_86118" CLASS="XRef"><EM CLASS="Link">
+Section 21.2.11.1</EM>
+</A>. Enabling the GPIO Port leaves the pin configuration untouched. To change a pin into a GPIO pin, it has to be configured via the <EM CLASS="Computer">
+INIC.GPIOPortPinMode()</EM>
+ function, see <A HREF="#50495582_90817" CLASS="XRef"><EM CLASS="Link">
+Section 21.2.11.2</EM>
+</A>. Depending on the pin configuration, the controlling application (EHC or <A NAME="50495575_marker-664488"></A>remote application) can receive a notification via <EM CLASS="Computer">
+INIC.GPIOPortTriggerEvent()</EM>
+, see <A HREF="#50495582_59018" CLASS="XRef"><EM CLASS="Link">
+Section 21.2.11.4</EM>
+</A>, when trigger events on the pins are detected.</P>
+<P CLASS="Body">
+<A NAME="50495575_pgfId-672242"></A>To allow pin re-configuration during runtime, the pin configuration is separated from the port creation. The following table shows the configurable pins and their limitations. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495575_pgfId-739115"></A>Table 14-1: <A NAME="50495575_marker-739113"></A><A NAME="50495575_99051"></A>GPIO Pin Configuration and Limitations</TableTitle>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Head">
+<A NAME="50495575_pgfId-739120"></A><A NAME="50495575_marker-739119"></A>GPIO Pin</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Head">
+<A NAME="50495575_pgfId-739122"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495575_pgfId-739124"></A>GP15...GP9</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495575_pgfId-739126"></A>These pins are not available for GPIO usage.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495575_pgfId-739128"></A>GP8</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495575_pgfId-739130"></A>The pin can be used as GPIO when the <EM CLASS="Pin-Name">
+MUTE/</EM>
+<EM CLASS="Overline">
+RSOUT</EM>
+<EM CLASS="Pin-Name">
+/GP8</EM>
+ pin is not configured via the configuration string.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495575_pgfId-739132"></A>GP7</P>
+</TD>
+<TD ROWSPAN="5" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495575_pgfId-739134"></A>The pins can be used as GPIO when the SPI Port is not configured via the configuration string or the <EM CLASS="Computer">
+INIC.SPIPortCreate()</EM>
+ function.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495575_pgfId-739136"></A>GP6</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495575_pgfId-739140"></A>GP5</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495575_pgfId-739144"></A>GP4</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495575_pgfId-739148"></A>GP3</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495575_pgfId-739152"></A>GP2</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495575_pgfId-739154"></A>The pins can be used as GPIO when power management monitoring is switched-off via the configuration string.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495575_pgfId-739156"></A>GP1</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495575_pgfId-739160"></A>GP0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495575_pgfId-739162"></A>The pin can be used as GPIO when the I<EM CLASS="Superscript">
+2</EM>
+C Port is not configured via the <A HREF="#50495606_I2CPort/Port Create" CLASS="XRef">Port Create</A> parameter in the configuration string.</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495575_pgfId-672298"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495575_pgfId-658114"></A><A NAME="50495575_96936"></A>Trigger</H3>
+<P CLASS="Body">
+<A NAME="50495575_pgfId-660560"></A>To get trigger events, the <EM CLASS="Computer">
+INIC.GPIOPortTriggerEvent()</EM>
+ function must be entered in the notification matrix. For an EHC, notification is not supported when entering Device Attach Mode, instead the command <EM CLASS="Computer">
+INIC.Notification.Set()</EM>
+ must be sent to activate notification on trigger events. The command must also be sent for a remote application.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495575_pgfId-705736"></A>Note: <EM CLASS="Computer">
+INIC.Notification.Set()</EM>
+ must be called before the first pin is configured with a trigger condition. If this is done later, the <EM CLASS="Computer">
+INIC.GPIOPortTriggerEvent()</EM>
+ received for <EM CLASS="Computer">
+INIC.Notification.Set()</EM>
+ may contain old/unspecified trigger events from already configured pins. </Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495575_pgfId-668754"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495575_pgfId-705754"></A>The trigger condition is configured via the <EM CLASS="Computer">
+INIC.GPIOPortPinMode()</EM>
+ function and describes the <EM CLASS="Computer">
+<A HREF="#50495582_INIC/GPIOPortPinMode/Mode" CLASS="XRef">Mode</A></EM>
+ on which the controlling application can react. The status message is sent when:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495575_pgfId-667752"></A>&#8226; the GPIO Port is created,</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495575_pgfId-667818"></A>&#8226; the controlling application registers for notification, and</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495575_pgfId-667906"></A>&#8226; a trigger event has been detected.</LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495575_pgfId-667685"></A>The following trigger classes are available:</P>
+<P CLASS="Body">
+<A NAME="50495575_pgfId-662956"></A><EM CLASS="Bold">
+Edge trigger</EM>
+<A NAME="50495575_marker-664427"></A></P>
+<P CLASS="Body">
+<A NAME="50495575_pgfId-662985"></A>Includes rising and falling edge triggers for input, debounced input and output (open-drain) pins. Each time a configured edge event is detected, a notification via <BR>
+<EM CLASS="Computer">
+INIC.GPIOPortTriggerEvent()</EM>
+ is sent by the INIC.</P>
+<P CLASS="Body">
+<A NAME="50495575_pgfId-662986"></A><EM CLASS="Bold">
+Level trigger</EM>
+<A NAME="50495575_marker-664436"></A></P>
+<P CLASS="Body">
+<A NAME="50495575_pgfId-663746"></A>Includes high-level and low-level triggers for input, debounced input, and output (open-drain) pins. Level triggers are implemented as one-shot triggers. Triggers of this type are signaled once only. To receive further trigger events, the trigger must be re-enabled by re-configuring parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/GPIOPortPinMode/Mode" CLASS="XRef">Mode</A></EM>
+ of <EM CLASS="Computer">
+INIC.GPIOPortPinMode()</EM>
+.</P>
+<P CLASS="Body">
+<A NAME="50495575_pgfId-663756"></A>For more information on triggers refer to the OS81118 Hardware Data Sheet <EM CLASS="CrossReference">
+<A HREF="#50495561_65912" CLASS="XRef"></A><EM CLASS="Blue">
+[4]</EM>
+<EM CLASS="CrossReference">
+</EM>
+</EM>
+.</P>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495575_pgfId-660562"></A>Application Examples</H3>
+<DIV>
+<A NAME="MNSH2-EdgeSensitiveInput" /><H6 CLASS="Heading2">
+<A NAME="50495575_pgfId-658120"></A>Edge Sensitive Input</H6>
+<P CLASS="Body">
+<A NAME="50495575_pgfId-658121"></A><A HREF="#50495575_14118" CLASS="XRef"><EM CLASS="Link">
+Figure 14-1</EM>
+</A> shows an example sequence chart that handles the <EM CLASS="Pin-Name">
+GP0</EM>
+ pin as an input trigger with an edge sensitive trigger configuration. The <EM CLASS="Pin-Name">
+GP0</EM>
+ pin is configured to react on the <EM CLASS="Computer">
+InputTriggerRisingEdge</EM>
+.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495575_pgfId-663460"></A>Figure 14-1: <A NAME="50495575_14118"></A>Edge Sensitive Input</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495575_pgfId-663462"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-73.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<A NAME="MNSH2-LevelSensitiveInput" /><H6 CLASS="Heading2">
+<A NAME="50495575_pgfId-664338"></A>Level Sensitive Input</H6>
+<P CLASS="Body">
+<A NAME="50495575_pgfId-664382"></A><A HREF="#50495575_86648" CLASS="XRef"><EM CLASS="Link">
+Figure 14-2</EM>
+</A> shows an example sequence chart of how an controlling application can use the <EM CLASS="Pin-Name">
+GP0</EM>
+ pin with the trigger configuration <EM CLASS="Computer">
+InputTriggerHighLevel</EM>
+.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495575_pgfId-664385"></A>Figure 14-2: <A NAME="50495575_86648"></A>Level Sensitive Input</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495575_pgfId-664390"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-74.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495575_pgfId-664391"></A>Due to the fact that the trigger input is a level signal, the detection of any further input events of this signal will be disabled directly after the trigger message <EM CLASS="Computer">
+INIC.GPIOPortTriggerEvent.Status</EM>
+ has been sent. The detection stays disabled until the controlling application calls <EM CLASS="Computer">
+INIC.GPIOPortPinMode()</EM>
+ to tell the INIC that it can react on the next input level. </P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-StickyInput" /><H6 CLASS="Heading2">
+<A NAME="50495575_pgfId-668142"></A>Sticky Input</H6>
+<P CLASS="Body">
+<A NAME="50495575_pgfId-668163"></A><A HREF="#50495575_91085" CLASS="XRef"><EM CLASS="Link">
+Figure 14-3</EM>
+</A> shows an example sequence chart of how a controlling application can use the <EM CLASS="Pin-Name">
+GP0</EM>
+ pin with the pin configuration <EM CLASS="Computer">
+InputStickyHighLevel</EM>
+ to poll for small high level pulses.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495575_pgfId-668241"></A>Figure 14-3: <A NAME="50495575_91085"></A>Sticky Input</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495575_pgfId-668243"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-75.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495575_pgfId-668164"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495575_pgfId-668167"></A>The sticky bit can be only reset when the controlling application calls <EM CLASS="Computer">
+INIC.GPIOPortPinMode()</EM>
+ to tell the INIC that it can detect the next sticky level.</P>
+</DIV>
+</DIV>
+</DIV>
+<h1><a class="anchor" id="SEC_OS81118_17"></a>
+Combiner</h1>
+<DIV>
+<H1 CLASS="Chapter-NoSection">
+<A NAME="50495576_pgfId-630401"></A><DIV>
+<IMG SRC="OS81118-76.gif" ALT="">
+</DIV>
+<A NAME="50495576_47728"></A>Combiner<DIV>
+<IMG SRC="OS81118-77.gif" ALT="">
+</DIV>
+</H1>
+<P CLASS="Body">
+<A NAME="50495576_pgfId-691977"></A>A <A NAME="50495576_marker-691973"></A><A HREF="#50495567_48279" CLASS="XRef">Combiner</A> can be used for connections based on the synchronous data type (<EM CLASS="Computer">
+Sync</EM>
+). It is created with:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495576_pgfId-701447"></A>&#8226; a peripheral socket of direction <EM CLASS="Computer">
+Output</EM>
+, </LI>
+<LI CLASS="Bullet1">
+<A NAME="50495576_pgfId-701448"></A>&#8226; the handle to the MOST Port on which the MOST sockets will be created, and </LI>
+<LI CLASS="Bullet1">
+<A NAME="50495576_pgfId-701449"></A>&#8226; a parameter, specifying the total number of MOST network frame bytes that will be routed per network frame (the combined size of all MOST sockets that will be connected with the same combiner).</LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495576_pgfId-694522"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495576_pgfId-701740"></A>All combiner settings are configured through the <EM CLASS="Computer">
+INIC.CombinerCreate()</EM>
+ function, see <A HREF="#50495582_65735" CLASS="XRef"><EM CLASS="Link">
+Section 21.2.14.6</EM>
+</A>. A combiner is shown in <A HREF="#50495580_24341" CLASS="XRef"><EM CLASS="Link">
+Figure 19-2</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495576_pgfId-692008"></A>Routing channel</P>
+<P CLASS="Body">
+<A NAME="50495576_pgfId-697014"></A>A routing channel is required to be allocated from the synchronous routing channel table. INIC handles allocation automatically. If there are no free channels, an error will be reported.</P>
+<P CLASS="Body">
+<A NAME="50495576_pgfId-697041"></A>Standard routing memory</P>
+<P CLASS="Body">
+<A NAME="50495576_pgfId-695534"></A>The number of resources required from the standard routing memory is decided by the value of combiner parameter <EM CLASS="Link">
+<A HREF="#50495582_INIC/CombinerCreate/BytesPerFrame" CLASS="XRef">BytesPerFrame</A></EM>
+. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495576_pgfId-695540"></A>Note: While using a MediaLB socket with the combiner, the number of resources is decided by adjusting the value of parameter <A HREF="#50495582_INIC/CombinerCreate/BytesPerFrame" CLASS="XRef">BytesPerFrame</A> upwards to the closest even quadlet due to the real size of the physical MediaLB channel, which is quadlet aligned, as described in <A HREF="#50495569_47728" CLASS="XRef">MediaLB Port</A>.</Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495576_pgfId-695547"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495576_pgfId-700932"></A>Aggregation routing memory</P>
+<P CLASS="Body">
+<A NAME="50495576_pgfId-700933"></A>If the socket used with the combiner is a USB socket, additional resources from the aggregation routing memory are required. The number of resources can be calculated using the following equation: </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495576_pgfId-700939"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-78.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495576_pgfId-700940"></A><EM CLASS="EquationVariableText">
+MemorySpace = Number of bytes allocated in the aggregation routing memory</EM>
+</P>
+<DIV>
+<H6 CLASS="Equation-UGD">
+<A NAME="50495576_pgfId-739589"></A>&nbsp;</H6>
+<P CLASS="Body">
+<A NAME="50495576_pgfId-700941"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495576_pgfId-700943"></A><A NAME="50495576_Combiner with a USB OUT socket"></A>Combiner with a USB OUT socket</P>
+<P CLASS="Body">
+<A NAME="50495576_pgfId-700944"></A>Since the duration of the MOST network frame is six times shorter than the duration of one USB Microframe, the minimum number of <A HREF="#50495582_INIC/USBSocketCreate/FramesPerTransaction" CLASS="XRef">FramesPerTransaction</A> must be 7. &#8216;n&#8217; is the maximum number of <A HREF="#50495582_INIC/USBSocketCreate/FramesPerTransaction" CLASS="XRef">FramesPerTransaction</A>. The value of &#8216;n&#8217; depends on the parameter <A HREF="#50495582_INIC/CombinerCreate/BytesPerFrame" CLASS="XRef">BytesPerFrame</A>. The data bytes per one bulk transaction must not exceed 512 bytes. Therefore, the product of <A HREF="#50495582_INIC/USBSocketCreate/FramesPerTransaction" CLASS="XRef">FramesPerTransaction</A> multiplied by the specified <EM CLASS="Computer">
+BytesPerFrame</EM>
+ must be less than or equal to 512 bytes, see also the example shown below.</P>
+<P CLASS="Body">
+<A NAME="50495576_pgfId-700957"></A>If the data bytes within a bulk transaction are less than 512 bytes, padding is applied by the INIC. This means, INIC always sends a packet of 512 bytes to the EHC, whereas the remaining number of bytes will be filled with dummy bytes. If the EHC is sending the packets to the INIC, it can either send shorter packets (without dummy bytes) or the packets with dummy bytes. In the latter case, the INIC discards the dummy bytes.</P>
+<P CLASS="Body">
+<A NAME="50495576_pgfId-700958"></A>Example: </P>
+<P CLASS="Body">
+<A NAME="50495576_pgfId-700959"></A>There are three MOST sockets, MOST socket A to MOST socket C. Each of them has a size of 15 bytes. Therefore, parameter <A HREF="#50495582_INIC/CombinerCreate/BytesPerFrame" CLASS="XRef">BytesPerFrame</A> must be set to 45 bytes. The value defined in parameter <A HREF="#50495582_INIC/USBSocketCreate/FramesPerTransaction" CLASS="XRef">FramesPerTransaction</A> is 0x000B. The calculated number of bytes results in 495 bytes.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495576_pgfId-700970"></A>Figure 15-1: <A NAME="50495576_marker-700968"></A>Bulk Transaction with a Combiner</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495576_pgfId-700975"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-79.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495576_pgfId-697282"></A>&nbsp;</P>
+</DIV>
+</DIV>
+<h1><a class="anchor" id="SEC_OS81118_18"></a>
+Splitter</h1>
+<DIV>
+<H1 CLASS="Chapter-NoSection">
+<A NAME="50495577_pgfId-630401"></A><DIV>
+<IMG SRC="OS81118-80.gif" ALT="">
+</DIV>
+<A NAME="50495577_47728"></A>Splitter<DIV>
+<IMG SRC="OS81118-81.gif" ALT="">
+</DIV>
+</H1>
+<P CLASS="Body">
+<A NAME="50495577_pgfId-693636"></A>A <A NAME="50495577_marker-693632"></A><A HREF="#50495567_97841" CLASS="XRef">Splitter</A> can be used for connections based on the synchronous data type (<EM CLASS="Computer">
+Sync</EM>
+). It is created with:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495577_pgfId-693643"></A>&#8226; either a port or a MOST socket of direction <EM CLASS="Computer">
+Input</EM>
+, </LI>
+<LI CLASS="Bullet1">
+<A NAME="50495577_pgfId-693644"></A>&#8226; the handle to the MOST Port on which the MOST sockets will be created, and </LI>
+<LI CLASS="Bullet1">
+<A NAME="50495577_pgfId-693645"></A>&#8226; a parameter specifying the total number of MOST network frame bytes that will be routed per network frame (the combined size of all MOST sockets that will be used with the same splitter).</LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495577_pgfId-694776"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495577_pgfId-701927"></A>All settings are configured through the <EM CLASS="Computer">
+INIC.SplitterCreate()</EM>
+ function, see <A HREF="#50495582_73437" CLASS="XRef"><EM CLASS="Link">
+Section 21.2.14.7</EM>
+</A>. Splitter connections are shown in <A HREF="#50495580_68384" CLASS="XRef"><EM CLASS="Link">
+Figure 19-3</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495577_pgfId-693680"></A>Routing channel</P>
+<P CLASS="Body">
+<A NAME="50495577_pgfId-698046"></A>A routing channel is required to be allocated from the synchronous routing channel table, but only if it is not created with a MOST socket. INIC handles allocation automatically. If there are no free channels, an error will be reported and the connection cannot be created. </P>
+<P CLASS="Body">
+<A NAME="50495577_pgfId-693681"></A>Standard routing memory</P>
+<P CLASS="Body">
+<A NAME="50495577_pgfId-698819"></A>The number of bytes required from the standard routing memory is decided by the value of splitter parameter <EM CLASS="Link">
+<A HREF="#50495582_INIC/SplitterCreate/BytesPerFrame" CLASS="XRef">BytesPerFrame</A></EM>
+. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495577_pgfId-698825"></A>Note: While using a MediaLB or MOST socket with the splitter, the number of resources is decided by adjusting the value of parameter <A HREF="#50495582_INIC/SplitterCreate/BytesPerFrame" CLASS="XRef">BytesPerFrame</A> upwards to the closest even quadlet due to the real size of the physical MediaLB channel, which is quadlet aligned, as described in <A HREF="#50495569_47728" CLASS="XRef">MediaLB Port</A>.</Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495577_pgfId-698832"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495577_pgfId-700905"></A>Aggregation routing memory</P>
+<P CLASS="Body">
+<A NAME="50495577_pgfId-700906"></A>If the socket used with the splitter is a USB socket, additional bytes from the aggregation routing memory are required. The number of bytes can be calculated using the following equation: </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495577_pgfId-700912"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-82.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495577_pgfId-700913"></A><EM CLASS="EquationVariableText">
+MemorySpace = Number of bytes allocated in the aggregation routing memory</EM>
+</P>
+<DIV>
+<H6 CLASS="Equation-UGD">
+<A NAME="50495577_pgfId-727625"></A>&nbsp;</H6>
+</DIV>
+<DIV>
+<H4 CLASS="ZNotes">
+<A NAME="50495577_pgfId-698262"></A>&nbsp;</H4>
+</DIV>
+</DIV>
+<h1><a class="anchor" id="SEC_OS81118_19"></a>
+Control Connection</h1>
+<DIV>
+<H1 CLASS="Chapter-NoSection">
+<A NAME="50495578_pgfId-688561"></A><DIV>
+<IMG SRC="OS81118-83.gif" ALT="">
+</DIV>
+<A NAME="50495578_47728"></A>Control Connection<DIV>
+<IMG SRC="OS81118-84.gif" ALT="">
+</DIV>
+</H1>
+<P CLASS="Body">
+<A NAME="50495578_pgfId-690438"></A>The control connection is used to send/receive MOST Control Messages to/from the MOST network. MCMs are then forwarded to internal FBlocks or Shadows and to the MCM PMP channel, to be delivered to the EHC. </P>
+<P CLASS="Body">
+<A NAME="50495578_pgfId-690632"></A>The data flow is shown in <A HREF="#50495578_83934" CLASS="XRef"><EM CLASS="Link">
+Figure 17-1</EM>
+</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495578_pgfId-690448"></A>Figure 17-1: <A NAME="50495578_83934"></A><A NAME="50495578_marker-690445"></A><A NAME="50495578_marker-690446"></A><A NAME="50495578_marker-690447"></A>Control Connection</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495578_pgfId-690453"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-85.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495578_pgfId-655187"></A>The MOST network socket and its appropriate control connection are automatically managed by INIC.</P>
+<P CLASS="Body">
+<A NAME="50495578_pgfId-721100"></A>The message transmission status that is reported when sending MCMs to the MOST network is shown in <A HREF="#50495533_78328" CLASS="XRef"><EM CLASS="Link">
+Table 2-3</EM>
+</A><EM CLASS="Red">
+.</EM>
+</P>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495578_pgfId-721105"></A><A NAME="50495578_46599"></A>Control Low-Level Retries</H3>
+<P CLASS="Body">
+<A NAME="50495578_pgfId-721106"></A>Control Low-Level Retries are done block wise. A block consists of the initial transmission attempt and 10 retries (fixed number). The time between the retries is internally pre-defined and varies between 5 and 8 units (1 unit = 16 MOST network frames). For the first block the time is set to 5 units. The number is increased by 1 for every control message transmission, regardless of whether retries are performed or not. If the cycle has passed the 8<EM CLASS="Superscript">
+th</EM>
+ unit, it starts over at 5.</P>
+<P CLASS="Body">
+<A NAME="50495578_pgfId-719619"></A><A HREF="#50495578_93492" CLASS="XRef"><EM CLASS="Link">
+Figure 17-2</EM>
+</A> exemplarily describes how Control Low-Level Retries are performed. At first, the example shows an initial control message transmission that has set the <A HREF="#50495582_INIC/MOSTNetworkConfiguration/ControlLLRBlockCount" CLASS="XRef">ControlLLRBlockCount</A> to 0. This means, no retries are done. However, the used time unit is 5. Then, the <A HREF="#50495582_INIC/MOSTNetworkConfiguration/ControlLLRBlockCount" CLASS="XRef">ControlLLRBlockCount</A> was set to 2. Two retries are done and it can be seen that the number of time units is continuously counted: the first retry starts at 6, the second retry is 7. Finally, the <A HREF="#50495582_INIC/MOSTNetworkConfiguration/ControlLLRBlockCount" CLASS="XRef">ControlLLRBlockCount</A> was set to 4. The example depicts the start over of the time unit count after the 8<EM CLASS="Superscript">
+th</EM>
+ unit was passed.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495578_pgfId-722053"></A>Figure 17-2: <A NAME="50495578_93492"></A><A NAME="50495578_marker-722841"></A>Control Low-Level Retries</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495578_pgfId-722058"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-86.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<h1><a class="anchor" id="SEC_OS81118_20"></a>
+Packet Connections</h1>
+<DIV>
+<H1 CLASS="Chapter">
+<A NAME="50495579_pgfId-689269"></A><DIV>
+<IMG SRC="OS81118-87.gif" ALT="">
+</DIV>
+<A NAME="50495579_47728"></A>Packet Connections<DIV>
+<IMG SRC="OS81118-88.gif" ALT="">
+</DIV>
+</H1>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-755833"></A>Packet connections are used to exchange <A NAME="50495579_marker-755831"></A>MOST Data Packets (MDP) and/or <A NAME="50495579_marker-755832"></A>MOST Ethernet Packets (MEP) between the MOST network and the EHC. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495579_pgfId-755852"></A>Note: A packet connection only accepts sockets bound to the same peripheral port.</Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-756291"></A>&nbsp;</P>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495579_pgfId-689651"></A><A NAME="50495579_99523"></A>Message Formats</H3>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-689652"></A>Depending on whether the INIC exchanges data with an MDP or MEP sink/source device, the packet message format and the packet message length of the Port Message (PM) is different, see <A HREF="#50495579_29748" CLASS="XRef"><EM CLASS="Link">
+Figure 18-1</EM>
+</A>, <A HREF="#50495579_57327" CLASS="XRef"><EM CLASS="Link">
+Figure 18-2</EM>
+</A> and the data fields description below the figures. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495579_pgfId-689663"></A>Figure 18-1: <A NAME="50495579_29748"></A><A NAME="50495579_marker-689662"></A>MOST Data Packet Message Format</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495579_pgfId-689668"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-89.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-689669"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-689680"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495579_pgfId-689674"></A>Figure 18-2: <A NAME="50495579_57327"></A><A NAME="50495579_marker-689673"></A>MOST Ethernet Packet Message Format</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495579_pgfId-689679"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-90.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-757857"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-757858"></A>The Port Message consists of a PML field that is followed by several data fields.</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495579_pgfId-689683"></A>&#8226; PML - <A NAME="50495579_marker-689682"></A>Port Message Length: 16-bit field that indicates the total number of bytes that follow the PML field.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495579_pgfId-689685"></A>&#8226; TgtDevType - <A NAME="50495579_marker-689684"></A>Target Device Type: 8-bit sub-field that indicates the addressing mode used in the received message. The addressing mode can be:<BR>
+0x00: Logical addressing<BR>
+0x01: Physical addressing (Node Position)<BR>
+0x02: Broadcast addressing <BR>
+0x03: Groupcast addressing</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495579_pgfId-689687"></A>&#8226; <A NAME="50495579_marker-689686"></A>SrcDevID - Source Device ID: 16-bit sub-field that indicates the Logical Address of the device that sent the message. <BR>
+SourceID 0x0001 (LocalID) indicates that the message was sent from an internal FBlock.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495579_pgfId-689690"></A>&#8226; Retry/Prio - <A NAME="50495579_marker-689688"></A>Retry/<A NAME="50495579_marker-689689"></A>Priority: 8-bit sub-field that contains additional Low-Level Retry information, see table below. Values for priority and Low-Level Retries are each 4-bits comprising. Number of Low-Level Retries can be set in a range from 0x00 up to 0x0F, whereas 0x00 indicates the lowest value and 0x0F the highest. Priority is not supported, the value must be set to 0x00.</LI>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495579_pgfId-689693"></A>Prio Bits</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495579_pgfId-689695"></A>Description</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495579_pgfId-689697"></A>Size (Bits)</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495579_pgfId-689699"></A>7...4</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495579_pgfId-689701"></A>Number of Low-Level Retries</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495579_pgfId-689703"></A>4</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495579_pgfId-689705"></A>3...0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495579_pgfId-689707"></A>Prio</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495579_pgfId-689709"></A>4</P>
+</TD>
+</TR>
+</TABLE>
+<LI CLASS="Bullet1">
+<A NAME="50495579_pgfId-689711"></A>&#8226; TgtDevID - <A NAME="50495579_marker-689710"></A>Target Device ID: 16-bit sub-field that indicates the device address to which the message is sent (DeviceID). The following addresses are reserved: 0x0000, 0x0001, 0xFFFF.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495579_pgfId-689712"></A>&#8226; Length: 16-bit field that indicates the number of data bytes in the packet message (length of the Data[1:n] field)</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495579_pgfId-689713"></A>&#8226; <A NAME="50495579_marker-767678"></A>Data[0:(n-1)]: contains the payload of the MDP message. The maximum message length is 1524 bytes.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495579_pgfId-689715"></A>&#8226; DestAddr - <A NAME="50495579_marker-689714"></A>Destination Address: 48-bit field that refers to an address of an Ethernet device that is being targeted.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495579_pgfId-689717"></A>&#8226; SrcAddr - <A NAME="50495579_marker-689716"></A>Source Address: 48-bit field that refers to the source address of an Ethernet device that is sourcing packet data.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495579_pgfId-689718"></A>&#8226; Data[0:(k-1)]: contains the payload of the MEP message including VLAN (32 bits, optional), Type (16 bits) and FCS (32 bits). When the message is sent, the maximum message length is 1510 bytes.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495579_pgfId-689720"></A>&#8226; QoSRxStatus - <A NAME="50495579_marker-772160"></A>Quality of Service Rx Status: 8-bit sub-field that is only appended to the MEP message when QoS packets are transferred. The byte supports a verification mechanism, which helps to identify if the complete MEP reception was successful or erroneous. Bits [2:0] of the byte give information on the reception status that is as follows:<BR>
+110: Packet reception was successful and CRC was correct<BR>
+001: Packet reception was successful but CRC was incorrect<BR>
+010, 100: Packet reception failed due to another reason <BR>
+111: Network receive buffer overflow</LI>
+</UL>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495579_pgfId-689155"></A><A NAME="50495579_57489"></A>Packet </H3>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-689927"></A>The MOST network socket and the appropriate packet connection is automatically managed by INIC. Peripheral sockets must be created. This can be done in two different ways: </P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495579_pgfId-756386"></A>&#8226; If the socket should be available at INIC startup, the <A HREF="#50495606_92184" CLASS="XRef">Packet Connection</A> must be set in the configuration string. <BR>
+In this case, the INIC automatically creates the required peripheral sockets at startup and attaches them to the packet connection. <BR>
+A packet connection of this type cannot be destroyed during runtime and it also remains persistent when the EHC enters Protected Mode.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495579_pgfId-756392"></A>&#8226; If the socket is not required to be available at startup, the packet connection can be created during runtime by using the <EM CLASS="Computer">
+INIC.PacketAttachSockets()</EM>
+ function, <A HREF="#50495582_48169" CLASS="XRef">PacketAttachSockets (0x843)</A>. The function attaches the given peripheral sockets of the INIC to the packet connection. The port-specific sockets that were built during runtime are automatically detached from the packet connection and destroyed when INIC enters Protected Mode.<BR>
+The peripheral sockets can be detached by using the <EM CLASS="Computer">
+INIC.PacketDetachSockets()</EM>
+ function.</LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-689894"></A>To allow the exchange of packet data, enough <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MOSTNetworkStartup/PacketBW" CLASS="XRef">PacketBW</A></EM>
+ must be made available on the MOST network (minimum is 4 bytes per frame). </P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-756429"></A>The data flow of a packet connection is shown in <A HREF="#50495579_88442" CLASS="XRef"><EM CLASS="Link">
+Figure 18-3</EM>
+</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495579_pgfId-755957"></A>Figure 18-3: <A NAME="50495579_88442"></A><A NAME="50495579_marker-767683"></A>Packet Connection</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495579_pgfId-755959"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-91.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH2-PeripheraltoMOST" /><H6 CLASS="Heading2">
+<A NAME="50495579_pgfId-755950"></A>Peripheral to MOST</H6>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-760704"></A>The information given in this section are based for applications that transmit packet data from one of the peripheral sockets to a MOST network socket.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Body">
+<A NAME="50495579_pgfId-765169"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-765173"></A>Bandwidth<EM CLASS="Subscript">
+Source </EM>
+= Number of data bytes defined by <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MOSTNetworkStartup/PacketBW" CLASS="XRef">PacketBW</A></EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-765174"></A>&nbsp;</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-758173"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-758174"></A>MediaLB socket</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-758546"></A>Parameter <EM CLASS="Blue">
+<A HREF="#50495582_INIC/MediaLBSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A></EM>
+ corresponds to Bandwidth<EM CLASS="Subscript">
+Source.</EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-758547"></A>The real size of the physical MediaLB channel allocated is quadlet aligned, as described in <EM CLASS="Blue">
+<A HREF="#50495569_48020" CLASS="XRef"></A><EM CLASS="Link">
+Section 8.2.1</EM>
+<EM CLASS="Blue">
+</EM>
+</EM>
+.</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-756659"></A>USB socket</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-758639"></A>Parameter <A HREF="#50495582_INIC/USBSocketCreate/FramesPerTransaction" CLASS="XRef">FramesPerTransaction</A> is fixed to 0xFFFF.</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-758643"></A>No padding is applied by the INIC. Packet synchronization is performed as described in <A HREF="#50495579_10664" CLASS="XRef"><EM CLASS="Link">
+Section 18.4</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-756675"></A>SPI socket</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-758578"></A>The utilized bandwidth is adjusted dynamically, depending on the traffic throughput.</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-756691"></A>MOST network socket</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-758607"></A>The bi-directional MOST network socket is automatically managed by the INIC. The bandwidth of this socket corresponds to Bandwidth<EM CLASS="Subscript">
+Source.</EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-756606"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-MOSTtoPeripheral" /><H6 CLASS="Heading2">
+<A NAME="50495579_pgfId-756526"></A>MOST to Peripheral</H6>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-761763"></A>The information given in this section are based for applications that transmit packet data from a MOST network socket to one of the peripheral sockets.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Body">
+<A NAME="50495579_pgfId-761760"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-761761"></A>Bandwidth<EM CLASS="Subscript">
+Source </EM>
+= Number of data bytes defined by <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MOSTNetworkStartup/PacketBW" CLASS="XRef">PacketBW</A></EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-761762"></A>&nbsp;</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-761725"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-761634"></A>MOST network socket</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-761635"></A>The bi-directional MOST network socket is automatically managed by the INIC. The bandwidth of this socket corresponds to Bandwidth<EM CLASS="Subscript">
+Source.</EM>
+ </P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-761739"></A>MediaLB socket</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-761743"></A>Parameter <A HREF="#50495582_INIC/MediaLBSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A> corresponds to Bandwidth<EM CLASS="Subscript">
+Source.</EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-761744"></A>The real size of the physical MediaLB channel allocated is quadlet aligned, as described in <EM CLASS="Blue">
+<A HREF="#50495569_48020" CLASS="XRef"></A><EM CLASS="Link">
+Section 8.2.1</EM>
+<EM CLASS="Blue">
+</EM>
+</EM>
+.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495579_pgfId-761864"></A>Note: Packet loss will occur, if parameter <A HREF="#50495582_INIC/MediaLBSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A> is less than Bandwidth<EM CLASS="Subscript">
+Source.</EM>
+</Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-761748"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-761970"></A>USB socket</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-761974"></A>Parameter <A HREF="#50495582_INIC/USBSocketCreate/FramesPerTransaction" CLASS="XRef">FramesPerTransaction</A> is fixed to 0xFFFF.</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-761975"></A>No padding is applied by the INIC. Packet synchronization is performed as described in <A HREF="#50495579_10664" CLASS="XRef"><EM CLASS="Link">
+Section 18.4</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-761979"></A>SPI socket</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-761987"></A>The utilized bandwidth is adjusted dynamically, depending on the traffic throughput.</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-DriverControlInterfaceAccess" /><H6 CLASS="Heading2">
+<A NAME="50495579_pgfId-689377"></A><A NAME="50495579_48522"></A>Driver Control Interface Access</H6>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-693017"></A><EM CLASS="BlackMarker">
+When </EM>
+<A HREF="#50495606_PacketConnection/Driver Control Interface Access" CLASS="XRef">Driver Control Interface Access</A><EM CLASS="BlackMarker">
+ is enabled in the configuration string</EM>
+, the EHC can access an internal register set by using the packet connection with a prescribed message structure. <EM CLASS="Computer">
+</EM>
+</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495579_pgfId-692603"></A>Note: Driver Control Interface access is only possible via packet connection over a MediaLB Port or an SPI Port. For the USB Port, the Driver Control Interface access is done as described in <A HREF="#50495571_14312" CLASS="XRef"><EM CLASS="Link">
+Section 10.4.1</EM>
+</A>.</Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-692363"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-692808"></A>Register status message</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-693202"></A>Register values are always sent to the EHC device driver via the register status message by using an MDP read message (see <A HREF="#50495579_29748" CLASS="XRef"><EM CLASS="Link">
+Figure 18-1</EM>
+</A>) that uses TelID 0x00. This TelID does not allow message segmentation. <BR>
+</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-693403"></A>A register status message is triggered whenever changes occur regarding</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495579_pgfId-750476"></A>&#8226; Parameter <EM CLASS="Computer">
+<A HREF="#50495582_NB/NodeAddress/NodeAddress" CLASS="XRef"><EM CLASS="BlackMarker">
+NodeAddress</EM>
+</A></EM>
+</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495579_pgfId-750477"></A>&#8226; Parameters <EM CLASS="Computer">
+PacketEUI48_47to32</EM>
+, <EM CLASS="Computer">
+PacketEUI48_31to16</EM>
+, and <BR>
+<EM CLASS="Computer">
+PacketEUI48_15to0</EM>
+, see <A HREF="#50495582_23250" CLASS="XRef"><EM CLASS="Link">
+Section 21.2.3.2</EM>
+</A></LI>
+<LI CLASS="Bullet1">
+<A NAME="50495579_pgfId-692838"></A>&#8226; Function <EM CLASS="Computer">
+INIC.MOSTNetworkStatus()</EM>
+, which can be either: </LI>
+<LI CLASS="Bullet2">
+<A NAME="50495579_pgfId-692842"></A>- <EM CLASS="Computer">
+0x00</EM>
+: <EM CLASS="Computer">
+<A HREF="#50495582_NotAvailable/Availability/MOSTNetworkStatus" CLASS="XRef"><EM CLASS="Computer">
+NotAvailable</EM>
+</A></EM>
+</LI>
+<LI CLASS="Bullet2">
+<A NAME="50495579_pgfId-692846"></A>- <EM CLASS="Computer">
+0x01</EM>
+: <EM CLASS="Computer">
+<A HREF="#50495582_Available/Availability/MOSTNetworkStatus" CLASS="XRef"><EM CLASS="Computer">
+Available</EM>
+</A></EM>
+ </LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-692848"></A><EM CLASS="Computer">
+</EM>
+&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-693251"></A>or it is triggered by the read register command as shown in <A HREF="#50495579_54700" CLASS="XRef"><EM CLASS="Link">
+Figure 18-4</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-692853"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-693248"></A>The fields of the MDP read message carry the information as shown in <A HREF="#50495579_29748" CLASS="XRef"><EM CLASS="Link">
+Figure 18-1</EM>
+</A> and are described in detail below:</P>
+<TABLE>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692856"></A>PML:</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692858"></A>0x0018</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692860"></A>&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692862"></A>TgtDevType:</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692864"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692866"></A>&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692868"></A>SrcDevID:</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692870"></A>0x0001</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692872"></A>&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692874"></A>Length:</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692876"></A>0x0010</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692878"></A>&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692880"></A>Data [0...15]</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692882"></A>Data[0]:</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692884"></A>FBlockID is NetBlock, 0x01</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692886"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692888"></A>Data[1]: </P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692890"></A>InstID is the current position in the network (0x00, if undefined, e.g., network is in <EM CLASS="Computer">
+<A HREF="#50495582_NotAvailable/Availability/MOSTNetworkStatus" CLASS="XRef"><EM CLASS="Computer">
+NotAvailable</EM>
+</A></EM>
+ state or if TimingMaster)</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692895"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692897"></A>Data[2]:</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692899"></A>FktID_H is 0x00</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692901"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692903"></A>Data[3]:</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692905"></A>FktID_L_OPType is 0x3C</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692907"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692909"></A>Data[4]:</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692911"></A>TelID_TelLen_H is 0x00</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692913"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692915"></A>Data[5]:</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692917"></A>TelLen_L is 0x0A</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692919"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692921"></A>Data[6]:</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692923"></A>d0 is the high byte of the NodeAddress</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692925"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692927"></A>Data[7]:</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692929"></A>d1 is the low byte of the NodeAddress</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692931"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692933"></A>Data[8]: </P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692935"></A>d2 is the status of the NetInterface</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692937"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692939"></A>Data[9]:</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692941"></A>d3 is Packet EUI-48&#8482; 47:40</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692943"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692945"></A>Data[10]:</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-750868"></A>d4 is Packet EUI-48 39:32</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692949"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692951"></A>Data[11]:</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692953"></A>d5 is Packet EUI-48 31:24</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-750630"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-750632"></A>Data[12]:</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-750634"></A>d6 is Packet EUI-48 23:16</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-750636"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-750638"></A>Data[13]:</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-750640"></A>d7 is Packet EUI-48 15:8</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692955"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692957"></A>Data[14]:</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692959"></A>d8 is Packet EUI-48 7:0</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692961"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692963"></A>Data[15]:</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495579_pgfId-692965"></A>d9 is 0x01, reports the current system configuration state. It will be ensured that no state change from <EM CLASS="Computer">
+OK</EM>
+ to <EM CLASS="Computer">
+NotOK</EM>
+ gets lost.</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-692788"></A>Read registers</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-692789"></A>A read register command is used to initiate a register status message being sent to the EHC device driver. The command has the following message format: </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495579_pgfId-692793"></A>Figure 18-4: <A NAME="50495579_marker-692792"></A><A NAME="50495579_54700"></A>Read Register Command</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495579_pgfId-692798"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-92.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-692778"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-692570"></A>Write register</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-692415"></A>A write register command is used by the EHC device driver to update register settings. For the available register set refer to <A HREF="#50495581_47728" CLASS="XRef"><EM CLASS="Blue">
+Chapter 20</EM>
+</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495579_pgfId-692423"></A>Figure 18-5: <A NAME="50495579_marker-692421"></A>DCI Trigger Message Format</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495579_pgfId-692428"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-93.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-689527"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-708903"></A>&nbsp;</P>
+</DIV>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495579_pgfId-757474"></A><A NAME="50495579_43635"></A>Quality of Service </H3>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-757475"></A>A Quality of Service (QoS) packet connection uses the QoS IP Streaming isochronous subclass on the MOST network to transport MEPs over dedicated network <EM CLASS="Computer">
+Bandwidth</EM>
+. For the data transmission, the QoS IP Streaming sub-class utilizes the isochronous channel that is set up as a uni-directional point-to-point connection. The isochronous channel on the MOST network does not provide flow control, instead, the QoS Rx Status byte helps to identify if the transmission was successfully received.</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-757476"></A>QoS packet connections are used for IP-based applications that require a pre-specified bandwidth/throughput. In contrast to standard packet connections, the <EM CLASS="Computer">
+Bandwidth</EM>
+ of a QoS packet connection is reserved exclusively for a single source. By reserving the bandwidth, 100% QoS is provided.</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-758933"></A>A connection between two sockets is created by using the API function <BR>
+<EM CLASS="Computer">
+INIC.QoSPacketCreate()</EM>
+. This command tells the INIC to set up a routing path through the chip between a MOST socket and a MediaLB socket. </P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-759757"></A><A HREF="#50495579_11634" CLASS="XRef"><EM CLASS="Link">
+Figure 18-6</EM>
+</A> shows the data flow for QoS packet connections between a MOST network socket and a MediaLB socket.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495579_pgfId-758979"></A>Figure 18-6: <A NAME="50495579_11634"></A><A NAME="50495579_marker-767688"></A><A NAME="50495579_marker-767703"></A>QoS Connection</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495579_pgfId-758984"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-94.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH2-Resources" /><H6 CLASS="Heading2">
+<A NAME="50495579_pgfId-759012"></A>Resources</H6>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-764117"></A><EM CLASS="Bold">
+Routing channel</EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-764118"></A>A routing channel is required to be allocated for the MOST network socket, see<BR>
+<A HREF="#50495567_64336" CLASS="XRef"><EM CLASS="Link">
+Table 6-3</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-764113"></A>Standard routing memory</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-759085"></A>The number of resources required from the standard routing memory is decided by the allocated <EM CLASS="Computer">
+Bandwidth</EM>
+ on MOST, see <A HREF="#50495579_54915" CLASS="XRef"><EM CLASS="Link">
+Table 18-1</EM>
+</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495579_pgfId-759092"></A>Table 18-1: <A NAME="50495579_54915"></A>Allocated Bandwidth and Standard Routing Memory</TableTitle>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495579_pgfId-759096"></A>Allocated Bandwidth on MOST [bytes]</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495579_pgfId-759098"></A>Standard Routing Memory [bytes]</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495579_pgfId-759100"></A>1&#8230;16</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495579_pgfId-759102"></A>32</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495579_pgfId-759104"></A>17&#8230;32</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495579_pgfId-759106"></A>64</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495579_pgfId-759108"></A>33&#8230;64</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495579_pgfId-759110"></A>128</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495579_pgfId-759112"></A>65&#8230;128</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495579_pgfId-759114"></A>256</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495579_pgfId-759116"></A>129&#8230;256</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495579_pgfId-759118"></A>512</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495579_pgfId-759120"></A>257&#8230;372</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495579_pgfId-759122"></A>1024</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-760116"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-MediaLBtoMOST" /><H6 CLASS="Heading2">
+<A NAME="50495579_pgfId-758986"></A>MediaLB to MOST</H6>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-764145"></A><EM CLASS="UnderlineNot">
+As shown in </EM>
+<A HREF="#50495579_57327" CLASS="XRef"><EM CLASS="Link">
+Figure 18-2</EM>
+</A><EM CLASS="UnderlineNot">
+, the format of an MEP message that is sent from the EHC to the INIC incorporates 8 bytes of overhead compared to a standard Ethernet frame. Hence, the data rate required on the peripheral interface is higher than the Ethernet data rate (DataRate</EM>
+<EM CLASS="Subscript">
+E</EM>
+)<EM CLASS="UnderlineNot">
+. To take this overhead into account, the Ethernet data rate is considered with the Factor given in the formula below.</EM>
+</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495579_pgfId-764151"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-95.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-764153"></A><EM CLASS="EquationVariableText">
+DataRate</EM>
+<EM CLASS="Subscript">
+E</EM>
+<EM CLASS="EquationVariableText">
+ = Maximum burst throughput rate on Ethernet [Mbit/s]</EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-764154"></A>Factor = 2.9297 [(byte) x (s/Mbit)]</P>
+<DIV>
+<H6 CLASS="Equation-UGD">
+<A NAME="50495579_pgfId-764155"></A>&nbsp;</H6>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-767783"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-764210"></A>MediaLB socket</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-764214"></A>Parameter <EM CLASS="Blue">
+<A HREF="#50495582_INIC/MediaLBSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A></EM>
+ corresponds to Bandwidth<EM CLASS="Subscript">
+Source.</EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-764215"></A>The real size of the physical MediaLB channel allocated is quadlet aligned, as described in <EM CLASS="Blue">
+<A HREF="#50495569_48020" CLASS="XRef"></A><EM CLASS="Link">
+Section 8.2.1</EM>
+<EM CLASS="Blue">
+</EM>
+</EM>
+.</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-760106"></A>MOST network socket</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-764250"></A>Parameter <EM CLASS="Blue">
+<A HREF="#50495582_INIC/MOSTSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A></EM>
+ corresponds to Bandwidth<EM CLASS="Subscript">
+Source.</EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-764239"></A>&nbsp;</P>
+</DIV>
+</DIV>
+<DIV>
+<A NAME="MNSH2-MOSTtoMediaLB" /><H6 CLASS="Heading2">
+<A NAME="50495579_pgfId-756852"></A>MOST to MediaLB</H6>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-764323"></A>The information given in this section are based for applications that transmit QoS packets from a MOST network socket to a MediaLB socket.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Body">
+<A NAME="50495579_pgfId-764326"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-764524"></A>Bandwidth<EM CLASS="Subscript">
+Source </EM>
+= Number of data bytes allocated on the MOST network</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-764525"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-764331"></A>&nbsp;</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-764319"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-756853"></A>MOST network socket</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-764545"></A>Parameter <EM CLASS="Blue">
+<A HREF="#50495582_INIC/MOSTSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A></EM>
+ corresponds to Bandwidth<EM CLASS="Subscript">
+Source.</EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-760055"></A>MediaLB socket</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-759390"></A>By definition, the INIC appends a QoSRxStatus byte to every Ethernet packet on MediaLB, to verify if the reception of the Ethernet packet was successful. Based on this overhead byte, the MediaLB socket <EM CLASS="Computer">
+Bandwidth</EM>
+ is calculated as follows: <EM CLASS="UnderlineNot">
+</EM>
+</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495579_pgfId-759397"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-96.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-762411"></A>Factor = 1.0139</P>
+<DIV>
+<H6 CLASS="Equation-UGD">
+<A NAME="50495579_pgfId-767795"></A><A NAME="50495579_62511"></A>&nbsp;</H6>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-767496"></A>Parameter <A HREF="#50495582_INIC/MediaLBSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A> corresponds to Bandwidth<EM CLASS="Subscript">
+MediaLB.</EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-757560"></A>&nbsp;</P>
+</DIV>
+</DIV>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495579_pgfId-709071"></A><A NAME="50495579_10664"></A>Synchronization</H3>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-681452"></A>Synchronization is required to clean up internal routing resources and to synchronize external driver applications. There are two conditions on which the INIC needs to perform a synchronization process of a packet connection:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495579_pgfId-681344"></A>&#8226; MOST network shutdown</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495579_pgfId-681345"></A>&#8226; Fatal packet communication errors caused by network disturbances, which can't be automatically recovered by hardware </LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-681346"></A>Depending on the communication characteristics of the peripheral interface involved in the packet connection, there are special synchronization mechanisms available, which are described below.</P>
+<DIV>
+<A NAME="MNSH2-MediaLB" /><H6 CLASS="Heading2">
+<A NAME="50495579_pgfId-681347"></A><EM CLASS="Underline">
+MediaLB</EM>
+</H6>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-766105"></A>Packet connection</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-681348"></A>When the synchronization process is started, the INIC forces the transmission to terminate. In case of an outgoing transmission, the pending packet is terminated by an AsyncBreak command. In case of a pending packet reception, the INIC responds with a ReceiverBreak status to enforce the transmitter to break.<BR>
+The next packet, after the synchronization process has been completed, starts with an AsyncStart command again.</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-766145"></A>QoS packet connection</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-766199"></A>Any pending transmission is stopped without an AsyncBreak command or a ReceiverBreak status. This behavior can result in a ProtocolError status from the INIC for the next incoming message after the synchronization has finished. For an outgoing transmission the EHC can respond to the next AsyncStart command with a ProtocolError status.</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-USB" /><H6 CLASS="Heading2">
+<A NAME="50495579_pgfId-714718"></A><EM CLASS="Underline">
+USB</EM>
+</H6>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-714719"></A>The synchronization process required for USB packet connections needs additional communication effort, since a USB transfer containing one packet message can be divided into several USB bulk transactions. A packet message with a maximum size of 1536 bytes takes up to three USB bulk transactions to complete.</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-714720"></A>The data transferred via a one-bulk transaction does not contain any additional information on data fragments. To keep synchronization, the following rules are applied:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495579_pgfId-714721"></A>&#8226; The start of a packet message is always located at the beginning of a bulk transaction. </LI>
+<LI CLASS="Bullet1">
+<A NAME="50495579_pgfId-714722"></A>&#8226; The end of a packet is either signaled by a bulk transaction with less than 512 bytes (short packet) or by a ZLP (zero-length packet).</LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-714723"></A>The INIC automatically discards incoming packet messages on USB upon the following error conditions:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495579_pgfId-714724"></A>&#8226; Missing ZLP</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495579_pgfId-714725"></A>&#8226; Length mismatch between PML and received packet length</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495579_pgfId-714726"></A>&#8226; Received PML is out of valid range</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495579_pgfId-714727"></A>&#8226; Received a ZLP unexpectedly</LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-714728"></A>In such cases the synchronization process is not triggered.</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-714729"></A>In addition to the common synchronization triggers mentioned above, on USB there is a DCI register available for each Endpoint that can be used by a driver application to manually trigger the synchronization process. This is needed whenever a driver is restarted during runtime to ensure packet synchronization. The DCI register is described in <A HREF="#50495581_70897" CLASS="XRef"><EM CLASS="Link">
+Section 20.1</EM>
+</A> et seqq.</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-681362"></A>Whenever the synchronization process is triggered, the following sequence is executed by the INIC:</P>
+<DIV>
+<H6 CLASS="Numbered1">
+<A NAME="50495579_pgfId-681363"></A>Endpoints respond with NACKs</H6>
+<LI CLASS="Numbered">
+<A NAME="50495579_pgfId-681365"></A>2. IN Endpoint will be set to STALL state until the host driver sends <BR>
+ClearFeature(STALL)</LI>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-681366"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495579_pgfId-681702"></A>A host driver has to implement the following rules to behave correctly in case of synchronization:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495579_pgfId-681367"></A>&#8226; On the reception of any STALL status an incomplete Rx message has to be discarded and a current transmission has to be canceled.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495579_pgfId-681368"></A>&#8226; A STALL state has to be cleared by sending a ClearFeature(STALL) as long as the state is reported.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495579_pgfId-681369"></A>&#8226; On every driver start, the <EM CLASS="Italic">
+STALL packet communication</EM>
+ vendor request has to be sent for initial synchronization.</LI>
+</UL>
+</DIV>
+</DIV>
+<DIV>
+<H4 CLASS="ZNotes">
+<A NAME="50495579_pgfId-682724"></A>&nbsp;</H4>
+</DIV>
+</DIV>
+</DIV>
+<h1><a class="anchor" id="SEC_OS81118_21"></a>
+Streaming Connections</h1>
+<DIV>
+<H1 CLASS="Chapter">
+<A NAME="50495580_pgfId-630401"></A><DIV>
+<IMG SRC="OS81118-97.gif" ALT="">
+</DIV>
+<A NAME="50495580_47728"></A>Streaming Connections<DIV>
+<IMG SRC="OS81118-98.gif" ALT="">
+</DIV>
+</H1>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-662294"></A>Routing of streaming data is typically set-up by creating a connection between sockets that support the same data type, are of opposite directions, and located on different ports. Such a connection can be seen as a point-to-point connection and is the standard streaming connection type. </P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-764900"></A>A standard streaming connection can be defined for all streaming data types that are supported by INIC.</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-785404"></A>In order to optimize the data transmission of streaming data, INIC internally uses advanced routing channels and memory resources that are allocated when a connection is created. The number of resources required depends on the routing objects used in the connection. All routing memory resources are shared. See section <A HREF="#50495567_61156" CLASS="XRef">Routing Budget</A> for more information.</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-785408"></A>Muting of synchronous connections</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-785506"></A>For synchronous connections the INIC supports muting-related features provided by function <EM CLASS="Computer">
+INIC.SyncCreate()</EM>
+. A connection can be kept muted when created or de-muted automatically. This setting is specified by parameter <A HREF="#50495582_INIC/SyncCreate/DefaultMute" CLASS="XRef">DefaultMute</A>. The INIC's built-in resource monitoring mechanism supports individual handling of connections on detecting that the streamed data may be invalid. The configuration of this handling is done by parameter <A HREF="#50495582_INIC/SyncCreate/MuteMode" CLASS="XRef">MuteMode</A>. For more information on muting refer to <A HREF="#50495567_81652" CLASS="XRef"><EM CLASS="Link">
+Section 6.5.1</EM>
+</A>.</P>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495580_pgfId-680142"></A><A NAME="50495580_28010"></A>Synchronous</H3>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-780189"></A>A Synchronous connection uses the synchronous transmission class on the MOST network for streaming data. A connection between two sockets is created by using the API function <EM CLASS="Computer">
+INIC.SyncCreate()</EM>
+. This command tells the INIC to setup a routing path through the chip between a MOST network channel and a port channel.</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-804222"></A>A special case for a synchronous connection is the loop feature. With this feature it is possible to create a MOST socket of data type <EM CLASS="Computer">
+Sync</EM>
+ and direction <EM CLASS="Computer">
+Input</EM>
+ with the same <EM CLASS="Computer">
+ConnectionLabel</EM>
+ as an existing <EM CLASS="Computer">
+Output</EM>
+ socket of the same type. This socket type is called a loop socket. Loop sockets do not support muting and cannot be connected to or used in combination with a splitter or combiner. </P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-779256"></A><A HREF="#50495580_42364" CLASS="XRef"><EM CLASS="Link">
+Figure 19-1</EM>
+</A> shows the data flow for synchronous connections between a MOST network socket and one of the peripheral sockets. It also shows the loop feature, in which the data is looped over the MOST network.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495580_pgfId-779260"></A>Figure 19-1: <A NAME="50495580_42364"></A><A NAME="50495580_marker-805163"></A><A NAME="50495580_marker-805164"></A>Synchronous Connections</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495580_pgfId-779265"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-99.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-789199"></A>&nbsp;</P>
+<DIV>
+<A NAME="MNSH2-Resources" /><H6 CLASS="Heading2">
+<A NAME="50495580_pgfId-779266"></A>Resources</H6>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-792296"></A><EM CLASS="Bold">
+Routing channel</EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-792300"></A>A routing channel is required to be allocated for the MOST network socket, see<BR>
+<A HREF="#50495567_64336" CLASS="XRef"><EM CLASS="Link">
+Table 6-3</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-779268"></A><A NAME="50495580_standard routing memory"></A>Standard routing memory</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-779981"></A>The number of bytes required from the standard routing memory (see <A HREF="#50495567_40711" CLASS="XRef"><EM CLASS="Link">
+Section 6.8.1</EM>
+</A>) is decided by the <EM CLASS="Computer">
+Bandwidth</EM>
+ of the sockets that need to be connected; the <EM CLASS="Computer">
+Bandwidth</EM>
+ for both sockets must be equal. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495580_pgfId-779990"></A>Note: While using a MediaLB socket in the connection, the number of resources is decided by adjusting the value of socket parameter <A HREF="#50495582_INIC/MediaLBSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A> upwards to the closest even quadlet due to the real size of the physical MediaLB channel, which is quadlet aligned, as described in <A HREF="#50495569_47728" CLASS="XRef">MediaLB Port</A>.</Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-780049"></A>Aggregation routing memory</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-780050"></A>If one of the sockets used in the connection is a USB socket, additional resources from the aggregation routing memory are required. The number of resources can be calculated using the following equation:</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-780056"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-100.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-795610"></A><EM CLASS="EquationVariableText">
+MemorySpace = Number of bytes allocated in the aggregation routing memory</EM>
+</P>
+<DIV>
+<H6 CLASS="Equation-UGD">
+<A NAME="50495580_pgfId-795853"></A><EM CLASS="EquationVariableText">
+</EM>
+&nbsp;</H6>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-795849"></A>The number of required bulk transactions per USB Microframe is at least 1.</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-894566"></A>&nbsp;</P>
+</DIV>
+</DIV>
+<DIV>
+<A NAME="MNSH2-PeripheraltoMOST" /><H6 CLASS="Heading2">
+<A NAME="50495580_pgfId-772968"></A><A NAME="50495580_39086"></A>Peripheral to MOST</H6>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-779059"></A>The information given in this section are based for applications that stream data from one of the peripheral sockets to a MOST network socket.</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-788596"></A>For this connection type parameter <EM CLASS="Blue">
+<A HREF="#50495582_INIC/SyncCreate/Offset" CLASS="XRef">Offset</A></EM>
+ must be written 0.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Body">
+<A NAME="50495580_pgfId-787434"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-787498"></A>Bandwidth<EM CLASS="Subscript">
+Source </EM>
+= Number of data bytes that should be routed</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-787505"></A>&nbsp;</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-788663"></A>MediaLB socket</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-786590"></A>Parameter <A HREF="#50495582_INIC/MediaLBSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A> corresponds to Bandwidth<EM CLASS="Subscript">
+Source.</EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-786323"></A>The real size of the physical MediaLB channel allocated is quadlet aligned, as described in <EM CLASS="Blue">
+<A HREF="#50495569_48020" CLASS="XRef"></A><EM CLASS="Link">
+Section 8.2.1</EM>
+<EM CLASS="Blue">
+</EM>
+</EM>
+.</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-776047"></A>USB socket</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-792934"></A>Parameter <A HREF="#50495582_INIC/USBSocketCreate/FramesPerTransaction" CLASS="XRef">FramesPerTransaction</A> defines the number of MOST network frames filled-in into one USB transaction. The size of one network frame is defined by parameter <A HREF="#50495582_INIC/MOSTSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A> of the MOST network socket.</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-792935"></A>If the data bytes within a bulk transaction are less than 512 bytes, padding is applied by the INIC, see <A HREF="#50495571_25408" CLASS="XRef"><EM CLASS="Link">
+Section 10.3.1</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-789217"></A>Streaming socket</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-787551"></A>Parameter <A HREF="#50495582_INIC/StreamSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A> corresponds to Bandwidth<EM CLASS="Subscript">
+Source.</EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-787290"></A>MOST network socket</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-787233"></A>Parameter <A HREF="#50495582_INIC/MOSTSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A> corresponds to Bandwidth<EM CLASS="Subscript">
+Source</EM>
+ and defines the size of the network channel that should be allocated on the MOST network. </P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-788235"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-MOSTtoPeripheral" /><H6 CLASS="Heading2">
+<A NAME="50495580_pgfId-765958"></A>MOST to Peripheral</H6>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-787584"></A>The information given in this section are based for applications that stream data from a MOST network socket to one of the peripheral sockets.</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-788506"></A>For this connection type parameter <EM CLASS="Blue">
+<A HREF="#50495582_INIC/SyncCreate/Offset" CLASS="XRef">Offset</A></EM>
+ must be written 0.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Body">
+<A NAME="50495580_pgfId-787581"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-787582"></A>Bandwidth<EM CLASS="Subscript">
+Source </EM>
+= Number of data bytes allocated on the MOST network</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-787583"></A>&nbsp;</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-788669"></A>MOST network socket</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-775548"></A>Parameter <EM CLASS="Blue">
+<A HREF="#50495582_INIC/MOSTSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A></EM>
+ corresponds to Bandwidth<EM CLASS="Subscript">
+Source. </EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-790769"></A>MediaLB socket</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-790773"></A>Parameter <EM CLASS="Blue">
+<A HREF="#50495582_INIC/MediaLBSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A></EM>
+ corresponds to Bandwidth<EM CLASS="Subscript">
+Source.</EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-790774"></A>The real size of the physical MediaLB channel allocated is quadlet aligned, as described in <EM CLASS="Blue">
+<A HREF="#50495569_48020" CLASS="XRef"></A><EM CLASS="Link">
+Section 8.2.1</EM>
+<EM CLASS="Blue">
+</EM>
+</EM>
+.</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-780211"></A>USB socket</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-787356"></A>Parameter <A HREF="#50495582_INIC/USBSocketCreate/FramesPerTransaction" CLASS="XRef">FramesPerTransaction</A> defines the number of MOST network frames from which the synchronous data bytes are put and filled-in into one USB transaction. The size of one network frame is defined by parameter <A HREF="#50495582_INIC/MOSTSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A> of the MOST network socket.</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-787357"></A>If the data bytes within a bulk transaction are less than 512 bytes, padding is applied by the INIC, see <A HREF="#50495571_25408" CLASS="XRef"><EM CLASS="Link">
+Section 10.3.1</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-787613"></A>Streaming socket</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-787617"></A>Parameter <A HREF="#50495582_INIC/StreamSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A> corresponds to Bandwidth<EM CLASS="Subscript">
+Source.</EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-787344"></A>&nbsp;</P>
+</DIV>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495580_pgfId-766023"></A>Synchronous with Combiner</H3>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-787837"></A>The API function <EM CLASS="Computer">
+INIC.SyncCreate()</EM>
+ is used to create a routing path through the chip between a MOST network socket and a combiner. </P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-787841"></A><A HREF="#50495580_24341" CLASS="XRef"><EM CLASS="Link">
+Figure 19-2</EM>
+</A> shows the data flow for synchronous connections with a combiner. The explanation on how to create a combiner is given in <A HREF="#50495576_47728" CLASS="XRef"><EM CLASS="Blue">
+Chapter 15</EM>
+</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495580_pgfId-787848"></A>Figure 19-2: <A NAME="50495580_24341"></A><A NAME="50495580_marker-795732"></A><A NAME="50495580_marker-795760"></A>Combiner Connections</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495580_pgfId-787853"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-101.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-807403"></A>&nbsp;</P>
+<DIV>
+<A NAME="MNSH2-Resources" /><H6 CLASS="Heading2">
+<A NAME="50495580_pgfId-792440"></A>Resources</H6>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-792441"></A><EM CLASS="Bold">
+Routing channel</EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-792445"></A>A routing channel is required to be allocated for the MOST network socket, see<BR>
+<A HREF="#50495567_64336" CLASS="XRef"><EM CLASS="Link">
+Table 6-3</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-807400"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-MOSTtoCombiner" /><H6 CLASS="Heading2">
+<A NAME="50495580_pgfId-775805"></A><A NAME="50495580_28617"></A>MOST to Combiner</H6>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-788432"></A>The information given in this section are based for applications that stream data from MOST network sockets to a combiner.</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-775806"></A>When using <EM CLASS="Computer">
+INIC.SyncCreate()</EM>
+ the INIC establishes a routing path through the chip between a MOST network socket and a sub-section inside the peripheral socket that is connected to the combiner. The offset of the sub-section is specified by parameter <A HREF="#50495582_INIC/SyncCreate/Offset" CLASS="XRef">Offset</A>.</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-775810"></A>Any event that may render the MOST network socket invalid will also render the combiner and any associated connections invalid.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Body">
+<A NAME="50495580_pgfId-787862"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-787863"></A>Bandwidth<EM CLASS="Subscript">
+Source </EM>
+= Number of data bytes allocated on the MOST network</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-787864"></A>&nbsp;</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-788690"></A>MOST network socket</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-790203"></A>Parameter <EM CLASS="Blue">
+<A HREF="#50495582_INIC/MOSTSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A></EM>
+ corresponds to Bandwidth<EM CLASS="Subscript">
+Source. </EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-776246"></A>Combiner</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-790252"></A>Bandwidth<EM CLASS="Subscript">
+Source </EM>
+must be considered by parameter <A HREF="#50495582_INIC/CombinerCreate/BytesPerFrame" CLASS="XRef">BytesPerFrame</A>, when the combiner is created. <EM CLASS="Blue">
+<A HREF="#50495582_INIC/CombinerCreate/BytesPerFrame" CLASS="XRef">BytesPerFrame</A></EM>
+ is the size of all MOST network sockets that are connected to the combiner.</P>
+</DIV>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495580_pgfId-766113"></A>Synchronous with Splitter</H3>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-785822"></A>The API function <EM CLASS="Computer">
+INIC.SyncCreate()</EM>
+ is used to create a routing path through the chip between a splitter and a MOST network socket or a splitter and a peripheral socket. </P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-793990"></A><A HREF="#50495580_68384" CLASS="XRef"><EM CLASS="Link">
+Figure 19-3</EM>
+</A> shows the data flow for synchronous connections with a splitter. The explanation on how to create a splitter is given in <A HREF="#50495577_47728" CLASS="XRef"><EM CLASS="Blue">
+Chapter 16</EM>
+</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495580_pgfId-793997"></A>Figure 19-3: <A NAME="50495580_68384"></A><A NAME="50495580_marker-795737"></A><A NAME="50495580_marker-795765"></A>Splitter Connections</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495580_pgfId-794002"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-102.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH2-Resources" /><H6 CLASS="Heading2">
+<A NAME="50495580_pgfId-794003"></A>Resources</H6>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-794032"></A><EM CLASS="Bold">
+Routing channel</EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-794033"></A>A routing channel is either required to be allocated for the MOST network socket or for the connection with the peripheral socket, see <A HREF="#50495567_64336" CLASS="XRef"><EM CLASS="Link">
+Table 6-3</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-794069"></A><EM CLASS="Bold">
+Aggregation routing memory</EM>
+</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495580_pgfId-794322"></A>Note: These memory resources are only required for a splitter to USB socket connection.</Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-794319"></A>In this connection variant additional routing memory resources are required. The splitter parameter <A HREF="#50495582_INIC/SplitterCreate/BytesPerFrame" CLASS="XRef">BytesPerFrame</A> has to be used with the following equation to calculate the number of required bytes from the aggregation routing memory:</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-794079"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-103.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-795623"></A><EM CLASS="EquationVariableText">
+MemorySpace = Number of bytes allocated in the aggregation routing memory</EM>
+</P>
+<DIV>
+<H6 CLASS="Equation-UGD">
+<A NAME="50495580_pgfId-795878"></A><EM CLASS="EquationVariableText">
+</EM>
+&nbsp;</H6>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-794004"></A>&nbsp;</P>
+</DIV>
+</DIV>
+<DIV>
+<A NAME="MNSH2-SplittertoMOST" /><H6 CLASS="Heading2">
+<A NAME="50495580_pgfId-780736"></A><A NAME="50495580_72313"></A>Splitter to MOST</H6>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-780956"></A>The information given in this section are based for applications that stream data from a splitter to MOST network sockets.</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-772415"></A>When using <EM CLASS="Computer">
+INIC.SyncCreate()</EM>
+ the INIC establishes a routing path through the chip between a sub-section inside the peripheral socket that is connected to the splitter and the MOST network socket. The offset of the sub-section is specified by parameter <A HREF="#50495582_INIC/SyncCreate/Offset" CLASS="XRef">Offset</A>. </P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-793825"></A>Any event that may render the MOST network socket invalid will also render the splitter and any associated connections invalid.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Body">
+<A NAME="50495580_pgfId-793828"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-793829"></A>Bandwidth<EM CLASS="Subscript">
+Source </EM>
+= Number of data bytes that should be routed</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-793830"></A>&nbsp;</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-793831"></A>Splitter </P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-792583"></A>Bandwidth<EM CLASS="Subscript">
+Source </EM>
+must be considered by parameter <A HREF="#50495582_INIC/SplitterCreate/BytesPerFrame" CLASS="XRef">BytesPerFrame</A>, when the splitter is created. <EM CLASS="Blue">
+<A HREF="#50495582_INIC/SplitterCreate/BytesPerFrame" CLASS="XRef">BytesPerFrame</A></EM>
+ is the size of all MOST network sockets that are connected to the splitter.</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-792587"></A>MOST network socket</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-794014"></A>Parameter <EM CLASS="Blue">
+<A HREF="#50495582_INIC/MOSTSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A></EM>
+ corresponds to Bandwidth<EM CLASS="Subscript">
+Source. </EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-794015"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-SplittertoPeripheral" /><H6 CLASS="Heading2">
+<A NAME="50495580_pgfId-793958"></A>Splitter to Peripheral</H6>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-780350"></A>The information given in this section are based for applications that stream data from a splitter connection to one of the peripheral sockets.</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-773083"></A>When using <EM CLASS="Computer">
+INIC.SyncCreate()</EM>
+ the INIC establishes a routing path through the chip between the MOST network socket that is connected to the splitter and the peripheral socket.</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-781353"></A>Parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/SyncCreate/Offset" CLASS="XRef">Offset</A></EM>
+ can only be 0. It is only possible to route the complete channel data from a MOST network socket. The splitter may be used in multiple connections with different peripheral sockets to stream the same MOST network data to multiple peripheral sockets.</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-781354"></A>Any event that may render the MOST network socket invalid will also render the splitter and any associated connections invalid.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Body">
+<A NAME="50495580_pgfId-787912"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-787913"></A>Bandwidth<EM CLASS="Subscript">
+Source </EM>
+= Number of data bytes that should be routed</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-787914"></A>&nbsp;</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-792632"></A>Splitter </P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-792636"></A>Bandwidth<EM CLASS="Subscript">
+Source </EM>
+must be considered by parameter <A HREF="#50495582_INIC/SplitterCreate/BytesPerFrame" CLASS="XRef">BytesPerFrame</A>, when the splitter is created. <EM CLASS="Blue">
+<A HREF="#50495582_INIC/SplitterCreate/BytesPerFrame" CLASS="XRef">BytesPerFrame</A></EM>
+ is the size of all MOST network sockets that are connected to the splitter.</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-792640"></A>MediaLB socket</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-792644"></A>Parameter <EM CLASS="Blue">
+<A HREF="#50495582_INIC/MediaLBSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A></EM>
+ corresponds to Bandwidth<EM CLASS="Subscript">
+Source.</EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-792645"></A>The real size of the physical MediaLB channel allocated is quadlet aligned, as described in <EM CLASS="Blue">
+<A HREF="#50495569_48020" CLASS="XRef"></A><EM CLASS="Link">
+Section 8.2.1</EM>
+<EM CLASS="Blue">
+</EM>
+</EM>
+.</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-792649"></A>USB socket</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-793089"></A>Parameter <A HREF="#50495582_INIC/USBSocketCreate/FramesPerTransaction" CLASS="XRef">FramesPerTransaction</A> defines the number of MOST network frames received by the splitter and filled-in into one USB transaction. The size of one network frame is defined by Bandwidth<EM CLASS="Subscript">
+Source.</EM>
+ </P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-793093"></A>If the data bytes within a bulk transaction are less than 512 bytes, padding is applied by the INIC, see <A HREF="#50495571_25408" CLASS="XRef"><EM CLASS="Link">
+Section 10.3.1</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-792667"></A>Streaming socket</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-792671"></A>Parameter <A HREF="#50495582_INIC/StreamSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A> corresponds to Bandwidth<EM CLASS="Subscript">
+Source.</EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-792625"></A>&nbsp;</P>
+</DIV>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495580_pgfId-784426"></A><A NAME="50495580_67768"></A><A NAME="50495580_76053"></A>A/V Packetized </H3>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-710219"></A>An <EM CLASS="Computer">
+AVPacketized</EM>
+ connection uses the A/V Packetized Isochronous Streaming transmission class on the MOST network for streaming of data that is not locked to the MOST network frame rate. The data either contains a time base, which is encoded in the data stream, or it does not require any time base information for transmission and synchronization. The data flow is shown in <A HREF="#50495580_18496" CLASS="XRef"><EM CLASS="Link">
+Figure 19-4</EM>
+</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495580_pgfId-710227"></A>Figure 19-4: <A NAME="50495580_18496"></A><A NAME="50495580_marker-795746"></A><A NAME="50495580_marker-795770"></A>A/V Packetized Connections</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-710232"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-104.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-678264"></A><A NAME="50495580_21706"></A>A connection between two sockets is created by using the API function <EM CLASS="Computer">
+INIC.AVPacketizedCreate()</EM>
+. This command tells the INIC to setup a routing path through the chip between the MOST network socket and the peripheral socket. </P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-783221"></A>The packet sizes supported are specified by parameter <A HREF="#50495582_INIC/AVPCreate/IsocPacketSize" CLASS="XRef">IsocPacketSize</A> in the call to <EM CLASS="Computer">
+INIC.AVPacketizedCreate()</EM>
+.</P>
+<DIV>
+<A NAME="MNSH2-Resources" /><H6 CLASS="Heading2">
+<A NAME="50495580_pgfId-800795"></A><A NAME="50495580_25164"></A>Resources</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495580_pgfId-897384"></A>Note: Due to a hardware issue found in hardware revision D1A, an <EM CLASS="Computer">
+AVPacketized</EM>
+ connection that is directed from MOST to USB cannot use the aggregation memory. By applying the firmware, the standard routing memory is used only. <BR>
+A detailed description of the hardware issue is given in the OS81118 Silicon Errata and Data Sheet Clarification document, 80000593D.pdf.</Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-800796"></A><EM CLASS="Bold">
+Routing channel</EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-800797"></A>A routing channel is required to be allocated for the MOST network socket, see<BR>
+<A HREF="#50495567_64336" CLASS="XRef"><EM CLASS="Link">
+Table 6-3</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-800801"></A>Standard routing memory</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-800802"></A>The number of resources required from the standard routing memory is decided by the selected packet size, see <A HREF="#50495580_69112" CLASS="XRef"><EM CLASS="Link">
+Table 19-1</EM>
+</A>. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495580_pgfId-801393"></A>Note: Use of the firmware in combination with hardware revision D1A means that <EM CLASS="Computer">
+AVPacketized</EM>
+ connections that involve a USB <EM CLASS="Computer">
+Output</EM>
+ socket have their routing resources allocated in the standard rouging memory as defined in <A HREF="#50495580_55549" CLASS="XRef"><EM CLASS="Link">
+Table 19-2</EM>
+</A>. <BR>
+<A HREF="#50495580_69112" CLASS="XRef"><EM CLASS="Link">
+Table 19-1</EM>
+</A> is not used in this case.</Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-801411"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495580_pgfId-800808"></A>Table 19-1: <A NAME="50495580_69112"></A>IsocPacketSize and Standard Routing Memory</TableTitle>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495580_pgfId-800814"></A>IsocPacketSize</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495580_pgfId-800816"></A>Standard Routing Memory</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495580_pgfId-800818"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800820"></A>188</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800822"></A>564</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800824"></A>Bytes</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800826"></A>196</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800828"></A>588</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800832"></A>206</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800834"></A>618</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-800837"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-800838"></A><A NAME="50495580_Aggregation routing memory"></A>Aggregation routing memory</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495580_pgfId-801106"></A>Note: Use of the firmware in combination with hardware revision D1A means that <EM CLASS="Computer">
+AVPacketized</EM>
+ connections that involve a USB <EM CLASS="Computer">
+Output</EM>
+ socket no longer use the aggregation routing memory.</Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-802614"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-800839"></A>If one of the sockets used in the connection is a USB socket, additional resources from the aggregation routing memory are required, see <A HREF="#50495580_55549" CLASS="XRef"><EM CLASS="Link">
+Table 19-2</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-802859"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495580_pgfId-800845"></A>Table 19-2: <A NAME="50495580_55549"></A>IsocPacketSize and Aggregation Routing Memory</TableTitle>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495580_pgfId-800851"></A>Allocated Bandwidth on MOST [bytes]</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495580_pgfId-800853"></A>Aggregation Routing Memory [bytes]</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495580_pgfId-800855"></A>Number of Required Bulk Transactions Per Microframe</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800860"></A><EM CLASS="Computer">
+<A HREF="#50495582_INIC/AVPCreate/IsocPacketSize" CLASS="XRef">IsocPacketSize</A></EM>
+ = 188</P>
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800864"></A><EM CLASS="Computer">
+<A HREF="#50495582_INIC/USBSocketCreate/FramesPerTransaction" CLASS="XRef">FramesPerTransaction</A></EM>
+ = 0x0002</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800870"></A>1-53</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800872"></A>752</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800874"></A>1</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800876"></A>54-107</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800878"></A>1504</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800880"></A>2</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800882"></A>108-161</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800884"></A>2256</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800886"></A>3</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800888"></A>162-214</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800890"></A>3008</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800892"></A>4</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800894"></A>215-268</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800896"></A>3760</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800898"></A>5</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800900"></A>269-322</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800902"></A>4512</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800904"></A>6</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800906"></A>323-372</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800908"></A>5264</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800910"></A>7</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800915"></A><EM CLASS="Blue">
+<A HREF="#50495582_INIC/AVPCreate/IsocPacketSize" CLASS="XRef">IsocPacketSize</A></EM>
+ = 196</P>
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800919"></A><EM CLASS="Computer">
+<A HREF="#50495582_INIC/USBSocketCreate/FramesPerTransaction" CLASS="XRef">FramesPerTransaction</A></EM>
+ = 0x0002</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800925"></A>1-56</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800927"></A>784</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800929"></A>1</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800931"></A>57-112</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800933"></A>1568</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800935"></A>2</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800937"></A>113-168</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800939"></A>2352</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800941"></A>3</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800943"></A>169-224</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800945"></A>3136</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800947"></A>4</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800949"></A>225-280</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800951"></A>3920</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800953"></A>5</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800955"></A>281-336</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800957"></A>4704</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800959"></A>6</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800961"></A>337-372</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800963"></A>5488</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800965"></A>7</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800970"></A><EM CLASS="Blue">
+<A HREF="#50495582_INIC/AVPCreate/IsocPacketSize" CLASS="XRef">IsocPacketSize</A></EM>
+ = 206</P>
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800974"></A><EM CLASS="Computer">
+<A HREF="#50495582_INIC/USBSocketCreate/FramesPerTransaction" CLASS="XRef">FramesPerTransaction</A></EM>
+ = 0x0002</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800980"></A>1-58</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800982"></A>824</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800984"></A>1</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800986"></A>59-117</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800988"></A>1648</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800990"></A>2</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800992"></A>118-176</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800994"></A>2472</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800996"></A>3</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-800998"></A>177-235</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-801000"></A>3296</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-801002"></A>4</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-801004"></A>236-294</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-801006"></A>4120</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-801008"></A>5</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-801010"></A>295-353</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-801012"></A>4944</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-801014"></A>6</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-801016"></A>354-372</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-801018"></A>5768</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-801020"></A>7</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-801025"></A><EM CLASS="Computer">
+<A HREF="#50495582_INIC/AVPCreate/IsocPacketSize" CLASS="XRef">IsocPacketSize</A></EM>
+ = 188, 196, or 206</P>
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-801029"></A><EM CLASS="Computer">
+<A HREF="#50495582_INIC/USBSocketCreate/FramesPerTransaction" CLASS="XRef">FramesPerTransaction</A></EM>
+ = 0xFFFF</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-801035"></A>1-73</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-801037"></A>1024</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-801039"></A>1</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-801041"></A>74-146</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-801043"></A>2048</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-801045"></A>2</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-801047"></A>147-219</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-801049"></A>3072</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-801051"></A>3</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-801053"></A>220-292</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-801055"></A>4096</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-801057"></A>4</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-801059"></A>293-365</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-801061"></A>5120</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-801063"></A>5</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-804036"></A>366-372</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-804038"></A>6144</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-804040"></A>6</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-714641"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-PeripheraltoMOST" /><H6 CLASS="Heading2">
+<A NAME="50495580_pgfId-781945"></A>Peripheral to MOST</H6>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-790751"></A>The information given in this section are based for applications that stream data from one of the peripheral sockets to a MOST network socket.<EM CLASS="UnderlineNot">
+</EM>
+</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-790750"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-105.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-790972"></A><EM CLASS="EquationVariableText">
+DataRate = Maximum burst throughput rate [Mbit/s]</EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-790973"></A>Factor = 2.6042 [(byte) x (s/Mbit)]</P>
+<DIV>
+<H6 CLASS="Equation-UGD">
+<A NAME="50495580_pgfId-795908"></A><A NAME="50495580_20730"></A>&nbsp;</H6>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-795595"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-790815"></A>MediaLB socket</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-790819"></A>Parameter <EM CLASS="Blue">
+<A HREF="#50495582_INIC/MediaLBSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A></EM>
+ is calculated as follows:</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-791017"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-106.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-790987"></A>The real size of the physical MediaLB channel allocated is quadlet aligned, as described in <EM CLASS="Blue">
+<A HREF="#50495569_48020" CLASS="XRef"></A><EM CLASS="Link">
+Section 8.2.1</EM>
+<EM CLASS="Blue">
+</EM>
+.</EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-793158"></A>USB socket</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-793162"></A>Parameter <A HREF="#50495582_INIC/USBSocketCreate/FramesPerTransaction" CLASS="XRef">FramesPerTransaction</A> defines the number of isochronous packets filled-in into one USB transaction. The size of an isochronous packet can either be 188, 196, or 206 bytes.</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-793199"></A>If <EM CLASS="Blue">
+<A HREF="#50495582_INIC/USBSocketCreate/FramesPerTransaction" CLASS="XRef">FramesPerTransaction</A></EM>
+ is 0x0002, padding is applied. If the value is 0xFFFF, no padding is applied. Refer to <A HREF="#50495571_25065" CLASS="XRef"><EM CLASS="Link">
+Section 10.3.2</EM>
+</A> for more information.</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-788064"></A>MOST network socket</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-791106"></A>Parameter <A HREF="#50495582_INIC/MOSTSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A> is calculated as follows:</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-791105"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-107.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-795635"></A><EM CLASS="EquationVariableText">
+Factor = 1.0053 </EM>
+</P>
+</DIV>
+<DIV>
+<H6 CLASS="Equation-UGD">
+<A NAME="50495580_pgfId-795930"></A><EM CLASS="EquationVariableText">
+</EM>
+&nbsp;</H6>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-791398"></A>&nbsp;</P>
+</DIV>
+</DIV>
+<DIV>
+<A NAME="MNSH2-MOSTtoPeripheral" /><H6 CLASS="Heading2">
+<A NAME="50495580_pgfId-781968"></A><A NAME="50495580_89297"></A>MOST to Peripheral</H6>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-781969"></A>The information given in this section are based for applications that stream data from a MOST network socket to one of the peripheral sockets.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Body">
+<A NAME="50495580_pgfId-791258"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-791259"></A>Bandwidth<EM CLASS="Subscript">
+Source </EM>
+= Number of data bytes allocated on the MOST network</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-791260"></A>&nbsp;</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-791263"></A>MOST network socket</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-791267"></A>Parameter <EM CLASS="Blue">
+<A HREF="#50495582_INIC/MOSTSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A></EM>
+ corresponds to Bandwidth<EM CLASS="Subscript">
+Source. </EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-791268"></A>MediaLB socket</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-791272"></A>For data packets with an <A HREF="#50495582_INIC/AVPCreate/IsocPacketSize" CLASS="XRef">IsocPacketSize</A> of 188 or 196 bytes, parameter <EM CLASS="Blue">
+<A HREF="#50495582_INIC/MediaLBSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A></EM>
+ corresponds to Bandwidth<EM CLASS="Subscript">
+Source.</EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-806004"></A>For data packets with an <A HREF="#50495582_INIC/AVPCreate/IsocPacketSize" CLASS="XRef">IsocPacketSize</A> of 206 bytes, parameter <EM CLASS="Blue">
+<A HREF="#50495582_INIC/MediaLBSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A></EM>
+ corresponds to Bandwidth<EM CLASS="Subscript">
+Source</EM>
+ + 1.</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-791273"></A>The real size of the physical MediaLB channel allocated is quadlet aligned, as described in <EM CLASS="Blue">
+<A HREF="#50495569_48020" CLASS="XRef"></A><EM CLASS="Link">
+Section 8.2.1</EM>
+<EM CLASS="Blue">
+</EM>
+</EM>
+.</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-791318"></A>USB socket</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-793313"></A>Parameter <A HREF="#50495582_INIC/USBSocketCreate/FramesPerTransaction" CLASS="XRef">FramesPerTransaction</A> defines the number of isochronous packets filled-in into one USB transaction. The size of an isochronous packet can either be 188, 196, or 206 bytes.</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-791326"></A>If <EM CLASS="Blue">
+<A HREF="#50495582_INIC/USBSocketCreate/FramesPerTransaction" CLASS="XRef">FramesPerTransaction</A></EM>
+ is 0x0002, padding is applied. If the value is 0xFFFF, no padding is applied. Refer to <A HREF="#50495571_25065" CLASS="XRef"><EM CLASS="Link">
+Section 10.3.2</EM>
+</A> for more information.</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-781970"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-791244"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-791246"></A>&nbsp;</P>
+</DIV>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495580_pgfId-697347"></A><A NAME="50495580_88287"></A>DiscreteFrame Isochronous Streaming Phase</H3>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-697859"></A>A DiscreteFrame Isochronous Streaming phase connection uses the DiscreteFrame Isochronous Streaming transmission class on the MOST network for streaming time base information, which is asynchronous to the MOST network frequency. The supported use case is to transport the phase information over MediaLB and recover the clock with a companion device connected to MediaLB.</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-701902"></A>The data flow for the DiscreteFrame Isochronous Streaming phase connections is shown in <A HREF="#50495580_14159" CLASS="XRef"><EM CLASS="Link">
+Figure 19-5</EM>
+</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495580_pgfId-697870"></A>Figure 19-5: <A NAME="50495580_marker-700408"></A><A NAME="50495580_marker-700413"></A><A NAME="50495580_14159"></A>DiscreteFrame Isochronous Streaming Phase Connections</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495580_pgfId-697872"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-108.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-701999"></A>A connection between two sockets is created using the API function <EM CLASS="Computer">
+INIC.DiscFramePhaseCreate()</EM>
+. This command tells the INIC to setup a routing path through the chip between a MOST network socket and a MediaLB socket.</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-702000"></A>Each packet is required to be made up by 8 phase samples where each phase sample is a 16-bit value; hence the packet size supported is 16 bytes. The transmitting MediaLB device is responsible to adopt this requirement.</P>
+<DIV>
+<A NAME="MNSH2-Resources" /><H6 CLASS="Heading2">
+<A NAME="50495580_pgfId-783358"></A>Resources</H6>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-792043"></A><EM CLASS="Bold">
+Routing channel</EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-792047"></A>A routing channel is required to be allocated for the MOST network socket, see<BR>
+<A HREF="#50495567_64336" CLASS="XRef"><EM CLASS="Link">
+Table 6-3</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-702002"></A>Standard routing memory</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-784890"></A>The number of resources is 64 bytes.</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-791859"></A>The size of a socket specifies the least required bandwidth to allow a data transmission without data loss during peak conditions.</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-806667"></A> &nbsp;</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-MediaLBtoMOST" /><H6 CLASS="Heading2">
+<A NAME="50495580_pgfId-791860"></A>MediaLB to MOST</H6>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-791910"></A>The information given in this section are based for applications that establish a phase connection between a MediaLB socket and a MOST network socket.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Body">
+<A NAME="50495580_pgfId-791907"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-791908"></A>Bandwidth<EM CLASS="Subscript">
+Source </EM>
+= 2 [bytes]</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-791909"></A>&nbsp;</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-792004"></A>The bandwidth is fixed to 2 bytes indicating the maximum phase data throughput. </P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-791955"></A>MediaLB socket</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-791959"></A>Parameter <EM CLASS="Blue">
+<A HREF="#50495582_INIC/MediaLBSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A></EM>
+ corresponds to Bandwidth<EM CLASS="Subscript">
+Source.</EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-792264"></A>The real size of the physical MediaLB channel allocated is quadlet aligned, as described in <EM CLASS="Blue">
+<A HREF="#50495569_48020" CLASS="XRef"></A><EM CLASS="Link">
+Section 8.2.1</EM>
+<EM CLASS="Blue">
+</EM>
+</EM>
+.</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-792268"></A>MOST network socket</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-792259"></A>Parameter <EM CLASS="Blue">
+<A HREF="#50495582_INIC/MOSTSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A></EM>
+ corresponds to Bandwidth<EM CLASS="Subscript">
+Source</EM>
+ +1.<EM CLASS="Subscript">
+ </EM>
+The additional byte is used to compensate for the isochronous transmission mechanism. </P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-792260"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-MOSTtoMediaLB" /><H6 CLASS="Heading2">
+<A NAME="50495580_pgfId-792261"></A>MOST to MediaLB</H6>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-792731"></A>The information given in this section are based for applications that establish a phase connection between a MOST network socket and a MediaLB socket.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Body">
+<A NAME="50495580_pgfId-792728"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-792729"></A>Bandwidth<EM CLASS="Subscript">
+Source </EM>
+= Number of data bytes allocated on the MOST network</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-792730"></A>&nbsp;</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-792753"></A>MOST network socket</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-792757"></A>Parameter <EM CLASS="Blue">
+<A HREF="#50495582_INIC/MOSTSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A></EM>
+ corresponds to Bandwidth<EM CLASS="Subscript">
+Source. </EM>
+</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-792758"></A>MediaLB socket</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-792762"></A>Parameter <EM CLASS="Blue">
+<A HREF="#50495582_INIC/MediaLBSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A></EM>
+ corresponds to Bandwidth<EM CLASS="Subscript">
+Source</EM>
+ -1.<EM CLASS="Subscript">
+ </EM>
+On the MOST network side there is one additional byte used to compensate for the isochronous transmission mechanism. This byte is not needed for the MediaLB <EM CLASS="Computer">
+Output</EM>
+ socket.</P>
+<P CLASS="Body">
+<A NAME="50495580_pgfId-792763"></A>The real size of the physical MediaLB channel allocated is quadlet aligned, as described in <EM CLASS="Blue">
+<A HREF="#50495569_48020" CLASS="XRef"></A><EM CLASS="Link">
+Section 8.2.1</EM>
+<EM CLASS="Blue">
+</EM>
+</EM>
+.</P>
+</DIV>
+<DIV>
+<H4 CLASS="ZNotes">
+<A NAME="50495580_pgfId-802995"></A>&nbsp;</H4>
+</DIV>
+</DIV>
+</DIV>
+<h1><a class="anchor" id="SEC_OS81118_22"></a>
+Driver Control Interface</h1>
+<DIV>
+<H1 CLASS="Chapter">
+<A NAME="50495581_pgfId-668410"></A><DIV>
+<IMG SRC="OS81118-109.gif" ALT="">
+</DIV>
+<A NAME="50495581_47728"></A>Driver Control Interface<DIV>
+<IMG SRC="OS81118-110.gif" ALT="">
+</DIV>
+</H1>
+<P CLASS="Body">
+<A NAME="50495581_pgfId-669015"></A>The Driver Control Interface (DCI) can be used by EHC device drivers to retrieve status information from the INIC or to control low-level settings, such as the MAC address.</P>
+<P CLASS="Body">
+<A NAME="50495581_pgfId-669016"></A>Normally, all settings are handled from the EHC via the communication interface. However, for EHC device drivers that have no direct access to the communication interface, the DCI provides the possibility to directly access status information and low-level settings from the peripheral port to which they are connected. In doing so, the DCI eases the device driver implementation.</P>
+<P CLASS="Body">
+<A NAME="50495581_pgfId-668720"></A>The DCI consists of a dedicated, virtual register set that can be accessed remotely by read and write functions. The way registers can be accessed differs for each port.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495581_pgfId-671243"></A>Figure 20-1: <A NAME="50495581_marker-737061"></A>Driver Control Interface</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-671245"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-111.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495581_pgfId-668522"></A>The DCI is supported by the USB Port (see <A HREF="#50495571_14312" CLASS="XRef"><EM CLASS="Link">
+Section 10.4.1</EM>
+</A>) and the packet connection when connected with the SPI Port or the MediaLB Port (see <A HREF="#50495579_48522" CLASS="XRef"><EM CLASS="Link">
+Section 18.2.3</EM>
+</A>). </P>
+<P CLASS="Body">
+<A NAME="50495581_pgfId-671714"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495581_pgfId-671716"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495581_pgfId-671719"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495581_pgfId-671721"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495581_pgfId-671723"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495581_pgfId-671725"></A>&nbsp;</P>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495581_pgfId-671732"></A><A NAME="50495581_70897"></A>Common Register </H3>
+<P CLASS="Body">
+<A NAME="50495581_pgfId-674634"></A><A HREF="#50495581_90927" CLASS="XRef"><EM CLASS="Link">
+Table 20-1</EM>
+</A> lists all common registers that can be read and/or written by the DCI. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495581_pgfId-731071"></A>Table 20-1: <A NAME="50495581_90927"></A><A NAME="50495581_marker-731069"></A><A NAME="50495581_marker-731070"></A><A NAME="50495581_marker-737066"></A>Common Register</TableTitle>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495581_pgfId-731079"></A>Index</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495581_pgfId-731081"></A>R/W</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495581_pgfId-731083"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495581_pgfId-731085"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-731109"></A>0x0100</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-731111"></A>R</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-731834"></A>0x0000</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-731114"></A>0x0001</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-731116"></A>See <A HREF="#50495582_INIC/MOSTNetworkStatus/Availability" CLASS="XRef">Availability</A></P>
+</TD>
+</TR>
+<TR>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-731129"></A>0x0101</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-731131"></A>R</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-731133"></A>See <A HREF="#50495582_INIC/MOSTNetworkStartup/PacketBW" CLASS="XRef">PacketBW</A></P>
+</TD>
+<TD ROWSPAN="12" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-731138"></A>-</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-731140"></A>0x0102</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-731142"></A>R</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-731144"></A>See <A HREF="#50495582_INIC/MOSTNetworkStatus/NodeAddress" CLASS="XRef">NodeAddress</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-731151"></A>0x0103</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-731153"></A>R</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-731155"></A>See <A HREF="#50495582_INIC/MOSTNetworkStatus/NodePosition" CLASS="XRef">NodePosition</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-731162"></A>0x0140</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-731164"></A>R/W</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-731166"></A>See <A HREF="#50495582_INIC/MOSTNetworkConfiguration/PacketFilterMode" CLASS="XRef">PacketFilterMode</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-731173"></A>0x0141</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-731175"></A>R/W</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-731177"></A>See <A HREF="#50495582_INIC/MOSTNetworkConfiguration/PacketHash_63to48" CLASS="XRef">PacketHash_63to48</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-731184"></A>0x0142</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-731186"></A>R/W</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-731188"></A>See <A HREF="#50495582_INIC/MOSTNetworkConfiguration/PacketHash_47to32" CLASS="XRef">PacketHash_47to32</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-731195"></A>0x0143</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-731197"></A>R/W</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-731199"></A>See <A HREF="#50495582_INIC/MOSTNetworkConfiguration/PacketHash31to16" CLASS="XRef">PacketHash_31to16</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-731206"></A>0x0144</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-731208"></A>R/W</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-731210"></A>See <EM CLASS="Blue">
+<A HREF="#50495582_INIC/MOSTNetworkConfiguration/PacketHash_15to0" CLASS="XRef">PacketHash_15to0</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-731217"></A>0x0145</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-731219"></A>R/W</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-731221"></A>See <EM CLASS="Blue">
+<A HREF="#50495582_INIC/MOSTNetworkConfiguration/PacketEUI48_47to32" CLASS="XRef">PacketEUI48_47to32</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-731228"></A>0x0146</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-731230"></A>R/W</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-731232"></A>See <EM CLASS="Blue">
+<A HREF="#50495582_INIC/MOSTNetworkConfiguration/PacketEUI48_31to16" CLASS="XRef">PacketEUI48_31to16</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-731239"></A>0x0147</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-731241"></A>R/W</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-731243"></A>See <EM CLASS="Blue">
+<A HREF="#50495582_INIC/MOSTNetworkConfiguration/PacketEUI48_15to0" CLASS="XRef">PacketEUI48_15to0</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-731250"></A>0x0148</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-731252"></A>R/W</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-731254"></A>See <EM CLASS="Blue">
+<A HREF="#50495582_INIC/MOSTNetworkConfiguration/PacketLLRTime" CLASS="XRef">PacketLLRTime</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-731261"></A>0x0149</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-731263"></A>R/W</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-731265"></A>0x0001 = Wrong register address</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-731266"></A>0x0002 = Wrong register content</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-731268"></A>Error</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-731269"></A>Bits are sticky and need to be written to &#8216;1&#8217; to be cleared.</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-731270"></A>Bit 0: Access to a register that doesn't exist</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-731271"></A>Bit 1: Access to a register content that doesn't exist</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495581_pgfId-747653"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495581_pgfId-747640"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495581_pgfId-719823"></A>USB Register</H3>
+<P CLASS="Body">
+<A NAME="50495581_pgfId-730921"></A><A HREF="#50495581_81652" CLASS="XRef"><EM CLASS="Link">
+Table 20-2</EM>
+</A> lists all USB registers that can be read and/or written by the DCI.</P>
+<P CLASS="Body">
+<A NAME="50495581_pgfId-719834"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495581_pgfId-722677"></A>Table 20-2: <A NAME="50495581_81652"></A><A NAME="50495581_marker-744339"></A><A NAME="50495581_marker-744340"></A><A NAME="50495581_marker-744341"></A>USB Register (Continued)</TableTitle>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495581_pgfId-722687"></A>Index</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495581_pgfId-722689"></A>Offset</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495581_pgfId-722691"></A>R/W</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495581_pgfId-722693"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495581_pgfId-722695"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-744508"></A>0x1000</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-744510"></A>-</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-744574"></A>R/W</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-744576"></A>0x0001 = System configuration state changed</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-744577"></A>0x8000 = Invalid register access</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-744578"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-744580"></A>Event Flags</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-744581"></A>When read: Event flags, used to signal which property has changed. <BR>
+Can be any combination (logical OR) of the given values.</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-744582"></A>Can be polled to check for new events.</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-744583"></A>When written: Clears event flags.</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-744584"></A>Used by the EHC to clear already processed event flags by writing a &#8216;1&#8217; to the corresponding event flag.<BR>
+Multiple flags can be cleared in one write operation by combining the values (logical OR).</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-744605"></A>0x1001</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-744607"></A>-</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-744609"></A>R</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-744611"></A>0x0000 = System configuration state is <EM CLASS="Computer">
+NotOK</EM>
+</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-744736"></A>0x0001 = System configuration state is <EM CLASS="Computer">
+OK</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-744823"></A>System Configuration State</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-744613"></A>Reports the current system configuration state. It will be ensured that no state change from <EM CLASS="Computer">
+OK</EM>
+ to <EM CLASS="Computer">
+NotOK</EM>
+ gets lost.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="7" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-744479"></A>0x1100 <BR>
++ (<A HREF="#50495582_INIC/USBSocketCreate/EndpointAddress" CLASS="XRef">EndpointAddress</A> x 16)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-744484"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-744486"></A>R/W</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-744488"></A>0x0001 = Buffer overflow</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-744490"></A>Error</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-744491"></A>Bits are sticky and need to be written to &#8216;1&#8217; to be cleared.</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-744492"></A>Bit 0 (buffer overflow): Only applicable when <EM CLASS="Computer">
+DataType</EM>
+ = <EM CLASS="Computer">
+AVPacketized</EM>
+.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-722715"></A>2</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-722717"></A>W</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-722719"></A>1 = Sync request</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-722721"></A>Command</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-722722"></A>When written, the appropriate command will be executed.</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-722723"></A>Sync request: Triggers the synchronization process needed for packet connections. See <A HREF="#50495579_10664" CLASS="XRef"><EM CLASS="Link">
+Section 18.4</EM>
+</A> for more information.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-722730"></A>3</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-722732"></A>R</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-722734"></A>0xFFFF = Invalid</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-722735"></A>0 = Disconnected</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-722736"></A>1 = Connected</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-722738"></A>Route State</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-722739"></A>Denotes if the Endpoint is in use.<BR>
+If it is in use, it further indicates if the Endpoint is used in a combiner connection, splitter connection, or socket connection. <BR>
+Applies to all data types.<BR>
+Invalid: Indicates that no USB socket related to the given EndpointAddress was found.</P>
+</TD>
+</TR>
+<TR>
+</TR>
+<TR>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-722803"></A>4</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-722805"></A>R</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-722807"></A>0xFFFF = Invalid<BR>
+0 = <EM CLASS="Computer">
+Sync<BR>
+</EM>
+1 = <EM CLASS="Computer">
+Packet<BR>
+</EM>
+2 = <EM CLASS="Computer">
+Control<BR>
+</EM>
+3 = <EM CLASS="Computer">
+AVPacketized</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-722925"></A>Data Type</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-722926"></A>Indicates the data type that is transfered via this Endpoint<BR>
+Invalid: Indicates that no USB socket related to the given EndpointAddress was found.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-723108"></A>5</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-723110"></A>R</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-730361"></A>0x0000 = Invalid</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-732700"></A>See <A HREF="#50495582_INIC/USBSocketCreate/FramesPerTransaction" CLASS="XRef">FramesPerTransaction</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-732082"></A>Invalid: Indicates that no USB socket related to the given EndpointAddress was found.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-744869"></A>0x1100 <BR>
++ (<A HREF="#50495582_INIC/USBSocketCreate/EndpointAddress" CLASS="XRef">EndpointAddress</A> x 16)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-723221"></A>6</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-723223"></A>R</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-730396"></A>0xFFFF = Invalid</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-730397"></A>0 = Unknown</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-732737"></A>1...372 = <EM CLASS="Computer">
+Sync</EM>
+</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-732755"></A>188, 192, 206 = <EM CLASS="Computer">
+AVPacketized</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-723286"></A>Framesize</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-736112"></A>If <EM CLASS="Computer">
+DataType</EM>
+ = <EM CLASS="Computer">
+Sync</EM>
+ and the Endpoint is used in a USB socket connected with a MOST network socket, the value is the size of the MOST network socket. <BR>
+If the Endpoint is used in a USB socket connected to a combiner/splitter, the value equals parameter <EM CLASS="Computer">
+BytesPerFrame</EM>
+ of the combiner/splitter.</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495581_pgfId-723289"></A>If <EM CLASS="Computer">
+DataType</EM>
+ = <EM CLASS="Computer">
+AVPacketized</EM>
+, the value is the size of the transport stream packets.<BR>
+Invalid: Indicates that no USB socket related to the given EndpointAddress was found.</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495581_pgfId-724892"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495581_pgfId-679694"></A>Access via USB</H3>
+<P CLASS="Body">
+<A NAME="50495581_pgfId-719036"></A>The access via USB is done through USB vendor requests. See <A HREF="#50495571_76709" CLASS="XRef"><EM CLASS="Link">
+Section 10.4</EM>
+</A> for more information.</P>
+<P CLASS="Body">
+<A NAME="50495581_pgfId-679695"></A>If an EHC driver needs to be notified about changed register content, it may become necessary to poll the DCI periodically. To ease the polling mechanism, the INIC provides an &#8216;event flags&#8217; register that can be used to retrieve information about the registers that have been updated. It is not mandatory to use the event flags. E.g., if the driver is only interested in a single register, it can periodically read this register and ignore the event flags. </P>
+<P CLASS="Body">
+<A NAME="50495581_pgfId-679708"></A><A HREF="#50495581_67647" CLASS="XRef"><EM CLASS="Link">
+Figure 20-2</EM>
+</A> describes the polling mechanism in detail.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<FigureDS CLASS="FigureDS">
+<A NAME="50495581_pgfId-679702"></A>Figure 20-2: <A NAME="50495581_67647"></A>Polling Mechanism</FigureDS>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495581_pgfId-679707"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-112.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495581_pgfId-679709"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495581_pgfId-671787"></A>Access via Packet Connection</H3>
+<P CLASS="Body">
+<A NAME="50495581_pgfId-673517"></A>If the DCI is accessed using the packet connection, the INIC will send a register status message to the EHC device driver whenever a change in any parameter of the register status message occurs. To explicitly trigger the reception of the register status message, the command read registers can be send, see <A HREF="#50495579_48522" CLASS="XRef"><EM CLASS="Link">
+Section 18.2.3</EM>
+</A>. By using the command write register, any register content can be written.</P>
+<P CLASS="Body">
+<A NAME="50495581_pgfId-718463"></A>&nbsp;</P>
+</DIV>
+</DIV>
+<h1><a class="anchor" id="SEC_OS81118_23"></a>
+Command Reference</h1>
+<DIV>
+<H1 CLASS="Chapter">
+<A NAME="50495582_pgfId-630401"></A><DIV>
+<IMG SRC="OS81118-113.gif" ALT="">
+</DIV>
+<A NAME="50495582_47728"></A>Command Reference<DIV>
+<IMG SRC="OS81118-114.gif" ALT="">
+</DIV>
+</H1>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495582_pgfId-673448"></A><A NAME="50495582_26908"></A>FBlock NetBlock</H3>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-655229"></A>FBlock NetBlock functions are implemented according to the definitions prescribed by the MOST Cooperation in the MOST FunctionBlock NetBlock, Rev. 3.0.3 <A HREF="#50495561_53000" CLASS="XRef"><EM CLASS="Blue">
+[2]</EM>
+</A> specification. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495582_pgfId-801659"></A>Note: FBlock NetBlock functions that are not processed by the INIC will be forwarded to the EHC. If no EHC is attached, the INIC will respond with error code 0x03, FktID not available, see MOST Specification <A HREF="#50495561_60695" CLASS="XRef"><EM CLASS="Blue">
+[1]</EM>
+</A>.</Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2113802"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2115017"></A>An overview of the NetBlock functions is shown in <EM CLASS="CrossReference">
+<A HREF="#50495582_81633" CLASS="XRef"></A><EM CLASS="Link">
+Table 21-2</EM>
+<EM CLASS="CrossReference">
+</EM>
+</EM>
+. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495582_pgfId-3278536"></A>Table 21-1: NetBlock Functions</TableTitle>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3278544"></A>Function Name</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3278546"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3278548"></A>Possible to Notify</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3278550"></A>Page</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3278552"></A>FBlockIDs()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3278554"></A>0x000</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3278556"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3278561"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_12496" CLASS="XRef">FBlockIDs (0x000)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3278563"></A>NodePositionAddress()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3278565"></A>0x002</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3278567"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3278572"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_NodePositionAddress" CLASS="XRef">NodePositionAddress (0x002)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3278574"></A>NodeAddress()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3278576"></A>0x003</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3278578"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3278583"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_24162" CLASS="XRef">NodeAddress (0x003)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3278585"></A>GroupAddress()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3278587"></A>0x004</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3278589"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3278594"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_GroupAddress" CLASS="XRef">GroupAddress (0x004)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3278596"></A>ShutDown()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3278598"></A>0x006</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3278600"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3278605"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_16090" CLASS="XRef">ShutDown (0x006)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3278607"></A>RetryParameters()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3278609"></A>0x007</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3278611"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3278616"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_RetryParameters (FktID = 0x007)" CLASS="XRef">RetryParameters (0x007)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3278618"></A>EUI48()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3278620"></A>0x013</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3278622"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3278627"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_50691" CLASS="XRef">EUI48 (0x013)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3278629"></A>MOSTVersionInfo()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3278631"></A>0x014</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3278633"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3278638"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_MOSTVersionInfo" CLASS="XRef">MOSTVersionInfo (0x014)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3278640"></A>RBDResult()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3278642"></A>0x405</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3278644"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3278649"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_63389" CLASS="XRef">RBDResult (0x405)</A></EM>
+</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2113709"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2113702"></A>&nbsp;</P>
+<DIV>
+<A NAME="MNSH2-FBlockIDs000" /><H6 CLASS="Heading2">
+<A NAME="50495582_pgfId-1172167"></A><A NAME="50495582_12496"></A><A NAME="50495582_/FBlockIDs/"></A>FBlockIDs (0x000)<A NAME="50495582_marker-3631118"></A><A NAME="50495582_marker-3631119"></A> </H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1802252"></A>This function inquires which function blocks are implemented within the device as well as the InstID of that function block. <EM CLASS="BlackMarker">
+If the EHC is not attached, an empty list is returned from FBlock NetBlock. If the EHC is attached, the request is passed to the EHC.</EM>
+</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1802255"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1802257"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1802259"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1802261"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1802263"></A>NetBlock</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1802264"></A>(0x01)</P>
+</TD>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1802266"></A>FBlockIDs</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1802267"></A>(0x000)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1802269"></A>Get (0x1)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1802271"></A>-</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1802277"></A>SetGet (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1802288"></A><A HREF="#50495582_NB/FBlockIDs/FBlockID" CLASS="XRef">FBlockID</A>, <A HREF="#50495582_NB/FBlockIDs/OldInstID" CLASS="XRef">OldInstID</A>, <A HREF="#50495582_NB/FBlockIDs/NewInstID" CLASS="XRef">NewInstID</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1802294"></A>Status (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1802299"></A><A HREF="#50495582_NB/FBlockIDs/FBlockIDList" CLASS="XRef">FBlockIDList</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1802305"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1802307"></A>ErrorCode, ErrorInfo</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-1802310"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_NB/FBlockIDs/FBlockID"></A>FBlockID<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1802332"></A>Functional address of an FBlock</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1802313"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1802315"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1802317"></A><EM CLASS="BlackMarker">
+Valid Values</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1802319"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1802321"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1802323"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1802325"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1802327"></A><EM CLASS="BlackMarker">
+Full range</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1802329"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1802331"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-655319"></A><A NAME="50495582_NB/FBlockIDs/OldInstID"></A>OldInstID<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1802206"></A>Old InstID of the FBlock that is identified by <EM CLASS="Computer">
+FBlockID</EM>
+</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1802187"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1802189"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1802191"></A><EM CLASS="BlackMarker">
+Valid Values</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1802193"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1802195"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1802197"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1802199"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1802201"></A><EM CLASS="BlackMarker">
+Full range</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1802203"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1802205"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1802208"></A><A NAME="50495582_NB/FBlockIDs/NewInstID"></A>NewInstID<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1802230"></A>New InstID of the FBlock that is identified by <EM CLASS="Computer">
+FBlockID</EM>
+</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1802211"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1802213"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1802215"></A><EM CLASS="BlackMarker">
+Valid Values</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1802217"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1802219"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1802221"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1802223"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1802225"></A><EM CLASS="BlackMarker">
+Full range</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1802227"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1802229"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-655365"></A><A NAME="50495582_NB/FBlockIDs/FBlockIDList"></A>FBlockIDList<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2164058"></A>List of <EM CLASS="Computer">
+FBlockID</EM>
+/<EM CLASS="Computer">
+InstID</EM>
+ pairs for the FBlocks that are implemented in the device. <EM CLASS="BlackMarker">
+When an EHC is attached, it must respond with a list of FBlockIDs with corresponding InstIDs that are available in the device. When no EHC is attached, FBlock NetBlock only responds with an empty list. When no EHC exists (both </EM>
+<A HREF="#50495606_Device Management/Configuration Interface" CLASS="XRef">Configuration Interface</A><EM CLASS="BlackMarker">
+ and </EM>
+<A HREF="#50495606_Device Management/Application Interface" CLASS="XRef">Application Interface</A><EM CLASS="BlackMarker">
+ are configured </EM>
+<EM CLASS="Computer">
+None</EM>
+)<EM CLASS="BlackMarker">
+, FBlock INIC and its InstID will be reported in the list. For all devices that contain an EHC, FBlocks INIC and NetBlock are generally not reported, since they will not appear in the central registry of the NetworkMaster.</EM>
+</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2164067"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2164069"></A>Number of Elements</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2164071"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2164073"></A>Stream</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2164075"></A><EM CLASS="BlackMarker">
+0...n</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2164083"></A><EM CLASS="BlackMarker">
+{ <A HREF="#50495582_NB/FBlockIDs/FBlockID" CLASS="XRef">FBlockID</A>, <A HREF="#50495582_NB/FBlockIDs/InstID" CLASS="XRef">InstID</A> }</EM>
+</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-655380"></A><A NAME="50495582_NB/FBlockIDs/InstID"></A>InstID<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1172543"></A>Distinction of identical FBlocks in a system</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1172524"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1172526"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1172528"></A><EM CLASS="BlackMarker">
+Valid Values</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1172530"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1172532"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1172534"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1172536"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1172538"></A><EM CLASS="BlackMarker">
+Full range</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1172540"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1172542"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<A NAME="MNSH2-NodePositionAddress002" /><H6 CLASS="Heading2">
+<A NAME="50495582_pgfId-1172549"></A><A NAME="50495582_NodePositionAddress"></A>NodePositionAddress (0x002)<A NAME="50495582_marker-3631271"></A><A NAME="50495582_marker-3631272"></A> </H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1172550"></A>This function obtains the node position address of a device. The node position address is determined by the node&#8217;s physical location in the MOST network, therefore this function is read only.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1172553"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1172555"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1172557"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1172559"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1172561"></A>NetBlock</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1172562"></A>(0x01)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1172564"></A>NodePositionAddress</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1172565"></A>(0x002)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1172567"></A>Get (0x1)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1172569"></A>-</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1172575"></A>Status (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1172577"></A><A HREF="#50495582_NB/NodePositionAddress/NodePositionAddress" CLASS="XRef">NodePositionAddress</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1172583"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1172585"></A>ErrorCode, ErrorInfo</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-2150331"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_NB/NodePositionAddress/NodePositionAddress"></A>NodePositionAddress<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2150332"></A>For details on parameter settings and the behavior of this parameter, refer to section <A HREF="#50495565_66596" CLASS="XRef">Node Position Address</A>. 0x0400 is reported, if MOST network is not available.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2150338"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2150340"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2150342"></A><EM CLASS="BlackMarker">
+Valid Values</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2150344"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2150346"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2150348"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2150350"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2150352"></A>0x0400...0x043F</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2150354"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2150356"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<A NAME="MNSH2-NodeAddress003" /><H6 CLASS="Heading2">
+<A NAME="50495582_pgfId-655482"></A><A NAME="50495582_24162"></A><A NAME="50495582_76086"></A><A NAME="50495582_NodeAddress"></A>NodeAddress (0x003) <A NAME="50495582_marker-3631417"></A><A NAME="50495582_marker-3631418"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-655526"></A>This function obtains the logical node address of the device.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-868906"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-868908"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-868910"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-868912"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-868914"></A>NetBlock</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-868915"></A>(0x01)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-868917"></A>NodeAddress</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-868918"></A>(0x003)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-868920"></A>Get (0x1)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-868922"></A>-</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-868928"></A>Status (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-868930"></A><A HREF="#50495582_NB/NodeAddress/NodeAddress" CLASS="XRef"><EM CLASS="BlackMarker">
+NodeAddress</EM>
+</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-868936"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-868938"></A>ErrorCode, ErrorInfo</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-2150233"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<EM CLASS="BlackMarker">
+NodeAddress</EM>
+<A NAME="50495582_NB/NodeAddress/NodeAddress"></A><DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2150234"></A>For details on parameter settings and the behavior of this parameter, refer to section <A HREF="#50495565_31917" CLASS="XRef">Node Address</A>. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2646342"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2646344"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2646346"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2646348"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2646350"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2646352"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2646354"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2646356"></A>0x0010...0x02FF,</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2646357"></A>0x0500...0x0FEF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2646359"></A>1</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2646361"></A>None</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4837278"></A>0x0FFE</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2646369"></A>-</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2646367"></A>0xFFFF</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<A NAME="MNSH2-GroupAddress004" /><H6 CLASS="Heading2">
+<A NAME="50495582_pgfId-868753"></A><A NAME="50495582_GroupAddress"></A>GroupAddress (0x004) <A NAME="50495582_marker-3631581"></A><A NAME="50495582_marker-3631582"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-655615"></A>This function obtains the group address of a device. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859303"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859305"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859307"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859309"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859311"></A>NetBlock</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859312"></A>(0x01)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859314"></A>GroupAddress</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859315"></A>(0x004)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-859317"></A>Get (0x1)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-859319"></A>-</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-859325"></A>Status (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-859327"></A><A HREF="#50495582_NB/GroupAddress/GroupAddress" CLASS="XRef">GroupAddress</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-859333"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-859335"></A>ErrorCode, ErrorInfo</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-1954364"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_NB/GroupAddress/GroupAddress"></A>GroupAddress<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1954365"></A>For details on parameter settings and the behavior of this parameter, refer to section <A HREF="#50495565_51563" CLASS="XRef">Group Address</A>. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1954371"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1954373"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1954375"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1954377"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1954379"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1954381"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1954383"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1954385"></A>0x0300...0x03FF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1954387"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1954389"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<A NAME="MNSH2-ShutDown006" /><H6 CLASS="Heading2">
+<A NAME="50495582_pgfId-1954360"></A><A NAME="50495582_16090"></A><A NAME="50495582_63676"></A><A NAME="50495582_15546"></A><A NAME="50495582_ShutDown"></A>ShutDown (0x006) <A NAME="50495582_marker-3631736"></A><A NAME="50495582_marker-3631737"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-655649"></A>This function checks if a device is ready to shut down. If the application interface is in <A HREF="#50495582_DeviceStatus/ConfigInterfaceMode/Protected" CLASS="XRef"><EM CLASS="Computer">
+Protected</EM>
+</A> Mode, the INIC does not suspend the <EM CLASS="Computer">
+NetBlock.ShutDown()</EM>
+ procedure. If the application interface is in <A HREF="#50495582_DeviceStatus/ConfigInterfaceMode/Attached" CLASS="XRef"><EM CLASS="Computer">
+Attached</EM>
+</A> Mode, the request is forwarded to the EHC.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859357"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859359"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859361"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859363"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859365"></A>NetBlock</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859366"></A>(0x01)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859368"></A>ShutDown</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859369"></A>(0x006)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-859371"></A>Start (0x0)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-859373"></A><A HREF="#50495582_NB/ShutDown/Control" CLASS="XRef">Control</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-859379"></A>Result (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-859381"></A><A HREF="#50495582_NB/ShutDown/Control" CLASS="XRef">Control</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-859387"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-859389"></A>ErrorCode, ErrorInfo</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-655693"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_NB/ShutDown/Control"></A>Control<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-655694"></A>Used to query, suspend, or shut down the MOST network. For more information on the <EM CLASS="Computer">
+Control</EM>
+ commands refer to the MOST Specification <EM CLASS="CrossReference">
+<A HREF="#50495561_60695" CLASS="XRef"></A><EM CLASS="Blue">
+[1]</EM>
+<EM CLASS="CrossReference">
+</EM>
+</EM>
+. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859391"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859393"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859395"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859397"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="6" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859399"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859401"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-859403"></A><EM CLASS="Computer">
+Query</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-859405"></A>Query for shut down</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859409"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-859411"></A><EM CLASS="Computer">
+Suspend</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-859413"></A>Suspend for shut down</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859417"></A>0x02</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-859419"></A><EM CLASS="Computer">
+Execute</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-859421"></A>Process will be executed.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859425"></A>0x03</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-859427"></A><EM CLASS="Computer">
+Temperature</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-859429"></A>Device is shut down as a result of temperature.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859433"></A>0x04</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-859435"></A><EM CLASS="Computer">
+DeviceShutDown</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-859437"></A>Device is shut down.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859441"></A>0x05</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-859443"></A><EM CLASS="Computer">
+WakeFromDeviceShutDown</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-859445"></A>Application is woken from <BR>
+DeviceShutDown.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<A NAME="MNSH2-RetryParameters007" /><H6 CLASS="Heading2">
+<A NAME="50495582_pgfId-3387217"></A><A NAME="50495582_RetryParameters (FktID = 0x007)"></A><A NAME="50495582_RetryParameters"></A>RetryParameters (0x007)<A NAME="50495582_marker-3631917"></A><A NAME="50495582_marker-3631918"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3387218"></A>This function returns fixed values for parameters <EM CLASS="Computer">
+RetryTime</EM>
+ and <EM CLASS="Computer">
+RetryNumbers</EM>
+. </P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3387509"></A>Control Low-Level Retries are used by the INIC when an error occurs during control message transmission over the MOST network. Retries are performed based on an optimized retry mechanism (see <A HREF="#50495578_46599" CLASS="XRef"><EM CLASS="Link">
+Section 17.1</EM>
+</A>). </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-868950"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-868952"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-868954"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-868956"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-868958"></A>NetBlock</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-868959"></A>(0x01)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-868961"></A>RetryParameters</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-868962"></A>(0x007)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-868964"></A>Get (0x1)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-868966"></A>-</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-868972"></A>Status (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-868974"></A><A HREF="#50495582_NB/RetryParameters/RetryTime" CLASS="XRef">RetryTime</A>, <A HREF="#50495582_NB/RetryParameters/RetryNumbers" CLASS="XRef">RetryNumbers</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-868980"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-868982"></A>ErrorCode, ErrorInfo</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-655805"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_NB/RetryParameters/RetryTime"></A>RetryTime<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-655827"></A> &nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859481"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859483"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859485"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859487"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859489"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859491"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859493"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859495"></A>0 </P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859497"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859499"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3387910"></A><A NAME="50495582_NB/RetryParameters/RetryNumbers"></A>RetryNumbers<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3387932"></A> &nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3387913"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3387915"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3387917"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3387919"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3387921"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3387923"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3387925"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3387927"></A>11</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3387929"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3387931"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<A NAME="MNSH2-EUI48013" /><H6 CLASS="Heading2">
+<A NAME="50495582_pgfId-3387937"></A><A NAME="50495582_50691"></A><A NAME="50495582_EUI48"></A>EUI48 (0x013)<A NAME="50495582_marker-3782350"></A> <A NAME="50495582_marker-3782351"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-655942"></A>This function derives the 48-bit MAC address (also referred to as EUI-48) of an Ethernet network device.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2164133"></A>EUI (Extended Unique Identifier) is a concatenation of a 24-bit OUI (Organizationally Unique Identifier) value and a 24-bit extension identifier. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859585"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859587"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859589"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859591"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859593"></A>NetBlock</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859594"></A>(0x01)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859596"></A>EUI48</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859597"></A>(0x013)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-859599"></A>Get (0x1)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-859601"></A>-</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-859607"></A>Status (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-859609"></A><A HREF="#50495582_NB/EUI48/EUI0" CLASS="XRef">EUI0</A>, <A HREF="#50495582_NB/EUI48/EUI1" CLASS="XRef">EUI1</A>, <A HREF="#50495582_NB/EUI48/EUI2" CLASS="XRef">EUI2</A>, <A HREF="#50495582_NB/EUI48/EUI3" CLASS="XRef">EUI3</A>, <A HREF="#50495582_NB/EUI48/EUI4" CLASS="XRef">EUI4</A>, <A HREF="#50495582_NB/EUI48/EUI5" CLASS="XRef">EUI5</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-859615"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-859617"></A>ErrorCode, ErrorInfo</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-655986"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_NB/EUI48/EUI0"></A>EUI0<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-656008"></A>The first byte of the OUI </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859619"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859621"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859623"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859625"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859627"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859629"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859631"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859633"></A>Full range</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859635"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859637"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-656009"></A><A NAME="50495582_NB/EUI48/EUI1"></A>EUI1<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-656031"></A>The second byte of the OUI</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859639"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859641"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859643"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859645"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859647"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859649"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859651"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859653"></A>Full range</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859655"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859657"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-656032"></A><A NAME="50495582_NB/EUI48/EUI2"></A>EUI2<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-656054"></A>The third byte of the OUI</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859659"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859661"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859663"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859665"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859667"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859669"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859671"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859673"></A>Full range</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859675"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859677"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-656055"></A><A NAME="50495582_NB/EUI48/EUI3"></A>EUI3<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-656077"></A>The first byte of the extension identifier</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859679"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859681"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859683"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859685"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859687"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859689"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859691"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859693"></A>Full range</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859695"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859697"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-656078"></A><A NAME="50495582_NB/EUI48/EUI4"></A>EUI4<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-656100"></A>The second byte of the extension identifier</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859699"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859701"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859703"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859705"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859707"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859709"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859711"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859713"></A>Full range</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859715"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859717"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-656101"></A><A NAME="50495582_NB/EUI48/EUI5"></A>EUI5<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1172473"></A>The third byte of the extension identifier</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1172454"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1172456"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1172458"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1172460"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1172462"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1172464"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1172466"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1172468"></A>Full range</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1172470"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1172472"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<A NAME="MNSH2-MOSTVersionInfo014" /><H6 CLASS="Heading2">
+<A NAME="50495582_pgfId-1172478"></A><A NAME="50495582_MOSTVersionInfo"></A>MOSTVersionInfo (0x014)<A NAME="50495582_marker-3632519"></A><A NAME="50495582_marker-3632520"></A> </H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1172479"></A>This function identifies the version of the underlying MOST Specification, the NetBlock, and the MOST transceiver. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1172482"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1172484"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1172486"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1172488"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1172490"></A>NetBlock</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1172491"></A>(0x01)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1172493"></A>MOSTVersionInfo</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1172494"></A>(0x014)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1172496"></A>Get (0x1)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1172498"></A>-</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1172504"></A>Status (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1172506"></A><A HREF="#50495582_NB/MOSTVersionInfo/MOSTVersion" CLASS="XRef">MOSTVersion</A>, <BR>
+<A HREF="#50495582_NB/MOSTVersionInfo/FBlockVersion" CLASS="XRef">FBlockVersion</A>, <BR>
+<A HREF="#50495582_NB/MOSTVersionInfo/MOSTTransceiverVersion" CLASS="XRef">MOSTTransceiverVersion</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1172512"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1172514"></A>ErrorCode, ErrorInfo</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-656174"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_NB/MOSTVersionInfo/MOSTVersion"></A>MOSTVersion<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-656188"></A>The version of the underlying MOST Specification</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859773"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859775"></A>Size</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859777"></A>Value</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859779"></A>String</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859781"></A>9</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-859783"></A>03.00 E2</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-656189"></A><A NAME="50495582_NB/MOSTVersionInfo/FBlockVersion"></A>FBlockVersion<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-656203"></A>The version of the NetBlock </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859785"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859787"></A>Size</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859789"></A>Value</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859791"></A>String</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859793"></A>9</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-859795"></A>03.00.03</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-656204"></A><A NAME="50495582_NB/MOSTVersionInfo/MOSTTransceiverVersion"></A>MOSTTransceiverVersion<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-656218"></A>The version of the MOST transceiver </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859797"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859799"></A>Size</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859801"></A>Value</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859803"></A>String</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859805"></A>8</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-859807"></A>OS81118</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<A NAME="MNSH2-RBDResult405" /><H6 CLASS="Heading2">
+<A NAME="50495582_pgfId-1181317"></A><A NAME="50495582_63389"></A>RBDResult (0x405)<A NAME="50495582_marker-3632230"></A><A NAME="50495582_marker-3632231"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1181318"></A>This function returns the result of the RBD test. It reports the status of the test and its diagnosis identifier via broadcast to the MOST network.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1181321"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1181323"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1181325"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1181327"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1181705"></A>NetBlock</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1181706"></A>(0x01)</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1181708"></A>RBDResult</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1181709"></A>(0x405)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1181343"></A>Status (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1181345"></A><A HREF="#50495582_NB/RBDResult/RBDStatus" CLASS="XRef">RBDStatus</A>, <A HREF="#50495582_NB/RBDResult/DiagID" CLASS="XRef">DiagID</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1181351"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1181353"></A>ErrorCode, ErrorInfo</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-1182282"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_NB/RBDResult/RBDStatus"></A>RBDStatus<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1182322"></A>Status of the RBD result </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1182285"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1182287"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1182289"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1182291"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1182301"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1182303"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1182305"></A><EM CLASS="Computer">
+ActivityButNoLock</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1182310"></A>Status is activity, but no lock (<EM CLASS="Computer">
+<A HREF="#50495582_INIC/MOSTNetworkRBDResult/RBDResult/Pos0WeakSig" CLASS="XRef"><EM CLASS="Computer">
+Pos0WeakSig</EM>
+</A></EM>
+).</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1182314"></A>0x02</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1182316"></A><EM CLASS="Computer">
+NoActivity</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1182321"></A>Status is no activity <BR>
+(<EM CLASS="Computer">
+<A HREF="#50495582_INIC/MOSTNetworkRBDResult/RBDResult/PosDetected" CLASS="XRef"><EM CLASS="Computer">
+PosDetected</EM>
+</A></EM>
+).</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1182887"></A><A NAME="50495582_NB/RBDResult/DiagID"></A>DiagID<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1182939"></A>Diagnostic identifier of the device. The length value should be large enough, so that the message can be sent as an unsegmented control message.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2164136"></A>This parameter can be customized via the <A HREF="#50495606_34947" CLASS="XRef">Configuration String</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1182942"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1182944"></A>Length</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1182946"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1182948"></A>Stream</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1182950"></A>0x0000...0xFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1182952"></A>-</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495582_pgfId-656302"></A>FBlock INIC</H3>
+<DIV>
+<A NAME="MNSH2-GeneralFunctions" /><H6 CLASS="Heading2">
+<A NAME="50495582_pgfId-2109413"></A>General Functions</H6>
+<DIV>
+<A NAME="MNSH3-Notification001" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-871349"></A><A NAME="50495582_45678"></A>Notification <A NAME="50495582_marker-871347"></A>(0x001)<A NAME="50495582_marker-871348"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-871401"></A>This function administers the notification matrix of the function block INIC.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-873599"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-873601"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-873603"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-873605"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-873607"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-873608"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-873610"></A>Notification </P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-873611"></A>(0x001)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-873613"></A>Set (0x0)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-873615"></A><A HREF="#50495582_INIC/Notification/Control" CLASS="XRef">Control</A>, <A HREF="#50495582_INIC/Notification/DeviceID" CLASS="XRef">DeviceID</A>, <A HREF="#50495582_INIC/Notification/[ FktIDList ]" CLASS="XRef">[ FktIDList ]</A> </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-873621"></A>Get (0x1)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-873623"></A><A HREF="#50495582_INIC/Notification/FktID" CLASS="XRef">FktID</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-873629"></A>Status (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-873631"></A><A HREF="#50495582_INIC/Notification/FktID" CLASS="XRef">FktID</A>, <A HREF="#50495582_INIC/Notification/[ DeviceIDList ]" CLASS="XRef">[ DeviceIDList ]</A> </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-873637"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-873639"></A><A HREF="#50495582_INIC/Notification/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-656360"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/Notification/Control"></A>Control<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1808393"></A>Determines where the entry in the notification matrix must be made or where the deletion has to occur.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1808396"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1808398"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1808400"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1808402"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1808404"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1808406"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1808409"></A><EM CLASS="Computer">
+SetAll</EM>
+<A NAME="50495582_Notification/Control/SetAll"></A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1808411"></A>Enters DeviceID in all properties that support notification</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1808415"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1808418"></A><EM CLASS="Computer">
+SetFunction</EM>
+<A NAME="50495582_Notification/Control/SetFunction"></A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1808420"></A>Enters DeviceID for the functions listed in <EM CLASS="Computer">
+FktIDList</EM>
+. <EM CLASS="Computer">
+FktIDList</EM>
+ is mandatory, i.e., it must contain at least one <EM CLASS="Computer">
+FktID</EM>
+.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1808424"></A>0x02</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1808426"></A><EM CLASS="Computer">
+ClearAll</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1808428"></A>Deletes <EM CLASS="Computer">
+DeviceID</EM>
+ from all functions of the notification matrix</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1808432"></A>0x03</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1808435"></A><EM CLASS="Computer">
+ClearFunction</EM>
+<A NAME="50495582_Notification/Control/ClearFunction"></A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1808437"></A>Deletes DeviceID from the functions listed in <EM CLASS="Computer">
+FktIDList</EM>
+. <EM CLASS="Computer">
+FktIDList</EM>
+ is mandatory, i.e., in this case it must contain at least one <EM CLASS="Computer">
+FktID</EM>
+.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1808439"></A><A NAME="50495582_INIC/Notification/DeviceID"></A>DeviceID<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1808461"></A>Indicates the address of the sending device</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1808442"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1808444"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1808446"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1808448"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1808450"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1808452"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1808454"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1808456"></A>0x0000...0xFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1808458"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1808460"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-656428"></A><A NAME="50495582_INIC/Notification/[ FktIDList ]"></A>[ FktIDList ]<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2022963"></A>List of functions with a maximum of four elements. This parameter is only required if <EM CLASS="Computer">
+Control</EM>
+ is <EM CLASS="Computer">
+<A HREF="#50495582_Notification/Control/SetFunction" CLASS="XRef"><EM CLASS="Computer">
+SetFunction</EM>
+</A></EM>
+ or <EM CLASS="Computer">
+<A HREF="#50495582_Notification/Control/ClearFunction" CLASS="XRef"><EM CLASS="Computer">
+ClearFunction</EM>
+</A></EM>
+.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2022972"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2022974"></A>Number of Elements</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2022976"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2022978"></A>Stream</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2022980"></A>1...4</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2022988"></A><A HREF="#50495582_INIC/Notification/FktID" CLASS="XRef">FktID</A>, { <A HREF="#50495582_INIC/Notification/FktID" CLASS="XRef">FktID</A> } </P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-2022990"></A><A NAME="50495582_INIC/Notification/FktID"></A>FktID<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-656487"></A>Respective functions. The <EM CLASS="Computer">
+FktIDs</EM>
+ are encoded as 16-bit values. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-656452"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-656454"></A>FktIDs</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-656456"></A>Function</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="5" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-656458"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-656460"></A>0x0220</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-656462"></A>DeviceStatus()</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-656466"></A>0x0520</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-656468"></A>MOSTNetworkStatus()</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-656478"></A>0x0602</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-656480"></A>MOSTPortStatus()</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1668184"></A>0x0705</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1668186"></A>GPIOPortTriggerEvent()</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-656484"></A>0x0802</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-656486"></A>ResourceMonitor()</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-656488"></A><A NAME="50495582_INIC/Notification/[ DeviceIDList ]"></A>[ DeviceIDList ]<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-656502"></A>Device list</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859925"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859927"></A>Number of Elements</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859929"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859931"></A>Stream</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859933"></A><EM CLASS="BlackMarker">
+0...1</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-859935"></A><A HREF="#50495582_INIC/Notification/DeviceID" CLASS="XRef">DeviceID</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1875000"></A><A NAME="50495582_INIC/Notification/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2833667"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2833669"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2833677"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2833679"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2833681"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1998034"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1998039"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1998041"></A>0x30</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1998043"></A>Notification is only allowed from network side, if in the configuration string the configuration interface is set to <EM CLASS="Computer">
+None</EM>
+.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1998053"></A>0xF0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1998058"></A>Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1875092"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2164139"></A>Besides the listed <EM CLASS="Computer">
+ErrorCode</EM>
+, <EM CLASS="Computer">
+ErrorInfo</EM>
+, a MOST application (see MOST Specification <A HREF="#50495561_60695" CLASS="XRef"><EM CLASS="Blue">
+[1]</EM>
+</A>) may report specific errors during execution by using OPType Error as well. In this event, <EM CLASS="Computer">
+ErrorCode</EM>
+ 0x20, <EM CLASS="Italic">
+function specific</EM>
+, is also used.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1875041"></A>ErrorInfo</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1875043"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1875045"></A>0x10, FktIDList</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1875047"></A>The corresponding properties of FktIDList were rejected by the <BR>
+<EM CLASS="Computer">
+Notification.Set()</EM>
+ command or the property is not supported in the Notification Service.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1875049"></A>0x21</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1875051"></A>Notification device table is full and does not allow more entries.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<A NAME="MNSH2-DeviceManagementFunctions" /><H6 CLASS="Heading2">
+<A NAME="50495582_pgfId-873713"></A>Device Management Functions</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-656525"></A>The functions in this section are used to handle device-relevant tasks, including the request of the revision information on the INIC&#8217;s hardware and firmware modules as well as the control of the power management behavior.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2065649"></A>An overview of the INIC&#8217;s device management functions is shown in <EM CLASS="CrossReference">
+<A HREF="#50495582_81633" CLASS="XRef"></A><EM CLASS="Link">
+Table 21-2</EM>
+<EM CLASS="CrossReference">
+</EM>
+</EM>
+. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495582_pgfId-656584"></A>Table 21-2: <A NAME="50495582_81633"></A>Device Management Functions</TableTitle>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-656531"></A>Function Name</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-656533"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-656535"></A>Possible to Notify</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-656537"></A>Page</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-656539"></A>DeviceStatus()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-656541"></A>0x220</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-656543"></A>Yes</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-656548"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_60092" CLASS="XRef">DeviceStatus (0x220)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-656550"></A>DeviceVersion()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-656552"></A>0x221</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-656554"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-656559"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_80089" CLASS="XRef">DeviceVersion (0x221)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-656561"></A>DevicePowerOff()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-656563"></A>0x222</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-656565"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-656570"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_58079" CLASS="XRef">DevicePowerOff (0x222)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-656572"></A>DeviceAttach()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-656574"></A>0x223</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-656576"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-656581"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_48199" CLASS="XRef">DeviceAttach (0x223)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1247024"></A>DeviceSync()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1247026"></A>0x224</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1247028"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1247030"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_79600" CLASS="XRef">DeviceSync (0x224)</A></EM>
+</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-656592"></A>&nbsp;</P>
+<DIV>
+<A NAME="MNSH3-DeviceStatus220" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-656596"></A><A NAME="50495582_60092"></A>DeviceStatus <A NAME="50495582_marker-3726857"></A>(0x220)<A NAME="50495582_marker-3726858"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-656597"></A>This function reports several device properties. Its Status is sent to the EHC after the device has entered the Attached Mode. </P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2164142"></A>This function supports notification.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859949"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859951"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859953"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859955"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859957"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859958"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859960"></A>DeviceStatus</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859961"></A>(0x220)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-859963"></A>Status (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-859965"></A><A HREF="#50495582_INIC/DeviceStatus/ConfigInterfaceMode" CLASS="XRef">ConfigInterfaceMode</A>, <BR>
+<A HREF="#50495582_INIC/DeviceStatus/AppInterfaceMode" CLASS="XRef">AppInterfaceMode</A>, <BR>
+<A HREF="#50495582_INIC/DeviceStatus/PowerState" CLASS="XRef">PowerState</A>, <A HREF="#50495582_INIC/DeviceStatus/BIST" CLASS="XRef">BIST</A>, <BR>
+<A HREF="#50495582_INIC/DeviceStatus/LastResetReason" CLASS="XRef">LastResetReason</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-859971"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-859973"></A>ErrorCode, ErrorInfo</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-961879"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/DeviceStatus/ConfigInterfaceMode"></A>ConfigInterfaceMode<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-961880"></A>The regular operation mode of the configuration interface is the Attached Mode. A mode change from <EM CLASS="Computer">
+Attached</EM>
+ to <EM CLASS="Computer">
+Protected</EM>
+ can happen in case of PMP channel synchronization loss, see <A HREF="#50495533_15865" CLASS="XRef"><EM CLASS="Link">
+Figure 2-5</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2164145"></A>At startup, the mode is set to <EM CLASS="Computer">
+Protected</EM>
+. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-961886"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-961888"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-961890"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-961892"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-961894"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-961896"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-961898"></A><EM CLASS="Computer">
+Protected</EM>
+<A NAME="50495582_DeviceStatus/ConfigInterfaceMode/Protected"></A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-961900"></A>The configuration interface is in Protected Mode.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-961904"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-961906"></A><EM CLASS="Computer">
+Attached</EM>
+<A NAME="50495582_DeviceStatus/ConfigInterfaceMode/Attached"></A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-961908"></A>The configuration interface is in Attached Mode.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3633783"></A>0x02</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3633785"></A><EM CLASS="Computer">
+RemoteControl</EM>
+<A NAME="50495582_DeviceStatus/ConfigInterfaceMode/RemoteControl"></A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3633787"></A>The configuration interface is in Remote Control Mode.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3633996"></A><A NAME="50495582_INIC/DeviceStatus/AppInterfaceMode"></A>AppInterfaceMode<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3633997"></A>The application interface is in Attached Mode. A mode change from <EM CLASS="Computer">
+Attached</EM>
+ to <EM CLASS="Computer">
+Protected</EM>
+ can happen in case of PMP channel synchronization loss, see <A HREF="#50495533_55793" CLASS="XRef"><EM CLASS="Link">
+Figure 2-9</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3634034"></A>At startup, the mode is set to <EM CLASS="Computer">
+Protected</EM>
+. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3634003"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3634005"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3634007"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3634009"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3634011"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3634013"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3634015"></A><EM CLASS="Computer">
+Protected</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3634017"></A>The application interface is in Protected Mode.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3634021"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3634023"></A><EM CLASS="Computer">
+Attached</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3634025"></A>The application interface is in Attached Mode.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-959262"></A><A NAME="50495582_INIC/DeviceStatus/PowerState"></A>PowerState<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-959310"></A>State of <EM CLASS="Pin-Name">
+PS0</EM>
+ and <EM CLASS="Pin-Name">
+PS1</EM>
+ pins. For information on the power management refer to <A HREF="#50495566_47728" CLASS="XRef"><EM CLASS="Blue">
+Chapter 3</EM>
+</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-959268"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-959270"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-959272"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-959274"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="5" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-959276"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-959278"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-959280"></A><EM CLASS="Computer">
+UNormal</EM>
+<A NAME="50495582_DeviceStatus/PowerState/UNormal"></A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-959282"></A>Normal power state</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-959286"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-959289"></A><EM CLASS="Computer">
+ULow</EM>
+<A NAME="50495582_DeviceStatus/PowerState/ULow"></A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-959291"></A>Erroneous power state</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-959295"></A>0x02</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-959298"></A><EM CLASS="Computer">
+STP</EM>
+<A NAME="50495582_DeviceStatus/PowerState/STP"></A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-959300"></A>Switch-to-Power power state</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-959304"></A>0x03</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-959307"></A><EM CLASS="Computer">
+UCritical</EM>
+<A NAME="50495582_DeviceStatus/PowerState/UCritical"></A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-959309"></A>Critical power state</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1669153"></A>0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1669155"></A><EM CLASS="Computer">
+NoMonitoring</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1669157"></A>No monitoring of <EM CLASS="Pin-Name">
+PS0</EM>
+/<EM CLASS="Pin-Name">
+PS1</EM>
+ pins</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-959312"></A><A NAME="50495582_INIC/DeviceStatus/BIST"></A>BIST<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1935428"></A>Result of the Built-in Self-Test.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4670256"></A>At startup, the mode is set to <EM CLASS="Computer">
+OK</EM>
+. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1935397"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1935399"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1935401"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1935403"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1935413"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1935415"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1935417"></A><EM CLASS="Computer">
+Error</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1935419"></A>BIST error due to </P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-4839107"></A>- a failure in the RAM,</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-4839139"></A>- an old boot-monitor was found,</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-4839194"></A>- a production string failure,</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-4839229"></A>- cPHY was selected on a BF package, or</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-4839273"></A>- a failure in the flash memory.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1935423"></A>0x02</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1935425"></A><EM CLASS="Computer">
+OK</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1935427"></A>BIST verification has no error.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1935430"></A><A NAME="50495582_INIC/DeviceStatus/LastResetReason"></A>LastResetReason<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1935472"></A>Shows the last reset reason of the device</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1935433"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1935435"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1935437"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1935439"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="7" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1935441"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1935443"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1935445"></A><EM CLASS="Computer">
+PowerOn</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1935447"></A>Startup reset due to Power-on-Reset (POR) </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1935451"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1935453"></A><EM CLASS="Computer">
+HardwareWatchdog</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1935455"></A>Reset due to hardware watchdog</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1935459"></A>0x02</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1935461"></A><EM CLASS="Computer">
+StackOverflow</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1935463"></A>Reset due to stack overflow</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4837120"></A>0x03</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4837122"></A><EM CLASS="Computer">
+Internal</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4837124"></A>Reset due to an internal reset request caused by function <EM CLASS="Computer">
+ExtendedNetworkControl.MemorySessionOpen()</EM>
+. </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3744512"></A>0x04</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3744514"></A><EM CLASS="Computer">
+External</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3744516"></A>External <EM CLASS="Overline">
+RST</EM>
+ pin is held low (see OS81118 Hardware Data Sheet <A HREF="#50495561_65912" CLASS="XRef"><EM CLASS="Blue">
+[4]</EM>
+</A>).</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH3-DeviceVersion221" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-959398"></A><A NAME="50495582_80089"></A>DeviceVersion <A NAME="50495582_marker-959396"></A>(0x221)<A NAME="50495582_marker-959397"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-656933"></A>This function contains information on the hardware and firmware modules of the INIC.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859975"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859977"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859979"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-859981"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859983"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859984"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859986"></A>DeviceVersion</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-859987"></A>(0x221)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-859989"></A>Get (0x1)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-859991"></A>-</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-859997"></A>Status (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-859999"></A><A HREF="#50495582_INIC/DeviceVersion/ProductIdentifier" CLASS="XRef">ProductIdentifier</A>, <BR>
+<A HREF="#50495582_INIC/DeviceVersion/MajorVersion" CLASS="XRef">MajorVersion</A>, <A HREF="#50495582_INIC/DeviceVersion/MinorVersion" CLASS="XRef">MinorVersion</A>, <BR>
+<A HREF="#50495582_INIC/DeviceVersion/ReleaseVersion" CLASS="XRef">ReleaseVersion</A>, <BR>
+<A HREF="#50495582_INIC/DeviceVersion/BuildVersion" CLASS="XRef">BuildVersion</A>, <BR>
+<A HREF="#50495582_INIC/DeviceVersion/HardwareRevision" CLASS="XRef">HardwareRevision</A>, <A HREF="#50495582_INIC/DeviceVersion/DiagID" CLASS="XRef">DiagID</A>, <A HREF="#50495582_INIC/DeviceVersion/Extension" CLASS="XRef">Extension</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-860005"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-860007"></A>ErrorCode, ErrorInfo</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-656935"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/DeviceVersion/ProductIdentifier"></A>ProductIdentifier<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-656957"></A>Unique identifier that represents the product name</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-656938"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-656940"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-656942"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-656944"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-656946"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-656948"></A>Unsigned Long</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-656950"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4582687"></A>0x00000000...<BR>
+0xFFFFFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-656954"></A>-</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-656956"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-656959"></A><A NAME="50495582_INIC/DeviceVersion/MajorVersion"></A>MajorVersion<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-656981"></A>Major version number of the firmware</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-656962"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-656964"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-656966"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-656968"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-656970"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-656972"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-656974"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-656976"></A>0x00...0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-656978"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-656980"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-656982"></A><A NAME="50495582_INIC/DeviceVersion/MinorVersion"></A>MinorVersion<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-657004"></A>Minor version number of the firmware</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-656985"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-656987"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-656989"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-656991"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-656993"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-656995"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-656997"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-656999"></A>0x00...0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657001"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657003"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-657005"></A><A NAME="50495582_INIC/DeviceVersion/ReleaseVersion"></A>ReleaseVersion<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-657027"></A>Release version number of the firmware<EM CLASS="Red-Marker">
+ </EM>
+</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657008"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657010"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657012"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657014"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657016"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657018"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657020"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657022"></A>0x00...0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657024"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657026"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-657028"></A><A NAME="50495582_INIC/DeviceVersion/BuildVersion"></A>BuildVersion<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-657050"></A>Build version number of the firmware. The number can be either a date code or the release build number.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657031"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657033"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657035"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657037"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657039"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657041"></A>Unsigned Long</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657043"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657045"></A>0x00000000...<BR>
+0xFFFFFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657047"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657049"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-657052"></A><A NAME="50495582_INIC/DeviceVersion/HardwareRevision"></A>HardwareRevision<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-657070"></A>Chip revision number</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657055"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657057"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657059"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657061"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657063"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657065"></A>0x00...0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657067"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657069"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1768403"></A><A NAME="50495582_INIC/DeviceVersion/DiagID"></A>DiagID<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1768421"></A>Unique diagnosis identifier of the device</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1768406"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1768408"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1768410"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1768412"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1768414"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1768416"></A>0x0000...0xFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1768418"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1768420"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-657071"></A><A NAME="50495582_INIC/DeviceVersion/Extension"></A>Extension<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-657072"></A>Contains revision information. Information given within this stream is not used for validation purposes and should be seen only as additional information to the device&#8217;s version information.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-860009"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-860011"></A>Number of Elements</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-860013"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-860015"></A>Stream</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-860017"></A>-</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-860019"></A>{ <A HREF="#50495582_INIC/DeviceVersion/ExtIdentifier" CLASS="XRef">ExtIdentifier</A>, <A HREF="#50495582_INIC/DeviceVersion/ExtMajorVersion" CLASS="XRef">ExtMajorVersion</A>, <BR>
+<A HREF="#50495582_INIC/DeviceVersion/ExtMinorVersion" CLASS="XRef">ExtMinorVersion</A>, <A HREF="#50495582_INIC/DeviceVersion/ExtReleaseVersion" CLASS="XRef">ExtReleaseVersion</A> } </P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-657086"></A><A NAME="50495582_INIC/DeviceVersion/ExtIdentifier"></A>ExtIdentifier<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-657104"></A>Unique identifier that represents an extension</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657089"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657091"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657093"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657095"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657097"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657099"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-657101"></A><EM CLASS="Computer">
+CFGS</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-657103"></A>Configuration string</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-657105"></A><A NAME="50495582_INIC/DeviceVersion/ExtMajorVersion"></A>ExtMajorVersion<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-657127"></A>Major version number of the extension</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657108"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657110"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657112"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657114"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657116"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657118"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657120"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657122"></A>0x00...0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657124"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657126"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-657128"></A><A NAME="50495582_INIC/DeviceVersion/ExtMinorVersion"></A>ExtMinorVersion<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-657150"></A>Minor version number of the extension</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657131"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657133"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657135"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657137"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657139"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657141"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657143"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657145"></A>0x00...0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657147"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657149"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-657151"></A><A NAME="50495582_INIC/DeviceVersion/ExtReleaseVersion"></A>ExtReleaseVersion<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-657173"></A>Release version number of the extension</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657154"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657156"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657158"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657160"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657162"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657164"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657166"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657168"></A>0x00...0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657170"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657172"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH3-DevicePowerOff222" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-657177"></A><A NAME="50495582_58079"></A>DevicePowerOff <A NAME="50495582_marker-657175"></A>(0x222)<A NAME="50495582_marker-657176"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-657178"></A>This function controls the <EM CLASS="Pin-Name">
+PWROFF</EM>
+ pin of the INIC. <EM CLASS="Computer">
+INIC.DevicePowerOff(PowerOff</EM>
+ = <EM CLASS="Computer">
+True)</EM>
+ may be triggered for instance when an <EM CLASS="Computer">
+INIC.DeviceStatus.Status(PowerState</EM>
+ = <EM CLASS="Computer">
+<A HREF="#50495582_DeviceStatus/PowerState/ULow" CLASS="XRef"><EM CLASS="Computer">
+ULow</EM>
+</A>)</EM>
+ message is sent to the EHC, which drives the INIC&#8217;s <EM CLASS="Pin-Name">
+PWROFF</EM>
+ pin high. For normal operation, the EHC may call <EM CLASS="Computer">
+INIC.DevicePowerOff.SetGet(PowerOff</EM>
+ = <EM CLASS="Computer">
+False)</EM>
+, which drives the <EM CLASS="Pin-Name">
+PWROFF</EM>
+ pin low.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495582_pgfId-880335"></A>Note: This function cannot be called in Protected Mode. On a transition to Protected Mode, <EM CLASS="Computer">
+PowerOff</EM>
+ is automatically set to <EM CLASS="Computer">
+False</EM>
+.</Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-880392"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-860021"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-860023"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-860025"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-860027"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-860029"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-860030"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-860032"></A>DevicePowerOff</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-860033"></A>(0x222)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-860035"></A>Get (0x1)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-860037"></A>-</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-860043"></A>SetGet (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-860045"></A><A HREF="#50495582_INIC/DevicePowerOff/PowerOff" CLASS="XRef">PowerOff</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-860051"></A>Status (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-860053"></A><A HREF="#50495582_INIC/DevicePowerOff/PowerOff" CLASS="XRef">PowerOff</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-860059"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-860061"></A><A HREF="#50495582_INIC/DevicePowerOff/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-657231"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/DevicePowerOff/PowerOff"></A>PowerOff<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-657257"></A>External power management power-off indicator </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657234"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657236"></A>Bit #</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657238"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657240"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657242"></A>Boolean</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657244"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657246"></A>False (0)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-657248"></A><EM CLASS="Pin-Name">
+PWROFF</EM>
+ pin is set to low.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657254"></A>True (1)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-657256"></A><EM CLASS="Pin-Name">
+PWROFF</EM>
+ pin is set to high.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-657297"></A><A NAME="50495582_INIC/DevicePowerOff/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2838791"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2838793"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2838801"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2838803"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2838805"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-860082"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-860087"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-860089"></A>0xF0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-860091"></A>Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-860097"></A>0xF1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-860099"></A>Configuration interface is in Protected Mode.</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH3-DeviceAttach223" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-657302"></A><A NAME="50495582_48199"></A><A NAME="50495582_92132"></A>DeviceAttach <A NAME="50495582_marker-657300"></A>(0x223)<A NAME="50495582_marker-657301"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2152740"></A>This function is used by an EHC to attach to the INIC. If an <EM CLASS="Computer">
+INIC.DeviceAttach()</EM>
+ command is sent to the INIC, the INIC&#8217;s notification service will be triggered for all properties that support notification, except <EM CLASS="Computer">
+INIC.GPIOTriggerEvent()</EM>
+. If it is desired to get notifications on <EM CLASS="Computer">
+INIC.GPIOTriggerEvent()</EM>
+, an <EM CLASS="Computer">
+INIC.Notification.Set(FktID = GPIOPortTriggerEvent)</EM>
+ command must be sent explicitly.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2152678"></A>A request will be blocked as long as INIC hasn&#8217;t finished a still running internal detach/cleanup process.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2152681"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2152683"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2152685"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2152687"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2152689"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2152690"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2152692"></A>DeviceAttach</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2152693"></A>(0x223)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2152695"></A>StartResult (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2152700"></A>-</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2152706"></A>Result (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2152711"></A>-</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2152717"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2152724"></A><A HREF="#50495582_INIC/DeviceAttach/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-657437"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/DeviceAttach/SenderHandle"></A><A NAME="50495582_INIC/DeviceAttach/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2838881"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2838883"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2838891"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2838893"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2838895"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2838835"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2838840"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2838842"></A>0x30</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2838844"></A>A wrong device tries to attach; a device attach can be only performed by EHC.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3627725"></A>0x31</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3627727"></A>ICM and RCM PMP channels must be synchronized before the device can be attached.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2838850"></A>0xF0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2838852"></A>Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2838859"></A><A HREF="#50495582_ErrorClass/0x04" CLASS="XRef">0x04</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2838861"></A>0x40</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2838863"></A>An already attached device tries to attach.</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH3-DeviceSync224" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-1251190"></A><A NAME="50495582_79600"></A>DeviceSync <A NAME="50495582_marker-1251188"></A>(0x224)<A NAME="50495582_marker-1251189"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1251191"></A>This function allows remote synchronization of devices that do not incorporate an EHC.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1254231"></A><EM CLASS="Computer">
+INIC.DeviceSync()</EM>
+ must be called from MOST network side. In advance to the function call, it must be ensured that the settings in the configuration string support the command: <A HREF="#50495606_Device Management/Configuration Interface" CLASS="XRef">Configuration Interface</A> is <EM CLASS="Computer">
+None</EM>
+. Otherwise an error is returned.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1254483"></A>For detailed information on how the command is used refer to <A HREF="#50495533_47728" CLASS="XRef"><EM CLASS="Blue">
+Chapter 2</EM>
+</A>. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1247079"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1247081"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1247083"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1247085"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1247087"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1247088"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1247090"></A>DeviceSync</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1247091"></A>(0x224)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1247093"></A>StartResult (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1247095"></A><A HREF="#50495582_INIC/DeviceSync/Synchronization" CLASS="XRef">Synchronization</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1247101"></A>Result (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1490726"></A><A HREF="#50495582_INIC/DeviceSync/Synchronization" CLASS="XRef">Synchronization</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1247109"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1247111"></A><A HREF="#50495582_INIC/DeviceSync/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-1247534"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/DeviceSync/SenderHandle"></A><A NAME="50495582_INIC/DeviceSync/Synchronization"></A>Synchronization<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1247715"></A>Used by an external device to unsynchronize/synchronize the INIC</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1247810"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1247812"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1247814"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1247816"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1247818"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1247820"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1247822"></A><EM CLASS="Computer">
+UnSync</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1247824"></A>Unsynchronize INIC</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1247828"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1247830"></A><EM CLASS="Computer">
+Sync</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1247832"></A>Synchronize INIC</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1247781"></A><A NAME="50495582_INIC/DeviceSync/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2838913"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2838915"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2838923"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2838925"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2838927"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1250986"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1250991"></A><A HREF="#50495582_ErrorClass/0x01" CLASS="XRef">0x01</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1250993"></A>0x10</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1250995"></A>The last <EM CLASS="Computer">
+INIC.DeviceSync()</EM>
+ call has not yet been finished.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1872247"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1872249"></A>0x30</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1872251"></A><EM CLASS="Computer">
+INIC.DeviceSync()</EM>
+ must not be called from EHC side.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1872255"></A>0xF0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1872260"></A>Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<A NAME="MNSH2-MOSTNetworkFunctions" /><H6 CLASS="Heading2">
+<A NAME="50495582_pgfId-873771"></A><A NAME="50495582_67376"></A>MOST Network Functions</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2063627"></A>The functions in this section are used to handle network-relevant tasks, including the retrieval of network status and configuration information. It also provides the methods to startup and shutdown the MOST network as well as the capability to run the Ring Break Diagnosis. </P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-657604"></A>An overview of the INIC&#8217;s MOST network management functions is summarized in <A HREF="#50495582_69120" CLASS="XRef"><EM CLASS="Link">
+Table 21-3</EM>
+</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495582_pgfId-657597"></A>Table 21-3: <A NAME="50495582_69120"></A>MOST Network Functions</TableTitle>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657445"></A>Function Name</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657447"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657449"></A>Possible to Notify</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657451"></A>Page</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-657453"></A>MOSTNetworkStatus()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657455"></A>0x520</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657457"></A>Yes</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657462"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_92652" CLASS="XRef">MOSTNetworkStatus (0x520)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-657464"></A>MOSTNetworkConfiguration()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657466"></A>0x521</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657468"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657473"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_23250" CLASS="XRef">MOSTNetworkConfiguration (0x521)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3279459"></A>MOSTNetworkFrameCounter</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3279461"></A>0x523</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3279463"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3279465"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_55103" CLASS="XRef">MOSTNetworkFrameCounter (0x523)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-657497"></A>MOSTNetworkStartup()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657499"></A>0x524</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657501"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657506"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_16663" CLASS="XRef">MOSTNetworkStartup (0x524)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-657508"></A>MOSTNetworkShutdown()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657510"></A>0x525</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657512"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657517"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_84308" CLASS="XRef">MOSTNetworkShutdown (0x525)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-657519"></A>MOSTNetworkRBD()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657521"></A>0x526</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657523"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657528"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_97428" CLASS="XRef">MOSTNetworkRBD (0x526)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-657530"></A>MOSTNetworkRBDResult()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657532"></A>0x527</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657534"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657539"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_75275" CLASS="XRef">MOSTNetworkRBDResult (0x527)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-657574"></A>MOSTNetworkForceNotAvailable()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657576"></A>0x52B</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657578"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657583"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_92391" CLASS="XRef">MOSTNetworkForceNotAvailable (0x52B)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3685886"></A>MOSTNetworkSystemDiagnosis()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3685938"></A>0x52C</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3685940"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3685945"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_12494" CLASS="XRef">MOSTNetworkSystemDiagnosis (0x52C)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3685966"></A>MOSTNetworkSystemDiagnosisEnd()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3685947"></A>0x52D</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3685949"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3685954"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_26050" CLASS="XRef">MOSTNetworkSystemDiagnosisEnd (0x52D)</A></EM>
+</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH3-MOSTNetworkStatus520" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-657608"></A><A NAME="50495582_92652"></A>MOSTNetworkStatus <A NAME="50495582_marker-657606"></A>(0x520)<A NAME="50495582_marker-657607"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-657609"></A>This function reports information on the whole MOST network, including MOST Supervisor states, system parameters and packet bandwidth.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2164528"></A>This function supports notification.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-882666"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-882668"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-882670"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-882672"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-882674"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-882675"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-882677"></A>MOSTNetworkStatus</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-882678"></A>(0x520)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-882680"></A>Status (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-882682"></A><A HREF="#50495582_INIC/MOSTNetworkStatus/Events" CLASS="XRef">Events</A>, <A HREF="#50495582_INIC/MOSTNetworkStatus/Availability" CLASS="XRef">Availability</A>, <BR>
+<A HREF="#50495582_INIC/MOSTNetworkStatus/AvailabilityInfo" CLASS="XRef">AvailabilityInfo</A>, <BR>
+<A HREF="#50495582_INIC/MOSTNetworkStatus/AvailabilityTransitionCause" CLASS="XRef">AvailabilityTransitionCause</A>, <A HREF="#50495582_INIC/MOSTNetworkStatus/NodeAddress" CLASS="XRef">NodeAddress</A>, <A HREF="#50495582_INIC/MOSTNetworkStatus/NodePosition" CLASS="XRef">NodePosition</A>, <A HREF="#50495582_INIC/MOSTNetworkStatus/MaxPosition" CLASS="XRef">MaxPosition</A>, <A HREF="#50495582_INIC/MOSTNetworkStatus/PacketBW" CLASS="XRef">PacketBW</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-882688"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-882690"></A>ErrorCode, ErrorInfo</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-2268482"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/MOSTNetworkStatus/Events"></A>Events<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2268483"></A>The <EM CLASS="Computer">
+Events</EM>
+ bit is related to the MOST network interface functionality. It is cleared once it was sent to all notified devices. A newly attached device gets a cleared <EM CLASS="Computer">
+Events</EM>
+ field. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2268486"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2268488"></A>Bit #</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2268490"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2268492"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2268494"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2268496"></A><EM CLASS="Computer">
+NCE</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2268502"></A>0: No Network Change Event (NCE) available</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="TableCellLeft-Ind">
+<A NAME="50495582_pgfId-2268508"></A>1: NCE happened. There was a change in the Maximum Position Information. If the network is available, the event flag will be set after the Maximum Position value is valid and the network is in stable lock. The event is delayed at least 100 ms after the Maximum Position Information change has been detected. It is also reported if the new value is equal to the previous value, but the interim value that caused a change in the Maximum Position information was invalid.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-657728"></A><A NAME="50495582_INIC/MOSTNetworkStatus/Availability"></A>Availability<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-657757"></A>Indicates if the MOST network is available</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657731"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657733"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657735"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657737"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657739"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657741"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-657744"></A><EM CLASS="Computer">
+NotAvailable</EM>
+<A NAME="50495582_NotAvailable/Availability/MOSTNetworkStatus"></A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-657746"></A>The MOST network is not available.</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-657747"></A>In this state the network is not started up or startup is not yet completed (<EM CLASS="Computer">
+AvailabilityInfo</EM>
+ is <EM CLASS="Computer">
+Regular</EM>
+). Furthermore, it is possible that diagnosis mode has been started (<EM CLASS="Computer">
+AvailabilityInfo</EM>
+ is <EM CLASS="Computer">
+Diagnosis</EM>
+).</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657751"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-657754"></A><EM CLASS="Computer">
+Available</EM>
+<A NAME="50495582_Available/Availability/MOSTNetworkStatus"></A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-657756"></A>The MOST network is available.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-657759"></A><A NAME="50495582_INIC/MOSTNetworkStatus/AvailabilityInfo"></A>AvailabilityInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1186152"></A>Indicates the sub state to parameter <EM CLASS="Computer">
+Availability</EM>
+ </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="4">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3124969"></A><EM CLASS="Computer">
+Availability</EM>
+ is <EM CLASS="Computer">
+NotAvailable</EM>
+</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3124977"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3124979"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3124981"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3124983"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3124985"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3124987"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3124990"></A><EM CLASS="Computer">
+Regular</EM>
+<A NAME="50495582_Regular/AvailInfo/MostStatus"></A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3124992"></A>Network is in NetInterface Off or Init state. It is pending to become available again. If <EM CLASS="Computer">
+AvailabilityTransitionCause</EM>
+ is <EM CLASS="Computer">
+<A HREF="#50495582_ErrorSystem/AvailabilityTransitionCause/MOSTNetworkStatus" CLASS="XRef"><EM CLASS="Computer">
+ErrorSystem</EM>
+</A></EM>
+, the error condition may be freed first, before the network can be started.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3124999"></A>0x02</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3125002"></A><EM CLASS="Computer">
+Diagnosis</EM>
+<A NAME="50495582_Diagnosis/AvailInfo/MostStatus"></A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-3125004"></A>- INIC enters this state when RBD is started. It stays in this state until diagnosis is finished. After RBD is finished, <EM CLASS="Computer">
+INIC.MOSTNetworkRBD.Result()</EM>
+ is returned, containing the result of the RBD. <BR>
+An inquiry of <EM CLASS="Computer">
+INIC.MOSTNetworkRBD-Result()</EM>
+ also reports the result of the RBD.</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-3345990"></A>- INIC enters this state after starting the <EM CLASS="Computer">
+ExtendedNetworkControl.PhysicalLayerTest()</EM>
+, system diagnosis or device diagnosis.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3125008"></A>0x06</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3125011"></A><EM CLASS="Computer">
+ForcedNA</EM>
+<A NAME="50495582_ForcedNA/AvailInfo/MostStatus"></A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3125016"></A>INIC was forced to enter <EM CLASS="Computer">
+<A HREF="#50495582_NotAvailable/Availability/MOSTNetworkStatus" CLASS="XRef"><EM CLASS="Computer">
+NotAvailable</EM>
+</A></EM>
+ state.</P>
+</TD>
+</TR>
+</TABLE>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="4">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1186121"></A><EM CLASS="Computer">
+Availability</EM>
+ is <EM CLASS="Computer">
+Available</EM>
+</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1186129"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1186131"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1186133"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1186135"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1186137"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1186139"></A>0x10</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1186141"></A><EM CLASS="Computer">
+Unstable</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1186143"></A>Unlocks have been detected.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1186147"></A>0x11</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1186149"></A><EM CLASS="Computer">
+Stable</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1186151"></A>Network is in stable lock.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-657902"></A><A NAME="50495582_INIC/MOSTNetworkStatus/AvailabilityTransitionCause"></A>AvailabilityTransitionCause<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-657903"></A>Indicates the transition cause of the MOST network going from <EM CLASS="Computer">
+NotAvailable</EM>
+ to <EM CLASS="Computer">
+Available</EM>
+ or vice versa. This parameter behaves like an event. Once reported, it is cleared to <EM CLASS="Computer">
+NoTransition</EM>
+. A new attached device will also see <EM CLASS="Computer">
+NoTransition</EM>
+, which implies that <EM CLASS="Computer">
+AvailabilityTransitionCause</EM>
+ is not remembered from the past, e.g., after a device went through Protected Mode.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2164531"></A>The default value is 0xFF.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657906"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657908"></A>Transition from</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657910"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657912"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-657914"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="7" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657916"></A>Enum</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657918"></A><EM CLASS="Computer">
+NotAvailable</EM>
+ to <EM CLASS="Computer">
+Available</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657920"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-657922"></A><EM CLASS="Computer">
+Command</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-657924"></A>Startup is initiated by chip e.g., <EM CLASS="Computer">
+INIC.MOSTNetworkStartup()</EM>
+, <A HREF="#50495582_16663" CLASS="XRef">MOSTNetworkStartup (0x524)</A>.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3360614"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3360616"></A><EM CLASS="Computer">
+RxActivity</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3360618"></A>Chip is woken up by network activity.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657951"></A><EM CLASS="Computer">
+Available</EM>
+ to <EM CLASS="Computer">
+NotAvailable</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657953"></A>0x10</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-657955"></A><EM CLASS="Computer">
+Normal</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-657957"></A>- Network is shutdown standardly by an <EM CLASS="Computer">
+INIC.MOSTNetworkShutdown()</EM>
+ command (<A HREF="#50495582_84308" CLASS="XRef">MOSTNetworkShutdown (0x525)</A>), initiated locally or by a node positioned upstream (in the latter case, the shutdown flag indicates a Normal Shutdown).</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-2063474"></A>- RBD or the physical layer test has been started.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657966"></A>0x11</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-657968"></A><EM CLASS="Computer">
+ErrorSuddenSignalOff</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-657970"></A>Network is shut down due to an error. <BR>
+In this case the shutdown reason was a sudden signal off. No shutdown flag is present. </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657976"></A>0x12</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-657978"></A><EM CLASS="Computer">
+ErrorCriticalUnlock</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-657980"></A>Network is shut down due to an error. <BR>
+In this case the shutdown reason was a critical unlock. No shutdown flag is present.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-657986"></A>0x13</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-657989"></A><EM CLASS="Computer">
+ErrorSystem</EM>
+<A NAME="50495582_ErrorSystem/AvailabilityTransitionCause/MOSTNetworkStatus"></A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-657991"></A>Network is shut down due to a chip or system error.<BR>
+Possible reasons are:</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-658000"></A>- INIC enters <EM CLASS="Computer">
+<A HREF="#50495582_ForcedNA/AvailInfo/MostStatus" CLASS="XRef"><EM CLASS="Computer">
+ForcedNA</EM>
+</A></EM>
+ state.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-658004"></A>-</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-658006"></A>0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-658008"></A><EM CLASS="Computer">
+NoTransition</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-658010"></A>No transition</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1950903"></A><A NAME="50495582_INIC/MOSTNetworkStatus/NodeAddress"></A>NodeAddress<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1950904"></A>For details on parameter settings and the behavior of this parameter, refer to section <A HREF="#50495565_31917" CLASS="XRef">Node Address</A>. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1953213"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1953215"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1953217"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1953219"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1953221"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1953223"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1953225"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4788569"></A>0x0100...0x013F</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1953229"></A>1</P>
+</TD>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1953231"></A>None</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4788571"></A>0x0010...0x00FF,</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4788572"></A>0x0140...0x02FF,</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4788573"></A>0x0500...0x0FEF</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4837319"></A>0x0FFE</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4788524"></A>-</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4788538"></A>0xFFFF<BR>
+(factory default value)</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1950969"></A><A NAME="50495582_INIC/MOSTNetworkStatus/NodePosition"></A>NodePosition<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-658078"></A>Current valid <EM CLASS="Computer">
+NodePosition</EM>
+ if network is available. Zero is reported for a TimingMaster device. 0xFF is reported if the MOST network is not available. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-860277"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-860279"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-860281"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-860283"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-860285"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-860287"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-860289"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-860291"></A>0...63</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-860293"></A>1</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-860295"></A>None</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1936773"></A>0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1936775"></A>-</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-658100"></A><A NAME="50495582_INIC/MOSTNetworkStatus/MaxPosition"></A>MaxPosition<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-658101"></A>Current number of nodes in the MOST network if network is available. Value is updated with the Network Change Event. 0xFF is reported if the MOST network is not available. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-658104"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-658106"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-658108"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-658110"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-658112"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-658114"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-658116"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-658118"></A>1...64</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-658120"></A>1</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-658122"></A>None</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1936849"></A>0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1936851"></A>-</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1936920"></A><A NAME="50495582_INIC/MOSTNetworkStatus/PacketBW"></A>PacketBW<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1936921"></A>Current size of packet bandwidth while the MOST network is available, see also <A HREF="#50495582_91547" CLASS="XRef"><EM CLASS="Link">
+Table 21-4</EM>
+</A> for bandwidth allocation. 0xFFFF is reported if the MOST network is not available.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1936924"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1936926"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1936928"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1936930"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1936932"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1936934"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1936936"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1936938"></A>0...372</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1936940"></A>4</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1936942"></A>Byte</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1936948"></A>0xFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1936950"></A>-</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH3-MOSTNetworkConfiguration521" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-658150"></A><A NAME="50495582_23250"></A>MOSTNetworkConfiguration <A NAME="50495582_marker-658148"></A>(0x521)<A NAME="50495582_marker-658149"></A> </H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-658151"></A>This function covers general MOST network-related configuration settings as well as packet and control data-related settings. Packet-related parameters can be modified by setting the appropriate bits inside the <EM CLASS="Computer">
+Mask</EM>
+ parameter. Parameter <EM CLASS="Computer">
+PacketFilterMode</EM>
+ enables various options for the destination address match logic for MOST Ethernet Packets (MEP). The packet hash parameters access the 64-bit hash table to allow reception of multi-cast Ethernet frames.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3119882"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3119884"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3119886"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3119888"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3119890"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3119891"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3119893"></A>MOSTNetwork-<BR>
+Configuration</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3119894"></A>(0x521)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3119896"></A>Get (0x1)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3119898"></A>-</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3119904"></A>SetGet (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3119912"></A><A HREF="#50495582_INIC/MOSTNetworkConfiguration/Mask" CLASS="XRef">Mask</A>, <A HREF="#50495582_INIC/MOSTNetworkConfiguration/NodeAddress" CLASS="XRef">NodeAddress</A>, <A HREF="#50495582_INIC/MOSTNetworkConfiguration/GroupAddress" CLASS="XRef">GroupAddress</A>, <BR>
+<A HREF="#50495582_INIC/MOSTNetworkConfiguration/ControlLLRBlockCount" CLASS="XRef">ControlLLRBlockCount</A>, <A HREF="#50495582_INIC/MOSTNetworkConfiguration/PacketFilterMode" CLASS="XRef">PacketFilterMode</A>, <BR>
+<A HREF="#50495582_INIC/MOSTNetworkConfiguration/PacketHash_63to48" CLASS="XRef">PacketHash_63to48</A>, <A HREF="#50495582_INIC/MOSTNetworkConfiguration/PacketHash_47to32" CLASS="XRef">PacketHash_47to32</A>, </P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3274428"></A><A HREF="#50495582_INIC/MOSTNetworkConfiguration/PacketHash31to16" CLASS="XRef">PacketHash_31to16</A>, <A HREF="#50495582_INIC/MOSTNetworkConfiguration/PacketHash_15to0" CLASS="XRef">PacketHash_15to0</A>,<BR>
+<A HREF="#50495582_INIC/MOSTNetworkConfiguration/PacketEUI48_47to32" CLASS="XRef">PacketEUI48_47to32</A>, <A HREF="#50495582_INIC/MOSTNetworkConfiguration/PacketEUI48_31to16" CLASS="XRef">PacketEUI48_31to16</A>, <A HREF="#50495582_INIC/MOSTNetworkConfiguration/PacketEUI48_15to0" CLASS="XRef">PacketEUI48_15to0</A>, <A HREF="#50495582_INIC/MOSTNetworkConfiguration/PacketLLRTime" CLASS="XRef">PacketLLRTime</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3119951"></A>Status (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3274527"></A><A HREF="#50495582_INIC/MOSTNetworkConfiguration/NodeAddress" CLASS="XRef">NodeAddress</A>, <A HREF="#50495582_INIC/MOSTNetworkConfiguration/GroupAddress" CLASS="XRef">GroupAddress</A>, <BR>
+<A HREF="#50495582_INIC/MOSTNetworkConfiguration/ControlLLRBlockCount" CLASS="XRef">ControlLLRBlockCount</A>, <A HREF="#50495582_INIC/MOSTNetworkConfiguration/PacketFilterMode" CLASS="XRef">PacketFilterMode</A>, <BR>
+<A HREF="#50495582_INIC/MOSTNetworkConfiguration/PacketHash_63to48" CLASS="XRef">PacketHash_63to48</A>, <A HREF="#50495582_INIC/MOSTNetworkConfiguration/PacketHash_47to32" CLASS="XRef">PacketHash_47to32</A>, </P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3130122"></A><A HREF="#50495582_INIC/MOSTNetworkConfiguration/PacketHash31to16" CLASS="XRef">PacketHash_31to16</A>, <A HREF="#50495582_INIC/MOSTNetworkConfiguration/PacketHash_15to0" CLASS="XRef">PacketHash_15to0</A>,<BR>
+<A HREF="#50495582_INIC/MOSTNetworkConfiguration/PacketEUI48_47to32" CLASS="XRef">PacketEUI48_47to32</A>, <A HREF="#50495582_INIC/MOSTNetworkConfiguration/PacketEUI48_31to16" CLASS="XRef">PacketEUI48_31to16</A>, <A HREF="#50495582_INIC/MOSTNetworkConfiguration/PacketEUI48_15to0" CLASS="XRef">PacketEUI48_15to0</A>, <A HREF="#50495582_INIC/MOSTNetworkConfiguration/PacketLLRTime" CLASS="XRef">PacketLLRTime</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3119995"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3120000"></A><A HREF="#50495582_INIC/MOSTNetworkConfiguration/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-658210"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/MOSTNetworkConfiguration/Mask"></A>Mask<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-658211"></A>Changes a single, multiple or all parameters in one SetGet operation. Parameters which are not being set are transmitted as dummy values; they are not decoded by INIC. <BR>
+The mask bits can either be set to 0 or 1 and behave as follows:<BR>
+0: The parameter is not considered in the operation.<BR>
+1: The parameter is considered in the operation. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-658214"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-658216"></A>Bit #</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-658218"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="7" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-658220"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-658222"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-658224"></A><A HREF="#50495582_INIC/MOSTNetworkConfiguration/NodeAddress" CLASS="XRef">NodeAddress</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-658228"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-658230"></A><A HREF="#50495582_INIC/MOSTNetworkConfiguration/GroupAddress" CLASS="XRef">GroupAddress</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-658234"></A>2 </P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-658236"></A><A HREF="#50495582_INIC/MOSTNetworkConfiguration/ControlLLRBlockCount" CLASS="XRef">ControlLLRBlockCount</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-658240"></A>3</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-658242"></A><A HREF="#50495582_INIC/MOSTNetworkConfiguration/PacketFilterMode" CLASS="XRef">PacketFilterMode</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-658246"></A>4</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-658248"></A><A HREF="#50495582_INIC/MOSTNetworkConfiguration/PacketHash_15to0" CLASS="XRef">PacketHash_15to0</A>, <A HREF="#50495582_INIC/MOSTNetworkConfiguration/PacketHash31to16" CLASS="XRef">PacketHash_31to16</A>, <A HREF="#50495582_INIC/MOSTNetworkConfiguration/PacketHash_47to32" CLASS="XRef">PacketHash_47to32</A>, <A HREF="#50495582_INIC/MOSTNetworkConfiguration/PacketHash_63to48" CLASS="XRef">PacketHash_63to48</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-658252"></A>5</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-658254"></A><A HREF="#50495582_INIC/MOSTNetworkConfiguration/PacketEUI48_47to32" CLASS="XRef">PacketEUI48_47to32</A>, <A HREF="#50495582_INIC/MOSTNetworkConfiguration/PacketEUI48_31to16" CLASS="XRef">PacketEUI48_31to16</A>, <BR>
+<A HREF="#50495582_INIC/MOSTNetworkConfiguration/PacketEUI48_15to0" CLASS="XRef">PacketEUI48_15to0</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-658258"></A>6</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-658260"></A><A HREF="#50495582_INIC/MOSTNetworkConfiguration/PacketLLRTime" CLASS="XRef">PacketLLRTime</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3097884"></A><A NAME="50495582_INIC/MOSTNetworkConfiguration/NodeAddress"></A>NodeAddress<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3097885"></A><EM CLASS="Computer">
+NodeAddress</EM>
+ of the device. If the <EM CLASS="Computer">
+NodeAddress</EM>
+ is set in the dynamic range (0x0100...0x013F), parameter <EM CLASS="Computer">
+NodeAddress</EM>
+ in the Status message will return 0xFFFF. Values 0x0F00...0x0FEF, 0x0FFE and 0xFFFF cannot be set.<BR>
+The actual <EM CLASS="Computer">
+NodeAddress</EM>
+ is retrieved by function <EM CLASS="Computer">
+INIC.MOSTNetworkStatus()</EM>
+. <BR>
+For details on parameter settings and the behavior of this parameter, refer to section <A HREF="#50495565_31917" CLASS="XRef">Node Address</A>. </P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3097925"></A>This parameter can be customized via the <A HREF="#50495606_31610" CLASS="XRef">Identification String</A>. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3097894"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3097896"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3097898"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3097900"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3097902"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3097904"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3097906"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3097908"></A>0x0100...0x013F</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3097910"></A>1</P>
+</TD>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3097912"></A>None</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3097918"></A>0x0010...0x00FF,</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3097919"></A>0x0140...0x02FF,</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3097920"></A>0x0500...0x0FEF</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4837366"></A>0x0FFE</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4629976"></A>-</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4629974"></A>0xFFFF</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3125037"></A><A NAME="50495582_INIC/MOSTNetworkConfiguration/GroupAddress"></A>GroupAddress<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3125038"></A>For details on parameter settings and the behavior of this parameter, refer to section <A HREF="#50495565_51563" CLASS="XRef">Group Address</A>.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3131998"></A>This parameter can be customized via the <A HREF="#50495606_31610" CLASS="XRef">Identification String</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3131979"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3131981"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3131983"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3131985"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3131987"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3131989"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3131991"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3131993"></A>0x0300...0x03FF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3131995"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3131997"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3132038"></A><A NAME="50495582_INIC/MOSTNetworkConfiguration/ControlLLRBlockCount"></A>ControlLLRBlockCount<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3132039"></A>Defines the block count for control Low-Level Retries for all messages generated by the INIC itself. For more information refer to <A HREF="#50495578_46599" CLASS="XRef"><EM CLASS="Link">
+Section 17.1</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3132004"></A>The default value is 10.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3132029"></A>This parameter can be customized via the <A HREF="#50495606_34947" CLASS="XRef">Configuration String</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3132010"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3132012"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3132014"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3132016"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3132018"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3132020"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3132022"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3132024"></A>0...100</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3132026"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3132028"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3132032"></A><A NAME="50495582_INIC/MOSTNetworkConfiguration/PacketFilterMode"></A>PacketFilterMode<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3098995"></A>Determines the mode of the address match filter for MOST Ethernet Packets</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3098882"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3098884"></A>Bit #</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3098886"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="18" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3098888"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3098890"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3098892"></A><EM CLASS="Computer">
+PASEL</EM>
+ (physical address filter select)</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeftInd-Number">
+<A NAME="50495582_pgfId-3098898"></A>0: Physical address perfect filter enabled ( default)</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeftInd-Number">
+<A NAME="50495582_pgfId-3098904"></A>1: Physical address hash filter</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3098908"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3098910"></A><EM CLASS="Computer">
+PAPAS</EM>
+ (physical address pass)</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeftInd-Number">
+<A NAME="50495582_pgfId-3098916"></A>0: Physical address match enabled (default)</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeftInd-Number">
+<A NAME="50495582_pgfId-3098922"></A>1: All physical addresses are received</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3098926"></A>2</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3098928"></A><EM CLASS="Computer">
+MCSEL</EM>
+ (multi-cast address filter select)</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeftInd-Number">
+<A NAME="50495582_pgfId-3098934"></A>0: Multi-cast address perfect filter enabled (default)</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeftInd-Number">
+<A NAME="50495582_pgfId-3098940"></A>1: Multi-cast address hash filter enabled</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3098944"></A>3</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3098946"></A><EM CLASS="Computer">
+MCPAS</EM>
+ (multi-cast address pass)</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeftInd-Number">
+<A NAME="50495582_pgfId-3098952"></A>0: Multi-cast address match enabled (default)</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeftInd-Number">
+<A NAME="50495582_pgfId-3098958"></A>1: All multi-cast addresses are received</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3098962"></A>4</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3098964"></A><EM CLASS="Computer">
+INVFILT</EM>
+ (inverse filter)</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeftInd-Number">
+<A NAME="50495582_pgfId-3098970"></A>0: Filter is not inverted (default)</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeftInd-Number">
+<A NAME="50495582_pgfId-3098976"></A>1: Filter is inverted, i.e., all single- and multi-cast addresses that do not match the filter (broadcast addresses are not influenced)</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3098980"></A>5</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3098982"></A><EM CLASS="Computer">
+BISBCST</EM>
+ (broadcast receive disable)</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeftInd-Number">
+<A NAME="50495582_pgfId-3098988"></A>0: Broadcast packets can be received (default)</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeftInd-Number">
+<A NAME="50495582_pgfId-3098994"></A>1: All broadcast frames are ignored</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3098996"></A>Examples:<BR>
+Mode (5:0) is 1XXXXX: All broadcast frames disabled (FF:FF:FF:FF:FF:FF)</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3098997"></A>Mode (5:0) is 000000: All addresses that match the perfect filter</P>
+<P CLASS="Body-1-625">
+<A NAME="50495582_pgfId-3098998"></A>Mode (5:0) is 000100: Physical addresses that match the perfect filter; multi-cast addresses that match the hash filter</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3098999"></A>Mode (5:0) is 000101: All addresses that match the hash filter</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3099000"></A>Mode (5:0) is 010000: All addresses that do not match the perfect filter</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3099001"></A>Mode (5:0) is 001010: All addresses</P>
+<P CLASS="Body-1-625">
+<A NAME="50495582_pgfId-3099002"></A>Mode (5:0) is 001000: All multi-cast addresses; physical addresses that match the perfect filter</P>
+<P CLASS="Body-1-625">
+<A NAME="50495582_pgfId-3099003"></A>Mode (5:0) is 001001: All multi-cast addresses; physical addresses that match the hash filter</P>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3275222"></A><A NAME="50495582_INIC/MOSTNetworkConfiguration/PacketHash_63to48"></A>PacketHash_63to48<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3275244"></A>Defines bits 63:48 of the hash table</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3275225"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3275227"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3275229"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3275231"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3275233"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3275235"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3275237"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3275239"></A>0x0000...0xFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3275241"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3275243"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3275883"></A><A NAME="50495582_INIC/MOSTNetworkConfiguration/PacketHash_47to32"></A>PacketHash_47to32<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3275905"></A>Defines bits 47:32 of the hash table</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3275886"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3275888"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3275890"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3275892"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3275894"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3275896"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3275898"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3275900"></A>0x0000...0xFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3275902"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3275904"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3276556"></A><A NAME="50495582_INIC/MOSTNetworkConfiguration/PacketHash31to16"></A>PacketHash_31to16<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3276578"></A>Defines bits 31:16 of the hash table</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3276559"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3276561"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3276563"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3276565"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3276567"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3276569"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3276571"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3276573"></A>0x0000...0xFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3276575"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3276577"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3099005"></A><A NAME="50495582_INIC/MOSTNetworkConfiguration/PacketHash_15to0"></A>PacketHash_15to0<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3099027"></A>Defines bits 15:0 of the hash table</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3099008"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3099010"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3099012"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3099014"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3099016"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3099018"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3099020"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3099022"></A>0x0000...0xFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3099024"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3099026"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3099101"></A><A NAME="50495582_INIC/MOSTNetworkConfiguration/PacketEUI48_47to32"></A>PacketEUI48_47to32<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3099123"></A>Defines bits 47:32 of the EUI-48.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3728329"></A>This parameter can be customized via the <A HREF="#50495606_31610" CLASS="XRef">Identification String</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3099104"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3099106"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3099108"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3099110"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3099112"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3099114"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3099116"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3099118"></A>0x0000...0xFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3099120"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3099122"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3099125"></A><A NAME="50495582_INIC/MOSTNetworkConfiguration/PacketEUI48_31to16"></A>PacketEUI48_31to16<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3099147"></A>Defines bits 31:16 of the EUI-48.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3728301"></A>This parameter can be customized via the <A HREF="#50495606_31610" CLASS="XRef">Identification String</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3099128"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3099130"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3099132"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3099134"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3099136"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3099138"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3099140"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3099142"></A>0x0000...0xFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3099144"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3099146"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3099149"></A><A NAME="50495582_INIC/MOSTNetworkConfiguration/PacketEUI48_15to0"></A>PacketEUI48_15to0<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3123960"></A>Defines bits 15:0 of the EUI-48.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3728275"></A>This parameter can be customized via the <A HREF="#50495606_31610" CLASS="XRef">Identification String</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3123941"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3123943"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3123945"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3123947"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3123949"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3123951"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3123953"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3123955"></A>0x0000...0xFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3123957"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3123959"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3101961"></A><A NAME="50495582_INIC/MOSTNetworkConfiguration/PacketLLRTime"></A>PacketLLRTime<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3101962"></A>Wait time between Low-Level Retries for data packets in number of MOST network frames.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3101984"></A>The default value is 0.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3101965"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3101967"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3101969"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3101971"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3101973"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3101975"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3101977"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3101979"></A>0...255</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3101981"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3101983"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-658626"></A><A NAME="50495582_INIC/MOSTNetworkConfiguration/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2838947"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2838949"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2838957"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2838959"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2838961"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-892728"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-892733"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-892735"></A>0x30</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-892740"></A>A change of the <A HREF="#50495606_IDString/NetworkManagement/Node Address" CLASS="XRef">Node Address</A> is not allowed; either the device is in</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-4837558"></A>- <A HREF="#50495606_Device Management/System Mode" CLASS="XRef">System Mode</A> <EM CLASS="Computer">
+UNICENS</EM>
+, </P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-4592847"></A>- system diagnosis mode or</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-4592857"></A>- device diagnosis mode.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4591816"></A>0xF0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4591820"></A>Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH3-MOSTNetworkFrameCounter523" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-3279535"></A><A NAME="50495582_55103"></A>MOSTNetworkFrameCounter <A NAME="50495582_marker-4835452"></A>(0x523)<A NAME="50495582_marker-4835453"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3279536"></A>This function is used to synchronize clocks on a MOST network frame basis.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3306649"></A>The frame counter is automatically enabled at network startup. The counter cannot be disabled; it is always active, independent of the NetInterface state or the INIC&#8217;s device mode. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3279545"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3279547"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3279549"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3279551"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3279553"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3279554"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3279556"></A>MOSTNetworkFrameCounter</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3279557"></A>(0x523)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3279559"></A>Get (0x1)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3279561"></A><A HREF="#50495582_INIC/MOSTNetworkFrameCounter/Reference" CLASS="XRef">Reference</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3279567"></A>Status (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3279572"></A><A HREF="#50495582_INIC/MOSTNetworkFrameCounter/Reference" CLASS="XRef">Reference</A>, <A HREF="#50495582_INIC/MOSTNetworkFrameCounter/FrameCounter" CLASS="XRef">FrameCounter</A>, <A HREF="#50495582_INIC/MOSTNetworkFrameCounter/FrameCounterLock" CLASS="XRef">FrameCounterLock</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3279578"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3279580"></A>ErrorCode, ErrorInfo</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-3307483"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/MOSTNetworkFrameCounter/Reference"></A>Reference<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3307505"></A>Reference frame counter</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3307486"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3307488"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3307490"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3307492"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3307494"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3307496"></A>Unsigned Long</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3307498"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3307500"></A>0x00000000...<BR>
+0xFFFFFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3307502"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3307504"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3307507"></A><A NAME="50495582_INIC/MOSTNetworkFrameCounter/FrameCounter"></A>FrameCounter<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3280001"></A>Contains the MOST network frame counter at the moment the request was processed by the INIC</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3280118"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3280120"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3280122"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3280124"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3280126"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3280128"></A>Unsigned Long</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3280130"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3280132"></A>0x00000000...<BR>
+0xFFFFFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3280134"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3280136"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3539546"></A><A NAME="50495582_INIC/MOSTNetworkFrameCounter/FrameCounterLock"></A>FrameCounterLock<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3539547"></A>Indicates if the frame counter is locked to the MOST network. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3539550"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3539552"></A>Bit #</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3539554"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3539556"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3539558"></A>Boolean</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3539560"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3539562"></A>False (0)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3539564"></A>Frame counter is not locked to the MOST network.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3539570"></A>True (1)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3539572"></A>Frame counter is locked to the MOST network.</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH3-MOSTNetworkStartup524" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-658849"></A><A NAME="50495582_16663"></A>MOSTNetworkStartup <A NAME="50495582_marker-658847"></A>(0x524)<A NAME="50495582_marker-658848"></A> </H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3103085"></A>This function initializes the NetInterface, thus waking up the MOST network. The waking device always operates as TimingMaster.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3103092"></A>If <EM CLASS="Computer">
+<A HREF="#50495582_Available/Availability/MOSTNetworkStatus" CLASS="XRef"><EM CLASS="Computer">
+Available</EM>
+</A></EM>
+ state is reached, the result is reported.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3373675"></A>If <EM CLASS="Computer">
+INIC.MOSTNetworkStartup()</EM>
+ is initiated in <EM CLASS="Computer">
+NET_OFF</EM>
+ before either timer t<EM CLASS="Subscript">
+Restart</EM>
+ or timers t<EM CLASS="Subscript">
+SSO_ShutDown</EM>
+ + t<EM CLASS="Subscript">
+Restart </EM>
+(timers are started in <EM CLASS="Computer">
+NET_OFF</EM>
+) have timed out, the startup request will be postponed chip-internal and executed when the timer(s) have timed out. If INIC enters Protected Mode when a startup is pending, the startup process will be canceled automatically by INIC.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-860620"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-860622"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-860624"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-860626"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-860628"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-860629"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-860631"></A>MOSTNetworkStartup</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-860632"></A>(0x524)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-860634"></A>StartResult (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-860636"></A><A HREF="#50495582_INIC/MOSTNetworkStartup/AutoForcedNotAvailableTime" CLASS="XRef">AutoForcedNotAvailableTime</A>,<BR>
+<A HREF="#50495582_INIC/MOSTNetworkStartup/PacketBW" CLASS="XRef">PacketBW</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-860642"></A>Result (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-860644"></A>-</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-860650"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-860652"></A><A HREF="#50495582_INIC/MOSTNetworkStartup/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-3097187"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/MOSTNetworkStartup/AutoForcedNotAvailableTime"></A>AutoForcedNotAvailableTime<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3097188"></A>Determines the delay for network shut down after the INIC has entered Protected Mode. The INIC does not shut down the Network, if this value is set to 65535 ms. </P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3097189"></A>After the timer is expired, state <EM CLASS="Computer">
+INIC.MOSTNetworkForceNotAvailable.Status(<A HREF="#50495582_INIC/MOSTNetworkForceNotAvailable/Force" CLASS="XRef">Force</A></EM>
+ = <EM CLASS="Computer">
+True)</EM>
+ is entered. The state can be left by calling <EM CLASS="Computer">
+INIC.MOSTNetworkForceNotAvailable.SetGet(Force</EM>
+ = <EM CLASS="Computer">
+False)</EM>
+.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3097475"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3097477"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3097479"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3097481"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3097483"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3097485"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3097487"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3097489"></A>10...65535</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3097491"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3097493"></A>ms</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3103186"></A><A NAME="50495582_INIC/MOSTNetworkStartup/PacketBW"></A>PacketBW<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3103402"></A>Packet data bandwidth on the MOST network configured by a TimingMaster device. The applied value is reported with <EM CLASS="Computer">
+INIC.MOSTNetworkStatus()</EM>
+, <A HREF="#50495582_92652" CLASS="XRef">MOSTNetworkStatus (0x520)</A>.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3097534"></A>The default value is 52.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3097515"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3097517"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3097519"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3097521"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3097523"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3097525"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3097527"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3097529"></A>0...372</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3097531"></A>4</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3097533"></A>Byte</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3131200"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3097583"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495582_pgfId-3097540"></A>Table 21-4: <A NAME="50495582_marker-3097539"></A><A NAME="50495582_91547"></A>Bandwidth Configurations</TableTitle>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3097544"></A>Available Bandwidth for Packet Data <BR>
+(in Number of Bytes per Frame)</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3097546"></A>Available Bandwidth for Streaming Data (in Number of Bytes per Frame)</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3097548"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3097550"></A>372</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3097552"></A>4</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3097554"></A>368</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3097556"></A>8</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3097558"></A>364</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3097560"></A>...</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3097562"></A>...</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3097564"></A>52 (default)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3097566"></A>320</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3097568"></A>...</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3097570"></A>...</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3097572"></A>364</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3097574"></A>8</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3097576"></A>368</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3097578"></A>4</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3097580"></A>372</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3097582"></A>0</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3132888"></A><A NAME="50495582_INIC/MOSTNetworkStartup/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3132804"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3132806"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3132814"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3132816"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3132818"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="6" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3132823"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3132828"></A><A HREF="#50495582_ErrorClass/0x01" CLASS="XRef">0x01</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3132830"></A>0x10</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-3132832"></A>- The last <EM CLASS="Computer">
+INIC.MOSTNetworkStartup()</EM>
+ call has not yet been finished.</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-3132833"></A>- <EM CLASS="Computer">
+INIC.MOSTNetworkShutdown()</EM>
+ has not yet been finished.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3132848"></A><A HREF="#50495582_ErrorClass/0x02" CLASS="XRef">0x02</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3132850"></A>0x20</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3132852"></A>- RBD is active, or</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3132853"></A>- physical layer test is running, or</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3132857"></A>- <EM CLASS="Computer">
+<A HREF="#50495582_ForcedNA/AvailInfo/MostStatus" CLASS="XRef"><EM CLASS="Computer">
+ForcedNA</EM>
+</A></EM>
+ was set, or</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3921037"></A>- system diagnosis is running, or</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4591772"></A>- the device is already in device diagnosis mode.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3132863"></A>0x21</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3132868"></A><EM CLASS="Computer">
+<A HREF="#50495582_Available/Availability/MOSTNetworkStatus" CLASS="XRef"><EM CLASS="Computer">
+Available</EM>
+</A></EM>
+ state cannot be reached, since</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3920892"></A>- <EM CLASS="Computer">
+INIC.MOSTNetworkShutdown()</EM>
+ is called, or</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3920937"></A>- RBD is started, or</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3920938"></A>- physical layer test is started, or</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3920929"></A>- <EM CLASS="Computer">
+<A HREF="#50495582_ForcedNA/AvailInfo/MostStatus" CLASS="XRef"><EM CLASS="Computer">
+ForcedNA</EM>
+</A></EM>
+ is set, or</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3920992"></A>- system diagnosis is started.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3132875"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3132877"></A>0xF0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3132879"></A>Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3132885"></A>0xF3</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3132887"></A>Configuration interface is not in Attached Mode.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3277641"></A><A HREF="#50495582_ErrorClass/0x04" CLASS="XRef">0x04</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3277643"></A>0x40</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3277645"></A>Calling <EM CLASS="Computer">
+INIC.MOSTNetworkStartup()</EM>
+ is not possible in <EM CLASS="Computer">
+<A HREF="#50495582_Available/Availability/MOSTNetworkStatus" CLASS="XRef"><EM CLASS="Computer">
+Available</EM>
+</A></EM>
+ state.</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH3-MOSTNetworkShutdown525" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-3132978"></A><A NAME="50495582_84308"></A>MOSTNetworkShutdown <A NAME="50495582_marker-3132976"></A>(0x525)<A NAME="50495582_marker-3132977"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-659022"></A>This function shuts down the NetInterface. Once the NetInterface is in NetInterface Off state, the signal at the output turns off causing a chain reaction, shutting down all the devices in the MOST network. Typically, only the PowerMaster may switch off the signal, except during special error cases (see MOST Specification <A HREF="#50495561_60695" CLASS="XRef"><EM CLASS="Blue">
+[1]</EM>
+</A>). The result will be sent after t<EM CLASS="Subscript">
+Restart</EM>
+ or timers t<EM CLASS="Subscript">
+SSO_ShutDown</EM>
+ + t<EM CLASS="Subscript">
+Restart </EM>
+have expired. If the network is already in NetInterface Off state and t<EM CLASS="Subscript">
+Restart</EM>
+ is elapsed, the result is returned immediately without an error.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2164666"></A>The INIC enters NetInterface Off state automatically, when no network signal is present at its input.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-860741"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-860743"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-860745"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-860747"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-860749"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-860750"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-860752"></A>MOSTNetworkShutdown</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-860753"></A>(0x525)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-860755"></A>StartResult (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-860757"></A>-</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-860763"></A>Result (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-860765"></A>-</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-860771"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-860773"></A><A HREF="#50495582_INIC/MOSTNetworkShutdown/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-659164"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/MOSTNetworkShutdown/SenderHandle"></A><A NAME="50495582_INIC/MOSTNetworkShutdown/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2839149"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2839151"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2839159"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2839161"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2839163"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-860794"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-860799"></A><A HREF="#50495582_ErrorClass/0x01" CLASS="XRef">0x01</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-860801"></A>0x10</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-860803"></A>- The last <EM CLASS="Computer">
+INIC.MOSTNetworkShutdown()</EM>
+ call has not yet been finished.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-860819"></A><A HREF="#50495582_ErrorClass/0x02" CLASS="XRef">0x02</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-860821"></A>0x20</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3921075"></A>- RBD is active, or</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3921076"></A>- physical layer test is running, or</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3921080"></A>- <EM CLASS="Computer">
+<A HREF="#50495582_ForcedNA/AvailInfo/MostStatus" CLASS="XRef"><EM CLASS="Computer">
+ForcedNA</EM>
+</A></EM>
+ was set, or</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3921081"></A>- system diagnosis is running.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-860834"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-860836"></A>0xF0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-860841"></A>Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1873239"></A>0xF3</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1873241"></A>Configuration interface is not in Attached Mode.</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH3-MOSTNetworkRBD526" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-659168"></A><A NAME="50495582_97428"></A>MOSTNetworkRBD <A NAME="50495582_marker-659166"></A>(0x526)<A NAME="50495582_marker-659167"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-659169"></A>This function starts the Ring Break Diagnosis. The <EM CLASS="Computer">
+INIC.MOSTNetworkStatus()</EM>
+ function indicates the MOST network is in <EM CLASS="Computer">
+<A HREF="#50495582_NotAvailable/Availability/MOSTNetworkStatus" CLASS="XRef"><EM CLASS="Computer">
+NotAvailable</EM>
+</A></EM>
+ state and <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MOSTNetworkStatus/AvailabilityInfo" CLASS="XRef">AvailabilityInfo</A></EM>
+ <EM CLASS="Computer">
+Diagnosis</EM>
+ has been entered. After RBD has been finished, the result is reported via function <EM CLASS="Computer">
+INIC.MOSTNetworkRBDResult()</EM>
+, see <A HREF="#50495582_97428" CLASS="XRef"><EM CLASS="Link">
+Section 21.2.3.6</EM>
+</A>. After RBD is finished, the INIC enters NetInterface Off state. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-860843"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-860845"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-860847"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-860849"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-860851"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-860852"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-860854"></A>MOSTNetworkRBD</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-860855"></A>(0x526)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-860857"></A>StartResult (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-860859"></A><A HREF="#50495582_INIC/MOSTNetworkTriggerRBD/Type" CLASS="XRef">Type</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-860865"></A>Result (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-860867"></A>-</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-860873"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-860875"></A><A HREF="#50495582_INIC/MOSTNetworkTriggerRBD/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-3135340"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/MOSTNetworkTriggerRBD/SenderHandle"></A><A NAME="50495582_INIC/MOSTNetworkTriggerRBD/Type"></A>Type<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3135384"></A>Indicates whether the INIC performs the RBD as TimingMaster or as TimingSlave</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3135343"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3135345"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3135347"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3135349"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3135351"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3135353"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3135355"></A><EM CLASS="Computer">
+TimingSlave</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3135357"></A>INIC performs RBD as TimingSlave.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3135361"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3135364"></A><EM CLASS="Computer">
+TimingMaster</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3135366"></A>INIC performs RBD as TimingMaster.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-659381"></A><A NAME="50495582_INIC/MOSTNetworkTriggerRBD/RBDResult"></A><A NAME="50495582_INIC/MOSTNetworkTriggerRBD/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2839249"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2839251"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2839259"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2839261"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2839263"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="6" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2839180"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2839185"></A><A HREF="#50495582_ErrorClass/0x01" CLASS="XRef">0x01</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2839187"></A>0x10</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2839189"></A>The last <EM CLASS="Computer">
+INIC.MOSTNetworkRBD()</EM>
+ call has not yet been finished.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2839195"></A>0x11</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2839197"></A>RBD is active because it was triggered by <EM CLASS="Pin-Name">
+PS0</EM>
+ and <EM CLASS="Pin-Name">
+PS1 </EM>
+pins or it was started previous to DeviceAttach.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2839204"></A><A HREF="#50495582_ErrorClass/0x02" CLASS="XRef">0x02</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2839206"></A>0x20</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2839208"></A>- Physical layer test is running or</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2839212"></A>- <EM CLASS="Computer">
+<A HREF="#50495582_ForcedNA/AvailInfo/MostStatus" CLASS="XRef"><EM CLASS="Computer">
+ForcedNA</EM>
+</A></EM>
+ was set.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2839219"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2839221"></A>0xF0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2839223"></A>Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2839229"></A>0xF3</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2839231"></A>Configuration interface is not in Attached Mode.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4665246"></A><A HREF="#50495582_ErrorClass/0x04" CLASS="XRef">0x04</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4665248"></A>0x41</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4665250"></A>The MOST Port is configured in full duplex coax mode.</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH3-MOSTNetworkRBDResult527" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-659385"></A><A NAME="50495582_75275"></A>MOSTNetworkRBDResult <A NAME="50495582_marker-659383"></A>(0x527)<A NAME="50495582_marker-659384"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3135281"></A>This function contains the result of the Ring Break Diagnosis. The RBD can be started by <EM CLASS="Pin-Name">
+PS0</EM>
+ and <EM CLASS="Pin-Name">
+PS1</EM>
+ pins or by method <EM CLASS="Computer">
+INIC.MOSTNetworkRBD()</EM>
+, see <A HREF="#50495582_97428" CLASS="XRef"><EM CLASS="Link">
+Section 21.2.3.6</EM>
+</A>. If the method has been started, the results of the ring break can be inquired by using this function.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3135287"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3135289"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3135291"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3135293"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3135295"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3135296"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3135298"></A>MOSTNetworkRBD-Result</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3135299"></A>(0x527)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3135301"></A>Get (0x1)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3135303"></A>-</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3135309"></A>Status (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3135317"></A><A HREF="#50495582_INIC/MOSTNetworkRBDResult/RBDResult" CLASS="XRef">RBDResult</A>, <A HREF="#50495582_INIC/MOSTNetworkRBDResult/RBDPosition" CLASS="XRef">RBDPosition</A>, <A HREF="#50495582_INIC/MOSTNetworkRBDResult/RBDStatus" CLASS="XRef">RBDStatus</A>, <A HREF="#50495582_INIC/MOSTNetworkRBDResult/RBDDiagID" CLASS="XRef">RBDDiagID</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3135323"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3135325"></A>ErrorCode, ErrorInfo</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-659433"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/MOSTNetworkRBDResult/RBDResult"></A>RBDResult<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-659483"></A>Describes the result type</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-861018"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-861020"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-861022"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-861024"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="6" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-861026"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-861028"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-861030"></A><EM CLASS="Computer">
+NoError</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-861032"></A>No error </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-861036"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-861038"></A><EM CLASS="Computer">
+PosDetected</EM>
+<A NAME="50495582_INIC/MOSTNetworkRBDResult/RBDResult/PosDetected"></A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-861040"></A>Position detected</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-861044"></A>0x02</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-861046"></A><EM CLASS="Computer">
+DiagFailed</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-861048"></A>Diagnosis failed</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-861052"></A>0x03</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-861054"></A><EM CLASS="Computer">
+Pos0WeakSig</EM>
+<A NAME="50495582_INIC/MOSTNetworkRBDResult/RBDResult/Pos0WeakSig"></A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-861056"></A><EM CLASS="Computer">
+PosDetected</EM>
+ is 0 and unlockable signal on Rx was detected</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3672376"></A>0xFE</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3672378"></A><EM CLASS="Computer">
+Pending</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3672380"></A>RBD is running</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-861060"></A>0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-861062"></A><EM CLASS="Computer">
+NoResult</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-861064"></A>No result</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-659484"></A><A NAME="50495582_INIC/MOSTNetworkRBDResult/RBDPosition"></A>RBDPosition<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-659485"></A>Relative position to the ring break. This parameter is only used for <EM CLASS="Computer">
+RBDResult</EM>
+ <EM CLASS="Computer">
+PosDetected</EM>
+; for all others, 0 is returned.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-659488"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-659490"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-659492"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-659494"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-659496"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-659498"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-659500"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-659502"></A>0...63</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-659504"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-659506"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3670450"></A><A NAME="50495582_INIC/MOSTNetworkRBDResult/RBDStatus"></A>RBDStatus<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3670482"></A>Status of the RBD result after the ring break. The status is received via the <EM CLASS="Computer">
+NetBlock.RBDResult()</EM>
+ message, distributed in Phase 3 of the Ring Break Diagnosis. 0xFF is reported when the message was not received. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3670453"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3670455"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3670457"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3670459"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3670461"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3670463"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3670465"></A><EM CLASS="Computer">
+ActivityButNoLock</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3670467"></A>Status is activity, but no lock (<EM CLASS="Computer">
+<A HREF="#50495582_INIC/MOSTNetworkRBDResult/RBDResult/Pos0WeakSig" CLASS="XRef"><EM CLASS="Computer">
+Pos0WeakSig</EM>
+</A></EM>
+).</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3670474"></A>0x02</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3670476"></A><EM CLASS="Computer">
+NoActivity</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3670480"></A>Status is no activity (<EM CLASS="Computer">
+<A HREF="#50495582_INIC/MOSTNetworkRBDResult/RBDResult/PosDetected" CLASS="XRef"><EM CLASS="Computer">
+PosDetected</EM>
+</A></EM>
+).</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3670530"></A>0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3670532"></A><EM CLASS="Computer">
+NoResult</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3670534"></A>No result</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3670484"></A><A NAME="50495582_INIC/MOSTNetworkRBDResult/RBDDiagID"></A>RBDDiagID<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3670485"></A>Diagnostic identifier of the device located after the ring break. The identifier is received via the <EM CLASS="Computer">
+NetBlock.RBDResult()</EM>
+ message, distributed in Phase 3 of the Ring Break Diagnosis. 0xFFFF is reported when the message was not received.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3670567"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3670569"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3670571"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3670573"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3670575"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3670577"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3670579"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3670581"></A>0x0000...0xFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3670583"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3670585"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH3-MOSTNetworkForceNotAvailable52B" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-660424"></A><A NAME="50495582_INIC/MOSTNetworkPacketConfiguration/Hash2"></A><A NAME="50495582_INIC/MOSTNetworkPacketConfiguration/EUI48_2"></A><A NAME="50495582_92391"></A>MOSTNetworkForceNotAvailable <A NAME="50495582_marker-660422"></A>(0x52B)<A NAME="50495582_marker-660423"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-898478"></A>This function controls the behavior of the MOST network interface. <EM CLASS="Computer">
+INIC.MOSTNetworkForceNotAvailable.SetGet(Force</EM>
+ = <EM CLASS="Computer">
+True)</EM>
+ may be triggered for instance when an <EM CLASS="Computer">
+INIC.DeviceStatus.Status(PowerState</EM>
+ = <EM CLASS="Computer">
+<A HREF="#50495582_DeviceStatus/PowerState/ULow" CLASS="XRef"><EM CLASS="Computer">
+ULow</EM>
+</A>)</EM>
+ message is sent to the EHC. If <EM CLASS="Computer">
+Force</EM>
+ is set to <EM CLASS="Computer">
+True</EM>
+, <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MOSTNetworkStatus/Availability" CLASS="XRef">Availability</A></EM>
+ in <EM CLASS="Computer">
+INIC.MOSTNetworkStatus()</EM>
+ is set to <EM CLASS="Computer">
+<A HREF="#50495582_NotAvailable/Availability/MOSTNetworkStatus" CLASS="XRef"><EM CLASS="Computer">
+NotAvailable</EM>
+</A></EM>
+, <EM CLASS="Computer">
+AvailabilityInfo</EM>
+ is set to <EM CLASS="Computer">
+<A HREF="#50495582_ForcedNA/AvailInfo/MostStatus" CLASS="XRef"><EM CLASS="Computer">
+ForcedNA</EM>
+</A></EM>
+ and <EM CLASS="Computer">
+AvailabilityTransitionCause</EM>
+ is set to <EM CLASS="Computer">
+<A HREF="#50495582_ErrorSystem/AvailabilityTransitionCause/MOSTNetworkStatus" CLASS="XRef"><EM CLASS="Computer">
+ErrorSystem</EM>
+</A></EM>
+. For normal operation, the EHC may call <EM CLASS="Computer">
+INIC.MOSTNetworkForceNotAvailable.SetGet(Force</EM>
+ = <EM CLASS="Computer">
+False)</EM>
+. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495582_pgfId-898493"></A>Note: This function cannot be called in Protected Mode. On a transition to Protected Mode, <EM CLASS="Computer">
+Force</EM>
+ is automatically set to <EM CLASS="Computer">
+False</EM>
+.</Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-898537"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-898496"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-898498"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-898500"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-898502"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-898504"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-898505"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-898507"></A>MOSTNetworkForceNotAvailable</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-898508"></A>(0x52B)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-898510"></A>Get (0x1)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-898512"></A>-</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-898518"></A>SetGet (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-898520"></A><A HREF="#50495582_INIC/MOSTNetworkForceNotAvailable/Force" CLASS="XRef">Force</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-898526"></A>Status (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-898528"></A><A HREF="#50495582_INIC/MOSTNetworkForceNotAvailable/Force" CLASS="XRef">Force</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-898534"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-898536"></A><A HREF="#50495582_INIC/MOSTNetworkForceNotAvailable/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-898539"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/MOSTNetworkForceNotAvailable/Force"></A>Force<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-660520"></A>Used to force the INIC to enter network <EM CLASS="Computer">
+<A HREF="#50495582_NotAvailable/Availability/MOSTNetworkStatus" CLASS="XRef"><EM CLASS="Computer">
+NotAvailable</EM>
+</A></EM>
+ state </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-660497"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-660499"></A>Bit #</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-660501"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-660503"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-660505"></A>Boolean</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-660507"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-660509"></A>False (0)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-660511"></A>INIC is not forced to network <EM CLASS="Computer">
+NotAvailable</EM>
+ state.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-660517"></A>True (1)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-660519"></A>INIC is forced to network <EM CLASS="Computer">
+NotAvailable</EM>
+ state (static Tx-Off).</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3116131"></A><A NAME="50495582_INIC/MOSTNetworkForceNotAvailable/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3116094"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3116096"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3116104"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3116106"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3116108"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3116113"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3116118"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3116120"></A>0xF0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3116122"></A>Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3116128"></A>0xF1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3116130"></A>Configuration interface is in Protected Mode.</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH3-MOSTNetworkSystemDiagnosis52C" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-3685982"></A><A NAME="50495582_12494"></A>MOSTNetworkSystemDiagnosis <A NAME="50495582_marker-3685980"></A>(0x52C)<A NAME="50495582_marker-3685981"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3685983"></A>This function is used to start the system diagnosis.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3686004"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3686006"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3686008"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3686010"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3686012"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3686013"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3686015"></A>MOSTNetworkSystemDiagnosis</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3686016"></A>(0x52C)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3686018"></A>StartResult (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3686020"></A>-</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3686026"></A>Result (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3686031"></A>-</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3686048"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3686053"></A><A HREF="#50495582_INIC/MOSTNetworkForceNotAvailable/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-3686129"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3686089"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3686091"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3686099"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3686101"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3686103"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3686108"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3686113"></A><A HREF="#50495582_ErrorClass/0x01" CLASS="XRef">0x01</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3687467"></A>0x10</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-4070154"></A>- The last <EM CLASS="Computer">
+INIC.MOSTNetworkSystemDiagnosis()</EM>
+ call has not yet been finished. </P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-4070173"></A>- <EM CLASS="Computer">
+INIC.MOSTNetworkSystemDiagnosisEnd()</EM>
+ has not yet been finished.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3687501"></A><A HREF="#50495582_ErrorClass/0x02" CLASS="XRef">0x02</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3687507"></A>0x22</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-3687509"></A>- Device is not in <EM CLASS="Computer">
+NET_OFF</EM>
+ state.</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-4835254"></A>- Device is already in device diagnosis mode.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3686124"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3687533"></A>0xF0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3687537"></A>Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH3-MOSTNetworkSystemDiagnosisEnd52D" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-3686457"></A><A NAME="50495582_26050"></A>MOSTNetworkSystemDiagnosisEnd <A NAME="50495582_marker-3686455"></A>(0x52D)<A NAME="50495582_marker-3686456"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3687345"></A>This function is used to end the system diagnosis.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3686479"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3686481"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3686483"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3686485"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3686487"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3686488"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3686490"></A>MOSTNetworkSystemDiagnosisEnd</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3686491"></A>(0x52D)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3687053"></A>StartResult (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3687055"></A>-</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3687057"></A>Result (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3687059"></A>-</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3686523"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3686528"></A><A HREF="#50495582_INIC/MOSTNetworkForceNotAvailable/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-3686604"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3686564"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3686566"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3686574"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3686576"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3686578"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3686583"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3686588"></A><A HREF="#50495582_ErrorClass/0x01" CLASS="XRef">0x01</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3687737"></A>0x10</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3687739"></A>The last <EM CLASS="Computer">
+INIC.MOSTNetworkSystemDiagnosisEnd()</EM>
+ call has not yet been finished.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4579852"></A><A HREF="#50495582_ErrorClass/0x02" CLASS="XRef">0x02</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4579854"></A>0x22</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4579856"></A>MOST network is not in system diagnosis state.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3687246"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3687726"></A>0xF0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3687730"></A>Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3745138"></A>0xF3</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3745140"></A>Configuration interface is not in Attached Mode.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<A NAME="MNSH2-MOSTPortFunctions" /><H6 CLASS="Heading2">
+<A NAME="50495582_pgfId-874644"></A><A NAME="50495582_56017"></A><A NAME="50495582_24717"></A>MOST Port Functions</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2063836"></A>The functions in this section are used to handle the behavior of a MOST Port, including the return of the port status, and the creation of a MOST socket. Furthermore, the functions are used to define all parameters that are required to enable data transfer over a port and its sockets. </P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2063798"></A>A MOST Port is in direct relation to the MOST network management. </P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2164703"></A>To get more information on the MOST Port, refer to <A HREF="#50495568_47728" CLASS="XRef"><EM CLASS="Blue">
+Chapter 7</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2115801"></A>An overview of the INIC&#8217;s MOST Port functions is shown in <A HREF="#50495582_80547" CLASS="XRef"><EM CLASS="Link">
+Table 21-5</EM>
+</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495582_pgfId-2399681"></A>Table 21-5: <A NAME="50495582_80547"></A>MOST Port Functions </TableTitle>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2399689"></A>Function Name</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2399691"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2399693"></A>Possible to Notify</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2399695"></A>Page</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2399705"></A>MOSTPortStatus()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2399707"></A>0x602</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2399709"></A>Yes</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2399714"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_18468" CLASS="XRef">MOSTPortStatus (0x602)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2399738"></A>MOSTSocketCreate()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2399740"></A>0x611</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2399742"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2399747"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_40783" CLASS="XRef">MOSTSocketCreate (0x611)</A></EM>
+</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH3-MOSTPortStatus602" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-2115904"></A><A NAME="50495582_18468"></A>MOSTPortStatus <A NAME="50495582_marker-2115902"></A>(0x602)<A NAME="50495582_marker-2115903"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-660881"></A>This function reports streaming-related information for a MOST Port, including the state of the port and available streaming bandwidth.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2164706"></A>This function supports notification.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-861718"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-861720"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-861722"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-861724"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-861726"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-861727"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-861729"></A>MOSTPortStatus</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-861730"></A>(0x602)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-861732"></A>Status (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-861734"></A><A HREF="#50495582_INIC/MOSTPortStatus/MOSTPortHandle" CLASS="XRef">MOSTPortHandle</A>, <A HREF="#50495582_INIC/MOSTPortStatus/Availability" CLASS="XRef">Availability</A>, <A HREF="#50495582_INIC/MOSTPortStatus/AvailabilityInfo" CLASS="XRef">AvailabilityInfo</A>, <BR>
+<A HREF="#50495582_INIC/MOSTPortStatus/FullStreamingEnabled" CLASS="XRef">FullStreamingEnabled</A>, <A HREF="#50495582_INIC/MOSTPortStatus/FreeStreamingBW" CLASS="XRef">FreeStreamingBW</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-861740"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-861742"></A>ErrorCode, ErrorInfo</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-1433591"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/MOSTPortStatus/MOSTPortHandle"></A>MOSTPortHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1433616"></A>Port resource handle. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1433594"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1433596"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1433598"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1433600"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1433602"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1433604"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1433606"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1433611"></A>0x0D<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1433613"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1433615"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1433618"></A><A NAME="50495582_INIC/MOSTPortStatus/Availability"></A>Availability<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-661004"></A>Indicates if the MOST Port is available and ready for streaming data connections</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-660976"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-660978"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-660980"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-660982"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-660984"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-660986"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-660989"></A><EM CLASS="Computer">
+NotAvailable</EM>
+<A NAME="50495582_MOSTPortStatus/Availability/NotAvailable"></A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-660991"></A>MOST Port is not available for streaming data. <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MOSTPortStatus/FreeStreamingBW" CLASS="XRef">FreeStreamingBW</A></EM>
+ is set to 0xFFFF. All created sockets on this port become invalid.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-660998"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-661001"></A><EM CLASS="Computer">
+Available</EM>
+<A NAME="50495582_MOSTPortStatus/Availability/Available"></A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-661003"></A>MOST Port is available and it is possible to have streaming data connections.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-2372563"></A><A NAME="50495582_INIC/MOSTPortStatus/AvailabilityInfo"></A>AvailabilityInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2372622"></A>Indicates the sub state to parameter <EM CLASS="Computer">
+Available</EM>
+ </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="4">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4545923"></A><EM CLASS="Computer">
+Availability</EM>
+ is <EM CLASS="Computer">
+NotAvailable</EM>
+</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4545931"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4545933"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4545935"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4545937"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4545939"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4545941"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4545943"></A><EM CLASS="Computer">
+Regular</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4545945"></A>The MOST Port is not available for streaming data. This is for instance the case if the MOST network is shut down or Ring Break Diagnosis is running.</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2372656"></A> &nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="4">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2372625"></A><EM CLASS="Computer">
+Availability</EM>
+ is <EM CLASS="Computer">
+Available</EM>
+</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2372633"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2372635"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2372637"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2372639"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2372641"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2372643"></A>0x10</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2372645"></A><EM CLASS="Computer">
+Unstable</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2372647"></A>Unlocks have been detected at the MOST Port and streaming is temporarily not available.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2779103"></A>0x11</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2372653"></A><EM CLASS="Computer">
+Stable</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2372655"></A>The MOST Port is in stable lock.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-2313575"></A><A NAME="50495582_INIC/MOSTPortStatus/FullStreamingEnabled"></A>FullStreamingEnabled<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3327313"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3327315"></A>Bit #</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3327317"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3327319"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3327321"></A>Boolean</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3327323"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3327325"></A>False (0)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3327327"></A>Streaming is disabled.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1990761"></A><A NAME="50495582_INIC/MOSTPortStatus/FreeStreamingBW"></A>FreeStreamingBW<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1990763"></A>Specifies the number of free streaming bandwidth for the MOST Port, see also <A HREF="#50495582_91547" CLASS="XRef"><EM CLASS="Link">
+Table 21-4</EM>
+</A> for bandwidth allocation. 0xFFFF is reported if the MOST Port is not available.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1990769"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1990771"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1990773"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1990775"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1990777"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1990779"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1990781"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1990783"></A>0...372</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1990785"></A>1</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1990787"></A>None</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1990793"></A>0xFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1990795"></A>-</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-661574"></A>&nbsp;</P>
+<DIV>
+<A NAME="MNSH3-MOSTSocketCreate611" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-662172"></A><A NAME="50495582_40783"></A>MOSTSocketCreate <A NAME="50495582_marker-662170"></A>(0x611)<A NAME="50495582_marker-662171"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-662216"></A>This function creates a MOST socket bound to the MOST Port.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-862025"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-862027"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-862029"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-862031"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-862033"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-862034"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-862036"></A>MOSTSocketCreate</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-862037"></A>(0x611)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-862039"></A>StartResult (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-862041"></A><A HREF="#50495582_INIC/MOSTSocketCreate/MOSTPortHandle" CLASS="XRef">MOSTPortHandle</A>, <A HREF="#50495582_INIC/MOSTSocketCreate/Direction" CLASS="XRef">Direction</A>, <A HREF="#50495582_INIC/MOSTSocketCreate/DataType" CLASS="XRef">DataType</A>, <A HREF="#50495582_INIC/MOSTSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A>, <BR>
+<A HREF="#50495582_INIC/MOSTSocketCreate/ConnectionLabel" CLASS="XRef">ConnectionLabel</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-862047"></A>Result (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-862049"></A><A HREF="#50495582_INIC/MOSTSocketCreate/MOSTSocketHandle" CLASS="XRef">MOSTSocketHandle</A>, <BR>
+<A HREF="#50495582_INIC/MOSTSocketCreate/ConnectionLabel" CLASS="XRef">ConnectionLabel</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-862055"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-862057"></A><A HREF="#50495582_INIC/MOSTSocketCreate/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-1348143"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/MOSTSocketCreate/SenderHandle"></A><A NAME="50495582_INIC/MOSTSocketCreate/MOSTPortHandle"></A>MOSTPortHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1348168"></A>Port resource handle. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1348149"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1348151"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1348153"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1348155"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1348157"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1348159"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1348161"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1348163"></A>0x0D<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1348165"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1348167"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-662295"></A><A NAME="50495582_INIC/MOSTSocketCreate/Direction"></A>Direction<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-662321"></A>Indicates the direction of the data stream from the INIC&#8217;s perspective</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-662298"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-662300"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-662302"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-662304"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-662306"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-662308"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-662310"></A><EM CLASS="Computer">
+Input</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-662312"></A>Socket transfers data into INIC.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-662316"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-662318"></A><EM CLASS="Computer">
+Output</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-662320"></A>Socket transfers data out of INIC.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-662322"></A><A NAME="50495582_INIC/MOSTSocketCreate/DataType"></A>DataType<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-662356"></A>Specifies the data type</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-662325"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-662327"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-662329"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-662331"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-662333"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-662335"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-662337"></A><EM CLASS="Computer">
+Sync</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-662339"></A>Specifies the Synchronous Streaming data type</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-662343"></A>0x03</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-662345"></A><EM CLASS="Computer">
+AVPacketized</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-662347"></A>Specifies the A/V Packetized Isochronous Streaming data type</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-662351"></A>0x04</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-662353"></A><EM CLASS="Computer">
+QoSPacket</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-662355"></A>Specifies the Quality of Service packet data type</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2030513"></A>0x05</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2030515"></A><EM CLASS="Computer">
+DiscFramePhase</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2030517"></A>Specifies the DiscreteFrame Isochronous Streaming data type, phase information</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-662357"></A><A NAME="50495582_INIC/MOSTSocketCreate/Bandwidth"></A>Bandwidth<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1812056"></A>Required socket bandwidth in bytes. Maximum value depends on currently free network resources.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1935699"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1935701"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1935703"></A>Socket Bandwidth</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1935705"></A>Description</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1935707"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1935709"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="6">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1935711"></A><EM CLASS="Computer">
+DataType</EM>
+ = <EM CLASS="Computer">
+Sync</EM>
+, <EM CLASS="Computer">
+AVPacketized</EM>
+, and <EM CLASS="Computer">
+QoSPacket</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1935723"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1935725"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1935727"></A>1...372</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1935729"></A>For calculating the required bandwidth refer to <EM CLASS="BlackMarker">
+<A HREF="#50495580_20730" CLASS="XRef"></A>.</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1935734"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1935736"></A>Byte</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="6">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2030875"></A> <EM CLASS="Computer">
+DataType</EM>
+ = <EM CLASS="Computer">
+DiscFramePhase</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2030863"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2030865"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2030867"></A>3</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2030869"></A>Fixed size of 3 bytes</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2030871"></A>-</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2030873"></A>Byte</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1812094"></A><A NAME="50495582_INIC/MOSTSocketCreate/ConnectionLabel"></A>ConnectionLabel<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1812095"></A>MOST network connection label. When used as parameter with direction <EM CLASS="Computer">
+Input</EM>
+, the connection label is used to connect to the appropriate MOST network frame bytes. When used as parameter with direction <EM CLASS="Computer">
+Output</EM>
+, the connection label is not used and must be set to 0xFFFF.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2164709"></A>When <EM CLASS="Computer">
+ConnectionLabel</EM>
+ is used as Result, it specifies the MOST network connection label.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1812098"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1812100"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1812102"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1812104"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1812106"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1812108"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1812110"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1812112"></A>0x000C...0x017F (<EM CLASS="Computer">
+Input</EM>
+)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1812114"></A>1</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1812116"></A>None</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1812122"></A>0xFFFF <BR>
+(<EM CLASS="Computer">
+Output</EM>
+)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1812124"></A>-</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-662429"></A><A NAME="50495582_INIC/MOSTSocketCreate/MOSTSocketHandle"></A>MOSTSocketHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-662454"></A>Socket resource handle of the created socket. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-662435"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-662437"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-662439"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-662441"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-662443"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-662445"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-662447"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-662449"></A>0x0E<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-662451"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-662453"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-662547"></A><A NAME="50495582_INIC/MOSTSocketCreate/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2839718"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2839720"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2839728"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2839730"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2839732"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2839737"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2839742"></A><A HREF="#50495582_ErrorClass/0x01" CLASS="XRef">0x01</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2839744"></A>0x10</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2839746"></A>The last <EM CLASS="Computer">
+INIC.MOSTSocketCreate()</EM>
+ call has not yet been finished.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2839753"></A><A HREF="#50495582_ErrorClass/0x02" CLASS="XRef">0x02</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2839755"></A>0x20</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2839757"></A>A communication error has occurred, for example: the operation was interrupted by network disturbance. The EHC may try to create the socket again. It should wait at least 20 ms before retrying during normal network conditions or otherwise wait until stable network lock has been re-gained. </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2839764"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2839766"></A>0x30</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3596477"></A>A socket of direction <EM CLASS="Computer">
+Input</EM>
+ was requested to be created, and</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-3596478"></A>- there is no network channel available that matches the provided <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MOSTSocketCreate/ConnectionLabel" CLASS="XRef">ConnectionLabel</A></EM>
+, or</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-3596479"></A>- there was already an <EM CLASS="Computer">
+Input</EM>
+ socket created with the provided <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MOSTSocketCreate/ConnectionLabel" CLASS="XRef">ConnectionLabel</A></EM>
+, or</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-3596480"></A>- an <EM CLASS="Computer">
+Output</EM>
+ socket was found that is not a loop socket, or</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-3596481"></A>- the provided channel size mismatches with the actual size of the network channel, or</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-4593519"></A>- the MOST Port has no streaming resources.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3596628"></A>0x31</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-3596653"></A>- A socket of direction <EM CLASS="Computer">
+Output</EM>
+ was requested to be created, but the used <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MOSTSocketCreate/ConnectionLabel" CLASS="XRef">ConnectionLabel</A></EM>
+ is not 0xFFFF.</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-3596654"></A>- A socket of direction <EM CLASS="Computer">
+Input</EM>
+ was requested to be created, but the used <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MOSTSocketCreate/ConnectionLabel" CLASS="XRef">ConnectionLabel</A></EM>
+ is 0xFFFF.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="6" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2839780"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2839785"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2839787"></A>0x32</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2839789"></A>Parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MOSTSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A></EM>
+ is invalid for the data type <EM CLASS="Computer">
+DiscFramePhase</EM>
+, or <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MOSTSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A></EM>
+ does not match the loop socket.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2839817"></A>0xF0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2839819"></A>Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3745044"></A>0xF1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3745046"></A>Configuration interface is in Protected Mode.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2839834"></A><A HREF="#50495582_ErrorClass/0x04" CLASS="XRef">0x04</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2839836"></A>0x40</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2839841"></A>The MOST network is in <EM CLASS="Computer">
+<A HREF="#50495582_NotAvailable/Availability/MOSTNetworkStatus" CLASS="XRef"><EM CLASS="Computer">
+NotAvailable</EM>
+</A></EM>
+ state.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2839847"></A>0x41</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2839849"></A>A socket of direction <EM CLASS="Computer">
+Output</EM>
+ was requested to be created, and</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-4593691"></A>- there is not enough free bandwidth on the MOST network available to complete the allocation request or</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4593673"></A>- the MOST Port has no streaming resources.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2839855"></A>0x42</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2839857"></A>The socket cannot be created, since there is no socket entry possible.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<A NAME="MNSH2-MediaLBPortFunctions" /><H6 CLASS="Heading2">
+<A NAME="50495582_pgfId-875293"></A>MediaLB Port Functions</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-662666"></A>The functions in this section are used to handle the behavior of the MediaLB Port, including the creation of the port and a socket on it. Furthermore, the functions are used to define all parameters that are required to enable data transfer over the port and its sockets.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2164712"></A>To get more information on the MediaLB Port, refer to <A HREF="#50495569_47728" CLASS="XRef"><EM CLASS="Blue">
+Chapter 8</EM>
+</A>. </P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2064070"></A>An overview of the INIC&#8217;s MediaLB Port functions is shown in <A HREF="#50495582_74878" CLASS="XRef"><EM CLASS="Link">
+Table 21-6</EM>
+</A>. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495582_pgfId-662741"></A>Table 21-6: <A NAME="50495582_74878"></A>MediaLB Port Functions </TableTitle>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-662675"></A>Function Name</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-662677"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-662679"></A>Possible to Notify</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-662681"></A>Page</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-662691"></A>MediaLBPortCreate()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-662693"></A>0x621</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-662695"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-662700"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_15455" CLASS="XRef">MediaLBPortCreate (0x621)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-662726"></A>MediaLBSocketCreate()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-662728"></A>0x631</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-662730"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-662735"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_66727" CLASS="XRef">MediaLBSocketCreate (0x631)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3133609"></A>MediaLBPacketMuxSocketCreate()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3133611"></A>0x632</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3133613"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3133615"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_40183" CLASS="XRef">MediaLBPacketMuxSocketCreate (0x632)</A></EM>
+</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH3-MediaLBPortCreate621" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-662752"></A><A NAME="50495582_15455"></A>MediaLBPortCreate <A NAME="50495582_marker-662750"></A>(0x621)<A NAME="50495582_marker-662751"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-662753"></A>This function creates the MediaLB Port with its associated port instance identifier. </P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2155586"></A>If the MediaLB Port has been already created, an error message will be returned.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2155593"></A>A MediaLB Port can be created when INIC starts up. In this case, the appropriate settings need to be written to the <A HREF="#50495606_34947" CLASS="XRef">Configuration String</A>. If the MediaLB Port is created at startup, it cannot be destroyed during runtime. It remains created when EHC re-attaches, since the port is part of the INIC&#8217;s default configuration.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2155604"></A>If a MediaLB Port is created during runtime using <EM CLASS="Computer">
+INIC.MediaLBPortCreate()</EM>
+, it will be automatically destroyed when EHC detaches.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-862260"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-862262"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-862264"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-862266"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-862268"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-862269"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-862271"></A>MediaLBPortCreate</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-862272"></A>(0x621)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-862274"></A>StartResult (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-862276"></A><A HREF="#50495582_INIC/MediaLBPortCreate/Index" CLASS="XRef">Index</A>, <A HREF="#50495582_INIC/MediaLBPortCreate/ClockConfig" CLASS="XRef">ClockConfig</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-862282"></A>Result (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-862284"></A><A HREF="#50495582_INIC/MediaLBPortCreate/MediaLBPortHandle" CLASS="XRef">MediaLBPortHandle</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-862290"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-862292"></A><A HREF="#50495582_INIC/MediaLBPortCreate/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-662829"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/MediaLBPortCreate/SenderHandle"></A><A NAME="50495582_INIC/MediaLBPortCreate/Index"></A>Index<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-662851"></A>MediaLB Port instance</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-662832"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-662834"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-662836"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-662838"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-662840"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-662842"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-662844"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-662846"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-662848"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-662850"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-662853"></A><A NAME="50495582_INIC/MediaLBPortCreate/ClockConfig"></A>ClockConfig<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1379768"></A>Stores the clock speed configuration. The value is a multiple of the MOST network frame rate Fs; this means the MediaLB Port can only be frequency locked to the network&#8217;s system clock.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2164717"></A>This parameter can be customized via the <A HREF="#50495606_34947" CLASS="XRef">Configuration String</A>. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1379771"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1379773"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1379775"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="4">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1379777"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="9" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1379785"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1379787"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1379789"></A><EM CLASS="Computer">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1379791"></A>MediaLB<BR>
+Pin Configuration</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1379793"></A>Clk</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1379795"></A>Available Quadlets</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1379797"></A>Available</P>
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1379798"></A>Bytes</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1379802"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1379804"></A><EM CLASS="Computer">
+256Fs</EM>
+</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1379806"></A>3-Pin mode</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1379808"></A>256 x Fs</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1379810"></A>7</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1379812"></A>28</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1379816"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1379818"></A><EM CLASS="Computer">
+512Fs</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1379822"></A> 512 x Fs</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1379824"></A>15</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1379826"></A>60</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1379830"></A>0x02</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1379832"></A><EM CLASS="Computer">
+1024Fs</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1379836"></A>1024 x Fs </P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1379838"></A>31</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1379840"></A>124</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1379844"></A>0x03</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1379846"></A><EM CLASS="Computer">
+2048Fs</EM>
+</P>
+</TD>
+<TD ROWSPAN="5" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1379848"></A>6-Pin mode</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1379850"></A>2048 x Fs</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1379852"></A>57</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1379854"></A>228</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1379858"></A>0x04</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1379860"></A><EM CLASS="Computer">
+3072Fs</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1379864"></A>3072 x Fs</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1379866"></A>86</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1379868"></A>344</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1379872"></A>0x05</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1379874"></A><EM CLASS="Computer">
+4096Fs</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1379878"></A>4096 x Fs</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1379880"></A>116</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1379882"></A>464</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1379886"></A>0x06</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1379888"></A><EM CLASS="Computer">
+6144Fs</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1379892"></A>6144 x Fs</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1379894"></A>160</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1379896"></A>640</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1379900"></A>0x07</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1379902"></A><EM CLASS="Computer">
+8192Fs</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1379906"></A>8192 x Fs</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1379908"></A>214</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1379910"></A>856</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-662997"></A><A NAME="50495582_INIC/MediaLBPortCreate/MediaLBPortHandle"></A>MediaLBPortHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-663022"></A>Port resource handle. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-663003"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-663005"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-663007"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-663009"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-663011"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-663013"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-663015"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-663017"></A>0x0A<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-663019"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-663021"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-663065"></A><A NAME="50495582_INIC/MediaLBPortCreate/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840076"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840078"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840086"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840088"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840090"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-862313"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-862318"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-862320"></A>0x38</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-862322"></A>The MediaLB Port has been already created.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-862328"></A>0xF0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-862333"></A>Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH3-MediaLBSocketCreate631" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-2840391"></A><A NAME="50495582_66727"></A>MediaLBSocketCreate <A NAME="50495582_marker-2840389"></A>(0x631)<A NAME="50495582_marker-2840390"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-663561"></A>This function creates a MediaLB socket bound to the MediaLB Port with the associated port instance identifier. If the EHC detaches, the MediaLB socket will be automatically destroyed.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1880146"></A>Flow control is always disabled for data type <EM CLASS="Computer">
+Sync</EM>
+.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2164725"></A>For all other data types, flow control is enabled when data is sent from the EHC to the INIC. Consequently, the INIC drives the RxStatus field to signal the EHC if it is ready to receive data (ReceiverReady) or if it is busy (ReceiverBusy). If data is sent from INIC to EHC, flow control is only enabled for <EM CLASS="Computer">
+Control</EM>
+ and <EM CLASS="Computer">
+Packet</EM>
+ data types. The INIC receives the RxStatus from the EHC and if the EHC signals ReceiverBusy, the INIC retransmits the last quadlet until the RxStatus changes.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-862613"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-862615"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-862617"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-862619"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-862621"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-862622"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-862624"></A>MediaLBSocketCreate</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-862625"></A>(0x631)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-862627"></A>StartResult (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-862629"></A><A HREF="#50495582_INIC/MediaLBSocketCreate/MediaLBPortHandle" CLASS="XRef">MediaLBPortHandle</A>, <A HREF="#50495582_INIC/MediaLBSocketCreate/Direction" CLASS="XRef">Direction</A>, <A HREF="#50495582_INIC/MediaLBSocketCreate/DataType" CLASS="XRef">DataType</A>, <A HREF="#50495582_INIC/MediaLBSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A>, <BR>
+<A HREF="#50495582_INIC/MediaLBSocketCreate/ChannelAddress" CLASS="XRef">ChannelAddress</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-862635"></A>Result (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-862637"></A><A HREF="#50495582_INIC/MediaLBSocketCreate/MediaLBSocketHandle" CLASS="XRef">MediaLBSocketHandle</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-862643"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-862645"></A><A HREF="#50495582_INIC/MediaLBSocketCreate/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-663632"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/MediaLBSocketCreate/MediaLBPortHandle"></A>MediaLBPortHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-663657"></A>Port resource handle. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-663638"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-663640"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-663642"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-663644"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-663646"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-663648"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-663650"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-663652"></A>0x0A<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-663654"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-663656"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-663659"></A><A NAME="50495582_INIC/MediaLBSocketCreate/Direction"></A>Direction<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-663685"></A>Indicates the direction of the data stream from the INIC&#8217;s perspective</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-663662"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-663664"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-663666"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-663668"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-663670"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-663672"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-663674"></A><EM CLASS="Computer">
+Input</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-663676"></A>Socket transfers data into INIC. </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-663680"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-663682"></A><EM CLASS="Computer">
+Output</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-663684"></A>Socket transfers data out of INIC.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-663687"></A><A NAME="50495582_INIC/MediaLBSocketCreate/DataType"></A>DataType<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-663738"></A>Specifies the data type</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-663690"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-663692"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-663694"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-663696"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="7" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-663698"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-663700"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-663702"></A><EM CLASS="Computer">
+Sync</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-663704"></A>Specifies the Synchronous Streaming data type</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-663708"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-663710"></A><EM CLASS="Computer">
+Packet</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-663712"></A>Specifies the packet data type</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-663716"></A>0x02</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-663718"></A><EM CLASS="Computer">
+Control</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-663720"></A>Specifies the control data types</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-663724"></A>0x03</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-663727"></A><EM CLASS="Computer">
+AVPacketized</EM>
+<A NAME="50495582_AVPacketized/DataType/MediaLBSocketCreate"></A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-663729"></A>Specifies the A/V Packetized Isochronous Streaming data type</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-663733"></A>0x04</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-663735"></A><EM CLASS="Computer">
+QoSPacket</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-663737"></A>Specifies the Quality of Service packet data type</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2029896"></A>0x05</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2029898"></A><EM CLASS="Computer">
+DiscFramePhase</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2029900"></A>Specifies the DiscreteFrame Isochronous Streaming data type, phase information</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-663740"></A><A NAME="50495582_INIC/MediaLBSocketCreate/Bandwidth"></A>Bandwidth<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-663741"></A>Required socket bandwidth in bytes. The socket bandwidth is dependent on the used <EM CLASS="Computer">
+DataType</EM>
+, therefore consider the following limitations:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495582_pgfId-3612472"></A>&#8226; <EM CLASS="Computer">
+Packet</EM>
+: The minimum valid value must be 4. Due to the quadlet requirement for packet data, the step must be 4.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495582_pgfId-3613247"></A>&#8226; <EM CLASS="Computer">
+Control</EM>
+: Fixed size of 4 bytes.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495582_pgfId-3613257"></A>&#8226; <EM CLASS="Computer">
+DiscFramePhase</EM>
+: Fixed size of 2 bytes.</LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3613835"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3612378"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3612380"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3612382"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3612384"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3612386"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3612388"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3612390"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3612395"></A>1...856</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3612397"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3612399"></A>Byte</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-663972"></A><A NAME="50495582_INIC/MediaLBSocketCreate/ChannelAddress"></A>ChannelAddress<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2252799"></A>Indicates the MediaLB ChannelAddress to which the socket is mapped. If the MediaLB Port is configured by the configuration string property <A HREF="#50495606_Device Management/Configuration Interface" CLASS="XRef">Configuration Interface</A> as default, channel addresses 0x0002 and 0x0004 are reserved and cannot be used.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2252805"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2252807"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2252809"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2252811"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2252813"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2252815"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2252817"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2252819"></A>MediaLB 3-Pin:</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2252820"></A>0x0002...0x003E</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2252822"></A>2</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2252824"></A>None</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2252830"></A>MediaLB 6-Pin:</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2252831"></A>0x0002...0x007E</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-664046"></A><A NAME="50495582_INIC/MediaLBSocketCreate/MediaLBSocketHandle"></A>MediaLBSocketHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-664081"></A>Socket resource handle of the created socket. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-664052"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-664054"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-664056"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-664058"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-664060"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-664062"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-664064"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-664066"></A>0x0B<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-664068"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-664070"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3134233"></A><A NAME="50495582_INIC/MediaLBSocketCreate/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3134141"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3134143"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3134151"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3134153"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3134155"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="7" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3134160"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="5" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3134165"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3597238"></A>0x30</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3597243"></A>Parameter <EM CLASS="Blue">
+<A HREF="#50495582_INIC/MediaLBSocketCreate/ChannelAddress" CLASS="XRef">ChannelAddress</A></EM>
+ does not fit the range specified for the used MediaLB pin mode.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3597252"></A>0x31</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3597257"></A>Parameter <EM CLASS="Blue">
+<A HREF="#50495582_INIC/MediaLBSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A></EM>
+ is invalid for the given data type.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3597261"></A>0x38</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3597266"></A>Parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MediaLBSocketCreate/ChannelAddress" CLASS="XRef">ChannelAddress</A></EM>
+ is already in use.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3134178"></A>0x39</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3134183"></A>The port associated with the given <EM CLASS="Blue">
+<A HREF="#50495582_INIC/MediaLBSocketCreate/MediaLBPortHandle" CLASS="XRef">MediaLBPortHandle</A></EM>
+ was not created.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3134200"></A>0xF0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3134202"></A>Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3134209"></A><A HREF="#50495582_ErrorClass/0x04" CLASS="XRef">0x04</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3134211"></A>0x41</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3134213"></A>The bandwidth cannot be allocated.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3134219"></A>0x42</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3134221"></A>The MediaLB socket cannot be created, since there is no further socket entry possible.</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH3-MediaLBPacketMuxSocketCreate632" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-3134236"></A><A NAME="50495582_40183"></A>MediaLBPacketMuxSocketCreate <A NAME="50495582_marker-3134234"></A>(0x632)<A NAME="50495582_marker-3134235"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3134240"></A>This function is used to enable the multiplexing feature. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3134243"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3134245"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3134247"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3134249"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3134251"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3134252"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3134254"></A>MediaLBPacketMuxSocketCreate</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3134255"></A>(0x632)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3134257"></A>StartResult (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3134264"></A><A HREF="#50495582_INIC/MediaLBPacketMuxSocketCreate/MediaLBSocketHandle" CLASS="XRef">MediaLBSocketHandle</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3134283"></A>Result (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3134601"></A><A HREF="#50495582_INIC/MediaLBPacketMuxSocketCreate/MediaLBSocketHandle" CLASS="XRef">MediaLBSocketHandle</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3134297"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3134619"></A><A HREF="#50495582_INIC/MediaLBPacketMuxSocketCreate/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-3134546"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/MediaLBPacketMuxSocketCreate/MediaLBSocketHandle"></A>MediaLBSocketHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3134571"></A>Port resource handle. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3134549"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3134551"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3134553"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3134555"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3134557"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3134559"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3134561"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3134566"></A>0x0B<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3134568"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3134570"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3134910"></A><A NAME="50495582_INIC/MediaLBPacketMuxSocketCreate/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3134818"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3134820"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3134828"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3134830"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3134832"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="6" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3134837"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="5" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3134842"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3134844"></A>0x30</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3134849"></A>The socket is not of data type <EM CLASS="Computer">
+Packet</EM>
+.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3134855"></A>0x31</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3134860"></A>The bandwidth is less than 12 bytes.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3134866"></A>0x38</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-3346171"></A>- The generated multiplex channel address is already in use, or</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-3346101"></A>- the socket provided is already used in a multiplex configuration, or</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-3346183"></A>- the socket provided is already attached to the packet connection.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3597338"></A>0x39</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3597344"></A>The socket associated with the given <EM CLASS="Blue">
+<A HREF="#50495582_INIC/MediaLBPacketMuxSocketCreate/MediaLBSocketHandle" CLASS="XRef">MediaLBSocketHandle</A></EM>
+ was not created or the resource at the index does not match the specified resource type.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3134877"></A>0xF0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3134879"></A>Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3134886"></A><A HREF="#50495582_ErrorClass/0x04" CLASS="XRef">0x04</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3135084"></A>0x42</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3135086"></A>The MediaLB socket cannot be created, since there is no further socket entry possible.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<A NAME="MNSH2-SPIPortFunctions" /><H6 CLASS="Heading2">
+<A NAME="50495582_pgfId-3134386"></A>SPI Port Functions</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-664182"></A>The functions in this section are used to handle the behavior of the SPI Port, including the creation of the port and the sockets on it. Furthermore, the functions are used to define all parameters that are required to enable data transfer over the port and its sockets.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2164734"></A>To get more information on the SPI Port, refer to <A HREF="#50495570_47728" CLASS="XRef"><EM CLASS="Blue">
+Chapter 9</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2064699"></A>An overview of the INIC&#8217;s SPI Port functions is shown in <A HREF="#50495582_29538" CLASS="XRef"><EM CLASS="Link">
+Table 21-7</EM>
+</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495582_pgfId-2064706"></A>Table 21-7: <A NAME="50495582_29538"></A>SPI Port Functions </TableTitle>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2064714"></A>Function Name</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2064716"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2064718"></A>Possible to Notify</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2064720"></A>Page</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2064722"></A>SPIPortCreate()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2064724"></A>0x641</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2064726"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2064731"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_84315" CLASS="XRef">SPIPortCreate (0x641)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2064733"></A>SPISocketCreate()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2064735"></A>0x651</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2064737"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2064742"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_62253" CLASS="XRef">SPISocketCreate (0x651)</A></EM>
+</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH3-SPIPortCreate641" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-2064746"></A><A NAME="50495582_84315"></A>SPIPortCreate <A NAME="50495582_marker-2064744"></A>(0x641)<A NAME="50495582_marker-2064745"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-664237"></A>This function creates the SPI Port with its associated port instance identifier. </P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2155301"></A>If the SPI Port has been already created, an error message will be returned.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2155613"></A>An SPI Port can be created when INIC starts up. In this case, the appropriate settings need to be written to the <A HREF="#50495606_34947" CLASS="XRef">Configuration String</A>. If the port was created at startup, it cannot be destroyed during runtime. It will also remain created when EHC re-attaches, since the port is part of the INIC&#8217;s default configuration.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2155616"></A>If an SPI Port is created during runtime using <EM CLASS="Computer">
+INIC.SPIPortCreate()</EM>
+ function, it will be automatically destroyed when EHC re-attaches.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-862972"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-862974"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-862976"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-862978"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-862980"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-862981"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-862983"></A>SPIPortCreate</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-862984"></A>(0x641)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-862986"></A>StartResult (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-862988"></A><A HREF="#50495582_INIC/SPIPortCreate/Index" CLASS="XRef">Index</A>, <A HREF="#50495582_INIC/SPIPortCreate/ClockMode" CLASS="XRef">ClockMode</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-862994"></A>Result (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-862996"></A><A HREF="#50495582_INIC/SPIPortCreate/SPIPortHandle" CLASS="XRef">SPIPortHandle</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-863002"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-863004"></A><A HREF="#50495582_INIC/SPIPortCreate/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-664310"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/SPIPortCreate/Index"></A>Index<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-664332"></A>SPI Port instance</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-664313"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-664315"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-664317"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-664319"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-664321"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-664323"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-664325"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-664327"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-664329"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-664331"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-664334"></A><A NAME="50495582_INIC/SPIPortCreate/ClockMode"></A>ClockMode<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-664386"></A>Indicates the configuration of the phase and polarity of the SCLK signal.<BR>
+This parameter can be customized via the <A HREF="#50495606_34947" CLASS="XRef">Configuration String</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-664337"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-664339"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-664341"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="2">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-664343"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-664347"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-664349"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-664351"></A><EM CLASS="Computer">
+SCLKLowSFCR</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="2">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-664353"></A>SCLK is low when idle. Data switches on the falling edge, needs to be captured on the rising edge.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-664359"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-664361"></A><EM CLASS="Computer">
+SCLKLowSRCF</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="2">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-664363"></A>SCLK is low when idle. Data switches on the rising edge, needs to be captured on the falling edge.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-664369"></A>0x02</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-664371"></A><EM CLASS="Computer">
+SCLKHighSRCF</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="2">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-664373"></A>SCLK is high when idle. Data switches on the rising edge, needs to be captured on the falling edge.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-664379"></A>0x03</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-664381"></A><EM CLASS="Computer">
+SCLKHighSFCR</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="2">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-664383"></A>SCLK is high when idle. Data switches on the falling edge, needs to be captured on the rising edge.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-664387"></A><A NAME="50495582_INIC/SPIPortCreate/SPIPortHandle"></A>SPIPortHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1667721"></A>Port resource handle. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1667699"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1667701"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1667703"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1667705"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1667707"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1667709"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1667711"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1667716"></A>0x10<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1667718"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1667720"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1667765"></A><A NAME="50495582_INIC/SPIPortCreate/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840476"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840478"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840486"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840488"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840490"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1667744"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1667749"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3597434"></A>0x37</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1667753"></A>Required GPIO pins are locked.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3597419"></A>0x38</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3597421"></A>The SPI Port has been already created.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1667759"></A>0xF0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1667764"></A>Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH3-SPISocketCreate651" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-1667769"></A><A NAME="50495582_62253"></A>SPISocketCreate <A NAME="50495582_marker-1667767"></A>(0x651)<A NAME="50495582_marker-1667768"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-664468"></A>This function creates an SPI socket bound to the SPI Port with its associated port instance identifier. If EHC detaches, the SPI socket will be automatically destroyed.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-863055"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-863057"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-863059"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-863061"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-863063"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-863064"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-863066"></A>SPISocketCreate</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-863067"></A>(0x651)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-863069"></A>StartResult (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-863071"></A><A HREF="#50495582_INIC/SPISocketCreate/SPIPortHandle" CLASS="XRef">SPIPortHandle</A>, <A HREF="#50495582_INIC/SPISocketCreate/Direction" CLASS="XRef">Direction</A>, <A HREF="#50495582_INIC/SPISocketCreate/DataType" CLASS="XRef">DataType</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-863077"></A>Result (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-863079"></A><A HREF="#50495582_INIC/SPISocketCreate/SPISocketHandle" CLASS="XRef">SPISocketHandle</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-863085"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-863087"></A><A HREF="#50495582_INIC/SPISocketCreate/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-664539"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/SPISocketCreate/SPIPortHandle"></A>SPIPortHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-664564"></A>Port resource handle. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-664545"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-664547"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-664549"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-664551"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-664553"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-664555"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-664557"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-664559"></A>0x10<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-664561"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-664563"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-664565"></A><A NAME="50495582_INIC/SPISocketCreate/Direction"></A>Direction<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-664591"></A>Indicates the direction of the data stream from the INIC&#8217;s perspective</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-664568"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-664570"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-664572"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-664574"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-664576"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-664578"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-664580"></A><EM CLASS="Computer">
+Input</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-664582"></A>Socket transfers data into INIC. </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-664586"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-664588"></A><EM CLASS="Computer">
+Output</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-664590"></A>Socket transfers data out of INIC.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-664592"></A><A NAME="50495582_INIC/SPISocketCreate/DataType"></A>DataType<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-664610"></A>Specifies the data type</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-664595"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-664597"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-664599"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-664601"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-664603"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-664605"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-664607"></A><EM CLASS="Computer">
+Packet</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-664609"></A>Specifies the packet data type</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-664634"></A><A NAME="50495582_INIC/SPISocketCreate/SPISocketHandle"></A>SPISocketHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-664659"></A>Socket resource handle of the created socket. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-664640"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-664642"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-664644"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-664646"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-664648"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-664650"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-664652"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-664654"></A>0x11<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-664656"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-664658"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-664710"></A><A NAME="50495582_INIC/SPISocketCreate/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840512"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840514"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840522"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840524"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840526"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1847680"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3597484"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3597531"></A>0x39</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3597506"></A>The port associated with the given <EM CLASS="Blue">
+<A HREF="#50495582_INIC/SPISocketCreate/SPISocketHandle" CLASS="XRef">SPISocketHandle</A></EM>
+ was not created.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3597486"></A>0xF0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3597490"></A>Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1847620"></A><A HREF="#50495582_ErrorClass/0x04" CLASS="XRef">0x04</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1847656"></A>0x42</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1847658"></A>The SPI socket cannot be created, since there is no socket entry possible.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<A NAME="MNSH2-USBPortFunctions" /><H6 CLASS="Heading2">
+<A NAME="50495582_pgfId-3328255"></A>USB Port Functions</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3328256"></A>The functions in this section are used to handle the behavior of the USB Port, including the creation of the port and a socket on it. Furthermore, the functions are used to define all parameters that are required to enable data transfer over the port and its sockets.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3328260"></A>To get more information on the USB Port, refer to <EM CLASS="BlackMarker">
+<A HREF="#50495571_47728" CLASS="XRef"></A><EM CLASS="Blue">
+Chapter 10</EM>
+<EM CLASS="BlackMarker">
+</EM>
+</EM>
+.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3328307"></A>An overview of the INIC&#8217;s USB Port functions is shown in <A HREF="#50495582_55936" CLASS="XRef"><EM CLASS="Link">
+Table 21-8</EM>
+</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495582_pgfId-3328270"></A>Table 21-8: <A NAME="50495582_55936"></A>USB Port Functions </TableTitle>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328278"></A>Function Name</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328280"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328282"></A>Possible to Notify</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328284"></A>Page</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3328286"></A>USBPortCreate()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328288"></A>0x661</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328290"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328295"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_32798" CLASS="XRef">USBPortCreate (0x661)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3328297"></A>USBSocketCreate()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328299"></A>0x671</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328301"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328306"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_75965" CLASS="XRef">USBSocketCreate (0x671)</A></EM>
+</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3328308"></A>&nbsp;</P>
+<DIV>
+<A NAME="MNSH3-USBPortCreate661" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-3328312"></A><A NAME="50495582_32798"></A>USBPortCreate <A NAME="50495582_marker-3328310"></A>(0x661)<A NAME="50495582_marker-3328311"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3328313"></A>This function creates the USB Port with its associated port instance identifier. </P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3328314"></A>If the USB Port has been already created, an error message will be returned. </P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3328315"></A>Consider that a previously created port is not automatically destroyed by the INIC when doing another call to <EM CLASS="Computer">
+INIC.USBPortCreate()</EM>
+.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328318"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328320"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328322"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328324"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328326"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328327"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328329"></A>USBPortCreate</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328330"></A>(0x661)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3328332"></A>StartResult (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3328342"></A><A HREF="#50495582_INIC/USBPortCreate/Index" CLASS="XRef">Index</A>, <A HREF="#50495582_INIC/USBPortCreate/PhysicalLayer" CLASS="XRef">PhysicalLayer</A>, <BR>
+<A HREF="#50495582_INIC/USBPortCreate/DeviceInterfaces" CLASS="XRef">DeviceInterfaces</A>, <BR>
+<A HREF="#50495582_INIC/USBPortCreate/StreamingIfEpOutCount" CLASS="XRef">StreamingIfEpOutCount</A>, <A HREF="#50495582_INIC/USBPortCreate/StreamingIfEpInCount" CLASS="XRef">StreamingIfEpInCount</A> </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3328358"></A>Result (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3328363"></A><A HREF="#50495582_INIC/USBPortCreate/USBPortHandle" CLASS="XRef">USBPortHandle</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3328372"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3328379"></A><A HREF="#50495582_INIC/USBPortCreate/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-3328409"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/USBPortCreate/Index"></A>Index<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3328431"></A>USB Port instance</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328412"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328414"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328416"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328418"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328420"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328422"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328424"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328426"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328428"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328430"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3328433"></A><A NAME="50495582_INIC/USBPortCreate/PhysicalLayer"></A>PhysicalLayer<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3328434"></A>Selects the interface of the USB Port&#8217;s physical layer.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3328463"></A>This parameter can be customized via the <A HREF="#50495606_34947" CLASS="XRef">Configuration String</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328440"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328442"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328444"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328446"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328448"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328450"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3328452"></A><EM CLASS="Computer">
+Standard</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3328454"></A>Standard - USB uses the standard physical layer with analog transceivers for board communication.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328458"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3328460"></A><EM CLASS="Computer">
+HSIC</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3328462"></A>HSIC - USB uses the High-Speed Inter-Chip physical layer without analog transceivers for board communication.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3328465"></A><A NAME="50495582_INIC/USBPortCreate/DeviceInterfaces"></A>DeviceInterfaces<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3328469"></A>Activates one or more of the USB device interfaces provided by the INIC. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495582_pgfId-3328468"></A>Note: The deactivation of all device interfaces yields an invalid configuration.</Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3328555"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328472"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328474"></A>Bit #</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328476"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="6" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328478"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328480"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3328482"></A><EM CLASS="Computer">
+EnableControlIf</EM>
+ (control interface activate)</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeftInd-Number">
+<A NAME="50495582_pgfId-3328488"></A>0: Deactivates the control interface</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeftInd-Number">
+<A NAME="50495582_pgfId-3328494"></A>1: Activates the control interface with Endpoints 0x0F (OUT) and 0x8F (IN) (default)</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328498"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3328500"></A><EM CLASS="Computer">
+EnablePacketIf </EM>
+(packet interface activate)</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeftInd-Number">
+<A NAME="50495582_pgfId-3328506"></A>0: Deactivates the packet interface (default)</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeftInd-Number">
+<A NAME="50495582_pgfId-3328512"></A>1: Activates the packet interface with Endpoints 0x0E (OUT) and 0x8E (IN) </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4593753"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328534"></A>3</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3328536"></A><EM CLASS="Computer">
+EnableStreamingIf</EM>
+ (streaming interface activate)</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeftInd-Number">
+<A NAME="50495582_pgfId-3328542"></A>0: Deactivates the streaming interface </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeftInd-Number">
+<A NAME="50495582_pgfId-3328548"></A>1: Acitivates the streaming interface (default),<BR>
+count of OUT and IN Endpoints depends on parameters <EM CLASS="Computer">
+<A HREF="#50495582_INIC/USBPortCreate/StreamingIfEpOutCount" CLASS="XRef">StreamingIfEpOutCount</A></EM>
+ and <BR>
+<EM CLASS="Computer">
+<A HREF="#50495582_INIC/USBPortCreate/StreamingIfEpInCount" CLASS="XRef">StreamingIfEpInCount</A></EM>
+</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3328557"></A><A NAME="50495582_INIC/USBPortCreate/StreamingIfEpOutCount"></A>StreamingIfEpOutCount<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3328558"></A>Defines the number of OUT Endpoints inside the streaming interface, starting with Endpoint 0x01. This value must be zero if the streaming interface is disabled.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3328583"></A>This parameter can be customized via the <A HREF="#50495606_34947" CLASS="XRef">Configuration String</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328564"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328566"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328568"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328570"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328572"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328574"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328576"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328578"></A>0...10</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328580"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328582"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3328585"></A><A NAME="50495582_INIC/USBPortCreate/StreamingIfEpInCount"></A>StreamingIfEpInCount<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3328586"></A>Defines the number of IN Endpoints inside the streaming interface, starting with Endpoint 0x81. This value must be zero if the streaming interface is disabled.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3328611"></A>This parameter can be customized via the <A HREF="#50495606_34947" CLASS="XRef">Configuration String</A>. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328592"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328594"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328596"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328598"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328600"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328602"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328604"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328606"></A>0...10</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328608"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328610"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3328613"></A><A NAME="50495582_INIC/USBPortCreate/USBPortHandle"></A>USBPortHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3328638"></A>Port resource handle. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328616"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328618"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328620"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328622"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328624"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328626"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328628"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328633"></A>0x12<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328635"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328637"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3328707"></A><A NAME="50495582_INIC/USBPortCreate/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328642"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328644"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328652"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328654"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328656"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="5" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3609680"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="5" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3609685"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328676"></A>0x31</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3328678"></A><EM CLASS="Computer">
+EnableStreamingIf</EM>
+ is disabled and the parameter values for <EM CLASS="Computer">
+<A HREF="#50495582_INIC/USBPortCreate/StreamingIfEpOutCount" CLASS="XRef">StreamingIfEpOutCount</A></EM>
+ and <BR>
+<EM CLASS="Computer">
+<A HREF="#50495582_INIC/USBPortCreate/StreamingIfEpInCount" CLASS="XRef">StreamingIfEpInCount</A></EM>
+ have not been set to zero. </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328690"></A>0x32</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3328692"></A><EM CLASS="Computer">
+EnableStreamingIf</EM>
+ is enabled and the parameter values for <EM CLASS="Computer">
+<A HREF="#50495582_INIC/USBPortCreate/StreamingIfEpOutCount" CLASS="XRef">StreamingIfEpOutCount</A></EM>
+ and <BR>
+<EM CLASS="Computer">
+<A HREF="#50495582_INIC/USBPortCreate/StreamingIfEpInCount" CLASS="XRef">StreamingIfEpInCount</A></EM>
+ are set to zero.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4663231"></A>0x33</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4663233"></A>The USB <EM CLASS="Computer">
+<A HREF="#50495582_INIC/USBPortCreate/PhysicalLayer" CLASS="XRef">PhysicalLayer</A></EM>
+ interface does not correspond with the initially selected one.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3609669"></A>0x38</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3609671"></A>The USB Port has been already created.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328704"></A>0xF0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3328706"></A>Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH3-USBSocketCreate671" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-3328711"></A><A NAME="50495582_75965"></A>USBSocketCreate <A NAME="50495582_marker-3328709"></A>(0x671)<A NAME="50495582_marker-3328710"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3328712"></A>This function creates a USB socket bound to the USB Port with its associated port instance identifier. If the EHC detaches, the USB socket will be automatically destroyed.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328715"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328717"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328719"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328721"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328723"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328724"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328726"></A>USBSocketCreate</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328727"></A>(0x671)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3328729"></A>StartResult (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3328736"></A><A HREF="#50495582_INIC/USBSocketCreate/USBPortHandle" CLASS="XRef">USBPortHandle</A>, <A HREF="#50495582_INIC/USBSocketCreate/Direction" CLASS="XRef">Direction</A>, <A HREF="#50495582_INIC/USBSocketCreate/DataType" CLASS="XRef">DataType</A>, <A HREF="#50495582_INIC/USBSocketCreate/EndpointAddress" CLASS="XRef">EndpointAddress</A>, <A HREF="#50495582_INIC/USBSocketCreate/FramesPerTransaction" CLASS="XRef">FramesPerTransaction</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3328755"></A>Result (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3328760"></A><A HREF="#50495582_INIC/USBSocketCreate/USBSocketHandle" CLASS="XRef">USBSocketHandle</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3328769"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3328776"></A><A HREF="#50495582_INIC/USBSocketCreate/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-3328806"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/USBSocketCreate/SenderHandle"></A><A NAME="50495582_INIC/USBSocketCreate/USBPortHandle"></A>USBPortHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3328831"></A>Port resource handle. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328809"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328811"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328813"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328815"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328817"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328819"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328821"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328826"></A>0x12<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328828"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328830"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3328833"></A><A NAME="50495582_INIC/USBSocketCreate/Direction"></A>Direction<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3328859"></A>Indicates the direction of the data stream from the INIC&#8217;s perspective</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328836"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328838"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328840"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328842"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328844"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328846"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3328848"></A><EM CLASS="Computer">
+Input</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3328850"></A>Socket transfers data into INIC. </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328854"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3328856"></A><EM CLASS="Computer">
+Output</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3328858"></A>Socket transfers data out of INIC.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3328861"></A><A NAME="50495582_INIC/USBSocketCreate/DataType"></A>DataType<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3328911"></A>Specifies the data type</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328864"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328866"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328868"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328870"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="5" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328872"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328874"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3328876"></A><EM CLASS="Computer">
+Sync</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3328878"></A>Specifies the Synchronous Streaming data type</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328882"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3328884"></A><EM CLASS="Computer">
+Packet</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3328886"></A>Specifies the packet data type</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328890"></A>0x02</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3328892"></A><EM CLASS="Computer">
+Control</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3328894"></A>Specifies the control data types</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328898"></A>0x03</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3328900"></A><EM CLASS="Computer">
+AVPacketized</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3328902"></A>Specifies the A/V Packetized Isochronous Streaming data type</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3328913"></A><A NAME="50495582_INIC/USBSocketCreate/EndpointAddress"></A>EndpointAddress<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3328917"></A>Specifies the address of a USB Endpoint as per its description in the USB 2.0 Specification <A HREF="#50495561_92689" CLASS="XRef"><EM CLASS="Blue">
+[5]</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3328918"></A>0x01...0x0F: Indicates the OUT Endpoints<BR>
+0x81...0x8F: Indicates the IN Endpoints</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495582_pgfId-3328921"></A>Note: A USB socket of direction <EM CLASS="Computer">
+Input</EM>
+ only accepts a USB Endpoint address of direction OUT and a USB socket of direction <EM CLASS="Computer">
+Output</EM>
+ only accepts a USB Endpoint address of direction IN.</Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3328953"></A><EM CLASS="BlackMarker">
+</EM>
+&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328924"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328926"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328928"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328930"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328932"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328934"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328936"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328938"></A>0x01...0x0F</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328940"></A>1</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328942"></A>None</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328948"></A>0x81...0x8F</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3328982"></A><A NAME="50495582_INIC/USBSocketCreate/FramesPerTransaction"></A>FramesPerTransaction<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3329086"></A>Indicates the number of MOST network frames/packets per one USB transaction</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328985"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328987"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328989"></A>Valid Value</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328991"></A>Description</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328993"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328995"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="6">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328997"></A><EM CLASS="Computer">
+DataType</EM>
+ = <EM CLASS="Computer">
+Sync</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3329009"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3329011"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3329013"></A>0x0007...n</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3329015"></A>Number of MOST network frames from which the synchronous data bytes are put and filled-in into one USB transaction. For more information refer to <A HREF="#50495571_25408" CLASS="XRef"><EM CLASS="Link">
+Section 10.3.1</EM>
+</A>. <BR>
+Padding is applied.</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3329020"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3329022"></A>None</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="6">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3329024"></A> <EM CLASS="Computer">
+DataType</EM>
+ = <EM CLASS="Computer">
+AVPacketized</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3329036"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3329038"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3329040"></A>0x0002</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3329042"></A>Two A/V Packetized Isochronous Streaming data packets per USB transaction. For more information refer to <A HREF="#50495571_25065" CLASS="XRef"><EM CLASS="Link">
+Section 10.3.2</EM>
+</A>.<BR>
+Padding is applied.</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3329047"></A>-</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3329049"></A>None</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3329055"></A>0xFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3329057"></A>USB transaction is completely filled with A/V Packetized Isochronous Streaming data. <BR>
+No padding is applied.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="6">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3329063"></A> <EM CLASS="Computer">
+DataType</EM>
+ = <EM CLASS="Computer">
+Control</EM>
+ and <EM CLASS="Computer">
+Packet</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3329075"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3329077"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3329079"></A>0xFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3329081"></A>No padding is applied. </P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3329083"></A>-</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3329085"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3328955"></A><A NAME="50495582_INIC/USBSocketCreate/USBSocketHandle"></A>USBSocketHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3328956"></A>Socket resource handle of the created socket. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328959"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328961"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328963"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328965"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3328967"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328969"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328971"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328976"></A>0x13<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328978"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3328980"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3329168"></A><A NAME="50495582_INIC/USBSocketCreate/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3329090"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3329092"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3329100"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3329102"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3329104"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="6" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3329109"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="5" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3329114"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3609707"></A>0x30</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3609712"></A>The value in <EM CLASS="Blue">
+<A HREF="#50495582_INIC/USBSocketCreate/FramesPerTransaction" CLASS="XRef">FramesPerTransaction</A></EM>
+ does not match the data type.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3609699"></A>0x31</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3609701"></A>The USB Endpoint is already in use or not available.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3329124"></A>0x33</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3329126"></A>The USB Endpoint does not match the socket&#8217;s direction setting.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3609906"></A>0x39</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3609911"></A>The port associated with the given <EM CLASS="Blue">
+<A HREF="#50495582_INIC/USBSocketCreate/USBPortHandle" CLASS="XRef">USBPortHandle</A></EM>
+ was not created.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3329143"></A>0xF0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3329145"></A>Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3329152"></A><A HREF="#50495582_ErrorClass/0x04" CLASS="XRef">0x04</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3329154"></A>0x42</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3329156"></A>The USB socket cannot be created, since there is no socket entry possible.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<A NAME="MNSH2-StreamingPortFunctions" /><H6 CLASS="Heading2">
+<A NAME="50495582_pgfId-2064943"></A><A NAME="50495582_19999"></A>Streaming Port Functions</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2064944"></A>The functions in this section are used to handle the behavior of the Streaming Port, including the creation of the port and a socket on it. Furthermore, the functions are used to define all parameters that are required to enable data transfer over the port and its sockets. In addition the configuration of an internal loopback is provided.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2164769"></A>To get more information on the Streaming Port, refer to <A HREF="#50495572_65088" CLASS="XRef"><EM CLASS="Blue">
+Chapter 11</EM>
+</A>. </P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2065155"></A>An overview of the Streaming Port functions is shown in <A HREF="#50495582_29253" CLASS="XRef"><EM CLASS="Link">
+Table 21-9</EM>
+</A>. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495582_pgfId-2064958"></A>Table 21-9: <A NAME="50495582_29253"></A>Streaming Port Functions </TableTitle>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2064966"></A>Function Name</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2064968"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2064970"></A>Possible to Notify</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2064972"></A>Page</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2064974"></A>StreamPortConfiguration()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2064976"></A>0x680</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2064978"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2064983"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_22296" CLASS="XRef">StreamPortConfiguration (0x680)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2064985"></A>StreamPortCreate()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2064987"></A>0x681</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2064989"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2064994"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_23852" CLASS="XRef">StreamPortCreate (0x681)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2064996"></A>StreamPortLoopback()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2064998"></A>0x683</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2065000"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2065005"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_37733" CLASS="XRef">StreamPortLoopback (0x683)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2065007"></A>StreamSocketCreate()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2065009"></A>0x691</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2065011"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2065016"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_73924" CLASS="XRef">StreamSocketCreate (0x691)</A></EM>
+</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-665422"></A>&nbsp;</P>
+<DIV>
+<A NAME="MNSH3-StreamPortConfiguration680" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-665426"></A><A NAME="50495582_22296"></A>StreamPortConfiguration <A NAME="50495582_marker-665424"></A>(0x680)<A NAME="50495582_marker-665425"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1202082"></A>Streaming Ports can be configured either by using this function or by customizing the <A HREF="#50495606_34947" CLASS="XRef">Configuration String</A>. When using this function, the configuration is cleared on an EHC detach event. If the configuration is done by the configuration string, the setting will be persistent.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495582_pgfId-3329175"></A>Note: It is required to set the configuration of both Streaming Port instances, A and B, before any of the Streaming Ports can be created.</Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3329181"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1202090"></A>Since Streaming Port B has no external clock signals, the configuration of Streaming Port B is slightly different from that of Streaming Port A. Therefore, when assigning a configuration, some parameter values do not apply and wildcard values have to be used instead. If the configuration has not been set and <EM CLASS="Computer">
+INIC.StreamPortConfiguration.Get()</EM>
+ is called, an error code is returned; an error code is also returned if the configuration has already been set and <EM CLASS="Computer">
+INIC.StreamPortConfiguration.SetGet()</EM>
+ is called again.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1202094"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1202096"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1202098"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1202100"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1202102"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1202103"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1202105"></A>StreamPortConfiguration</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1202106"></A>(0x680)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1202108"></A>Get (0x1)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1202110"></A><A HREF="#50495582_INIC/StreamPortConfiguration/Index" CLASS="XRef">Index</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1202116"></A>SetGet (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1202118"></A><A HREF="#50495582_INIC/StreamPortConfiguration/Index" CLASS="XRef">Index</A>, <A HREF="#50495582_INIC/StreamPortConfiguration/OperationMode" CLASS="XRef">OperationMode</A>, <BR>
+<A HREF="#50495582_INIC/StreamPortConfiguration/PortOption" CLASS="XRef">PortOption</A>, <A HREF="#50495582_INIC/StreamPortConfiguration/ClockMode" CLASS="XRef">ClockMode</A>, <BR>
+<A HREF="#50495582_INIC/StreamPortConfiguration/ClockDataDelay" CLASS="XRef">ClockDataDelay</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1202124"></A>Status (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1202126"></A><A HREF="#50495582_INIC/StreamPortConfiguration/Index" CLASS="XRef">Index</A>, <A HREF="#50495582_INIC/StreamPortConfiguration/OperationMode" CLASS="XRef">OperationMode</A>, <BR>
+<A HREF="#50495582_INIC/StreamPortConfiguration/PortOption" CLASS="XRef">PortOption</A>, <A HREF="#50495582_INIC/StreamPortConfiguration/ClockMode" CLASS="XRef">ClockMode</A>, <BR>
+<A HREF="#50495582_INIC/StreamPortConfiguration/ClockDataDelay" CLASS="XRef">ClockDataDelay</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1202132"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1202134"></A><A HREF="#50495582_INIC/StreamPortConfiguration/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-665486"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/StreamPortConfiguration/Index"></A>Index<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-665487"></A>Streaming Port instance:<BR>
+0x00: Streaming Port A<BR>
+0x01: Streaming Port B</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-665490"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-665492"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-665494"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-665496"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-665498"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-665500"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-665502"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-665504"></A>0x00...0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-665506"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-665508"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-665510"></A><A NAME="50495582_INIC/StreamPortConfiguration/OperationMode"></A>OperationMode<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2978927"></A>Defines the operation mode of the Streaming Port.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2978934"></A>This parameter can be customized via the <A HREF="#50495606_34947" CLASS="XRef">Configuration String</A>. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2978937"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2978939"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2978941"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2978943"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2978945"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2978947"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2978949"></A><EM CLASS="Computer">
+Generic</EM>
+<A NAME="50495582_Generic"></A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2978951"></A>If <EM CLASS="Computer">
+Index</EM>
+ is <EM CLASS="Computer">
+PortB</EM>
+,<EM CLASS="Computer">
+ </EM>
+data pins are linked to <EM CLASS="Computer">
+PortA</EM>
+ clock configuration.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-665555"></A><A NAME="50495582_INIC/StreamPortConfiguration/PortOption"></A>PortOption<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2978972"></A>Configures the direction of the physical pins of the indexed Streaming Port.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2979009"></A>This parameter can be customized via the <A HREF="#50495606_34947" CLASS="XRef">Configuration String</A>. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3329225"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3329227"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3329229"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3329231"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3329233"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3329235"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3329237"></A><EM CLASS="Computer">
+InOut</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3329239"></A>Two serial interface pins are available; one for direction IN (Streaming Port A: <EM CLASS="Pin-Name">
+SRA0</EM>
+,<EM CLASS="Pin-Name">
+ </EM>
+Streaming Port B: <EM CLASS="Pin-Name">
+SRB0</EM>
+) and one for direction OUT (Streaming Port A: <EM CLASS="Pin-Name">
+SXA1</EM>
+,<EM CLASS="Pin-Name">
+ </EM>
+Streaming Port B: <EM CLASS="Pin-Name">
+SXB1</EM>
+).</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3329243"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3329245"></A><EM CLASS="Computer">
+DualIn</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3329247"></A>Two serial interface pins are available for direction IN.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3329251"></A>0x02</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3329253"></A><EM CLASS="Computer">
+DualOut</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3329255"></A>Two serial interface pins are available for direction OUT.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-2605217"></A><A NAME="50495582_INIC/StreamPortConfiguration/ClockMode"></A>ClockMode<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-665692"></A>Indicates if <EM CLASS="Pin-Name">
+FSY</EM>
+/<EM CLASS="Pin-Name">
+SCK</EM>
+ signals are configured as outputs or inputs. <EM CLASS="Pin-Name">
+FSY</EM>
+/<EM CLASS="Pin-Name">
+SCK</EM>
+ signals are shared between all pins used for <EM CLASS="Blue">
+<A HREF="#50495582_Generic" CLASS="XRef"><EM CLASS="Computer">
+Generic</EM>
+</A></EM>
+ streaming, including any linked pins to Streaming Port B. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-665695"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-665697"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-665699"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-665701"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-665703"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-665705"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-665707"></A><EM CLASS="Computer">
+Output</EM>
+<A NAME="50495582_Output"></A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-665709"></A>INIC drives the <EM CLASS="Pin-Name">
+FSY</EM>
+/<EM CLASS="Pin-Name">
+SCK</EM>
+ signals as outputs, frequency locked to the network clock.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-665713"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-665715"></A><EM CLASS="Computer">
+Input</EM>
+<A NAME="50495582_Input"></A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-665717"></A><EM CLASS="Pin-Name">
+FSY</EM>
+/<EM CLASS="Pin-Name">
+SCK</EM>
+ signals are configured as inputs and are driven from outside the INIC. Use RMCK, frequency locked to the network clock, as reference for clock generation.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-665721"></A>0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-665723"></A><EM CLASS="Computer">
+Wildcard</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-665725"></A>-</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-665754"></A><A NAME="50495582_INIC/StreamPortConfiguration/ClockDataDelay"></A>ClockDataDelay<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2372856"></A>This setting is only applicable to data pins used for <EM CLASS="Computer">
+<A HREF="#50495582_Generic" CLASS="XRef"><EM CLASS="Computer">
+Generic</EM>
+</A></EM>
+ streaming including any linked pins to Streaming Port B. All data pins share the same <EM CLASS="Pin-Name">
+FSY</EM>
+/<EM CLASS="Pin-Name">
+SCK</EM>
+ signals, hence this setting applies to all data pins. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2372859"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2372861"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2372863"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2372865"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2372867"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2372869"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2372871"></A><EM CLASS="Computer">
+NonDelayed</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2372873"></A>Data is not delayed by a single <EM CLASS="Pin-Name">
+SCK</EM>
+ clock delay.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2372877"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2372879"></A><EM CLASS="Computer">
+Delayed</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2372881"></A>There is a single <EM CLASS="Pin-Name">
+SCK</EM>
+ clock delay between the start of frame (falling edge of <EM CLASS="Pin-Name">
+FSY</EM>
+) and the start of the frame data on the data pins.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2372885"></A>0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2372887"></A><EM CLASS="Computer">
+Wildcard</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2372889"></A>-</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-2373046"></A><A NAME="50495582_INIC/StreamPortConfiguration/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo <DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3329350"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3329352"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3329360"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3329362"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3329364"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="5" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3329369"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="5" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3329374"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3329376"></A>0x32</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3329381"></A>The wrong <EM CLASS="Computer">
+<A HREF="#50495582_INIC/StreamPortConfiguration/ClockMode" CLASS="XRef">ClockMode</A></EM>
+ parameter is used.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3329387"></A>0x33</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3329392"></A>The wrong <EM CLASS="Computer">
+<A HREF="#50495582_INIC/StreamPortConfiguration/ClockDataDelay" CLASS="XRef">ClockDataDelay</A></EM>
+ parameter is used.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3329398"></A>0x38</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3329400"></A>The port configuration already exists.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3597625"></A>0x39</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3329408"></A>The port configuration has not yet been set.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3329417"></A>0xF0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3329419"></A>Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH3-StreamPortCreate681" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-2373050"></A><A NAME="50495582_23852"></A>StreamPortCreate <A NAME="50495582_marker-2373048"></A>(0x681)<A NAME="50495582_marker-2373049"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2156334"></A>This function creates the Streaming Port with its associated port instance identifier. </P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2156335"></A>If a Streaming Port is created during runtime using <EM CLASS="Computer">
+INIC.StreamPortCreate()</EM>
+, it will be automatically destroyed when EHC detaches.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2156338"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2156340"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2156342"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2156344"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2156346"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2156347"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2156349"></A>StreamPortCreate</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2156350"></A>(0x681)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2156352"></A>StartResult (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2156360"></A><A HREF="#50495582_INIC/StreamPortCreate/Index" CLASS="XRef">Index</A>, <A HREF="#50495582_INIC/StreamPortCreate/ClockConfig" CLASS="XRef">ClockConfig</A>, <BR>
+<A HREF="#50495582_INIC/StreamPortCreate/DataAlignment" CLASS="XRef">DataAlignment</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2156372"></A>Result (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2156377"></A><A HREF="#50495582_INIC/StreamPortCreate/StreamPortHandle" CLASS="XRef">StreamPortHandle</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2156386"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2156393"></A><A HREF="#50495582_INIC/StreamPortCreate/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-665938"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/StreamPortCreate/Index"></A>Index<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-665939"></A>Streaming Port instance:<BR>
+0x00: Streaming Port A<BR>
+0x01: Streaming Port B</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-665942"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-665944"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-665946"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-665948"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-665950"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-665952"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-665954"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-665956"></A>0x00...0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-665958"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-665960"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-665961"></A><A NAME="50495582_INIC/StreamPortCreate/ClockConfig"></A>ClockConfig<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-665962"></A>Clock speed configuration of the <EM CLASS="Pin-Name">
+SCK</EM>
+ signal. Fs should be seen as an umbrella term referring to F<EM CLASS="Subscript">
+Network</EM>
+, which is the MOST network sampling frequency used for the synchronous mode.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2164784"></A>When creating the Streaming Port B resource, the <EM CLASS="Computer">
+Wildcard</EM>
+ value should always be used for this parameter. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1269771"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1269773"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1269775"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1269777"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="5" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1269806"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1269808"></A>0x03</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1269811"></A><EM CLASS="Computer">
+64Fs</EM>
+<A NAME="50495582_DSIPortCreate/ClockConfig/64Fs"></A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1269813"></A>64 x Fs</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1269817"></A>0x04</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1269820"></A><EM CLASS="Computer">
+128Fs</EM>
+<A NAME="50495582_DSIPortCreate/ClockConfig/128Fs"></A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1269822"></A>128 x Fs</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1269826"></A>0x05</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1269829"></A><EM CLASS="Computer">
+256Fs</EM>
+<A NAME="50495582_DSIPortCreate/ClockConfig/256Fs"></A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1269831"></A>256 x Fs</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1269835"></A>0x06</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1269838"></A><EM CLASS="Computer">
+512Fs</EM>
+<A NAME="50495582_DSIPortCreate/ClockConfig/512Fs"></A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1269840"></A>512 x Fs </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1269844"></A>0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1269847"></A><EM CLASS="Computer">
+Wildcard</EM>
+<A NAME="50495582_DSIPortCreate/ClockConfig/Wildcard"></A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1269850"></A>Should be used for the <EM CLASS="Computer">
+PortB</EM>
+ instance </P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-666355"></A><A NAME="50495582_INIC/StreamPortCreate/DataAlignment"></A>DataAlignment<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-666357"></A>Defines the alignment of the data bytes within the streaming port frame. While <EM CLASS="Computer">
+<A HREF="#50495582_INIC/StreamPortConfiguration/ClockDataDelay" CLASS="XRef">ClockDataDelay</A></EM>
+ is set to <EM CLASS="Computer">
+Delayed</EM>
+, only left-justified or sequential formats are available. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-666360"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-666362"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-666364"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-666366"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="5" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-666368"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-666370"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-666372"></A><EM CLASS="Computer">
+Left16Bit</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-666374"></A>Left-justified, 16 bit, legacy</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-666378"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-666380"></A><EM CLASS="Computer">
+Left24Bit</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-666382"></A>Left-justified, 24 bit, legacy</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-666386"></A>0x02</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-666388"></A><EM CLASS="Computer">
+Right16Bit</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-666390"></A>Right-justified, 16 bit, legacy</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-666394"></A>0x03</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-666396"></A><EM CLASS="Computer">
+Right24Bit</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-666398"></A>Right-justified, 24 bit, legacy</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-666402"></A>0x04</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-666404"></A><EM CLASS="Computer">
+Seq</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-666406"></A>Sequential</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-666407"></A><A NAME="50495582_INIC/StreamPortCreate/StreamPortHandle"></A>StreamPortHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-666432"></A>Port resource handle. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-666413"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-666415"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-666417"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-666419"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-666421"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-666423"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-666425"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-666427"></A>0x16<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-666429"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-666431"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-666491"></A><A NAME="50495582_INIC/StreamPortCreate/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840684"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840686"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840694"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840696"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840698"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="6" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-863788"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="6" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-863793"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3597811"></A>0x30</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3597816"></A>The wrong <EM CLASS="Computer">
+<A HREF="#50495582_INIC/StreamPortCreate/ClockConfig" CLASS="XRef">ClockConfig</A></EM>
+ parameter is used.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3597819"></A>0x31</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3597824"></A>The wrong <EM CLASS="Computer">
+<A HREF="#50495582_INIC/StreamPortCreate/DataAlignment" CLASS="XRef">DataAlignment</A></EM>
+ parameter is used.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3597827"></A>0x37</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3597829"></A>The port configuration for both ports has not yet been set.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3597803"></A>0x38</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3597805"></A>The Streaming Port has been already created.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3597847"></A>0x39</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3597849"></A>Streaming Port A and B are configured as linked, however Streaming Port A has not been created.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-863819"></A>0xF0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-863824"></A>Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH3-StreamPortLoopback683" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-666495"></A><A NAME="50495582_37733"></A>StreamPortLoopback <A NAME="50495582_marker-666493"></A>(0x683)<A NAME="50495582_marker-666494"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-666496"></A>This function enables an internal loopback on a Streaming Port: data of an output pin is internally looped back to an input pin. Loopback is only applicable if the port is configured for <EM CLASS="Blue">
+<A HREF="#50495582_Generic" CLASS="XRef"><EM CLASS="Computer">
+Generic</EM>
+</A></EM>
+ streaming.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2164787"></A>This function can be used for delay measurements in microphone array applications. When loopback is enabled, the output pin may be muted after the loopback, such that the delay measurement does not disturb external logic.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-863826"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-863828"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-863830"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-863832"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-863834"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-863835"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-863837"></A>StreamPortLoopback</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-863838"></A>(0x683)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-863840"></A>Get (0x1)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-863842"></A><A HREF="#50495582_INIC/StreamPortLoopback/StreamPortHandle" CLASS="XRef">StreamPortHandle</A>, <A HREF="#50495582_INIC/StreamPortLoopback/PinPair" CLASS="XRef">PinPair</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-863848"></A>SetGet (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-863850"></A><A HREF="#50495582_INIC/StreamPortLoopback/StreamPortHandle" CLASS="XRef">StreamPortHandle</A>, <A HREF="#50495582_INIC/StreamPortLoopback/PinPair" CLASS="XRef">PinPair</A>, <A HREF="#50495582_INIC/StreamPortLoopback/LoopbackMode" CLASS="XRef">LoopbackMode</A>, <A HREF="#50495582_INIC/StreamPortLoopback/OutputMode" CLASS="XRef">OutputMode</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-863856"></A>Status (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1494016"></A><A HREF="#50495582_INIC/StreamPortLoopback/PinPair" CLASS="XRef">PinPair</A>, <A HREF="#50495582_INIC/StreamPortLoopback/LoopbackMode" CLASS="XRef">LoopbackMode</A>, <BR>
+<A HREF="#50495582_INIC/StreamPortLoopback/OutputMode" CLASS="XRef">OutputMode</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-863864"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-863866"></A><A HREF="#50495582_INIC/StreamPortLoopback/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-666548"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/StreamPortLoopback/StreamPortHandle"></A>StreamPortHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-666573"></A>Port resource handle. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-666554"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-666556"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-666558"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-666560"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-666562"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-666564"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-666566"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-666568"></A>0x16<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-666570"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-666572"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-666574"></A><A NAME="50495582_INIC/StreamPortLoopback/PinPair"></A>PinPair<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2625955"></A>Selects the pin-pair for which the internal loopback mechanism shall be enabled or disabled</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2625958"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2625960"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2625962"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2625964"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2625966"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2625968"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2625970"></A><EM CLASS="Computer">
+SRXA1ToSRXA0</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2625973"></A><EM CLASS="Pin-Name">
+SRXA1</EM>
+-&gt;<EM CLASS="Pin-Name">
+SRXA0</EM>
+, valid for <EM CLASS="Computer">
+PortA</EM>
+, <EM CLASS="Computer">
+Generic</EM>
+, <EM CLASS="Computer">
+InOut</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2625977"></A>0x10</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2625979"></A><EM CLASS="Computer">
+SRXB1ToSRXB0</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2625982"></A><EM CLASS="Pin-Name">
+SRXB1</EM>
+-&gt;<EM CLASS="Pin-Name">
+SRXB0</EM>
+, valid for <EM CLASS="Computer">
+PortB</EM>
+, <EM CLASS="Computer">
+Generic</EM>
+, <EM CLASS="Computer">
+InOut</EM>
+</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-2625985"></A><A NAME="50495582_INIC/StreamPortLoopback/LoopbackMode"></A>LoopbackMode<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2625952"></A>Enables or disables the internal loopback mechanism</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2625929"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2625931"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2625933"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2625935"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2625937"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2625939"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2625941"></A><EM CLASS="Computer">
+LoopbackDisabled</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2625943"></A>The internal loopback mechanism is disabled.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2625947"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2625949"></A><EM CLASS="Computer">
+LoopbackEnabled</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2625951"></A>The internal loopback mechanism is enabled.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-666646"></A><A NAME="50495582_INIC/StreamPortLoopback/OutputMode"></A>OutputMode<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-666647"></A>Enables or disables data on the output pin. This setting is only applicable if <EM CLASS="Computer">
+<A HREF="#50495582_INIC/StreamPortLoopback/LoopbackMode" CLASS="XRef">LoopbackMode</A></EM>
+ is enabled. It is possible to alter the output mode by using <EM CLASS="Computer">
+INIC.StreamPortLoopback.SetGet()</EM>
+, with parameter <EM CLASS="Computer">
+LoopbackMode</EM>
+ set to <EM CLASS="Computer">
+LoopbackEnabled</EM>
+, and providing different values to this parameter.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-666650"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-666652"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-666654"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-666656"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-666658"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-666660"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-666662"></A><EM CLASS="Computer">
+OutputDisabled</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-666664"></A>The data on the serial interface output pin is disabled.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-666668"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-666670"></A><EM CLASS="Computer">
+OutputEnabled</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-666672"></A>The data on the serial interface output pin is enabled.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-666723"></A><A NAME="50495582_INIC/StreamPortLoopback/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840716"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840718"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840726"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840728"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840730"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1847935"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1847940"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-863902"></A>0x31</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-863904"></A>The wrong <EM CLASS="Computer">
+<A HREF="#50495582_INIC/StreamPortLoopback/PinPair" CLASS="XRef">PinPair</A></EM>
+ parameter is used.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3597861"></A>0x39</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3597865"></A>The port associated with the given <EM CLASS="Computer">
+<A HREF="#50495582_INIC/StreamPortCreate/StreamPortHandle" CLASS="XRef">StreamPortHandle</A></EM>
+ was not created.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-863910"></A>0xF0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-863915"></A>Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH3-StreamSocketCreate691" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-666727"></A><A NAME="50495582_73924"></A>StreamSocketCreate <A NAME="50495582_marker-666725"></A>(0x691)<A NAME="50495582_marker-666726"></A> </H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-666728"></A>This function creates a Synchronous socket bound to the Streaming Port with the specified port instance identifier. If INIC enters Protected Mode, the socket will be automatically destroyed.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-863917"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-863919"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-863921"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-863923"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-863925"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-863926"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-863928"></A>StreamSocketCreate</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-863929"></A>(0x691)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-863931"></A>StartResult (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-863933"></A><A HREF="#50495582_INIC/StreamSocketCreate/StreamPortHandle" CLASS="XRef">StreamPortHandle</A>, <A HREF="#50495582_INIC/StreamSocketCreate/Direction" CLASS="XRef">Direction</A>, <A HREF="#50495582_INIC/StreamSocketCreate/DataType" CLASS="XRef">DataType</A>, <A HREF="#50495582_INIC/StreamSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A>, <BR>
+<A HREF="#50495582_INIC/StreamSocketCreate/StreamPinID" CLASS="XRef">StreamPinID</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-863939"></A>Result (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-863941"></A><A HREF="#50495582_INIC/StreamSocketCreate/StreamSocketHandle" CLASS="XRef">StreamSocketHandle</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-863947"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-863949"></A><A HREF="#50495582_INIC/StreamSocketCreate/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-666798"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/StreamSocketCreate/SenderHandle"></A><A NAME="50495582_INIC/StreamSocketCreate/StreamPortHandle"></A>StreamPortHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-666823"></A>Port resource handle. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-666804"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-666806"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-666808"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-666810"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-666812"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-666814"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-666816"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-666818"></A>0x16<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-666820"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-666822"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-666824"></A><A NAME="50495582_INIC/StreamSocketCreate/Direction"></A>Direction<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-666850"></A>Indicates the direction of the data stream from the INIC&#8217;s perspective</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-666827"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-666829"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-666831"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-666833"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-666835"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-666837"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-666839"></A><EM CLASS="Computer">
+Input</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-666841"></A>Socket transfers data into INIC.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-666845"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-666847"></A><EM CLASS="Computer">
+Output</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-666849"></A>Socket transfers data out of INIC.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-666851"></A><A NAME="50495582_INIC/StreamSocketCreate/DataType"></A>DataType<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-666869"></A>Specifies the data type</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-666854"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-666856"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-666858"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-666860"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-666862"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-666864"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-666866"></A><EM CLASS="Computer">
+Sync</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-666868"></A>Specifies the Synchronous Streaming data type</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-666888"></A><A NAME="50495582_INIC/StreamSocketCreate/Bandwidth"></A>Bandwidth<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1281066"></A>Required socket bandwidth in bytes</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1280535"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1280537"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1280539"></A>Bandwidth</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1280541"></A>Description</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1280543"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1280545"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="6">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1280547"></A><EM CLASS="Computer">
+DataType</EM>
+ = <EM CLASS="Computer">
+Sync</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="8" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1281284"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="8" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1281286"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1280578"></A>2</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1280587"></A>When used with <EM CLASS="Computer">
+<A HREF="#50495582_DSIPortCreate/ClockConfig/64Fs" CLASS="XRef"><EM CLASS="Computer">
+64Fs</EM>
+</A></EM>
+ (0x03) or higher, and <EM CLASS="Computer">
+Left16Bit</EM>
+ or <EM CLASS="Computer">
+Right16Bit</EM>
+ data alignment, this size corresponds to a mono 16-bit channel that will be routed as left channel data.</P>
+</TD>
+<TD ROWSPAN="8" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1281442"></A>1</P>
+</TD>
+<TD ROWSPAN="8" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1281444"></A>Byte</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1280597"></A>3</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1280602"></A>When used with <EM CLASS="Computer">
+<A HREF="#50495582_DSIPortCreate/ClockConfig/64Fs" CLASS="XRef"><EM CLASS="Computer">
+64Fs</EM>
+</A></EM>
+ (0x03) or higher, and <EM CLASS="Computer">
+Left24Bit</EM>
+ or <EM CLASS="Computer">
+Right24Bit</EM>
+ data alignment, this size corresponds to a mono 24-bit channel that will be routed as left channel data.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1280612"></A>4</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1280621"></A>When used with <EM CLASS="Computer">
+<A HREF="#50495582_DSIPortCreate/ClockConfig/64Fs" CLASS="XRef"><EM CLASS="Computer">
+64Fs</EM>
+</A></EM>
+ (0x03) or higher, and <EM CLASS="Computer">
+Left16Bit</EM>
+ or <EM CLASS="Computer">
+Right16Bit</EM>
+ data alignment, this size corresponds to a stereo 16-bit channel.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1280631"></A>6</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1280636"></A>When used with <EM CLASS="Computer">
+<A HREF="#50495582_DSIPortCreate/ClockConfig/64Fs" CLASS="XRef"><EM CLASS="Computer">
+64Fs</EM>
+</A></EM>
+ (0x03) or higher, and <EM CLASS="Computer">
+Left24Bit</EM>
+ or <EM CLASS="Computer">
+Right24Bit</EM>
+ data alignment, this size corresponds to a stereo 24-bit channel.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1280646"></A>1...8</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1280651"></A>Variable size when used with <EM CLASS="Computer">
+<A HREF="#50495582_DSIPortCreate/ClockConfig/64Fs" CLASS="XRef"><EM CLASS="Computer">
+64Fs</EM>
+</A></EM>
+ (0x03) and sequential data alignment. </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1280661"></A>1...16</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1280666"></A>Variable size when used with <EM CLASS="Computer">
+<A HREF="#50495582_DSIPortCreate/ClockConfig/128Fs" CLASS="XRef"><EM CLASS="Computer">
+128Fs</EM>
+</A></EM>
+ (0x04) and sequential data alignment. </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1280676"></A>1...32</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1280681"></A>Variable size when used with <EM CLASS="Computer">
+<A HREF="#50495582_DSIPortCreate/ClockConfig/256Fs" CLASS="XRef"><EM CLASS="Computer">
+256Fs</EM>
+</A></EM>
+ (0x05) and sequential data alignment. </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1280691"></A>1...64</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1280696"></A>Variable size when used with <EM CLASS="Computer">
+<A HREF="#50495582_DSIPortCreate/ClockConfig/512Fs" CLASS="XRef"><EM CLASS="Computer">
+512Fs</EM>
+</A></EM>
+ (0x06) and sequential data alignment.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1280741"></A><A NAME="50495582_INIC/StreamSocketCreate/StreamPinID"></A>StreamPinID<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-667100"></A>ID of the serial interface pin of the addressed Streaming Port instance to which the socket should be attached </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-667103"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-667105"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-667107"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-667109"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-667111"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-667113"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-667115"></A><EM CLASS="Computer">
+SRXA0</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-667117"></A><EM CLASS="Computer">
+PortA</EM>
+, pin 5</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-667121"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-667123"></A><EM CLASS="Computer">
+SRXA1</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-667125"></A><EM CLASS="Computer">
+PortA</EM>
+, pin 6</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-667129"></A>0x10</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-667131"></A><EM CLASS="Computer">
+SRXB0</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-667133"></A><EM CLASS="Computer">
+PortB</EM>
+, pin 7</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-667137"></A>0x11</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-667139"></A><EM CLASS="Computer">
+SRXB1</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-667141"></A><EM CLASS="Computer">
+PortB</EM>
+, pin 8</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-667168"></A><A NAME="50495582_INIC/StreamSocketCreate/StreamSocketHandle"></A>StreamSocketHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-667193"></A>Socket resource handle of the created socket. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-667174"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-667176"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-667178"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-667180"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-667182"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-667184"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-667186"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-667188"></A><EM CLASS="BlackMarker">
+0x17</EM>
+<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-667190"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-667192"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-667284"></A><A NAME="50495582_INIC/StreamSocketCreate/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840752"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840754"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840762"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840764"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840766"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="7" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2152993"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="6" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2152998"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1598582"></A>0x30</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1598587"></A>The wrong <EM CLASS="Computer">
+<A HREF="#50495582_INIC/StreamSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A></EM>
+ parameter is used.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1598593"></A>0x31</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1598598"></A>The wrong <EM CLASS="Computer">
+<A HREF="#50495582_INIC/StreamSocketCreate/StreamPinID" CLASS="XRef">StreamPinID</A></EM>
+ parameter is used for a <EM CLASS="Computer">
+Sync</EM>
+ connection.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1598604"></A>0x32</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1598609"></A>The wrong <EM CLASS="Computer">
+<A HREF="#50495582_INIC/StreamSocketCreate/Direction" CLASS="XRef">Direction</A></EM>
+ parameter is used. </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3597889"></A>0x37</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3597891"></A>Parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/StreamSocketCreate/StreamPinID" CLASS="XRef">StreamPinID</A></EM>
+ is already in use by a socket.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3597962"></A>0x39</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3597967"></A>The port associated with the given <EM CLASS="Blue">
+<A HREF="#50495582_INIC/StreamSocketCreate/StreamPortHandle" CLASS="XRef">StreamPortHandle</A></EM>
+ was not created.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1598626"></A>0xF0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1598631"></A>Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1598638"></A><A HREF="#50495582_ErrorClass/0x04" CLASS="XRef">0x04</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3597971"></A>0x42</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3597973"></A>The Streaming Port socket cannot be created, since there is no socket entry possible.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<A NAME="MNSH2-RMCKPortFunction" /><H6 CLASS="Heading2">
+<A NAME="50495582_pgfId-667714"></A>RMCK Port Function</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1111026"></A>The function below is used to create an RMCK Port and to define the settings of it.<BR>
+To get more information on the RMCK Port, refer to <A HREF="#50495573_47728" CLASS="XRef"><EM CLASS="Blue">
+Chapter 12</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2240897"></A>&nbsp;</P>
+<DIV>
+<A NAME="MNSH3-RMCKPortCreate6A1" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-2156466"></A><A NAME="50495582_19447"></A>RMCKPortCreate <A NAME="50495582_marker-2156464"></A>(0x6A1)<A NAME="50495582_marker-2156465"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2156467"></A>This function creates an RMCK Port with its associated port instance identifier. </P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2156468"></A>If an RMCK Port is created during runtime using <EM CLASS="Computer">
+INIC.RMCKPortCreate()</EM>
+, it will be automatically destroyed when the EHC detaches.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2156471"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2156473"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2156475"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2156477"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2156479"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2156480"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2156482"></A>RMCKPortCreate</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2156483"></A>(0x6A1)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2156485"></A>StartResult (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2156493"></A><A HREF="#50495582_INIC/RMCKPortCreate/Index" CLASS="XRef">Index</A>, <A HREF="#50495582_INIC/RMCKPortCreate/ClockSource" CLASS="XRef">ClockSource</A>, <A HREF="#50495582_INIC/RMCKPortCreate/Divisor" CLASS="XRef">Divisor</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2156505"></A>Result (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2156510"></A><A HREF="#50495582_INIC/RMCKPortCreate/RMCKPortHandle" CLASS="XRef">RMCKPortHandle</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2156519"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2156526"></A><A HREF="#50495582_INIC/RMCKPortCreate/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-667794"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/RMCKPortCreate/Index"></A>Index<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-667837"></A>RMCK Port instance </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3330440"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3330442"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3330444"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3330446"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3330448"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3330450"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3330452"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3330454"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3330456"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3330458"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-667838"></A><A NAME="50495582_INIC/RMCKPortCreate/ClockSource"></A>ClockSource<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-667856"></A>Indicates the source of the RMCK clock</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-667841"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-667843"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-667845"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-667847"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-667849"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-667851"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-667853"></A><EM CLASS="Computer">
+NetworkSystem</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-667855"></A>RMCK is locked to the system clock.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-667858"></A><A NAME="50495582_INIC/RMCKPortCreate/Divisor"></A>Divisor<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-667859"></A>Divisor of the clock source. Validity of the divisor depends on parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/RMCKPortCreate/ClockSource" CLASS="XRef">ClockSource</A></EM>
+. The frequency of the clock source is divided by the <EM CLASS="Computer">
+Divisor</EM>
+ to give the output frequency. An even <EM CLASS="Computer">
+Divisor</EM>
+ gives a 50/50 duty cycle; an odd <EM CLASS="Computer">
+Divisor</EM>
+ has a duty cycle of 1/<EM CLASS="Computer">
+Divisor</EM>
+ high and the rest low (for example a <EM CLASS="Computer">
+Divisor</EM>
+ of 3 will have a duty cycle of 1/3 high and 2/3 low).</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2164790"></A>This parameter can be customized via the <A HREF="#50495606_34947" CLASS="XRef">Configuration String</A>. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-667862"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-667864"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-667866"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-667868"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-667870"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="5">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-667872"></A> ClockSource is NetworkSystem (3072Fs)</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-667882"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-667884"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-667886"></A>0x0002...0x0FFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-667888"></A>1</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-667890"></A>None</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1875208"></A>0x1000...0x1FFE</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1875210"></A>2</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-667891"></A><A NAME="50495582_INIC/RMCKPortCreate/RMCKPortHandle"></A>RMCKPortHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1658532"></A>Port resource handle. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1658510"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1658512"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1658514"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1658516"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1658518"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1658520"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1658522"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1658527"></A>0x1A<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1658529"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1658531"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1658587"></A><A NAME="50495582_INIC/RMCKPortCreate/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3598079"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3598081"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3598089"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3598091"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3598093"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3598140"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3598145"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3598113"></A>0x38</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3598115"></A>The RMCK Port has been already created.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3598121"></A>0xF0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3598125"></A>Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<A NAME="MNSH2-ICPortFunctions" /><H6 CLASS="Heading2">
+<A NAME="50495582_pgfId-1659371"></A><A NAME="50495582_19101"></A>I<EM CLASS="Bold">
+&#178;</EM>
+C Port Functions</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1659372"></A>The functions in this section are used to handle the behavior of the I<EM CLASS="Superscript">
+2</EM>
+C Port, including the creation and configuration of the hardware port.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2164793"></A>To get more information on the I<EM CLASS="Superscript">
+2</EM>
+C Port, refer to <A HREF="#50495574_47728" CLASS="XRef"><EM CLASS="Blue">
+Chapter 13</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2065251"></A>An overview of the I<EM CLASS="Superscript">
+2</EM>
+C Port functions is shown in <A HREF="#50495582_62378" CLASS="XRef"><EM CLASS="Link">
+Table 21-10</EM>
+</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495582_pgfId-1659384"></A>Table 21-10: <A NAME="50495582_62378"></A>I&#178;C Port Functions </TableTitle>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1659392"></A>Function Name</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1659394"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1659396"></A>Possible to Notify</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1659398"></A>Page</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1659400"></A>I2CPortCreate()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1659402"></A>0x6C1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1659404"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1659409"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_98351" CLASS="XRef">I2CPortCreate (0x6C1)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1659411"></A>I2CPortRead()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1659413"></A>0x6C3</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1659415"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1659420"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_57566" CLASS="XRef">I2CPortRead (0x6C3)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1659422"></A>I2CPortWrite()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1659424"></A>0x6C4</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1659426"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1659431"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_41578" CLASS="XRef">I2CPortWrite (0x6C4)</A></EM>
+</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH3-I2CPortCreate6C1" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-1936052"></A><A NAME="50495582_98351"></A>I2CPortCreate <A NAME="50495582_marker-1936050"></A>(0x6C1)<A NAME="50495582_marker-1936051"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1936053"></A>This function is used to define the I<EM CLASS="Superscript">
+2</EM>
+C Port working as I<EM CLASS="Superscript">
+2</EM>
+C-bus master. The function creates the I<EM CLASS="Superscript">
+2</EM>
+C Port with its associated port instance identifier. </P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2155309"></A>If the I<EM CLASS="Superscript">
+2</EM>
+C Port has been already created, an error message will be returned.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2164796"></A>An I<EM CLASS="Superscript">
+2</EM>
+C Port can be created when INIC starts up. In this case, the appropriate settings need to be written to the <A HREF="#50495606_34947" CLASS="XRef">Configuration String</A>. If the port was created at startup, it cannot be destroyed during runtime. It will also remain created when EHC re-attaches, since the port is part of the INIC&#8217;s default configuration.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2164799"></A>If an I<EM CLASS="Superscript">
+2</EM>
+C Port is created during runtime using the <EM CLASS="Computer">
+INIC.I2CPortCreate()</EM>
+ function, it will be automatically destroyed when EHC re-attaches. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1666332"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1666334"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1666336"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1666338"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1666340"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1666341"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1666343"></A>I2CPortCreate</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1666344"></A>(0x6C1)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1666346"></A>StartResult (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1666354"></A><A HREF="#50495582_INIC/I2CPortCreate/Index" CLASS="XRef">Index</A>, <A HREF="#50495582_INIC/I2CPortCreate/Address" CLASS="XRef">Address</A>, <BR>
+<A HREF="#50495582_INIC/I2CPortCreate/OperationMode" CLASS="XRef">OperationMode</A>, <A HREF="#50495582_INIC/I2CPortCreate/Speed" CLASS="XRef">Speed</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1666369"></A>Result (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1666377"></A><A HREF="#50495582_INIC/I2CPortCreate/I2CPortHandle" CLASS="XRef">I2CPortHandle</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1666383"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1666390"></A><A HREF="#50495582_INIC/I2CPortCreate/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-1658895"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/I2CPortCreate/Index"></A>Index<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1658917"></A>I<EM CLASS="Superscript">
+2</EM>
+C Port instance</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1658898"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1658900"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1658902"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1658904"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1658906"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1658908"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1658910"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1658912"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1658914"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1658916"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-2282230"></A><A NAME="50495582_INIC/I2CPortCreate/Address"></A>Address<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2282233"></A>Specifies the 7-bit I<EM CLASS="Superscript">
+2</EM>
+C Port slave address. This parameter is ignored in <EM CLASS="Code">
+<A HREF="#50495582_INIC/I2CPortCreate/OperationMode" CLASS="XRef">OperationMode</A></EM>
+ <EM CLASS="Code">
+Master</EM>
+. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2282237"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2282239"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2282241"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2282243"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2282245"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2282247"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2282249"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2282251"></A>0x00...0x7F</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2282253"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2282255"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1658943"></A><A NAME="50495582_INIC/I2CPortCreate/OperationMode"></A>OperationMode<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1658968"></A>Defines the operation mode of the I<EM CLASS="Superscript">
+2</EM>
+C Port</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1661160"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1661162"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1661164"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1661166"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1661176"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1661178"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1661180"></A><EM CLASS="Computer">
+Master</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1661182"></A>Sets I<EM CLASS="Superscript">
+2</EM>
+C operation mode to master. </P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1660767"></A><A NAME="50495582_INIC/I2CPortCreate/Speed"></A>Speed<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1660792"></A>Specifies the speed grade of the I<EM CLASS="Superscript">
+2</EM>
+C Port</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1661288"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1661290"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1661292"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1661294"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1661296"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1661298"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1661300"></A><EM CLASS="Computer">
+SlowMode</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1661302"></A>Speed grade of the port is 100 kHz. </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1661306"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1661308"></A><EM CLASS="Computer">
+FastMode</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1661310"></A>Speed grade of the port is 400 kHz.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1660942"></A><A NAME="50495582_INIC/I2CPortCreate/I2CPortHandle"></A>I2CPortHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1660967"></A>Port resource handle. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1660945"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1660947"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1660949"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1660951"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1660953"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1660955"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1660957"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1660962"></A>0x0F<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1660964"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1660966"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1659012"></A><A NAME="50495582_INIC/I2CPortCreate/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840852"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840854"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840862"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840864"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840866"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1658991"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1658996"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1658998"></A>0x38</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1659000"></A>The I<EM CLASS="Superscript">
+2</EM>
+C Port has been already created.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1659006"></A>0xF0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1659011"></A>Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH3-I2CPortRead6C3" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-1659529"></A><A NAME="50495582_57566"></A>I2CPortRead <A NAME="50495582_marker-1659527"></A>(0x6C3)<A NAME="50495582_marker-1660698"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1661588"></A>This function reads a block of bytes from an I<EM CLASS="Superscript">
+2</EM>
+C device at a specified I<EM CLASS="Superscript">
+2</EM>
+C address.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495582_pgfId-1662701"></A>Note: The function can only be used, if the I<EM CLASS="Superscript">
+2</EM>
+C Port has been configured as <EM CLASS="Computer">
+Master</EM>
+. If the I<EM CLASS="Superscript">
+2</EM>
+C Port was configured as I<EM CLASS="Superscript">
+2</EM>
+C-bus slave via the configuration string, an error message will be returned.</Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1662698"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1661594"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1661596"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1661598"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1661600"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1661602"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1661603"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1661605"></A>I2CPortRead</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1661606"></A>(0x6C3)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1661608"></A>StartResult (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1661616"></A><A HREF="#50495582_INIC/I2CPortRead/I2CPortHandle" CLASS="XRef">I2CPortHandle</A>, <BR>
+<A HREF="#50495582_INIC/I2CPortRead/SlaveAddress" CLASS="XRef">SlaveAddress</A>, <A HREF="#50495582_INIC/I2CPortRead/Length" CLASS="XRef">Length</A>, <BR>
+<A HREF="#50495582_INIC/I2CPortRead/Timeout" CLASS="XRef">Timeout</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1661631"></A>Result (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1661639"></A><A HREF="#50495582_INIC/I2CPortRead/I2CPortHandle" CLASS="XRef">I2CPortHandle</A>, <BR>
+<A HREF="#50495582_INIC/I2CPortRead/SlaveAddress" CLASS="XRef">SlaveAddress</A>, <A HREF="#50495582_INIC/I2CPortRead/Length" CLASS="XRef">Length</A>, <BR>
+<A HREF="#50495582_INIC/I2CPortRead/DataList" CLASS="XRef">DataList</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1661645"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1661652"></A><A HREF="#50495582_INIC/I2CPortRead/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-1662779"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/I2CPortRead/I2CPortHandle"></A>I2CPortHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1662804"></A>Port resource handle. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1662782"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1662784"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1662786"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1662788"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1662790"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1662792"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1662794"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1662799"></A>0x0F<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1662801"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1662803"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1661706"></A><A NAME="50495582_INIC/I2CPortRead/SlaveAddress"></A>SlaveAddress<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1661728"></A>Specifies the 7-bit I<EM CLASS="Superscript">
+2</EM>
+C slave address of the peripheral to be read. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1661709"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1661711"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1661713"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1661715"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1661717"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1661719"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1661721"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1661723"></A>0x00...0x7F</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1661725"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1661727"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1662840"></A><A NAME="50495582_INIC/I2CPortRead/Length"></A>Length<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1662862"></A>Number of bytes to be read from the address </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1662843"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1662845"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1662847"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1662849"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1662851"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1662853"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1662855"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1662857"></A>1...32</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1662859"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1662861"></A>Byte</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1875247"></A><A NAME="50495582_INIC/I2CPortRead/Timeout"></A>Timeout<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1875248"></A>Specifies the timeout for the I<EM CLASS="Superscript">
+2</EM>
+C Port read </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1875251"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1875253"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1875255"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1875257"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1875259"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1875261"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1875263"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1875265"></A>10...65535</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1875267"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1875269"></A>ms</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1661758"></A><A NAME="50495582_INIC/I2CPortRead/DataList"></A>DataList<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1661784"></A>List of data bytes to be read from the addressed I<EM CLASS="Superscript">
+2</EM>
+C peripheral</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1663291"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1663293"></A>Number of Elements</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1663295"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1663297"></A>Stream</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1663299"></A>1...32</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1663307"></A>{ <EM CLASS="Blue">
+<A HREF="#50495582_INIC/I2CPortRead/Data" CLASS="XRef">Data</A></EM>
+ }</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1663794"></A><A NAME="50495582_INIC/I2CPortRead/Data"></A>Data<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1663816"></A>Data bytes to be read from the addressed I<EM CLASS="Superscript">
+2</EM>
+C peripheral</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1663797"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1663799"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1663801"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1663803"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1663805"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1663807"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1663809"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1663811"></A>0x00...0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1663813"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1663815"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1663868"></A><A NAME="50495582_INIC/I2CPortRead/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840885"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840887"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840895"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840897"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840899"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="6" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1663839"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1663844"></A><A HREF="#50495582_ErrorClass/0x01" CLASS="XRef">0x01</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1663846"></A>0x10</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1663848"></A>The firmware is busy due to a previous request.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1664061"></A><A HREF="#50495582_ErrorClass/0x02" CLASS="XRef">0x02</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1664063"></A>0x21</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1664065"></A>A NACK signal has been detected on the I<EM CLASS="Superscript">
+2</EM>
+C bus.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1664079"></A>0x23</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1664081"></A>A timeout has been detected. Pending transfers will be canceled and terminated by a STOP condition. It should be considered to reset the slave device.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1663904"></A>0x24</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1663906"></A>The I<EM CLASS="Superscript">
+2</EM>
+C bus has lost arbitration.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1756410"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1756412"></A>0x37</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1756414"></A>The I<EM CLASS="Superscript">
+2</EM>
+C Port is not configured in master mode. </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1847972"></A>0x39</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1847974"></A>The I<EM CLASS="Superscript">
+2</EM>
+C master port has not been created.</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1661584"></A>&nbsp;</P>
+<DIV>
+<A NAME="MNSH3-I2CPortWrite6C4" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-1662421"></A><A NAME="50495582_41578"></A>I2CPortWrite <A NAME="50495582_marker-1662419"></A>(0x6C4)<A NAME="50495582_marker-1662420"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1664389"></A>This function writes a block of bytes to an I<EM CLASS="Superscript">
+2</EM>
+C device at a specified I<EM CLASS="Superscript">
+2</EM>
+C address. The function supports also a burst write mechanism for optimized transactions.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495582_pgfId-1664388"></A>Note: The function can only be used, if the I<EM CLASS="Superscript">
+2</EM>
+C Port has been configured as <EM CLASS="Computer">
+Master</EM>
+. If the I<EM CLASS="Superscript">
+2</EM>
+C Port was configured as I<EM CLASS="Superscript">
+2</EM>
+C-bus slave via the configuration string, an error message will be returned.</Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1664455"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1664392"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1664394"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1664396"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1664398"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1664400"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1664401"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1664403"></A>I2CPortWrite</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1664404"></A>(0x6C4)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1664406"></A>StartResult (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1664413"></A><A HREF="#50495582_INIC/I2CPortWrite/I2CPortHandle" CLASS="XRef">I2CPortHandle</A>, <A HREF="#50495582_INIC/I2CPortWrite/Mode" CLASS="XRef">Mode</A>, <BR>
+<A HREF="#50495582_INIC/I2CPortWrite/BlockCount" CLASS="XRef">BlockCount</A>, <A HREF="#50495582_INIC/I2CPortWrite/SlaveAddress" CLASS="XRef">SlaveAddress</A>, <A HREF="#50495582_INIC/I2CPortWrite/Length" CLASS="XRef">Length</A>, <A HREF="#50495582_INIC/I2CPortWrite/Timeout" CLASS="XRef">Timeout</A>, <A HREF="#50495582_INIC/I2CPortWrite/DataList" CLASS="XRef">DataList</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1664426"></A>Result (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1664434"></A><A HREF="#50495582_INIC/I2CPortWrite/I2CPortHandle" CLASS="XRef">I2CPortHandle</A>, <BR>
+<A HREF="#50495582_INIC/I2CPortWrite/SlaveAddress" CLASS="XRef">SlaveAddress</A>, <A HREF="#50495582_INIC/I2CPortWrite/Length" CLASS="XRef">Length</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1664446"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1664453"></A><A HREF="#50495582_INIC/I2CPortWrite/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-1664484"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/I2CPortWrite/SenderHandle"></A><A NAME="50495582_INIC/I2CPortWrite/I2CPortHandle"></A>I2CPortHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1664509"></A>Port resource handle. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1664487"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1664489"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1664491"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1664493"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1664495"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1664497"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1664499"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1664504"></A>0x0F<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1664506"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1664508"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1664511"></A><A NAME="50495582_INIC/I2CPortWrite/Mode"></A>Mode<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1665336"></A>Specifies the write transfer mode</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1665373"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1665375"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1665377"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1665379"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1665381"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1665383"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1665385"></A><EM CLASS="Computer">
+DefaultMode</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1665654"></A>Repeated start mode is disabled. After transaction of the <EM CLASS="Computer">
+<A HREF="#50495582_INIC/I2CPortWrite/DataList" CLASS="XRef">DataList</A></EM>
+ a STOP condition is issued and the bus is released. This is the default operation mode.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1665391"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1665393"></A><EM CLASS="Computer">
+RepeatedStartMode</EM>
+<A NAME="50495582_I2CPortWrite/Mode/RepeatedStartMode"></A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1665692"></A>Repeated start mode is enabled. After transaction of the <EM CLASS="Computer">
+<A HREF="#50495582_INIC/I2CPortWrite/DataList" CLASS="XRef">DataList</A></EM>
+ the STOP condition will be suppressed and the controlling application is able to initiate further read or write sequences.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1665408"></A>0x02</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1665410"></A><EM CLASS="Computer">
+BurstMode</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1665512"></A>Burst mode is enabled. This mode supports writing multiple blocks of bytes of the same size to the specified I<EM CLASS="Superscript">
+2</EM>
+C address.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1666772"></A><A NAME="50495582_INIC/I2CPortWrite/BlockCount"></A>BlockCount<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2221459"></A>Specifies the number of blocks to be written to the I<EM CLASS="Superscript">
+2</EM>
+C address. If parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/I2CPortWrite/Mode" CLASS="XRef">Mode</A></EM>
+ is not set to BurstMode, the value of <EM CLASS="Computer">
+BlockCount</EM>
+ has to be set to 0. Otherwise the valid range for this parameter is from 1 to 30.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2221462"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2221464"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2221466"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2221468"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2221470"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2221472"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2221474"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2221476"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2221478"></A>-</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2221480"></A>None</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2221486"></A>1...30</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2221488"></A>1</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1665960"></A><A NAME="50495582_INIC/I2CPortWrite/SlaveAddress"></A>SlaveAddress<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1664512"></A>Specifies the 7-bit I<EM CLASS="Superscript">
+2</EM>
+C Port slave address of the peripheral to be read. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1664515"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1664517"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1664519"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1664521"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1664523"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1664525"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1664527"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2282118"></A>0x00...0x7F</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2282120"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1664533"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1664535"></A><A NAME="50495582_INIC/I2CPortWrite/Length"></A>Length<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1664557"></A>Number of bytes to be written to the I<EM CLASS="Superscript">
+2</EM>
+C address. If parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/I2CPortWrite/Mode" CLASS="XRef">Mode</A></EM>
+ is set to BurstMode, the valid range of this parameter goes from 1 to 30, since the maximum overall length for a burst transfer is limited to a size of 30 bytes (<EM CLASS="Computer">
+BlockCount</EM>
+ x <EM CLASS="Computer">
+Length</EM>
+). For all other modes, the full range is applicable. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1664538"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1664540"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1664542"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1664544"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1664546"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1664548"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1664550"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1664552"></A>1...32</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1664554"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1664556"></A>Byte</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1875371"></A><A NAME="50495582_INIC/I2CPortWrite/Timeout"></A>Timeout<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1875393"></A>Specifies the timeout for the I<EM CLASS="Superscript">
+2</EM>
+C Port write </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1875374"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1875376"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1875378"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1875380"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1875382"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1875384"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1875386"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1875388"></A>10...65535</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1875390"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1875392"></A>ms</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1664559"></A><A NAME="50495582_INIC/I2CPortWrite/DataList"></A>DataList<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1815413"></A>List of data bytes to be written to the addressed I<EM CLASS="Superscript">
+2</EM>
+C peripheral</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1815399"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1815401"></A>Number of Elements</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1815403"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1815405"></A>Stream</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1815407"></A>1...32</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1815412"></A>{ <EM CLASS="Blue">
+<A HREF="#50495582_INIC/I2CPortWrite/Data" CLASS="XRef">Data</A></EM>
+ }</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1815415"></A><A NAME="50495582_INIC/I2CPortWrite/Data"></A>Data<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1815437"></A>Data bytes to be written to the addressed I<EM CLASS="Superscript">
+2</EM>
+C peripheral</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1815418"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1815420"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1815422"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1815424"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1815426"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1815428"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1815430"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1815432"></A>0x00...0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1815434"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1815436"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1664687"></A><A NAME="50495582_INIC/I2CPortWrite/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840921"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840923"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840931"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840933"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2840935"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="8" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2221185"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2221190"></A><A HREF="#50495582_ErrorClass/0x01" CLASS="XRef">0x01</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2221192"></A>0x10</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2221194"></A>The firmware is busy due to a previous request.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2221209"></A><A HREF="#50495582_ErrorClass/0x02" CLASS="XRef">0x02</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2221211"></A>0x21</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2221213"></A>A NACK signal has been detected on the I<EM CLASS="Superscript">
+2</EM>
+C bus.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2221227"></A>0x23</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3707119"></A>A timeout has been detected. Pending transfers will be canceled and terminated by a STOP condition. It should be considered to reset the slave device.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2221235"></A>0x24</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2221237"></A>The I<EM CLASS="Superscript">
+2</EM>
+C bus has lost arbitration.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2221244"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2221246"></A>0x31</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2221254"></A>The wrong <EM CLASS="Computer">
+<A HREF="#50495582_INIC/I2CPortWrite/Mode" CLASS="XRef">Mode</A></EM>
+ or <EM CLASS="Computer">
+<A HREF="#50495582_INIC/I2CPortWrite/BlockCount" CLASS="XRef">BlockCount</A></EM>
+ value was chosen.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2221260"></A>0x32</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2221267"></A>The maximum burst size value (<EM CLASS="Computer">
+<A HREF="#50495582_INIC/I2CPortWrite/Length" CLASS="XRef">Length</A></EM>
+ x <EM CLASS="Computer">
+<A HREF="#50495582_INIC/I2CPortWrite/BlockCount" CLASS="XRef">BlockCount</A>)</EM>
+ was exceeded or the <EM CLASS="Blue">
+<A HREF="#50495582_INIC/I2CPortWrite/DataList" CLASS="XRef">DataList</A></EM>
+ does not match the product of <EM CLASS="Computer">
+<A HREF="#50495582_INIC/I2CPortWrite/Length" CLASS="XRef">Length</A></EM>
+ and <EM CLASS="Computer">
+<A HREF="#50495582_INIC/I2CPortWrite/BlockCount" CLASS="XRef">BlockCount</A></EM>
+. </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2221274"></A>0x37</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2221276"></A>The I<EM CLASS="Superscript">
+2</EM>
+C Port is not configured in master mode. </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2221285"></A>0x39</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2221287"></A>The I<EM CLASS="Superscript">
+2</EM>
+C master port has not been created.</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1768771"></A>&nbsp;</P>
+</DIV>
+</DIV>
+<DIV>
+<A NAME="MNSH2-GPIOPortFunctions" /><H6 CLASS="Heading2">
+<A NAME="50495582_pgfId-1641524"></A><A NAME="50495582_44245"></A>GPIO Port Functions</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1643323"></A>The functions in this section are used to handle the behavior of the GPIO Port, including the creation and the configuration of the port.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2164802"></A>To get more information on the GPIO Port, refer to <A HREF="#50495575_47728" CLASS="XRef"><EM CLASS="Blue">
+Chapter 14</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2065364"></A>An overview of the GPIO Port functions is shown in <A HREF="#50495582_94818" CLASS="XRef"><EM CLASS="Link">
+Table 21-11</EM>
+</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495582_pgfId-1643336"></A>Table 21-11: <A NAME="50495582_94818"></A>GPIO Port Functions </TableTitle>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1643344"></A>Function Name</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1643346"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1643348"></A>Possible to Notify</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1643350"></A>Page</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1643352"></A>GPIOPortCreate()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1643354"></A>0x701</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1643356"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1643361"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_86118" CLASS="XRef">GPIOPortCreate (0x701)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1643363"></A>GPIOPortPinMode()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1643365"></A>0x703</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1643367"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1643372"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_90817" CLASS="XRef">GPIOPortPinMode (0x703)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1643374"></A>GPIOPortPinState()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1643376"></A>0x704</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1643378"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1643383"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_60027" CLASS="XRef">GPIOPortPinState (0x704)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1643385"></A>GPIOPortTriggerEvent()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1643387"></A>0x705</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1643389"></A>Yes</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1643394"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_59018" CLASS="XRef">GPIOPortTriggerEvent (0x705)</A></EM>
+</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH3-GPIOPortCreate701" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-2156659"></A><A NAME="50495582_86118"></A>GPIOPortCreate <A NAME="50495582_marker-2156657"></A>(0x701)<A NAME="50495582_marker-2156658"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2156660"></A>This function creates the GPIO Port with its associated port instance identifier. </P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2156717"></A>If the GPIO Port has been already created, an error message will be returned.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2156663"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2156665"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2156667"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2156669"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2156671"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2156672"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2156674"></A>GPIOPortCreate</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2156675"></A>(0x701)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2156677"></A>StartResult (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2156685"></A><A HREF="#50495582_INIC/GPIOPortCreate/Index" CLASS="XRef">Index</A>, <A HREF="#50495582_INIC/GPIOPortCreate/DebounceTime" CLASS="XRef">DebounceTime</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2156694"></A>Result (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2156699"></A><A HREF="#50495582_INIC/GPIOPortCreate/GPIOPortHandle" CLASS="XRef">GPIOPortHandle</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2156708"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2156715"></A><A HREF="#50495582_INIC/GPIOPortCreate/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-1642800"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/GPIOPortCreate/SenderHandle"></A><A NAME="50495582_INIC/GPIOPortCreate/Index"></A>Index<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1642822"></A>GPIO Port instance</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1642803"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1642805"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1642807"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1642809"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1642811"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1642813"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1642815"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1642817"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1642819"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1642821"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1642824"></A><A NAME="50495582_INIC/GPIOPortCreate/DebounceTime"></A>DebounceTime<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4669212"></A>Specifies the timeout for the GPIO debounce timer (in ms). Each pin is debounced with its own timer that starts to count on every pin event. The pin is debounced, when the signal stays stable for <EM CLASS="Computer">
+DebounceTime</EM>
+. Since the debounce timer is a software implemented timer, the debounce value may jitter to higher values than the <EM CLASS="Computer">
+DebounceTime</EM>
+. Note, the INIC needs some additional time to send the notification. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2146575"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2146577"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2146579"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2146581"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2146583"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2146585"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2146587"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2146589"></A>1...5000</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2146591"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2146593"></A>ms</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1642975"></A><A NAME="50495582_INIC/GPIOPortCreate/GPIOPortHandle"></A>GPIOPortHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1816023"></A>Port resource handle. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1816001"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1816003"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1816005"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1816007"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1816009"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1816011"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1816013"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1816018"></A>0x1D<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1816020"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1816022"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1816066"></A><A NAME="50495582_INIC/GPIOPortCreate/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841017"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841019"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841027"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841029"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841031"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1816045"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1816050"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1816052"></A>0x38</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1816054"></A>The GPIO Port has been already created.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1816060"></A>0xF0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1816065"></A>Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH3-GPIOPortPinMode703" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-1816070"></A><A NAME="50495582_90817"></A>GPIOPortPinMode <A NAME="50495582_marker-1816068"></A>(0x703)<A NAME="50495582_marker-1816069"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1643851"></A>This function is used for GPIO pin configuration. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1643861"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1643863"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1643865"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1643867"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1643869"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1643870"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1643872"></A>GPIOPortPinMode </P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1643873"></A>(0x703)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1643875"></A>Get (0x1)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1643877"></A><A HREF="#50495582_INIC/GPIOPortPinMode/GPIOPortHandle" CLASS="XRef">GPIOPortHandle</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1643883"></A>SetGet (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1643888"></A><A HREF="#50495582_INIC/GPIOPortPinMode/GPIOPortHandle" CLASS="XRef">GPIOPortHandle</A>, <BR>
+<A HREF="#50495582_INIC/GPIOPortPinMode/PinConfiguration" CLASS="XRef">PinConfiguration</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1643894"></A>Status (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1643899"></A><A HREF="#50495582_INIC/GPIOPortPinMode/GPIOPortHandle" CLASS="XRef">GPIOPortHandle</A>, <BR>
+<A HREF="#50495582_INIC/GPIOPortPinMode/PinConfiguration" CLASS="XRef">PinConfiguration</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1643905"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1643907"></A><A HREF="#50495582_INIC/GPIOPortPinMode/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-1644311"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/GPIOPortPinMode/GPIOPortHandle"></A>GPIOPortHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1644336"></A>Port resource handle. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1644314"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1644316"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1644318"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1644320"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1644322"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1644324"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1644326"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1644331"></A>0x1D<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1644333"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1644335"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1644079"></A><A NAME="50495582_INIC/GPIOPortPinMode/PinConfiguration"></A>PinConfiguration<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1667512"></A>Defines the GPIO pin configuration and clears the trigger conditions on level-sensitive inputs and sticky inputs thereby allowing reporting of further trigger events. Note that trigger conditions are automatically cleared for all edge-sensitive input/output GPIO classes when the <EM CLASS="Computer">
+INIC.GPIOPortTriggerEvent.Status</EM>
+ message is sent. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1644753"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1644755"></A>Number of Elements</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1644757"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1644759"></A>Stream</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1644761"></A>-</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1644769"></A>{ <EM CLASS="Blue">
+<A HREF="#50495582_INIC/GPIOPortPinMode/Pin" CLASS="XRef">Pin</A></EM>
+, <EM CLASS="Blue">
+<A HREF="#50495582_INIC/GPIOPortPinMode/Mode" CLASS="XRef">Mode</A></EM>
+ }</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-2243588"></A><A NAME="50495582_INIC/GPIOPortPinMode/Pin"></A>Pin<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2243589"></A>Defines the GPIO pin that is to be configured. GPIO pins that can&#8217;t be used return an error. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2243595"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2243597"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2243599"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2243601"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2243603"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2243605"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2243607"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2243609"></A>0...15</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2243611"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2243613"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-2243615"></A><A NAME="50495582_INIC/GPIOPortPinMode/Mode"></A>Mode<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1647131"></A>Defines the mode of the GPIO pin. Configuring an unused pin as GPIO may preclude the usage of special functions bound to this pin. For example, configuration of <EM CLASS="Pin-Name">
+GP0</EM>
+ as a GPIO excludes the use of I<EM CLASS="Superscript">
+2</EM>
+C in parallel.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2146608"></A>The value <EM CLASS="Computer">
+Unavailable</EM>
+ is not allowed to be used in combination with OpType SetGet. OpType Status returns <EM CLASS="Computer">
+Unavailable</EM>
+ for pins that are not configurable as GPIO, since the pin is used in its special function, e.g., I<EM CLASS="Superscript">
+2</EM>
+C for <EM CLASS="Pin-Name">
+GP0</EM>
+.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2164805"></A>The value <EM CLASS="Computer">
+Unused</EM>
+ in OpType Status indicates that the pin is neither used as GPIO pin nor in its special function mode. The value can be used in OpType SetGet to reset a GPIO pin, then the pin is without configuration.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2146611"></A>When configuring the debounced edge trigger modes, the debounce logic must detect a stable debounced level before the first edge is notified. Debounce level is low for rising edge triggers and high for falling edge triggers. The detection of debounced values starts always with the configuration of the pin.<BR>
+Sticky pin modes are capable to detect brief pulses using a dedicated hardware mechanism, see the OS81118 Hardware Data Sheet <EM CLASS="CrossReference">
+<A HREF="#50495561_65912" CLASS="XRef"></A><EM CLASS="Blue">
+[4]</EM>
+<EM CLASS="CrossReference">
+</EM>
+</EM>
+. The dedicated hardware mechanism is also used to detect level triggers for input pins.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2139837"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1656757"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1656759"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1656761"></A>Mnemonic</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="23" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1656763"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1656765"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1656767"></A><EM CLASS="Computer">
+Unavailable</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1656771"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1656773"></A><EM CLASS="Computer">
+Unused</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1656777"></A>0x10</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1656779"></A><EM CLASS="Computer">
+Input</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1656783"></A>0x11</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1656785"></A><EM CLASS="Computer">
+InputStickyHighLevel</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1656789"></A>0x12</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1656791"></A><EM CLASS="Computer">
+InputStickyLowLevel</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1656795"></A>0x13</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1656797"></A><EM CLASS="Computer">
+InputTriggerRisingEdge</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1656801"></A>0x14</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1656803"></A><EM CLASS="Computer">
+InputTriggerFallingEdge</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4668628"></A>0x15</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4668630"></A><EM CLASS="Computer">
+InputTriggerRisingFallingEdge</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1656807"></A>0x16</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1656809"></A><EM CLASS="Computer">
+InputTriggerHighLevel</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1656813"></A>0x17</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1656815"></A><EM CLASS="Computer">
+InputTriggerLowLevel</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1656837"></A>0x30</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1656839"></A><EM CLASS="Computer">
+InputDebounced</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1656843"></A>0x33</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1656845"></A><EM CLASS="Computer">
+InputDebouncedTriggerRisingEdge</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1656849"></A>0x34</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1656851"></A><EM CLASS="Computer">
+InputDebouncedTriggerFallingEdge</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4668634"></A>0x35</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4668636"></A><EM CLASS="Computer">
+InputDebouncedTriggerRisingFallingEdge</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1656861"></A>0x36</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1656863"></A><EM CLASS="Computer">
+InputDebouncedTriggerHighLevel</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1656867"></A>0x37</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1656869"></A><EM CLASS="Computer">
+InputDebouncedTriggerLowLevel</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1656873"></A>0x40</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1656875"></A><EM CLASS="Computer">
+OutputDefaultLow</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2250141"></A>0x41</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2250143"></A><EM CLASS="Computer">
+OutputDefaultHigh</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1656879"></A>0x50</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1656881"></A><EM CLASS="Computer">
+OutputOpenDrain</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1656885"></A>0x53</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1656887"></A><EM CLASS="Computer">
+OutputOpenDrainTriggerRisingEdge</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1656891"></A>0x54</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1656893"></A><EM CLASS="Computer">
+OutputOpenDrainTriggerFallingEdge</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1656903"></A>0x56</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1656905"></A><EM CLASS="Computer">
+OutputOpenDrainTriggerHighLevel</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1656909"></A>0x57</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1656911"></A><EM CLASS="Computer">
+OutputOpenDrainTriggerLowLevel</EM>
+</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1667324"></A><A NAME="50495582_INIC/GPIOPortPinMode/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3160814"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="4">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3160816"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3160826"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3160828"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3160830"></A>ErrorParameter</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3160832"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3160837"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3160842"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3160844"></A>0x30</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3160848"></A><EM CLASS="Computer">
+<A HREF="#50495582_INIC/GPIOPortPinMode/GPIOPortHandle" CLASS="XRef">GPIOPortHandle</A></EM>
+, <EM CLASS="Computer">
+<A HREF="#50495582_INIC/GPIOPortPinMode/Pin" CLASS="XRef">Pin</A></EM>
+, <EM CLASS="Computer">
+<A HREF="#50495582_INIC/GPIOPortPinMode/Mode" CLASS="XRef">Mode</A></EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3160863"></A>The used <EM CLASS="Computer">
+<A HREF="#50495582_INIC/GPIOPortPinMode/Pin" CLASS="XRef">Pin</A></EM>
+ or <EM CLASS="Computer">
+<A HREF="#50495582_INIC/GPIOPortPinMode/Mode" CLASS="XRef">Mode</A></EM>
+ value is out of range. <BR>
+All preceding <EM CLASS="Computer">
+<A HREF="#50495582_INIC/GPIOPortPinMode/PinConfiguration" CLASS="XRef">PinConfiguration</A></EM>
+ pairs have been configured correctly and can be used. All <EM CLASS="Computer">
+<A HREF="#50495582_INIC/GPIOPortPinMode/PinConfiguration" CLASS="XRef">PinConfiguration</A></EM>
+ pairs after the erroneous one are ignored. </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3160875"></A>0x31</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3160879"></A><EM CLASS="Computer">
+<A HREF="#50495582_INIC/GPIOPortPinMode/GPIOPortHandle" CLASS="XRef">GPIOPortHandle</A></EM>
+, <EM CLASS="Computer">
+<A HREF="#50495582_INIC/GPIOPortPinMode/Pin" CLASS="XRef">Pin</A></EM>
+, <EM CLASS="Computer">
+<A HREF="#50495582_INIC/GPIOPortPinMode/Mode" CLASS="XRef">Mode</A></EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3160888"></A>The used pin is not available for GPIO usage.<BR>
+All preceding <EM CLASS="Computer">
+<A HREF="#50495582_INIC/GPIOPortPinMode/PinConfiguration" CLASS="XRef">PinConfiguration</A></EM>
+ pairs have been configured correctly and can be used. All <EM CLASS="Computer">
+<A HREF="#50495582_INIC/GPIOPortPinMode/PinConfiguration" CLASS="XRef">PinConfiguration</A></EM>
+ pairs after the erroneous one are ignored.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3609545"></A>0x39</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3609549"></A><EM CLASS="Computer">
+<A HREF="#50495582_INIC/GPIOPortPinMode/GPIOPortHandle" CLASS="XRef">GPIOPortHandle</A></EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3609552"></A>The GPIO Port has not been created.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4734061"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4734066"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3160922"></A>0xF0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3160924"></A>-</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3160904"></A>Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH3-GPIOPortPinState704" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-1647345"></A><A NAME="50495582_60027"></A>GPIOPortPinState <A NAME="50495582_marker-1647133"></A>(0x704)<A NAME="50495582_marker-1647134"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1647731"></A>This function is used for GPIO pin state configuration.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1647289"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1647291"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1647293"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1647295"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1647297"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1647298"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1647300"></A>GPIOPortPinState </P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1647301"></A>(0x704)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1647303"></A>Get (0x1)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1647308"></A><A HREF="#50495582_INIC/GPIOPortPinState/GPIOPortHandle" CLASS="XRef">GPIOPortHandle</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1647314"></A>SetGet (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1647321"></A><A HREF="#50495582_INIC/GPIOPortPinState/GPIOPortHandle" CLASS="XRef">GPIOPortHandle</A>, <A HREF="#50495582_INIC/GPIOPortPinState/Mask" CLASS="XRef">Mask</A>, <A HREF="#50495582_INIC/GPIOPortPinState/Data" CLASS="XRef">Data</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1647328"></A>Status (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1647335"></A><A HREF="#50495582_INIC/GPIOPortPinState/GPIOPortHandle" CLASS="XRef">GPIOPortHandle</A>, <BR>
+<A HREF="#50495582_INIC/GPIOPortPinState/CurrentState" CLASS="XRef">CurrentState</A>, <A HREF="#50495582_INIC/GPIOPortPinState/StickyState" CLASS="XRef">StickyState</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1647342"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1647344"></A><A HREF="#50495582_INIC/GPIOPortPinState/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-1647347"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/GPIOPortPinState/GPIOPortHandle"></A>GPIOPortHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1647372"></A>Port resource handle. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1647350"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1647352"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1647354"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1647356"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1647358"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1647360"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1647362"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1647367"></A>0x1D<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1647369"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1647371"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-2242209"></A><A NAME="50495582_INIC/GPIOPortPinState/Mask"></A>Mask<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2242210"></A>Specifies the GPIO pin to be written. For pins not configured as GPIO, the value is ignored.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2242216"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2242218"></A>Bit #</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2242220"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2242222"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="5" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2242224"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2242226"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2242228"></A>False</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2242230"></A>GPIO 00 Untouched</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2242236"></A>True</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2242238"></A>Change GPIO 00</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2242242"></A>...</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2242250"></A>15</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2242252"></A>False</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2242254"></A>GPIO 15 Untouched</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2242260"></A>True</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2242262"></A>Change GPIO 15</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-2242264"></A><A NAME="50495582_INIC/GPIOPortPinState/Data"></A>Data<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1647418"></A>Specifies the state of the GPIO pin to be written. For pins not configured as GPIO, the value is ignored.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1648967"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1648969"></A>Bit #</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1648971"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1648973"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="5" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1648975"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1648977"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1648979"></A>False</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1648981"></A>GPIO 00 Low</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1648987"></A>True</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1648989"></A>GPIO 00 High</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1648993"></A>...</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1649217"></A>15</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1649219"></A>False</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1649221"></A>GPIO 15 Low</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1649227"></A>True</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1649229"></A>GPIO 15 High</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1647931"></A><A NAME="50495582_INIC/GPIOPortPinState/CurrentState"></A>CurrentState<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1647953"></A>Specifies the current state of the GPIO pin. For pins not configured as GPIO, the value is always set to False.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1649718"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1649720"></A>Bit #</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1649722"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1649724"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="5" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1649726"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1649728"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1649730"></A>False</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1649732"></A>GPIO 00 Low</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1649738"></A>True</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1649740"></A>GPIO 00 High</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1649744"></A>...</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1649968"></A>15</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1649970"></A>False</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1649972"></A>GPIO 15 Low</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1649978"></A>True</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1649980"></A>GPIO 15 High</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1647973"></A><A NAME="50495582_INIC/GPIOPortPinState/StickyState"></A>StickyState<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1650086"></A>Specifies the sticky state of all GPIO pins configured as sticky inputs. For pins not configured as sticky input, the value is always set to False.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1650120"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1650122"></A>Bit #</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1650124"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1650126"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="5" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1650128"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1650130"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1650132"></A>False</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1650134"></A>GPIO 00 Low</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1650140"></A>True</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1650142"></A>GPIO 00 High</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1650146"></A>...</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1650370"></A>15</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1650372"></A>False</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1650374"></A>GPIO 15 Low</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1650380"></A>True</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1650382"></A>GPIO 15 High</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1667452"></A><A NAME="50495582_INIC/GPIOPortPinState/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3160973"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3160975"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3160983"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3160985"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3160987"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3160992"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3160994"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3160996"></A>0x39</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3160998"></A>The GPIO Port has not been created.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3161007"></A>0xF0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3161009"></A>Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH3-GPIOPortTriggerEvent705" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-2234184"></A><A NAME="50495582_59018"></A>GPIOPortTriggerEvent <A NAME="50495582_marker-2234182"></A>(0x705)<A NAME="50495582_marker-2234183"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2234185"></A>This function notifies controllers of trigger events detected on GPIO pins, on which an event trigger has been configured using <EM CLASS="Computer">
+INIC.GPIOPinMode.Set</EM>
+. In addition, the function is used to re-enable (via <EM CLASS="Computer">
+INIC.GPIOPinMode.Set</EM>
+) the reporting of subsequent trigger events for level-sensitive inputs and sticky inputs.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1668108"></A>This function supports notification.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1667920"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1667922"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1667924"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1667926"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1667928"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1667929"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1667931"></A>GPIOPortTriggerEvent </P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1667932"></A>(0x705)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1667934"></A>Status (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1667941"></A><A HREF="#50495582_INIC/GPIOPortTriggerEvent/GPIOPortHandle" CLASS="XRef">GPIOPortHandle</A>, <A HREF="#50495582_INIC/GPIOPortTriggerEvent/RisingEdges" CLASS="XRef">RisingEdges</A>, <A HREF="#50495582_INIC/GPIOPortTriggerEvent/FallingEdges" CLASS="XRef">FallingEdges</A>, <A HREF="#50495582_INIC/GPIOPortTriggerEvent/Levels" CLASS="XRef">Levels</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1667960"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1667962"></A>ErrorCode, ErrorInfo</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-1667964"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/GPIOPortTriggerEvent/GPIOPortHandle"></A>GPIOPortHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1650871"></A>Port resource handle. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1650849"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1650851"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1650853"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1650855"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1650857"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1650859"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1650861"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1650866"></A>0x1D<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1650868"></A>1</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1650870"></A>None</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2152756"></A>0xFFFF</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1650873"></A><A NAME="50495582_INIC/GPIOPortTriggerEvent/RisingEdges"></A>RisingEdges<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1653071"></A>Specifies the GPIO pins on which a rising-edge trigger condition was detected by rising edge or dual edge detection logic. Detection logic is specified by the <EM CLASS="Computer">
+<A HREF="#50495582_INIC/GPIOPortPinMode/Mode" CLASS="XRef">Mode</A></EM>
+ parameter of <EM CLASS="Computer">
+INIC.GPIOPinMode.SetGet</EM>
+. If a rising edge has been detected for a given pin, the bit is set. A clear bit indicates that no rising edge was detected or that rising edge/dual edge detection logic is not enabled.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1651207"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1651209"></A>Bit #</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1651211"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1651213"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="5" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1651215"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1651217"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1651219"></A>False</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1651221"></A>GPIO 00 Idle</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1651227"></A>True</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1651229"></A>GPIO 00 RisingEdge</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1651233"></A>...</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1651457"></A>15</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1651459"></A>False</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1651461"></A>GPIO 15 Idle</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1651467"></A>True</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1651469"></A>GPIO 15 RisingEdge</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1651063"></A><A NAME="50495582_INIC/GPIOPortTriggerEvent/FallingEdges"></A>FallingEdges<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1653086"></A>Specifies the GPIO pins on which a falling-edge trigger condition was detected by falling edge or dual edge detection logic. Detection logic is specified by the <EM CLASS="Computer">
+<A HREF="#50495582_INIC/GPIOPortPinMode/Mode" CLASS="XRef">Mode</A></EM>
+ parameter of <EM CLASS="Computer">
+INIC.GPIOPinMode.SetGet</EM>
+. If a falling edge has been detected for a given pin, the bit is set. A clear bit indicates that no falling edge was detected or that falling edge/dual edge detection logic is not enabled.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2242846"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2242848"></A>Bit #</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2242850"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2242852"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="5" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2242854"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2242856"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2242858"></A>False</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2242860"></A>GPIO 00 Idle</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2242866"></A>True</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2242868"></A>GPIO 00 FallingEdge</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2242872"></A>...</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2243096"></A>15</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2243098"></A>False</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2243100"></A>GPIO 15 Idle</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2243106"></A>True</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2243108"></A>GPIO 15 FallingEdge</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1651064"></A><A NAME="50495582_INIC/GPIOPortTriggerEvent/Levels"></A>Levels<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2146764"></A>Specifies the GPIO pins on which a logic level condition was detected by level detection logic. The levels apply to high-level as well as to low-level detection. If high-level detection logic is enabled, high levels are indicated by a set bit, if low-level detection logic is enabled, low levels are indicated by a set bit. A clear bit indicates that no level was detected or that level detection logic is not enabled.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2164808"></A>Detection logic is specified by the <EM CLASS="Computer">
+<A HREF="#50495582_INIC/GPIOPortPinMode/Mode" CLASS="XRef">Mode</A></EM>
+ parameter of <EM CLASS="Computer">
+INIC.GPIOPinMode.SetGet</EM>
+. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2146770"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2146772"></A>Bit #</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2146774"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2146776"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="5" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2146778"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2146780"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2146782"></A>False</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2146784"></A>GPIO 00 Idle</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2146790"></A>True</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2146792"></A>GPIO 00 Level</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2146796"></A>...</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2147020"></A>15</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2147022"></A>False</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2147024"></A>GPIO 15 Idle</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2147030"></A>True</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2147032"></A>GPIO 15 Level</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<A NAME="MNSH2-ResourceManagementFunctions" /><H6 CLASS="Heading2">
+<A NAME="50495582_pgfId-2147033"></A>Resource Management Functions</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-667977"></A>The functions in this section are used to handle resource management relevant tasks, these are tasks that are related to a resource object, e.g., a port, a socket, or a connection.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2164811"></A>To get more information on the resource management, refer to <A HREF="#50495567_47728" CLASS="XRef"><EM CLASS="Blue">
+Chapter 6</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2065440"></A>An overview of the INIC&#8217;s resource management functions is shown in <A HREF="#50495582_55858" CLASS="XRef"><EM CLASS="Link">
+Table 21-12</EM>
+</A>. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495582_pgfId-668030"></A>Table 21-12: <A NAME="50495582_55858"></A>Resource Management Functions </TableTitle>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-667986"></A>Function Name</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-667988"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-667990"></A>Possible to Notify</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-667992"></A>Page</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-667994"></A>ResourceDestroy()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-667996"></A>0x800</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-667998"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-668003"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_84433" CLASS="XRef">ResourceDestroy (0x800)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-668005"></A>ResourceInvalidList()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-668007"></A>0x801</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-668009"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-668014"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_34989" CLASS="XRef">ResourceInvalidList (0x801)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-668016"></A>ResourceMonitor()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-668018"></A>0x802</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-668020"></A>Yes</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-668025"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_14382" CLASS="XRef">ResourceMonitor (0x802)</A></EM>
+</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-668037"></A>&nbsp;</P>
+<DIV>
+<A NAME="MNSH3-ResourceDestroy800" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-668041"></A><A NAME="50495582_84433"></A>ResourceDestroy <A NAME="50495582_marker-668039"></A>(0x800)<A NAME="50495582_marker-668040"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-668042"></A>This function destroys the resource associated with the given resource handle. A resource is either a port, a socket, or a connection. For more information on destroying resources, refer to <A HREF="#50495567_84569" CLASS="XRef"><EM CLASS="Link">
+Section 6.3</EM>
+</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-864455"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-864457"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-864459"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-864461"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-864463"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-864464"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-864466"></A>ResourceDestroy</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-864467"></A>(0x800)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-864469"></A>StartResult (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-864471"></A><A HREF="#50495582_INIC/ResourceDestroy/ResourceHandleList" CLASS="XRef">ResourceHandleList</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-864477"></A>Result (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-864479"></A>-</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-864485"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-864487"></A><A HREF="#50495582_INIC/ResourceDestroy/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-668115"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/ResourceDestroy/SenderHandle"></A><A NAME="50495582_INIC/ResourceDestroy/ResourceHandleList"></A>ResourceHandleList<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-668129"></A>Unique resource handle list</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-864489"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-864491"></A>Number of Elements</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-864493"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-864495"></A>Stream</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-864497"></A>1...10</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-864499"></A><EM CLASS="Blue">
+<A HREF="#50495582_INIC/ResourceDestroy/ResourceHandle" CLASS="XRef">ResourceHandle</A></EM>
+, { <EM CLASS="Blue">
+<A HREF="#50495582_INIC/ResourceDestroy/ResourceHandle" CLASS="XRef">ResourceHandle</A></EM>
+ }</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-668130"></A><A NAME="50495582_INIC/ResourceDestroy/ResourceHandle"></A>ResourceHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-668152"></A>Unique resource handle</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-668133"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-668135"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-668137"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-668139"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-668141"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-668143"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-668145"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-668147"></A>0x0000...0xFFFE</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-668149"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-668151"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-668259"></A><A NAME="50495582_INIC/ResourceDestroy/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841135"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="4">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841137"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841147"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841149"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841151"></A>ErrorParameter</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841153"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="5" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1962518"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1962523"></A><A HREF="#50495582_ErrorClass/0x01" CLASS="XRef">0x01</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1962525"></A>0x10</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1962527"></A><EM CLASS="Computer">
+ResourceHandle</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1962529"></A>The last <EM CLASS="Computer">
+INIC.ResourceDestroy()</EM>
+ call has not yet been finished.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1962549"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1962551"></A>0x30</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1962553"></A>-</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1962555"></A>The message length is wrong (must be a multiple of two bytes).</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1962561"></A>0x31</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1962563"></A>-</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1962565"></A>There are too many elements in parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/ResourceDestroy/ResourceHandleList" CLASS="XRef">ResourceHandleList</A></EM>
+.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1962574"></A>0x32</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1962576"></A><EM CLASS="Computer">
+ResourceHandle</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1962578"></A>The handle currently being processed was not found or cannot be destroyed, because it is persistent. </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1962584"></A>0xF0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1962586"></A>-</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1962591"></A>Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3595156"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1962598"></A><A HREF="#50495582_ErrorClass/0x04" CLASS="XRef">0x04</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1962600"></A>0x40</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1962602"></A><EM CLASS="Computer">
+ResourceHandle</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1962604"></A>Resource dependency violation.</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1962605"></A>There are still resources remaining that have a dependency on the resource that was requested to be destroyed:</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-1962606"></A>- A connection still uses the socket, combiner, or splitter resource.</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-1962607"></A>- A combiner or splitter still uses the socket resource.</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-1962608"></A>- A socket still uses the port resource.</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-1962609"></A>- Streaming Port A and B are configured as linked. Streaming Port A was requested to be destroyed before Streaming Port B was destroyed. </P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-3135142"></A>- A MediaLB packet multiplex socket still uses the socket resource.</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH3-ResourceInvalidList801" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-668263"></A><A NAME="50495582_34989"></A>ResourceInvalidList <A NAME="50495582_marker-668261"></A>(0x801)<A NAME="50495582_marker-668262"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-960246"></A>This function is used to get resources that were marked as invalid by the INIC.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2157349"></A>The returned list always contains the currently invalid handles, sorted in the order they must be destroyed. If there are more handles as that can fit into one message, the preceding handles must be destroyed to get the remaining handles and to reach the END identifier.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2157384"></A>For more information on how invalid resources are reported, refer to <A HREF="#50495567_47728" CLASS="XRef"><EM CLASS="Blue">
+Chapter 6</EM>
+</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-960252"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-960254"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-960256"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-960258"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-960260"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-960261"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-960263"></A>ResourceInvalidList</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-960264"></A>(0x801)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-960266"></A>Get (0x1)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-960268"></A>-</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-960274"></A>Status (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-960276"></A><A HREF="#50495582_INIC/ResourceInvalidList/ResourceHandleList" CLASS="XRef">ResourceHandleList</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-960282"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-960284"></A>ErrorCode, ErrorInfo</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-960285"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/ResourceInvalidList/ResourceHandleList"></A>ResourceHandleList<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-668325"></A>Unique resource handle list</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-864640"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-864642"></A>Number of Elements</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-864644"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-864646"></A>Stream</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-864648"></A><EM CLASS="BlackMarker">
+1...22</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-864650"></A><A HREF="#50495582_INIC/ResourceInvalidList/ResourceHandle" CLASS="XRef">ResourceHandle</A>, { <A HREF="#50495582_INIC/ResourceInvalidList/ResourceHandle" CLASS="XRef">ResourceHandle</A> }</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-668326"></A><A NAME="50495582_INIC/ResourceInvalidList/ResourceHandle"></A>ResourceHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-668327"></A>Unique resource handle. 0xFFFF is the END identifier. Receiving only the END identifier in the result indicates that there are no more invalid resources.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-668330"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-668332"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-668334"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-668336"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-668338"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-668340"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-668342"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-668344"></A>0x0000...0xFFFE</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-668346"></A>1</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-668348"></A>None</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-668354"></A>0xFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-668356"></A>-</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH3-ResourceMonitor802" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-668362"></A><A NAME="50495582_14382"></A>ResourceMonitor <A NAME="50495582_marker-668360"></A>(0x802)<A NAME="50495582_marker-668361"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-668363"></A>This function notifies the state of the resource monitor in the INIC. The Status is only sent via notification; it notifies when the EHC must perform some actions and when it has returned to its default state. The Set operation is used to reset the resource monitor back to its default state.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2164814"></A>This function supports notification.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-864652"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-864654"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-864656"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-864658"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-864660"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-864661"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-864663"></A>ResourceMonitor<BR>
+(0x802)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-864665"></A>Set (0x0)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-864667"></A><A HREF="#50495582_INIC/ResourceMonitor/Control" CLASS="XRef">Control</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-864673"></A>Status (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-864675"></A><A HREF="#50495582_INIC/ResourceMonitor/State" CLASS="XRef">State</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-864681"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-864683"></A><A HREF="#50495582_INIC/ResourceMonitor/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-668409"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/ResourceMonitor/Control"></A>Control<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-668410"></A>Used to reset the resource monitor to its default state and release the <EM CLASS="Pin-Name">
+MUTE</EM>
+ pin. This will always trigger a notification.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-668413"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-668415"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-668417"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-668419"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-668421"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-668423"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-668425"></A><EM CLASS="Computer">
+Reset</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-668427"></A>Requests the resource monitor to go back to the <EM CLASS="Computer">
+OK</EM>
+ state and release the <EM CLASS="Pin-Name">
+MUTE</EM>
+ pin</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-668429"></A><A NAME="50495582_INIC/ResourceMonitor/State"></A>State<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-668430"></A>Specifies the current state of the resource monitor, which can be either <EM CLASS="Computer">
+OK</EM>
+ for the normal state when it requires no attention or <EM CLASS="Computer">
+ActionRequired</EM>
+ when the EHC may have to destroy invalid resources and finally reset the resource monitor.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-668433"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-668435"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-668437"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-668439"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-668441"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-668443"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-668445"></A><EM CLASS="Computer">
+OK</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-668447"></A>Default state. There are no actions required from the EHC.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-668451"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-668453"></A><EM CLASS="Computer">
+ActionRequired</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-668455"></A>There are actions required from the EHC.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-668490"></A><A NAME="50495582_INIC/ResourceMonitor/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841174"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841176"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841184"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841186"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841188"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-864704"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-864709"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-864711"></A>0xF0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-864716"></A>Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<A NAME="MNSH2-PacketConnectionFunctions" /><H6 CLASS="Heading2">
+<A NAME="50495582_pgfId-668932"></A>Packet Connection Functions</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-668933"></A>The functions in this section are used to setup packet connections for different data types.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2164817"></A>To get more information on packet connections, refer to <A HREF="#50495579_47728" CLASS="XRef"><EM CLASS="Blue">
+Chapter 18</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2065443"></A>An overview of the packet connection functions is shown in <A HREF="#50495582_97378" CLASS="XRef"><EM CLASS="Link">
+Table 21-13</EM>
+</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495582_pgfId-668976"></A>Table 21-13: <A NAME="50495582_97378"></A>Packet Connection Functions </TableTitle>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-668942"></A>Function Name</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-668944"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-668946"></A>Possible to Notify</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-668948"></A>Page</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-668950"></A>PacketAttachSockets()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-668952"></A>0x843</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-668954"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-668959"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_48169" CLASS="XRef">PacketAttachSockets (0x843)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-668961"></A>PacketDetachSockets()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-668963"></A>0x844</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-668965"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-668970"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_21232" CLASS="XRef">PacketDetachSockets (0x844)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1597864"></A>QoSPacketCreate()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1597866"></A>0x851</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1597868"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1597873"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_64631" CLASS="XRef">QoSPacketCreate (0x851)</A></EM>
+</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-668983"></A>&nbsp;</P>
+<DIV>
+<A NAME="MNSH3-PacketAttachSockets843" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-668987"></A><A NAME="50495582_48169"></A>PacketAttachSockets <A NAME="50495582_marker-668985"></A>(0x843)<A NAME="50495582_marker-668986"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-669031"></A>This function attaches the given peripheral sockets to the packet data connection.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-864892"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-864894"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-864896"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-864898"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-864900"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-864901"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-864903"></A>PacketAttachSockets</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-864904"></A>(0x843)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-864906"></A>StartResult (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-864908"></A><A HREF="#50495582_INIC/PacketAttachSockets/PacketHandle" CLASS="XRef">PacketHandle</A>, <BR>
+<A HREF="#50495582_INIC/PacketAttachSockets/SocketHandleIn" CLASS="XRef">SocketHandleIn</A>, <BR>
+<A HREF="#50495582_INIC/PacketAttachSockets/SocketHandleOut" CLASS="XRef">SocketHandleOut</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-864914"></A>Result (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-864916"></A>-</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-864922"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-864924"></A><A HREF="#50495582_INIC/PacketAttachSockets/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-669058"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/PacketAttachSockets/SenderHandle"></A><A NAME="50495582_INIC/PacketAttachSockets/PacketHandle"></A>PacketHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-669083"></A>Packet resource handle. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-669064"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-669066"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-669068"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-669070"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-669072"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-669074"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-669076"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-669078"></A>0x01<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-669080"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-669082"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-669084"></A><A NAME="50495582_INIC/PacketAttachSockets/SocketHandleIn"></A>SocketHandleIn<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2155320"></A>The resource handle of the <EM CLASS="Computer">
+Input</EM>
+ socket that is attached to the packet connection. Valid value is a combination of resource identifier and index (yy). </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331184"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331186"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331188"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331190"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331192"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3331194"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3331196"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3331201"></A>MediaLB socket: 0x0B<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3331203"></A>1</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3331205"></A>None</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3331214"></A>SPI socket: 0x11<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3331227"></A>USB socket: 0x13<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-669110"></A><A NAME="50495582_INIC/PacketAttachSockets/SocketHandleOut"></A>SocketHandleOut<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-669135"></A>The resource handle of the <EM CLASS="Computer">
+Output</EM>
+ socket that is attached to the packet connection. Valid value is a combination of resource identifier and index (yy). </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331239"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331241"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331243"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331245"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331247"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3331249"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3331251"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3331256"></A>MediaLB socket: 0x0B<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3331258"></A>1</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3331260"></A>None</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3331269"></A>SPI socket: 0x11<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3331282"></A>USB socket: 0x13<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-669194"></A><A NAME="50495582_INIC/PacketAttachSockets/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841308"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841310"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841318"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841320"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841322"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-864945"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-864950"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-864952"></A>0x30</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1490000"></A>Parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/PacketAttachSockets/SocketHandleIn" CLASS="XRef">SocketHandleIn</A></EM>
+ is invalid. This error can be returned for several reasons: </P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1490002"></A>- the socket is not of direction <EM CLASS="Computer">
+Input</EM>
+, or</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3611601"></A>- the socket is not of data type <EM CLASS="Computer">
+Packet</EM>
+, or<EM CLASS="Computer">
+</EM>
+</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3746563"></A>- the socket is already used in a connection.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-864960"></A>0x31</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-864962"></A>Parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/PacketAttachSockets/SocketHandleOut" CLASS="XRef">SocketHandleOut</A></EM>
+ is invalid. This error can be returned for several reasons:</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1490092"></A>- the socket is not of direction <EM CLASS="Computer">
+Output</EM>
+, or</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3611620"></A>- the socket is not of data type <EM CLASS="Computer">
+Packet</EM>
+, or<EM CLASS="Computer">
+</EM>
+</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3746596"></A>- the socket is already used in a connection. </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3884020"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3884025"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1598334"></A>0x32</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1598336"></A>Resource type of <EM CLASS="Blue">
+<A HREF="#50495582_INIC/PacketAttachSockets/SocketHandleIn" CLASS="XRef">SocketHandleIn</A></EM>
+ and <EM CLASS="Blue">
+<A HREF="#50495582_INIC/PacketAttachSockets/SocketHandleOut" CLASS="XRef">SocketHandleOut</A></EM>
+ is different.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3611458"></A>0x38</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3611640"></A>The packet data connection has already sockets attached.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3611588"></A>0x39</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3611690"></A>Parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/PacketAttachSockets/SocketHandleIn" CLASS="XRef">SocketHandleIn</A></EM>
+ or <EM CLASS="Computer">
+<A HREF="#50495582_INIC/PacketAttachSockets/SocketHandleOut" CLASS="XRef">SocketHandleOut</A> </EM>
+indicates a resource that does not exist.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1490139"></A>0xF0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1490144"></A>Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH3-PacketDetachSockets844" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-669198"></A><A NAME="50495582_21232"></A>PacketDetachSockets <A NAME="50495582_marker-669196"></A>(0x844)<A NAME="50495582_marker-669197"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-669242"></A>This function detaches the given peripheral sockets from the packet data connection.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-864983"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-864985"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-864987"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-864989"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-864991"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-864992"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-864994"></A>PacketDetachSockets</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-864995"></A>(0x844)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-864997"></A>StartResult (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-864999"></A><A HREF="#50495582_INIC/PacketDetachSockets/PacketHandle" CLASS="XRef">PacketHandle</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-865005"></A>Result (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-865007"></A>-</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-865013"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-865015"></A><A HREF="#50495582_INIC/PacketDetachSockets/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-669269"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/PacketDetachSockets/SenderHandle"></A><A NAME="50495582_INIC/PacketDetachSockets/PacketHandle"></A>PacketHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-669294"></A>Packet resource handle. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-669275"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-669277"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-669279"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-669281"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-669283"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-669285"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-669287"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-669289"></A>0x01<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-669291"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-669293"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-669340"></A><A NAME="50495582_INIC/PacketDetachSockets/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841340"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841342"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841350"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841352"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841354"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-865036"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-865041"></A><A HREF="#50495582_ErrorClass/0x01" CLASS="XRef">0x01</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-865043"></A>0x10</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1875820"></A>The last <EM CLASS="Computer">
+INIC.PacketDetachSockets()</EM>
+ call has not yet been finished.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-865052"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-865054"></A>0x30</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-865059"></A>Sockets cannot be detached, since the connection was configured via the configuration string.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1245044"></A>0xF0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1245049"></A>Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH3-QoSPacketCreate851" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-1597324"></A><A NAME="50495582_64631"></A>QoSPacketCreate <A NAME="50495582_marker-1597322"></A>(0x851)<A NAME="50495582_marker-1597323"></A> </H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1597381"></A>This function creates a Quality of Service packet connection.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1597327"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1597329"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1597331"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1597333"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1597335"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1597336"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1597338"></A>QoSPacketCreate</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1597339"></A>(0x851)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1597341"></A>StartResult (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1597348"></A><A HREF="#50495582_INIC/QoSPacketCreate/SocketHandleIN" CLASS="XRef">SocketHandleIn</A>, <BR>
+<A HREF="#50495582_INIC/QoSPacketCreate/SocketHandleOUT" CLASS="XRef">SocketHandleOut</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1597358"></A>Result (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1597366"></A><A HREF="#50495582_INIC/QoSPacketCreate/QoSHandle" CLASS="XRef">QoSHandle</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1597372"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1597379"></A><A HREF="#50495582_INIC/QoSPacketCreate/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-1597410"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/QoSPacketCreate/SocketHandleIN"></A>SocketHandleIn<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1599271"></A>The ID number of the opened socket that is the starting point of the link. Must be a socket of type <EM CLASS="Code">
+Input</EM>
+. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331294"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331296"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331298"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331300"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331302"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3331304"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3331306"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3331311"></A>MediaLB socket: 0x0B<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3331313"></A>1</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3331315"></A>None</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3331324"></A>MOST socket: 0x0E<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1599385"></A><A NAME="50495582_INIC/QoSPacketCreate/SocketHandleOUT"></A>SocketHandleOut<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1597519"></A>The ID number of the opened socket that is the ending point of the link. Must be a socket of type <EM CLASS="Code">
+Output</EM>
+. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331365"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331367"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331369"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331371"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331373"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3331375"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3331377"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3331382"></A>MediaLB socket: 0x0B<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3331384"></A>1</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3331386"></A>None</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3331395"></A>MOST socket: 0x0E<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1597622"></A><A NAME="50495582_INIC/QoSPacketCreate/QoSHandle"></A>QoSHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1597623"></A>Resource handle of the Quality of Service packet connection. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1597626"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1597628"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1597630"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1597632"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1597634"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1597636"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1597638"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1597643"></A>0x05<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1597645"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1597647"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-2267824"></A><A NAME="50495582_INIC/QoSPacketCreate/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841372"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841374"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841382"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841384"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841386"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2267714"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2267719"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2267721"></A>0x30</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2267726"></A>Parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/QoSPacketCreate/SocketHandleIN" CLASS="XRef">SocketHandleIn</A></EM>
+ is invalid. This error can be returned for several reasons: <BR>
+- the socket is not of direction <EM CLASS="Computer">
+Input</EM>
+ or </P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3611328"></A>- the socket is already used in a connection, or</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2267727"></A>- the socket is of the wrong data type.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2267733"></A>0x31</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2267738"></A>Parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/QoSPacketCreate/SocketHandleOUT" CLASS="XRef">SocketHandleOut</A></EM>
+ is invalid. This error can be returned for several reasons:<BR>
+- the direction of the socket is not <EM CLASS="Computer">
+Output</EM>
+ or</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3611349"></A>- the socket is of the wrong data type, or </P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-3746455"></A>- the socket is already used in a connection or</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-2267739"></A>- both sockets are network sockets or peripheral sockets. In this case parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/QoSPacketCreate/SocketHandleOUT" CLASS="XRef">SocketHandleOut</A></EM>
+ will be in conflict with parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/QoSPacketCreate/SocketHandleIN" CLASS="XRef">SocketHandleIn</A></EM>
+.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="5" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3884499"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3884504"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2267752"></A>0x32</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2267754"></A>The socket bandwidth is in conflict with the connection type requirements.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3611367"></A>0x39</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3611369"></A>Parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/QoSPacketCreate/SocketHandleIN" CLASS="XRef">SocketHandleIn</A></EM>
+ or <EM CLASS="Computer">
+<A HREF="#50495582_INIC/QoSPacketCreate/SocketHandleOUT" CLASS="XRef">SocketHandleOut</A> </EM>
+indicates a resource that does not exist or the resource at the index does not match the specified resource type.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2267760"></A>0xF0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2267765"></A>Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2267772"></A><A HREF="#50495582_ErrorClass/0x04" CLASS="XRef">0x04</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2267774"></A>0x40</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2267779"></A>Parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/QoSPacketCreate/SocketHandleIN" CLASS="XRef">SocketHandleIn</A></EM>
+ or <EM CLASS="Computer">
+<A HREF="#50495582_INIC/QoSPacketCreate/SocketHandleOUT" CLASS="XRef">SocketHandleOut</A> </EM>
+indicates a resource that has been rendered invalid and may not be used in a new socket connection.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2267796"></A>0x42</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-2267798"></A>This error can be returned for several reasons: </P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-2267799"></A>- no free slot in the connection table or</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-2267800"></A>- insufficient free routing resources, or</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-2267801"></A>- MediaLB Port and USB Port are used in parallel.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<A NAME="MNSH2-StreamingConnectionFunctions" /><H6 CLASS="Heading2">
+<A NAME="50495582_pgfId-669341"></A>Streaming Connection Functions</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2065510"></A>The functions in this section are used to setup streaming connections for different data types.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2164820"></A>To get more information on streaming connections, refer to <A HREF="#50495580_47728" CLASS="XRef"><EM CLASS="Blue">
+Chapter 19</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2065634"></A>An overview of the streaming connection functions is shown in <A HREF="#50495582_52297" CLASS="XRef"><EM CLASS="Link">
+Table 21-14</EM>
+</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495582_pgfId-2065525"></A>Table 21-14: <A NAME="50495582_52297"></A>Streaming Connection Functions </TableTitle>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2065533"></A>Function Name</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2065535"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2065537"></A>Possible to Notify</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2065539"></A>Page</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="4">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2065541"></A>Sub-Group is A/V Packetized Connection</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2065550"></A>AVPacketizedCreate()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2065552"></A>0x861</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2065554"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2065559"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_50507" CLASS="XRef">AVPacketizedCreate (0x861)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="4">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2065561"></A>Sub-Group is Synchronous Connection</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2065569"></A>SyncCreate()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2065571"></A>0x871</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2065573"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2065578"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_43917" CLASS="XRef">SyncCreate (0x871)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2065591"></A>SyncMute()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2065593"></A>0x873</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2065595"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2065600"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_30760" CLASS="XRef">SyncMute (0x873)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2065602"></A>SyncDemute()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2065604"></A>0x874</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2065606"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2065611"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_71528" CLASS="XRef">SyncDemute (0x874)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2115910"></A>DiscFramePhaseCreate()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2115912"></A>0x881</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2115914"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2115916"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_51348" CLASS="XRef">DiscFramePhaseCreate (0x881)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2065613"></A>CombinerCreate()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2065615"></A>0x901</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2065617"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2065622"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_65735" CLASS="XRef">CombinerCreate (0x901)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2065624"></A>SplitterCreate()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2065626"></A>0x911</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2065628"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2065633"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_73437" CLASS="XRef">SplitterCreate (0x911)</A></EM>
+</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2065635"></A>&nbsp;</P>
+<DIV>
+<A NAME="MNSH3-AVPacketizedCreate861" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-669464"></A><A NAME="50495582_50507"></A>AVPacketizedCreate <A NAME="50495582_marker-669462"></A>(0x861)<A NAME="50495582_marker-669463"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-669508"></A>This function creates an A/V Packetized Isochronous Streaming data connection.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-865061"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-865063"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-865065"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-865067"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-865069"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-865070"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-865072"></A>AVPacketizedCreate</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-865073"></A>(0x861)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-865075"></A>StartResult (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-865077"></A><A HREF="#50495582_INIC/AVPCreate/SocketHandleIn" CLASS="XRef">SocketHandleIn</A>, <BR>
+<A HREF="#50495582_INIC/AVPCreate/SocketHandleOut" CLASS="XRef">SocketHandleOut</A>, <BR>
+<A HREF="#50495582_INIC/AVPCreate/IsocPacketSize" CLASS="XRef">IsocPacketSize</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-865083"></A>Result (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-865085"></A><A HREF="#50495582_INIC/AVPCreate/AVPHandle" CLASS="XRef">AVPHandle</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-865091"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-865093"></A><A HREF="#50495582_INIC/AVPCreate/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-669535"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/AVPCreate/SenderHandle"></A><A NAME="50495582_INIC/AVPCreate/SocketHandleIn"></A>SocketHandleIn<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-669560"></A>The ID number of the opened socket that is the starting point of the link. Must be a socket of type <EM CLASS="Code">
+Input</EM>
+. Valid value is a combination of resource identifier and index (yy). </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331530"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331532"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331534"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331536"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331538"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3331540"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3331542"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3331547"></A>MediaLB socket: 0x0B<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3331549"></A>1</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3331551"></A>None</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3331560"></A>USB socket: 0x13<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3331573"></A>MOST socket: 0x0E<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-669561"></A><A NAME="50495582_INIC/AVPCreate/SocketHandleOut"></A>SocketHandleOut<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-669586"></A>The ID number of the opened socket that is the ending point of the link. Must be a socket of type <EM CLASS="Code">
+Output</EM>
+. Valid value is a combination of resource identifier and index (yy). </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331585"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331587"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331589"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331591"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331593"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3331595"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3331597"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3331602"></A>MediaLB socket: 0x0B<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3331604"></A>1</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3331606"></A>None</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3331615"></A>USB socket: 0x13<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3331628"></A>MOST socket: 0x0E<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-669588"></A><A NAME="50495582_INIC/AVPCreate/IsocPacketSize"></A>IsocPacketSize<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-669650"></A>Specifies the size of data packets that are to be transported over the isochronous channel</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-967102"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-967104"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-967106"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-967108"></A>Description</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-967110"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-967112"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="6">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-967114"></A><EM CLASS="Bold">
+DataType = AVPacketized</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-967126"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-967128"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-967130"></A>188</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-967132"></A>Standard MPEG2 Transport Stream packet size, no encryption</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-967134"></A>-</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-967136"></A>Byte</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-967142"></A>196</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-967144"></A>DTCP Supplement B, DTCP over MOST</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-967154"></A>206</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-967156"></A>DTCP Supplement E, DTCP over IP</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-669651"></A><A NAME="50495582_INIC/AVPCreate/AVPHandle"></A>AVPHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-669655"></A>Resource handle of the A/V Packetized Isochronous Streaming connection. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-669658"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-669660"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-669662"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-669664"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-669666"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-669668"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-669670"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-669672"></A>0x04<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-669674"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-669676"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-669790"></A><A NAME="50495582_INIC/AVPCreate/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841440"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841442"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841450"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841452"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841454"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="7" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-865185"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="5" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-865190"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1042963"></A>0x30</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3129205"></A>Parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/AVPCreate/SocketHandleIn" CLASS="XRef">SocketHandleIn</A></EM>
+ is invalid. This error can be returned for several reasons: <BR>
+- the socket is not of direction <EM CLASS="Computer">
+Input</EM>
+, or </P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-3610089"></A>- the socket is already used in a connection, or</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1042968"></A>- the socket is of the wrong data type.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1042970"></A>0x31</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1042972"></A>Parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/AVPCreate/SocketHandleOut" CLASS="XRef">SocketHandleOut</A></EM>
+ is invalid. This error can be returned for several reasons:<BR>
+- the direction of the socket is not <EM CLASS="Computer">
+Output</EM>
+, or</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-3610134"></A>- the socket is of the wrong data type, or</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-3746499"></A>- the socket is already used in a connection, or</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-1042976"></A>- both sockets are network sockets or peripheral sockets. In this case parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/AVPCreate/SocketHandleOut" CLASS="XRef">SocketHandleOut</A></EM>
+ will be in conflict with parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/AVPCreate/SocketHandleIn" CLASS="XRef">SocketHandleIn</A></EM>
+.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1042978"></A>0x32</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1042980"></A>The socket bandwidth is in conflict with the connection type requirements.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3610155"></A>0x39</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3610157"></A>Parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/AVPCreate/SocketHandleIn" CLASS="XRef">SocketHandleIn</A></EM>
+ or <EM CLASS="Computer">
+<A HREF="#50495582_INIC/AVPCreate/SocketHandleOut" CLASS="XRef">SocketHandleOut</A></EM>
+ indicates a resource that does not exist or the resource at the index does not match the specified resource type.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-865216"></A>0xF0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-865221"></A>Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1043245"></A><A HREF="#50495582_ErrorClass/0x04" CLASS="XRef">0x04</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1043247"></A>0x40</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1043249"></A>Parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/AVPCreate/SocketHandleIn" CLASS="XRef">SocketHandleIn</A></EM>
+ or <EM CLASS="Computer">
+<A HREF="#50495582_INIC/AVPCreate/SocketHandleOut" CLASS="XRef">SocketHandleOut</A></EM>
+ indicates a resource that has been rendered invalid and may not be used in a new socket connection.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1433908"></A>0x42</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1433910"></A>No free slot in the connection table or insufficient free routing resources.</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH3-SyncCreate871" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-669794"></A><A NAME="50495582_43917"></A>SyncCreate <A NAME="50495582_marker-669792"></A>(0x871)<A NAME="50495582_marker-669793"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1258365"></A>This function creates a synchronous data connection between sockets, sockets and combiners as well as sockets and splitters. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495582_pgfId-1258368"></A>Note: Before a new socket connection is created, ensure that the socket is not already used in a socket connection or with a splitter or combiner. </Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1258409"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495582_pgfId-1258415"></A>Note: It is not possible to connect a splitter with a combiner. </Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1258404"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1258371"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1258373"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1258375"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1258377"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1258379"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1258380"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1258382"></A>SyncCreate</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1258383"></A>(0x871)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1258385"></A>StartResult (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1258387"></A><A HREF="#50495582_INIC/SyncCreate/SocketHandleIn" CLASS="XRef">SocketHandleIn</A>, <BR>
+<A HREF="#50495582_INIC/SyncCreate/SocketHandleOut" CLASS="XRef">SocketHandleOut</A>, <BR>
+<A HREF="#50495582_INIC/SyncCreate/DefaultMute" CLASS="XRef">DefaultMute</A>, <A HREF="#50495582_INIC/SyncCreate/MuteMode" CLASS="XRef">MuteMode</A>, <BR>
+<A HREF="#50495582_INIC/SyncCreate/Offset" CLASS="XRef">Offset</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1258393"></A>Result (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1258395"></A><A HREF="#50495582_INIC/SyncCreate/SyncHandle" CLASS="XRef">SyncHandle</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1258401"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1258403"></A><A HREF="#50495582_INIC/SyncCreate/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-669893"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/SyncCreate/SocketHandleIn"></A>SocketHandleIn<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1426634"></A>The ID number of the opened socket or splitter object that is the starting point of the link. Must be a socket of type <EM CLASS="Computer">
+Input</EM>
+. Valid value is a combination of resource identifier and index (yy). </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331640"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331642"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331644"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331646"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331648"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="5" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3331650"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="5" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3331652"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3331657"></A>Streaming socket: 0x17<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="5" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3331659"></A>1</P>
+</TD>
+<TD ROWSPAN="5" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3331661"></A>None</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3331670"></A>MediaLB socket: 0x0B<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3331683"></A>USB socket: 0x13<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3331696"></A>MOST socket: 0x0E<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3331709"></A>Splitter: 0x08<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1426706"></A><A NAME="50495582_INIC/SyncCreate/SocketHandleOut"></A>SocketHandleOut<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1243731"></A>The ID number of the opened socket or combiner object that is the ending point of the link. Must be a socket of type <EM CLASS="Computer">
+Output</EM>
+. Valid value is a combination of resource identifier and index (yy). </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331721"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331723"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331725"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331727"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331729"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="5" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3331731"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="5" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3331733"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3331738"></A>Streaming socket: 0x17<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="5" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3331740"></A>1</P>
+</TD>
+<TD ROWSPAN="5" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3331742"></A>None</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3331751"></A>MediaLB socket: 0x0B<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3331764"></A>USB socket: 0x13<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3331777"></A>MOST socket: 0x0E<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3331790"></A>Combiner: 0x07<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-669866"></A><A NAME="50495582_INIC/SyncCreate/DefaultMute"></A>DefaultMute<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-669892"></A>Specifies if the connection is muted by default</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-669869"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-669871"></A>Bit #</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-669873"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-669875"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-669877"></A>Boolean</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-669879"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-669881"></A>False (0)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-669883"></A>Connection is not muted by default.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-669889"></A>True (1)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-669891"></A>Connection is muted by default.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-669971"></A><A NAME="50495582_INIC/SyncCreate/MuteMode"></A>MuteMode<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-670005"></A>Configures how the resource monitor shall handle events that may make the streamed data invalid.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-669974"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-669976"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-669978"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-669980"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-669982"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-669984"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-669986"></A><EM CLASS="Computer">
+NoMuting</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-669988"></A>No mute monitoring</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-669992"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-669994"></A><EM CLASS="Computer">
+MuteSignal</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-669996"></A>The <EM CLASS="Pin-Name">
+MUTE</EM>
+ pin will be asserted if any registered connection may stream corrupted data.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-670000"></A>0x02</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-670002"></A><EM CLASS="Computer">
+AutoMute</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-670004"></A>The INIC will route zeros during conditions that may corrupt the streamed data.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1240928"></A><A NAME="50495582_INIC/SyncCreate/Offset"></A>Offset<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1240929"></A>Specifies the offset from where the socket data should be routed from a splitter; it also specifies the offset to where socket data should be routed to a combiner.<BR>
+When a standard socket connection is to be created, the offset must be sent as 0. This applies also for connections between a socket and a splitter based on a MOST socket.<BR>
+For all other combinations the valid range of the offset applies.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1240932"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1240934"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1240936"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1240938"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1240940"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1240942"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1240944"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1240946"></A>0...383</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1240948"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1240950"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1526866"></A><A NAME="50495582_INIC/SyncCreate/SyncHandle"></A>SyncHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1526867"></A>Resource handle of the synchronous connection. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1526870"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1526872"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1526874"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1526876"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1526878"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1526880"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1526882"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1526887"></A>0x02<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1526889"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1526891"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-670091"></A><A NAME="50495582_INIC/SyncCreate/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3281391"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3281393"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3281401"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3281403"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3281405"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3281410"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3281415"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3281417"></A>0x30</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3281422"></A>Parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/SyncCreate/SocketHandleIn" CLASS="XRef">SocketHandleIn</A></EM>
+ is invalid. This error can be returned for several reasons: </P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3281423"></A>- the socket is not of direction <EM CLASS="Computer">
+Input</EM>
+, or</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3281424"></A>- the socket is not of data type <EM CLASS="Computer">
+Sync</EM>
+, or</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3281425"></A>- the socket is a loop socket, or</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-3281426"></A>- the socket is already used in a connection or with a splitter, or </P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-3281427"></A>- the socket was requested to be connected with a combiner, but is not a MOST socket.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="8" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3737071"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="6" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3737076"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3281433"></A>0x31</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3281438"></A>Parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/SyncCreate/SocketHandleOut" CLASS="XRef">SocketHandleOut</A></EM>
+ is invalid. This error can be returned for several reasons:</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3281439"></A>- the socket is not of direction <EM CLASS="Computer">
+Output</EM>
+, or</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3281440"></A>- the socket is not of data type <EM CLASS="Computer">
+Sync</EM>
+, or</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-3281441"></A>- the socket is already used in a connection or with a combiner, or </P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-3281442"></A>- the socket was requested to be connected with another socket, but both are MOST sockets, or both are peripheral sockets, which are invalid combinations, or</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-3281443"></A>- the socket is tried to be connected with a splitter and both the socket and the splitter&#8217;s socket are created on peripheral ports (either the same or different ports), or</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-3281444"></A>- both the socket and the splitter&#8217;s socket are MOST sockets.</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3281445"></A>&nbsp;</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3281446"></A>If the resource is a combiner, then the following can happen in addition:</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-3281447"></A>- a combiner was tried to be connected to a splitter.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3281453"></A>0x32</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3281455"></A>The bandwidth of the resources is in conflict with the connection type requirements. When connecting two sockets, the bandwidth must be equal. When connecting a splitter/combiner, the size of the socket being connected, considering the offset, must fit inside the splitter/combiner. </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3281461"></A>0x33</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3281466"></A>The <EM CLASS="Computer">
+<A HREF="#50495582_INIC/SyncCreate/Offset" CLASS="XRef">Offset</A></EM>
+ value of the connection variant is invalid, due to several reasons:</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-3281467"></A>- for a standard socket connection, the <EM CLASS="Computer">
+Offset</EM>
+ must be 0.</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-3281468"></A>- for a connection between a socket and a splitter (based on a MOST socket) the <EM CLASS="Computer">
+Offset</EM>
+ must be set to 0.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3281474"></A>0x34</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3281482"></A>Parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/SyncCreate/DefaultMute" CLASS="XRef">DefaultMute</A></EM>
+ or <EM CLASS="Blue">
+<A HREF="#50495582_INIC/SyncCreate/MuteMode" CLASS="XRef">MuteMode</A></EM>
+ is invalid; the connection does not support muting or parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/SyncCreate/MuteMode" CLASS="XRef">MuteMode</A></EM>
+ is <EM CLASS="Computer">
+MuteSignal</EM>
+, but there is no <EM CLASS="Computer">
+MuteSignal</EM>
+ available, since the <EM CLASS="Pin-Name">
+MUTE</EM>
+ pin has not been enabled.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3281488"></A>0x39</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3281493"></A>Parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/SyncCreate/SocketHandleIn" CLASS="XRef">SocketHandleIn</A></EM>
+ or <EM CLASS="Computer">
+<A HREF="#50495582_INIC/SyncCreate/SocketHandleOut" CLASS="XRef">SocketHandleOut</A></EM>
+ indicates a resource that does not exist or the resource at the index does not match the specified resource type.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3281510"></A>0xF0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3281512"></A>Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3281519"></A><A HREF="#50495582_ErrorClass/0x04" CLASS="XRef">0x04</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3281521"></A>0x40</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3281526"></A>Parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/SyncCreate/SocketHandleIn" CLASS="XRef">SocketHandleIn</A></EM>
+ or <EM CLASS="Computer">
+<A HREF="#50495582_INIC/SyncCreate/SocketHandleOut" CLASS="XRef">SocketHandleOut</A></EM>
+ indicates a resource that has been rendered invalid and may not be used in a new connection.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3281549"></A>0x42</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3333141"></A>No free slot in the connection table or insufficient free routing resources.<BR>
+Note: This error code may be returned when creating a <EM CLASS="Computer">
+Sync</EM>
+ connection between a USB socket and a MOST network socket or a Splitter based on a MOST network socket. Parameter <EM CLASS="Blue">
+<A HREF="#50495582_INIC/USBSocketCreate/FramesPerTransaction" CLASS="XRef">FramesPerTransaction</A></EM>
+ and the MOST socket bandwidth exceeded the allowed value of 512 bytes.</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH3-SyncMute873" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-1173894"></A><A NAME="50495582_30760"></A>SyncMute <A NAME="50495582_marker-1173892"></A>(0x873)<A NAME="50495582_marker-1173893"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1173930"></A>This function manually mutes a synchronous data connection.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1173897"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1173899"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1173901"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1173903"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1173905"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1173906"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1173908"></A>SyncMute</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1173909"></A>(0x873)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1173911"></A>StartResult (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1173913"></A><A HREF="#50495582_INIC/SyncMute/SyncHandle" CLASS="XRef">SyncHandle</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1173919"></A>Result (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1173921"></A>-</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1173927"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1173929"></A><A HREF="#50495582_INIC/SyncMute/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-1431041"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/SyncMute/SyncHandle"></A>SyncHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1818337"></A>Resource handle of the synchronous connection. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1818340"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1818342"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1818344"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1818346"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1818348"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1818350"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1818352"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1818357"></A>0x02<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1818359"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1818361"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1818419"></A><A NAME="50495582_INIC/SyncMute/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841504"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841506"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841514"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841516"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841518"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1871701"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1871706"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1818402"></A>0x31</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1818407"></A>The resource indicated by <EM CLASS="Computer">
+<A HREF="#50495582_INIC/SyncMute/SyncHandle" CLASS="XRef">SyncHandle</A></EM>
+ does not support muting.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1818413"></A>0x39</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1818418"></A>Parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/SyncMute/SyncHandle" CLASS="XRef">SyncHandle</A></EM>
+ is invalid. The handle indicates a resource that does not exist.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1871669"></A>0xF0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1871674"></A>Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH3-SyncDemute874" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-1818423"></A><A NAME="50495582_71528"></A>SyncDemute <A NAME="50495582_marker-1818421"></A>(0x874)<A NAME="50495582_marker-1818422"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1170343"></A>This function manually de-mutes a synchronous data connection.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1170310"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1170312"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1170314"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1170316"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1170318"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1170319"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1170321"></A>SyncDemute</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1170322"></A>(0x874)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1170324"></A>StartResult (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1170326"></A><A HREF="#50495582_INIC/SyncDemute/SyncHandle" CLASS="XRef">SyncHandle</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1170332"></A>Result (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1170334"></A>-</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1170340"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1170342"></A><A HREF="#50495582_INIC/SyncDemute/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-1170370"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/SyncDemute/SyncHandle"></A>SyncHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1170395"></A>Resource handle of the synchronous connection. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1170376"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1170378"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1170380"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1170382"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1170384"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1170386"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1170388"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1170390"></A>0x02<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1170392"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1170394"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-2116548"></A><A NAME="50495582_INIC/SyncDemute/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841536"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841538"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841546"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841548"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841550"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2116521"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2116526"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2116528"></A>0x39</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2116533"></A>Parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/SyncDemute/SyncHandle" CLASS="XRef">SyncHandle</A></EM>
+ is invalid. The handle indicates a resource that does not exist.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2116542"></A>0xF0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2116547"></A>Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH3-DiscFramePhaseCreate881" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-2116060"></A><A NAME="50495582_51348"></A>DiscFramePhaseCreate <A NAME="50495582_marker-2116058"></A>(0x881)<A NAME="50495582_marker-2116059"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2116064"></A>This function creates a DiscreteFrame Isochronous Streaming phase connection.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2116806"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2116808"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2116810"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2116812"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2116814"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2116815"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2116817"></A>DiscFramePhase-<BR>
+Create</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2116818"></A>(0x881)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2116820"></A>StartResult (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2116827"></A><A HREF="#50495582_INIC/DiscFramePhaseCreate/SocketHandleIn" CLASS="XRef">SocketHandleIn</A>, <BR>
+<A HREF="#50495582_INIC/DiscFramePhaseCreate/SocketHandleOut" CLASS="XRef">SocketHandleOut</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2116840"></A>Result (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2116845"></A><A HREF="#50495582_INIC/DiscFramePhaseCreate/DiscFramePhaseHandle" CLASS="XRef">DiscFramePhaseHandle</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2116854"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2116861"></A><A HREF="#50495582_INIC/DiscFramePhaseCreate/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-2116153"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/DiscFramePhaseCreate/SocketHandleIn"></A>SocketHandleIn<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2116935"></A>Resource handle of the DiscreteFrame Isochronous Streaming phase socket. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2116938"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2116940"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2116942"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2116944"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2116946"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2116948"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2116950"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2117016"></A>MediaLB socket: 0x0B<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2116957"></A>1</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2116959"></A>None</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2117021"></A>MOST socket: 0x0E<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-2116770"></A><A NAME="50495582_INIC/DiscFramePhaseCreate/SocketHandleOut"></A>SocketHandleOut<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2116154"></A>Resource handle of the DiscreteFrame Isochronous Streaming phase socket. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2117029"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2117031"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2117033"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2117035"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2117037"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2117039"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2117041"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2117046"></A>MediaLB socket: 0x0B<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2117048"></A>1</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2117050"></A>None</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2117059"></A>MOST socket: 0x0E<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-2250930"></A><A NAME="50495582_INIC/DiscFramePhaseCreate/DiscFramePhaseHandle"></A>DiscFramePhaseHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2250931"></A>Resource handle of the DiscreteFrame Isochronous Streaming phase connection. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2250934"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2250936"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2250938"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2250940"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2250942"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2250944"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2250946"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2250951"></A>0x09<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2250953"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2250955"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-2250700"></A><A NAME="50495582_INIC/DiscFramePhaseCreate/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841568"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841570"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841578"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841580"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841582"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2250579"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2250584"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2250586"></A>0x30</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2250591"></A>Parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/DiscFramePhaseCreate/SocketHandleIn" CLASS="XRef">SocketHandleIn</A></EM>
+ is invalid. This error can be returned for several reasons: <BR>
+- the socket is not of direction <EM CLASS="Computer">
+Input</EM>
+, or </P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3610276"></A>- the socket is already used in a connection, or</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2250592"></A>- the socket is of the wrong data type.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2250598"></A>0x31</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2250603"></A>Parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/DiscFramePhaseCreate/SocketHandleOut" CLASS="XRef">SocketHandleOut</A></EM>
+ is invalid. This error can be returned for several reasons:<BR>
+- the direction of the socket is not <EM CLASS="Computer">
+Output</EM>
+, or</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-2250604"></A>- the socket is of the wrong data type, or </P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-3610295"></A>- the socket is already used in a connection, or</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-2250605"></A>- both sockets are network sockets or peripheral sockets. In this case parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/DiscFramePhaseCreate/SocketHandleOut" CLASS="XRef">SocketHandleOut</A></EM>
+ will be in conflict with parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/DiscFramePhaseCreate/SocketHandleIn" CLASS="XRef">SocketHandleIn</A></EM>
+.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3737119"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3737124"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3610313"></A>0x39</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3610315"></A>Parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/DiscFramePhaseCreate/SocketHandleIn" CLASS="XRef">SocketHandleIn</A></EM>
+ or <EM CLASS="Computer">
+<A HREF="#50495582_INIC/DiscFramePhaseCreate/SocketHandleOut" CLASS="XRef">SocketHandleOut</A> </EM>
+indicates a resource that does not exist or the resource at the index does not match the specified resource type.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2250639"></A>0xF0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2250644"></A>Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2250651"></A><A HREF="#50495582_ErrorClass/0x04" CLASS="XRef">0x04</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2250653"></A>0x40</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2250658"></A>Parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/DiscFramePhaseCreate/SocketHandleIn" CLASS="XRef">SocketHandleIn</A></EM>
+ or <EM CLASS="Computer">
+<A HREF="#50495582_INIC/DiscFramePhaseCreate/SocketHandleOut" CLASS="XRef">SocketHandleOut</A> </EM>
+indicates a resource that has been rendered invalid and may not be used in a new socket connection.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2250675"></A>0x42</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2250677"></A>No free slot in the connection table or insufficient free routing resources.</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH3-CombinerCreate901" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-1237745"></A><A NAME="50495582_65735"></A>CombinerCreate <A NAME="50495582_marker-1237743"></A>(0x901)<A NAME="50495582_marker-1237744"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1237820"></A>This function creates a combiner for a synchronous data connection.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495582_pgfId-1258605"></A>Note: Before a combiner is created, ensure that the socket is not already used in a socket connection or with a combiner. </Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1258596"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1237787"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1237789"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1237791"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1237793"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1237795"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1237796"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1237798"></A>CombinerCreate</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1237799"></A>(0x901)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1237801"></A>StartResult (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1237803"></A><A HREF="#50495582_INIC/CombinerCreate/SocketHandleOut" CLASS="XRef">SocketHandleOut</A>, <BR>
+<A HREF="#50495582_INIC/CombinerCreate/MOSTPortHandle" CLASS="XRef">MOSTPortHandle</A>, <BR>
+<A HREF="#50495582_INIC/CombinerCreate/BytesPerFrame" CLASS="XRef">BytesPerFrame</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1237809"></A>Result (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1237811"></A><A HREF="#50495582_INIC/CombinerCreate/CombinerHandle" CLASS="XRef">CombinerHandle</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1237817"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1237819"></A><A HREF="#50495582_INIC/CombinerCreate/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-1310622"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/CombinerCreate/SocketHandleOut"></A>SocketHandleOut<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3332021"></A>Resource handle of the synchronous socket. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331973"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331975"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331977"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331979"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3331981"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3331983"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3331985"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3331990"></A>Streaming socket: 0x17<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3331992"></A>1</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3331994"></A>None</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3332003"></A>MediaLB socket: 0x0B<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3332016"></A>USB socket: 0x13<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1350923"></A><A NAME="50495582_INIC/CombinerCreate/MOSTPortHandle"></A>MOSTPortHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1350948"></A>Port resource handle. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1350929"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1350931"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1350933"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1350935"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1350937"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1350939"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1350941"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1350943"></A>0x0D<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1350945"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1350947"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1238034"></A><A NAME="50495582_INIC/CombinerCreate/BytesPerFrame"></A>BytesPerFrame<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1237872"></A>Specifies the total number of data bytes to be transferred each MOST network frame </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1239896"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1239898"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1239900"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1239902"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1239904"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1239906"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1239908"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1239910"></A>1...384</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1239912"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1239914"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1239874"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495582_pgfId-1239564"></A>Note: While creating a combiner with a Streaming or MediaLB socket, this parameter equals the socket bandwidth.<BR>
+Additionally, for the MediaLB use case the contents of the padded bytes are not guaranteed.</Note: >
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1239950"></A><A NAME="50495582_INIC/CombinerCreate/CombinerHandle"></A>CombinerHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1241692"></A>Resource handle of the combiner. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1241673"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1241675"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1241677"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1241679"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1241681"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1241683"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1241685"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1241687"></A>0x07<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1241689"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1241691"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1352303"></A><A NAME="50495582_INIC/CombinerCreate/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4376567"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4376569"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4376577"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4376579"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4376581"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="5" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4376586"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4376591"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4376593"></A>0x30</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4376598"></A>Parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/CombinerCreate/SocketHandleOut" CLASS="XRef">SocketHandleOut</A></EM>
+ is invalid. This error</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4376599"></A> can be returned for several reasons:</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-4376600"></A>- the socket is not of direction <EM CLASS="Computer">
+Output</EM>
+, or</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-4376601"></A>- the socket is not of data type <EM CLASS="Computer">
+Sync</EM>
+, or</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-4376602"></A>- the socket is already used in a connection or with another combiner. </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4376608"></A>0x32</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4376613"></A>Parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/CombinerCreate/BytesPerFrame" CLASS="XRef">BytesPerFrame</A></EM>
+ conflicts with the size of the socket indicated by parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/CombinerCreate/SocketHandleOut" CLASS="XRef">SocketHandleOut</A></EM>
+.<BR>
+Can be only returned if <EM CLASS="Computer">
+<A HREF="#50495582_INIC/CombinerCreate/SocketHandleOut" CLASS="XRef">SocketHandleOut</A></EM>
+ indicates a Streaming Port or MediaLB socket.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4376625"></A>0x39</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4376630"></A>Parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/CombinerCreate/SocketHandleOut" CLASS="XRef">SocketHandleOut</A></EM>
+ indicates a resource that does not exist or the resource at the index does not match the specified resource type.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4376636"></A>0xF0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4376640"></A>Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4376659"></A><A HREF="#50495582_ErrorClass/0x04" CLASS="XRef">0x04</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4376661"></A>0x42</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4376663"></A>No free slot in the combiner table or insufficient free routing resources.<BR>
+Note: This error code may be returned when creating a combiner based on a USB socket. Parameters <EM CLASS="Blue">
+<A HREF="#50495582_INIC/USBSocketCreate/FramesPerTransaction" CLASS="XRef">FramesPerTransaction</A></EM>
+ and <EM CLASS="Blue">
+<A HREF="#50495582_INIC/CombinerCreate/BytesPerFrame" CLASS="XRef">BytesPerFrame</A></EM>
+ exceeded the allowed value of 512 bytes. See <A HREF="#50495571_25408" CLASS="XRef">Padding in Synchronous Bulk Transactions</A> for more information.</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH3-SplitterCreate911" /><H6 CLASS="Heading3">
+<A NAME="50495582_pgfId-1241743"></A><EM CLASS="Underline">
+</EM>
+<A NAME="50495582_73437"></A>SplitterCreate <A NAME="50495582_marker-1241741"></A>(0x911)<A NAME="50495582_marker-1241742"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1241779"></A>This function creates a splitter for a synchronous data connection.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495582_pgfId-1258659"></A>Note: Before a splitter is created, ensure that the socket is not already used in a socket connection or with a splitter. </Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1258653"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1241746"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1241748"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1241750"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1241752"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1241754"></A>INIC</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1241755"></A>(0x00)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1241757"></A>SplitterCreate</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1241758"></A>(0x911)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1241760"></A>StartResult (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1241762"></A><A HREF="#50495582_INIC/SplitterCreate/SocketHandleIn" CLASS="XRef">SocketHandleIn</A>, <BR>
+<A HREF="#50495582_INIC/SplitterCreate/MOSTPortHandle" CLASS="XRef">MOSTPortHandle</A>, <BR>
+<A HREF="#50495582_INIC/SplitterCreate/BytesPerFrame" CLASS="XRef">BytesPerFrame</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1241768"></A>Result (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1241770"></A><A HREF="#50495582_INIC/SplitterCreate/SplitterHandle" CLASS="XRef">SplitterHandle</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1241776"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1241778"></A><A HREF="#50495582_INIC/SplitterCreate/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-1241806"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_INIC/SplitterCreate/SocketHandleIn"></A>SocketHandleIn<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3332127"></A>Resource handle of the synchronous socket. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3332066"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3332068"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3332070"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3332072"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3332074"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3332076"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3332078"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3332083"></A>Streaming socket: 0x17<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3332085"></A>1</P>
+</TD>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3332087"></A>None</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3332096"></A>MediaLB socket: 0x0B<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3332109"></A>USB socket: 0x13<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3332122"></A>MOST socket: 0x0E<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1351017"></A><A NAME="50495582_INIC/SplitterCreate/MOSTPortHandle"></A>MOSTPortHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1433293"></A>Port resource handle. When the splitter is created with a MOST socket, the socket must be created on the same port indicated by this handle. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1433296"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1433298"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1433300"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1433302"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1433304"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1433306"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1433308"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1433313"></A>0x0D<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1433315"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1433317"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1433318"></A><A NAME="50495582_INIC/SplitterCreate/BytesPerFrame"></A>BytesPerFrame<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1241936"></A>Specifies the total number of data bytes to be transferred each MOST network frame</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1241917"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1241919"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1241921"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1241923"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1241925"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1241927"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1241929"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1241931"></A>1...384</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1241933"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1241935"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1297799"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495582_pgfId-1297805"></A>Note: While creating a splitter with a Streaming, MediaLB, or MOST socket, this parameter equals the socket bandwidth.<BR>
+Additionally, for the MediaLB use case the contents of the padded bytes are not guaranteed.</Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1241940"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1241941"></A><A NAME="50495582_INIC/SplitterCreate/SplitterHandle"></A>SplitterHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1241966"></A>Resource handle of the splitter. Valid value is a combination of resource identifier and index (yy).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1241947"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1241949"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1241951"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1241953"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1241955"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1241957"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1241959"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1241961"></A>0x08<A HREF="#50495567_Index" CLASS="XRef"><EM CLASS="Blue">
+yy</EM>
+</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1241963"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1241965"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1872498"></A><A NAME="50495582_INIC/SplitterCreate/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841664"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841666"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841674"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841676"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2841678"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="6" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1872420"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1872425"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1872427"></A>0x30</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-3078778"></A>Parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/SplitterCreate/SocketHandleIn" CLASS="XRef">SocketHandleIn</A></EM>
+ is invalid. This error</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-3078779"></A>can be returned for several reasons:</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-1872434"></A>- the socket is not of direction <EM CLASS="Computer">
+Input</EM>
+, or</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-1872435"></A>- the socket is not of data type <EM CLASS="Computer">
+Sync</EM>
+, or</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-2117646"></A>- the socket is a loop socket, or</P>
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-1872436"></A>- the socket is already used in a connection or with another splitter. </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1872442"></A>0x32</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1872447"></A>Parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/SplitterCreate/BytesPerFrame" CLASS="XRef">BytesPerFrame</A></EM>
+ conflicts with the size of the socket indicated by parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/SplitterCreate/SocketHandleIn" CLASS="XRef">SocketHandleIn</A></EM>
+.<BR>
+Can be only returned if <EM CLASS="Computer">
+<A HREF="#50495582_INIC/SplitterCreate/SocketHandleIn" CLASS="XRef">SocketHandleIn</A></EM>
+ indicates a Streaming, MediaLB, or MOST socket.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3611861"></A>0x39</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3611866"></A>Parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/SplitterCreate/SocketHandleIn" CLASS="XRef">SocketHandleIn</A></EM>
+ indicates a resource that does not exist or the resource at the index does not match the specified resource type.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1872459"></A>0xF0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1872464"></A>Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1872471"></A><A HREF="#50495582_ErrorClass/0x04" CLASS="XRef">0x04</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1872473"></A>0x40</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1872478"></A>Parameter <EM CLASS="Computer">
+<A HREF="#50495582_INIC/SplitterCreate/SocketHandleIn" CLASS="XRef">SocketHandleIn</A></EM>
+ indicates a resource that has been rendered invalid and may not be used in a new splitter.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1872484"></A>0x42</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3308409"></A>No free slot in the splitter table or insufficient free routing resources.<BR>
+Note: This error code may be returned when creating a splitter based on a USB socket. Parameters <EM CLASS="Blue">
+<A HREF="#50495582_INIC/USBSocketCreate/FramesPerTransaction" CLASS="XRef">FramesPerTransaction</A></EM>
+ and <EM CLASS="Blue">
+<A HREF="#50495582_INIC/CombinerCreate/BytesPerFrame" CLASS="XRef">BytesPerFrame</A></EM>
+ exceeded the allowed value of 512 bytes. See <A HREF="#50495571_25408" CLASS="XRef">Padding in Synchronous Bulk Transactions</A> for more information.</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1872532"></A><EM CLASS="Underline">
+</EM>
+&nbsp;</P>
+</DIV>
+</DIV>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495582_pgfId-1963027"></A><A NAME="50495582_74232"></A>FBlock DebugMessages</H3>
+<DIV>
+<A NAME="MNSH2-NICDebugMessage001" /><H6 CLASS="Heading2">
+<A NAME="50495582_pgfId-1963030"></A><A NAME="50495582_69004"></A>NIC_DebugMessage <A NAME="50495582_marker-1963029"></A>(0x001)<A NAME="50495582_marker-1963072"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1963031"></A>This function provides debug events which are generated by the INIC and sent to the MOST network. For more information refer to <A HREF="#50495609_47728" CLASS="XRef">Diagnosis</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1963037"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1963039"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1963041"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1963043"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1963045"></A>DebugMessages<BR>
+(0x09)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1963047"></A>NIC_DebugMessage<BR>
+(0x001)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1963049"></A>Status (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1963057"></A><A HREF="#50495582_DebugMessage/NIC_DebugMessage/DebugLevel" CLASS="XRef">DebugLevel</A>, <A HREF="#50495582_DebugMessage/NIC_DebugMessage/TimeStamp" CLASS="XRef">TimeStamp</A>, <A HREF="#50495582_DebugMessage/NIC_DebugMessage/CaseIdentifier" CLASS="XRef">CaseIdentifier</A>, <BR>
+<A HREF="#50495582_DebugMessage/NIC_DebugMessage/CaseSpecificValues" CLASS="XRef">CaseSpecificValues</A></P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-1876108"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_DebugMessage/NIC_DebugMessage/DebugLevel"></A>DebugLevel<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1876667"></A>Determines the debug level of the debug event</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1876644"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1876646"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1876648"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1876650"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1876652"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1876654"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1876656"></A><EM CLASS="Computer">
+DebugLevelError</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1876658"></A>Debug level is Error</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1876662"></A>0x02</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1876664"></A><EM CLASS="Computer">
+DebugLevelWarning</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1876666"></A>Debug level is Warning</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1877243"></A><A NAME="50495582_DebugMessage/NIC_DebugMessage/TimeStamp"></A>TimeStamp<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1877244"></A><EM CLASS="Computer">
+TimeStamp</EM>
+ always returns 0xFFFFFFFF.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1877262"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1877264"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1877266"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1877268"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1877270"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1877272"></A>Unsigned Long</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1877274"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1877276"></A>0xFFFFFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1877278"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1877280"></A>ms</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1876624"></A><A NAME="50495582_DebugMessage/NIC_DebugMessage/CaseIdentifier"></A>CaseIdentifier<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1876610"></A>16-bit value that identifies the debug event that occurred</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1877329"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1877331"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1877333"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1877335"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1877337"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1877339"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1877341"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1877343"></A>0x0002, 0x0005... 0x0007</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1877345"></A>-</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1877347"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1876124"></A><A NAME="50495582_DebugMessage/NIC_DebugMessage/CaseSpecificValues"></A>CaseSpecificValues<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1877429"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1877431"></A>Number of Elements</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1877433"></A>CaseIdentifier</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1877435"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1877437"></A>Stream</P>
+</TD>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1877439"></A>1...2</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1877441"></A>0x0002</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1877443"></A><A HREF="#50495582_DebugMessage/NIC_DebugMessage/Reset" CLASS="XRef">Reset</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1877449"></A>0x0005</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1877451"></A><A HREF="#50495582_DebugMessage/NIC_DebugMessage/SyncLostICM" CLASS="XRef">SyncLostICM</A>, <A HREF="#50495582_DebugMessage/NIC_DebugMessage/SyncLostRCM" CLASS="XRef">SyncLostRCM</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1877457"></A>0x0006</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1877459"></A><A HREF="#50495582_DebugMessage/NIC_DebugMessage/AutoForcedNATime" CLASS="XRef">AutoForcedNATime</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3709946"></A>0x0007</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3709948"></A><A HREF="#50495582_DebugMessage/NIC_DebugMessage/SyncLostMCM" CLASS="XRef">SyncLostMCM</A></P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1876148"></A><A NAME="50495582_DebugMessage/NIC_DebugMessage/Reset"></A>Reset<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1876149"></A>Debug message is sent if the NetInterface is in Normal Operation state after reset, in case the reset was caused by the appropriate reason.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1877697"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1877699"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1877701"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1877703"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1877705"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1877707"></A>0x02</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1877709"></A><EM CLASS="Computer">
+HWWatchdog</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1877771"></A>Reset due to hardware watchdog that has snapped<BR>
+- <EM CLASS="Computer">
+<A HREF="#50495582_DebugMessage/NIC_DebugMessage/DebugLevel" CLASS="XRef">DebugLevel</A></EM>
+ is Error</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1877731"></A>0x08</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1877733"></A><EM CLASS="Computer">
+StackOverflow</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1877735"></A>Reset due to stack overflow<BR>
+- <EM CLASS="Computer">
+<A HREF="#50495582_DebugMessage/NIC_DebugMessage/DebugLevel" CLASS="XRef">DebugLevel</A></EM>
+ is Error</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1879001"></A><A NAME="50495582_DebugMessage/NIC_DebugMessage/SyncLostICM"></A>SyncLostICM<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1879051"></A>ICM channel synchronization loss due to one of the following conditions:</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1879071"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1879073"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1879075"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1879077"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="5" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1879087"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1879089"></A>0x02</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1879091"></A><EM CLASS="Computer">
+Internal</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1879093"></A>Channel was unsynchronized due to a synchronization loss on the RCM channel.</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3595455"></A>- <EM CLASS="Computer">
+<A HREF="#50495582_DebugMessage/NIC_DebugMessage/DebugLevel" CLASS="XRef">DebugLevel</A></EM>
+ is Error</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3595264"></A>0x03</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3595266"></A><EM CLASS="Computer">
+Command</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3595268"></A>Channel was unsynchronized due to a PMP SYNC or UNSYNC command.<BR>
+- <EM CLASS="Computer">
+<A HREF="#50495582_DebugMessage/NIC_DebugMessage/DebugLevel" CLASS="XRef">DebugLevel</A></EM>
+ is Error</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1879097"></A>0x04</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1879099"></A><EM CLASS="Computer">
+AckTimeOut</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1879101"></A>Acknowledge time of previously transmitted message has expired.<BR>
+- <EM CLASS="Computer">
+<A HREF="#50495582_DebugMessage/NIC_DebugMessage/DebugLevel" CLASS="XRef">DebugLevel</A></EM>
+ is Error</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1879105"></A>0x05</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1879107"></A><EM CLASS="Computer">
+WDTimeOut</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1879109"></A>PMP watchdog time has expired (communication got stuck).<BR>
+- <EM CLASS="Computer">
+<A HREF="#50495582_DebugMessage/NIC_DebugMessage/DebugLevel" CLASS="XRef">DebugLevel</A></EM>
+ is Error</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1879113"></A>0x06</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1879115"></A><EM CLASS="Computer">
+TxTimeOut</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1879117"></A>Transmit time has expired and transmission was canceled.<BR>
+- <EM CLASS="Computer">
+<A HREF="#50495582_DebugMessage/NIC_DebugMessage/DebugLevel" CLASS="XRef">DebugLevel</A></EM>
+ is Error</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1879143"></A><A NAME="50495582_DebugMessage/NIC_DebugMessage/SyncLostRCM"></A>SyncLostRCM<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1879193"></A>RCM channel synchronization loss due to one of the following conditions:</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1955334"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1955336"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1955338"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1955340"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="5" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1955353"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3595487"></A>0x02</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3595489"></A><EM CLASS="Computer">
+Internal</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3595491"></A>Channel was unsynchronized due to a synchronization loss on the ICM channel.</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3595495"></A>- <EM CLASS="Computer">
+<A HREF="#50495582_DebugMessage/NIC_DebugMessage/DebugLevel" CLASS="XRef">DebugLevel</A></EM>
+ is Error</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3595420"></A>0x03</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3595422"></A><EM CLASS="Computer">
+Command</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3595424"></A>Channel was unsynchronized due to a PMP SYNC or UNSYNC command.<BR>
+- <EM CLASS="Computer">
+<A HREF="#50495582_DebugMessage/NIC_DebugMessage/DebugLevel" CLASS="XRef">DebugLevel</A></EM>
+ is Error</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1955366"></A>0x04</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1955368"></A><EM CLASS="Computer">
+AckTimeOut</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1955370"></A>Acknowledge time of previously transmitted message has expired.<BR>
+- <EM CLASS="Computer">
+<A HREF="#50495582_DebugMessage/NIC_DebugMessage/DebugLevel" CLASS="XRef">DebugLevel</A></EM>
+ is Error</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1955377"></A>0x05</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1955379"></A><EM CLASS="Computer">
+WDTimeOut</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1955381"></A>PMP watchdog time has expired (communication got stuck).<BR>
+- <EM CLASS="Computer">
+<A HREF="#50495582_DebugMessage/NIC_DebugMessage/DebugLevel" CLASS="XRef">DebugLevel</A></EM>
+ is Error</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1955388"></A>0x06</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1955390"></A><EM CLASS="Computer">
+TxTimeOut</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1955392"></A>Transmit time has expired and transmission was canceled.<BR>
+- <EM CLASS="Computer">
+<A HREF="#50495582_DebugMessage/NIC_DebugMessage/DebugLevel" CLASS="XRef">DebugLevel</A></EM>
+ is Error</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-1879866"></A><A NAME="50495582_DebugMessage/NIC_DebugMessage/AutoForcedNATime"></A>AutoForcedNATime<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1879867"></A>Refer to <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MOSTNetworkStartup/AutoForcedNotAvailableTime" CLASS="XRef">AutoForcedNotAvailableTime</A></EM>
+. <EM CLASS="Computer">
+<A HREF="#50495582_DebugMessage/NIC_DebugMessage/DebugLevel" CLASS="XRef">DebugLevel</A></EM>
+ is Warning.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2156741"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2156743"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2156745"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2156747"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2156749"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2156751"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2156753"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2156755"></A>10...65535</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2156757"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2156759"></A>ms</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3711008"></A><A NAME="50495582_DebugMessage/NIC_DebugMessage/SyncLostMCM"></A>SyncLostMCM<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3711074"></A>MCM channel synchronization loss due to one of the following conditions:</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3711011"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3711013"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3711015"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3711017"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3711031"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3711033"></A>0x03</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3711035"></A><EM CLASS="Computer">
+Command</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3711037"></A>Channel was unsynchronized due to a PMP SYNC or UNSYNC command.<BR>
+- <EM CLASS="Computer">
+<A HREF="#50495582_DebugMessage/NIC_DebugMessage/DebugLevel" CLASS="XRef">DebugLevel</A></EM>
+ is Error</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3711044"></A>0x04</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3711046"></A><EM CLASS="Computer">
+AckTimeOut</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3711048"></A>Acknowledge time of previously transmitted message has expired.<BR>
+- <EM CLASS="Computer">
+<A HREF="#50495582_DebugMessage/NIC_DebugMessage/DebugLevel" CLASS="XRef">DebugLevel</A></EM>
+ is Error</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3711055"></A>0x05</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3711057"></A><EM CLASS="Computer">
+WDTimeOut</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3711059"></A>PMP watchdog time has expired (communication got stuck).<BR>
+- <EM CLASS="Computer">
+<A HREF="#50495582_DebugMessage/NIC_DebugMessage/DebugLevel" CLASS="XRef">DebugLevel</A></EM>
+ is Error</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3711066"></A>0x06</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3711068"></A><EM CLASS="Computer">
+TxTimeOut</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3711070"></A>Transmit time has expired and transmission was canceled.<BR>
+- <EM CLASS="Computer">
+<A HREF="#50495582_DebugMessage/NIC_DebugMessage/DebugLevel" CLASS="XRef">DebugLevel</A></EM>
+ is Error</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3711108"></A>&nbsp;</P>
+</DIV>
+</DIV>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495582_pgfId-3613867"></A><A NAME="50495582_94136"></A>FBlock ExtendedNetworkControl</H3>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3613859"></A>The functions in this section are used to control a device via the EHC or the MOST network.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3614193"></A>An overview of the ExtendedNetworkControl functions is shown in <EM CLASS="CrossReference">
+<A HREF="#50495582_14822" CLASS="XRef"></A><EM CLASS="Link">
+Table 21-15</EM>
+<EM CLASS="CrossReference">
+</EM>
+</EM>
+. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495582_pgfId-3614079"></A>Table 21-15: <A NAME="50495582_14822"></A>ExtendedNetworkControl Functions</TableTitle>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3614087"></A>Function Name</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3614089"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3614091"></A>Possible to Notify</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3614093"></A>Page</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3614095"></A>Hello()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3614097"></A>0x200</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3614099"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3614104"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_16872" CLASS="XRef">Hello (0x200)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3614106"></A>Welcome()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3614108"></A>0x201</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3614110"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3614115"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_20297" CLASS="XRef">Welcome (0x201)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4587498"></A>Signature()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587500"></A>0x202</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587543"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587504"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_55711" CLASS="XRef">Signature (0x202)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4587506"></A>Init()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587508"></A>0x203</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587559"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587512"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_63605" CLASS="XRef">Init (0x203)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3614117"></A>EnablePort()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3614119"></A>0x210</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3614121"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3614126"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_14227" CLASS="XRef">EnablePort (0x210)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3614128"></A>CableLinkDiagnosis()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3614130"></A>0x211</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3614132"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3614137"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_27532" CLASS="XRef">CableLinkDiagnosis (0x211)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3614150"></A>PhysicalLayerTest()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3614152"></A>0x220</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3614154"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3614159"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_91148" CLASS="XRef">PhysicalLayerTest (0x220)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3614161"></A>PhysicalLayerTestResult()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3614163"></A>0x221</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3614165"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3614170"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_89384" CLASS="XRef">PhysicalLayerTestResult (0x221)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3707163"></A>MemorySessionOpen()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3707165"></A>0x300</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3707167"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3707172"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_51451" CLASS="XRef">MemorySessionOpen (0x300)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3707178"></A>MemorySessionClose()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3707180"></A>0x301</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3707182"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3707187"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_21181" CLASS="XRef">MemorySessionClose (0x301)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3614172"></A>MemoryRead()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3614174"></A>0x302</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3614176"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3614181"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_34952" CLASS="XRef">MemoryRead (0x302)</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3614183"></A>MemoryWrite()</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3614185"></A>0x303</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3614187"></A>No</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3614192"></A><EM CLASS="CrossReference">
+<A HREF="#50495582_74500" CLASS="XRef">MemoryWrite (0x303)</A></EM>
+</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH2-Hello200" /><H6 CLASS="Heading2">
+<A NAME="50495582_pgfId-3614677"></A><A NAME="50495582_16872"></A>Hello (0x200) <A NAME="50495582_marker-3910854"></A> <A NAME="50495582_marker-3910855"></A> </H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3634643"></A>This function is used to get the unique <EM CLASS="Computer">
+Signature</EM>
+ of an INIC device.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3910951"></A>The requesting device sends <EM CLASS="Computer">
+ExtendedNetworkControl.Hello.Get</EM>
+ as a broadcast message to the MOST network. Only those devices that have not successfully sent <EM CLASS="Computer">
+ExtendedNetworkControl.Welcome.Result</EM>
+ will answer with the <EM CLASS="Computer">
+ExtendedNetworkControl.Hello.Status</EM>
+ message. The <EM CLASS="Computer">
+ExtendedNetworkControl.Hello.Status</EM>
+ message is sent by using source address 0x0FFE.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3614681"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3614683"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3614685"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3614687"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3614689"></A>ExtendedNetworkControl</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3614690"></A>(0x0A)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3614693"></A>Hello</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3615328"></A>(0x200)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3614695"></A>Get (0x1)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3614697"></A><A HREF="#50495582_ENC/Hello/VersionLimit" CLASS="XRef">VersionLimit</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3614703"></A>Status (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3614708"></A><A HREF="#50495582_ENC/Hello/Version" CLASS="XRef">Version</A>, <A HREF="#50495582_ENC/Hello/Signature" CLASS="XRef">Signature</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3614714"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3614716"></A><EM CLASS="BlackMarker">
+<A HREF="#50495582_ENC/Hello/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></EM>
+<EM CLASS="Blue">
+</EM>
+</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-3614753"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_ENC/Hello/VersionLimit"></A>VersionLimit<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4587059"></A>Defines the maximum version of <EM CLASS="Computer">
+Signature</EM>
+ the requesting device can handle</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587040"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587042"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587044"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587046"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587048"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587050"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587052"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587054"></A>1...255</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587056"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587058"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-4621726"></A><A NAME="50495582_ENC/Hello/Version"></A>Version<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4621891"></A>Defines the version of the <EM CLASS="Computer">
+Signature</EM>
+</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4621876"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4621878"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4621880"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4621882"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4621884"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4621886"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4621888"></A><EM CLASS="Computer">
+v1</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4621890"></A>Version 1 of the <EM CLASS="Computer">
+Signature</EM>
+</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3614755"></A><A NAME="50495582_ENC/Hello/Signature"></A>Signature<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3619684"></A>Uniques signature of a device</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3619730"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3619732"></A>Number of Elements</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3619734"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3619736"></A>Stream</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3619738"></A><EM CLASS="BlackMarker">
+16</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3619746"></A><EM CLASS="BlackMarker">
+<A HREF="#50495582_ENC/Hello/NodeAddress" CLASS="XRef">NodeAddress</A>, <A HREF="#50495582_ENC/Hello/GroupAddress" CLASS="XRef">GroupAddress</A>, <BR>
+<A HREF="#50495582_ENC/Hello/MACAddress_47to32" CLASS="XRef">MACAddress_47to32</A>, <A HREF="#50495582_ENC/Hello/MACAddress_31to16" CLASS="XRef">MACAddress_31to16</A>, <A HREF="#50495582_ENC/Hello/MACAddress_15to0" CLASS="XRef">MACAddress_15to0</A>, <A HREF="#50495582_ENC/Hello/NodePositionAddress" CLASS="XRef">NodePositionAddress</A>, <BR>
+<A HREF="#50495582_ENC/Hello/DiagID" CLASS="XRef">DiagID</A>, <A HREF="#50495582_ENC/Hello/NumberOfPorts" CLASS="XRef">NumberOfPorts</A>, <A HREF="#50495582_ENC/Hello/ChipID" CLASS="XRef">ChipID</A>, <BR>
+<A HREF="#50495582_ENC/Hello/FWVersion_Major" CLASS="XRef">FWVersion_Major</A>, <A HREF="#50495582_ENC/Hello/FWVersion_Minor" CLASS="XRef">FWVersion_Minor</A>, <BR>
+<A HREF="#50495582_ENC/Hello/FWVersion_Release" CLASS="XRef">FWVersion_Release</A>, <A HREF="#50495582_ENC/Hello/FWVersion_Build" CLASS="XRef">FWVersion_Build</A>, <A HREF="#50495582_ENC/Hello/CSVersion_Major" CLASS="XRef">CSVersion_Major</A>, <A HREF="#50495582_ENC/Hello/CSVersion_Minor" CLASS="XRef">CSVersion_Minor</A>, <BR>
+<A HREF="#50495582_ENC/Hello/CSVersion_Release" CLASS="XRef">CSVersion_Release</A></EM>
+</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3619773"></A><A NAME="50495582_ENC/Hello/NodeAddress"></A>NodeAddress<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3621637"></A><A HREF="#50495606_IDString/NetworkManagement/Node Address" CLASS="XRef">Node Address</A> as entered in the identification string.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3635560"></A>This parameter can be customized via the <A HREF="#50495606_31610" CLASS="XRef">Identification String</A>. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3621646"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3621648"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3621650"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3621652"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3621654"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3621656"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3621658"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3621660"></A>0x0100...0x013F</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3621662"></A>1</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3621664"></A>None</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3667548"></A>0x0010...0x00FF,</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3621671"></A>0x0140...0x02FF,</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3621672"></A>0x0500...0x0EFF</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4838843"></A>0xFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4838845"></A>-</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3619790"></A><A NAME="50495582_ENC/Hello/GroupAddress"></A>GroupAddress<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3635599"></A><A HREF="#50495606_IDString/NetworkManagement/Node Address/Group Address" CLASS="XRef">Group Address</A> as entered in the identification string.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3621732"></A>This parameter can be customized via the <A HREF="#50495606_31610" CLASS="XRef">Identification String</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3621713"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3621715"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3621717"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3621719"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3621721"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3621723"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3621725"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3621727"></A>0x0300...0x03FF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3621729"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3621731"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3619804"></A><A NAME="50495582_ENC/Hello/MACAddress_47to32"></A>MACAddress_47to32<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3635641"></A><A HREF="#50495606_IDString/NetworkManagement/Node Address/Packet EUI-48 Bits 47" CLASS="XRef">Packet EUI-48 Bits 47:32</A> of the MAC address as entered in the identification string.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3620626"></A>This parameter can be customized via the <A HREF="#50495606_31610" CLASS="XRef">Identification String</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3621767"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3621769"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3621771"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3621773"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3621775"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3621777"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3621779"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3621781"></A>0x0000...0xFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3621783"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3621785"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3619828"></A><A NAME="50495582_ENC/Hello/MACAddress_31to16"></A>MACAddress_31to16<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3635680"></A><A HREF="#50495606_IDString/NetworkManagement/Node Address/Packet EUI-48 Bits 31" CLASS="XRef">Packet EUI-48 Bits 31:16</A> of the MAC address as entered in the identification string.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3621857"></A>This parameter can be customized via the <A HREF="#50495606_31610" CLASS="XRef">Identification String</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3621838"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3621840"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3621842"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3621844"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3621846"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3621848"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3621850"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3621852"></A>0x0000...0xFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3621854"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3621856"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3619858"></A><A NAME="50495582_ENC/Hello/MACAddress_15to0"></A>MACAddress_15to0<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3635704"></A><A HREF="#50495606_IDString/NetworkManagement/Node Address/Packet EUI-48 Bits 15" CLASS="XRef">Packet EUI-48 Bits 15:0</A> of the MAC address as entered in the identification string.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3621896"></A>This parameter can be customized via the <A HREF="#50495606_31610" CLASS="XRef">Identification String</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3621877"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3621879"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3621881"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3621883"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3621885"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3621887"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3621889"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3621891"></A>0x0000...0xFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3621893"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3621895"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3619824"></A><A NAME="50495582_ENC/Hello/NodePositionAddress"></A>NodePositionAddress<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3623208"></A>Current valid <EM CLASS="Computer">
+NodePositionAddress</EM>
+ if network is available. 0x0400 is reported if the MOST network is not available. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3709025"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3709027"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3709029"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3709031"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3709033"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3709035"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3709037"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3709039"></A>0x0400...0x043F</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3709041"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3709043"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3619882"></A><A NAME="50495582_ENC/Hello/DiagID"></A>DiagID<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3635727"></A><EM CLASS="Computer">
+DiagID</EM>
+ as entered in the configuration string.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3622035"></A>This parameter can be customized via the <A HREF="#50495606_34947" CLASS="XRef">Configuration String</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622016"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622018"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622020"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622022"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622024"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622026"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622028"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622030"></A>0x0000...0xFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622032"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622034"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3619897"></A><A NAME="50495582_ENC/Hello/NumberOfPorts"></A>NumberOfPorts<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3622780"></A>Number of MOST ports available by chip</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622761"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622763"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622765"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622767"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622769"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622771"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622773"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622775"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622777"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622779"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3619913"></A><A NAME="50495582_ENC/Hello/ChipID"></A>ChipID<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622908"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622910"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622912"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622914"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622916"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622918"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622920"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622922"></A>0x18</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622924"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622926"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3619922"></A><A NAME="50495582_ENC/Hello/FWVersion_Major"></A>FWVersion_Major<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3622966"></A>Major version number of the firmware</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622947"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622949"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622951"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622953"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622955"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622957"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622959"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622961"></A>0x00...0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622963"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622965"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3619945"></A><A NAME="50495582_ENC/Hello/FWVersion_Minor"></A>FWVersion_Minor<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3623005"></A>Minor version number of the firmware</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622986"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622988"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622990"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622992"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622994"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622996"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622998"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623000"></A>0x00...0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623002"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623004"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3619963"></A><A NAME="50495582_ENC/Hello/FWVersion_Release"></A>FWVersion_Release<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3623044"></A>Release version number of the firmware</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623025"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623027"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623029"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623031"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623033"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623035"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623037"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623039"></A>0x00...0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623041"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623043"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3708238"></A><A NAME="50495582_ENC/Hello/FWVersion_Build"></A>FWVersion_Build<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3708260"></A>Build version number of the firmware</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3708241"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3708243"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3708245"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3708247"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3708249"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3709419"></A>Unsigned Long</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3709421"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3709423"></A>0x00000000...<BR>
+0xFFFFFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3709425"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3709427"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3619984"></A><A NAME="50495582_ENC/Hello/CSVersion_Major"></A>CSVersion_Major<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3623083"></A>Major version number of the configuration string.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3635981"></A>This parameter can be customized via the <A HREF="#50495606_34947" CLASS="XRef">Configuration String</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623064"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623066"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623068"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623070"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623072"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623074"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623076"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623078"></A>0x00...0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623080"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623082"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3620006"></A><A NAME="50495582_ENC/Hello/CSVersion_Minor"></A>CSVersion_Minor<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3623118"></A>Minor version number of the configuration string.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3636000"></A>This parameter can be customized via the <A HREF="#50495606_34947" CLASS="XRef">Configuration String</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623099"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623101"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623103"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623105"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623107"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623109"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623111"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623113"></A>0x00...0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623115"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623117"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3620034"></A><A NAME="50495582_ENC/Hello/CSVersion_Release"></A>CSVersion_Release<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3623153"></A>Release version number of the configuration string.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3636019"></A>This parameter can be customized via the <A HREF="#50495606_34947" CLASS="XRef">Configuration String</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623134"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623136"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623138"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623140"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623142"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623144"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623146"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623148"></A>0x00...0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623150"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623152"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3920113"></A><A NAME="50495582_ENC/Hello/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3920073"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3920075"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3920083"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3920085"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3920087"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3920092"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3920097"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3920099"></A>0x30</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3920101"></A>Device is already welcomed.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<A NAME="MNSH2-Welcome201" /><H6 CLASS="Heading2">
+<A NAME="50495582_pgfId-3614762"></A><A NAME="50495582_20297"></A>Welcome (0x201) <A NAME="50495582_marker-3614760"></A> <A NAME="50495582_marker-3614761"></A> </H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3615517"></A>This function is used to welcome a device in the MOST network.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4622776"></A>The function uses the <EM CLASS="Computer">
+Signature</EM>
+ which was returned by the <EM CLASS="Computer">
+ExtendedNetworkControl.Hello.Status</EM>
+ message. The receiving device compares the signature of the <EM CLASS="Computer">
+ExtendedNetworkControl.Welcome.StartResult</EM>
+ message with its own signature sent by the <EM CLASS="Computer">
+ExtendedNetworkControl.Hello.Status()</EM>
+ message. If the signature matches and the <EM CLASS="Computer">
+AdminNodeAddress</EM>
+ is in the range of 0x0F00...0x0FEF, the <EM CLASS="Computer">
+NodeAddress</EM>
+ is set to the <EM CLASS="Computer">
+AdminNodeAddress</EM>
+.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3637609"></A>The message is always send to the <EM CLASS="Computer">
+NodePositionAddress</EM>
+, see <A HREF="#50495565_66596" CLASS="XRef"><EM CLASS="Link">
+Section 4.11.2</EM>
+</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3615478"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3615480"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3615482"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3615484"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3615486"></A>ExtendedNetworkControl</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3615487"></A>(0x0A)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3615489"></A>Welcome</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3615490"></A>(0x201)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3615548"></A>StartResult (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3615494"></A><A HREF="#50495582_ENC/Welcome/AdminNodeAddress" CLASS="XRef">AdminNodeAddress</A>, <A HREF="#50495582_ENC/Welcome/Version" CLASS="XRef">Version</A>, <A HREF="#50495582_ENC/Welcome/Signature" CLASS="XRef">Signature</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3615550"></A>Result (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3615508"></A><A HREF="#50495582_ENC/Welcome/Result" CLASS="XRef">Result</A>, <A HREF="#50495582_ENC/Welcome/Version" CLASS="XRef">Version</A>, <A HREF="#50495582_ENC/Welcome/Signature" CLASS="XRef">Signature</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3615552"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3615516"></A><A HREF="#50495582_ENC/Welcome/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-3615407"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_ENC/Welcome/AdminNodeAddress"></A>AdminNodeAddress<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3622116"></A>The node address used during system diagnosis and device diagnosis. If 0xFFFF is applied, the <A HREF="#50495606_IDString/NetworkManagement/Node Address" CLASS="XRef">Node Address</A> configured in the identification string is used (only valid if device is not in system diagnosis mode and <A HREF="#50495606_Device Management/System Mode" CLASS="XRef">System Mode</A> is <EM CLASS="Computer">
+UNICENS</EM>
+).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622097"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622099"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622101"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622103"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622105"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622107"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622109"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3709218"></A>0x0F00...0x0FEF</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622113"></A>1</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622115"></A>None</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4586649"></A>0xFFFF</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3707945"></A><A NAME="50495582_ENC/Welcome/Version"></A>Version<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4621944"></A>Defines the version of the <EM CLASS="Computer">
+Signature</EM>
+</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4621929"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4621931"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4621933"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4621935"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4621937"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4621939"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4621941"></A><EM CLASS="Computer">
+v1</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4621943"></A>Version 1 of the <EM CLASS="Computer">
+Signature</EM>
+</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3615409"></A><A NAME="50495582_ENC/Welcome/Signature"></A>Signature<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3620963"></A>Contains the <EM CLASS="Computer">
+Signature</EM>
+ values as returned by parameter <EM CLASS="Computer">
+ExtendedNetworkControl.Hello.Status.Signature</EM>
+</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3620907"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3620909"></A>Number of Elements</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3620911"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3638621"></A>Stream</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3638623"></A><EM CLASS="BlackMarker">
+16</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3638631"></A><EM CLASS="BlackMarker">
+<A HREF="#50495582_ENC/Welcome/NodeAddress" CLASS="XRef">NodeAddress</A>, <A HREF="#50495582_ENC/Welcome/GroupAddress" CLASS="XRef">GroupAddress</A>, <BR>
+<A HREF="#50495582_ENC/Welcome/MACAddress_47to32" CLASS="XRef">MACAddress_47to32</A>, <A HREF="#50495582_ENC/Welcome/MACAddress_31to16" CLASS="XRef">MACAddress_31to16</A>, <A HREF="#50495582_ENC/Welcome/MACAddress_15to0" CLASS="XRef">MACAddress_15to0</A>, <A HREF="#50495582_ENC/Welcome/NodePositionAddress" CLASS="XRef">NodePositionAddress</A>, <BR>
+<A HREF="#50495582_ENC/Welcome/DiagID" CLASS="XRef">DiagID</A>, <A HREF="#50495582_ENC/Welcome/NumberOfPorts" CLASS="XRef">NumberOfPorts</A>, <A HREF="#50495582_ENC/Welcome/ChipID" CLASS="XRef">ChipID</A>, <BR>
+<A HREF="#50495582_ENC/Welcome/FWVersion_Major" CLASS="XRef">FWVersion_Major</A>, <A HREF="#50495582_ENC/Welcome/FWVersion_Minor" CLASS="XRef">FWVersion_Minor</A>, <BR>
+<A HREF="#50495582_ENC/Welcome/FWVersion_Release" CLASS="XRef">FWVersion_Release</A>, <A HREF="#50495582_ENC/Welcome/CSVersion_Build" CLASS="XRef">FWVersion_Build</A>, <A HREF="#50495582_ENC/Welcome/CSVersion_Major" CLASS="XRef">CSVersion_Major</A>, <A HREF="#50495582_ENC/Welcome/CSVersion_Minor" CLASS="XRef">CSVersion_Minor</A>, <BR>
+<A HREF="#50495582_ENC/Welcome/CSVersion_Release" CLASS="XRef">CSVersion_Release</A></EM>
+</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3615657"></A><A NAME="50495582_ENC/Welcome/NodeAddress"></A>NodeAddress<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3622128"></A>Contains the <EM CLASS="Computer">
+NodeAddress</EM>
+ as returned by parameter <EM CLASS="Computer">
+ExtendedNetworkControl.Hel-lo.Status.Signature</EM>
+ </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622137"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622139"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622141"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622143"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622145"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3638677"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3638679"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3638681"></A>0x0100...0x013F</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3638683"></A>1</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3638685"></A>None</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3667568"></A>0x0010...0x00FF,</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3667569"></A>0x0140...0x02FF,</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3667570"></A>0x0500...0x0EFF</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4838872"></A>0xFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4838874"></A>-</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3615659"></A><A NAME="50495582_ENC/Welcome/GroupAddress"></A>GroupAddress<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3622212"></A>Contains the <EM CLASS="Computer">
+GroupAddress</EM>
+ as returned by parameter <EM CLASS="Computer">
+ExtendedNetworkControl.Hello.Status.Signature</EM>
+</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622193"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622195"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622197"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622199"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622201"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3638710"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3638712"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3638714"></A>0x0300...0x03FF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3638716"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3638718"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3615661"></A><A NAME="50495582_ENC/Welcome/MACAddress_47to32"></A>MACAddress_47to32<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3622361"></A>Contains bits 47:32 of the MAC address as returned by parameter <EM CLASS="Computer">
+ExtendedNetworkControl.Hello.Status.Signature</EM>
+</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622342"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622344"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622346"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622348"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622350"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622352"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622354"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622356"></A>0x0000...0xFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622358"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622360"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3615663"></A><A NAME="50495582_ENC/Welcome/MACAddress_31to16"></A>MACAddress_31to16<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3622433"></A>Contains bits 31:16 of the MAC address as returned by parameter <EM CLASS="Computer">
+ExtendedNetworkControl.Hello.Status.Signature</EM>
+</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622414"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622416"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622418"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622420"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622422"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622424"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622426"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622428"></A>0x0000...0xFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622430"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622432"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3615665"></A><A NAME="50495582_ENC/Welcome/MACAddress_15to0"></A>MACAddress_15to0<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3622473"></A>Contains bits 15:0 of the MAC address as returned by parameter <EM CLASS="Computer">
+ExtendedNetworkControl.Hello.Status.Signature</EM>
+</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622454"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622456"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622458"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622460"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622462"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622464"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622466"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622468"></A>0x0000...0xFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622470"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622472"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3615669"></A><A NAME="50495582_ENC/Welcome/NodePositionAddress"></A>NodePositionAddress<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3638834"></A>Contains the <EM CLASS="Computer">
+NodePositionAddress</EM>
+ as returned by parameter <EM CLASS="Computer">
+ExtendedNetworkControl.Hello.Status.Signature</EM>
+ </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3638837"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3638839"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3638841"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3638843"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3638845"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3638847"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3638849"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3638851"></A>0x0400...0x043F</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3638853"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3638855"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3615671"></A><A NAME="50495582_ENC/Welcome/DiagID"></A>DiagID<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3622525"></A>Contains the <EM CLASS="Computer">
+DiagID</EM>
+ as returned by parameter <EM CLASS="Computer">
+ExtendedNetworkControl.Hel-lo.Status.Signature</EM>
+</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622506"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622508"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622510"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622512"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622514"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622516"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622518"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622520"></A>0x0000...0xFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622522"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622524"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3615673"></A><A NAME="50495582_ENC/Welcome/NumberOfPorts"></A>NumberOfPorts<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3623339"></A>Contains the <EM CLASS="Computer">
+NumberOfPorts</EM>
+ as returned by parameter <EM CLASS="Computer">
+ExtendedNetworkControl.Hello.Status.Signature</EM>
+</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623320"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623322"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623324"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623326"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623328"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623330"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623332"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623334"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623336"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623338"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3615675"></A><A NAME="50495582_ENC/Welcome/ChipID"></A>ChipID<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3623374"></A>Contains the <EM CLASS="Computer">
+ChipID</EM>
+ as returned by parameter <EM CLASS="Computer">
+ExtendedNetworkControl.Hel-lo.Status.Signature</EM>
+</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623355"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623357"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623359"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623361"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623363"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623365"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623367"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623369"></A>0x18</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623371"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623373"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3615655"></A><A NAME="50495582_ENC/Welcome/FWVersion_Major"></A>FWVersion_Major<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3623409"></A>Contains the major firmware version as returned by parameter <EM CLASS="Computer">
+ExtendedNetworkControl.Hello.Status.Signature</EM>
+</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623390"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623392"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623394"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623396"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623398"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623400"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623402"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623404"></A>0x00...0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623406"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623408"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3615830"></A><A NAME="50495582_ENC/Welcome/FWVersion_Minor"></A>FWVersion_Minor<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3623444"></A>Contains the minor firmware version as returned by parameter <EM CLASS="Computer">
+ExtendedNetworkControl.Hello.Status.Signature</EM>
+</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623425"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623427"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623429"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623431"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623433"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623435"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623437"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623439"></A>0x00...0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623441"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623443"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3615848"></A><A NAME="50495582_ENC/Welcome/FWVersion_Release"></A>FWVersion_Release<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3623479"></A>Contains the release firmware version as returned by parameter <EM CLASS="Computer">
+ExtendedNetworkControl.Hello.Status.Signature</EM>
+</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623460"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623462"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623464"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623466"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623468"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623470"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623472"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623474"></A>0x00...0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623476"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623478"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3708424"></A><A NAME="50495582_ENC/Welcome/CSVersion_Build"></A>FWVersion_Build<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3708446"></A>Build version number of the firmware</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3708427"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3708429"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3708431"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3708433"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3708435"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3709444"></A>Unsigned Long</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3709446"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3709448"></A>0x00000000...<BR>
+0xFFFFFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3709450"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3709452"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3615869"></A><A NAME="50495582_ENC/Welcome/CSVersion_Major"></A>CSVersion_Major<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3623514"></A>Contains the major configuration string version as returned by parameter <EM CLASS="Computer">
+ExtendedNetworkControl.Hello.Status.Signature</EM>
+</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623495"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623497"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623499"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623501"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623503"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623505"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623507"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623509"></A>0x00...0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623511"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623513"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3615883"></A><A NAME="50495582_ENC/Welcome/CSVersion_Minor"></A>CSVersion_Minor<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3623549"></A>Contains the minor configuration string version as returned by parameter <EM CLASS="Computer">
+ExtendedNetworkControl.Hello.Status.Signature</EM>
+</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623530"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623532"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623534"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623536"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623538"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623540"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623542"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623544"></A>0x00...0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623546"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623548"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3615903"></A><A NAME="50495582_ENC/Welcome/CSVersion_Release"></A>CSVersion_Release<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3623584"></A>Contains the release configuration string version as returned by parameter <EM CLASS="Computer">
+ExtendedNetworkControl.Hello.Status.Signature</EM>
+</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623565"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623567"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623569"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623571"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623573"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623575"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623577"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623579"></A>0x00...0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623581"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623583"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3615899"></A><A NAME="50495582_ENC/Welcome/Result"></A>Result<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3617836"></A>Result of the <EM CLASS="Computer">
+Signature</EM>
+ compare</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3617813"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3617815"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3617817"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3617819"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3617821"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3617823"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3617825"></A><EM CLASS="Computer">
+Success</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3617827"></A>Compare of the signature was successful.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3617831"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3617833"></A><EM CLASS="Computer">
+NoSuccess</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3637776"></A>Compare of the signature was not successful.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3711502"></A><A NAME="50495582_ENC/Welcome/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3653300"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3653302"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3653310"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3653312"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3653314"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="7" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3653319"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3653324"></A><A HREF="#50495582_ErrorClass/0x02" CLASS="XRef">0x02</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3653326"></A>0x20</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4586342"></A>- RBD is active, or</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4586361"></A>- physical layer test is running, or</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4586346"></A>- <EM CLASS="Computer">
+<A HREF="#50495582_ForcedNA/AvailInfo/MostStatus" CLASS="XRef"><EM CLASS="Computer">
+ForcedNA</EM>
+</A></EM>
+ was set.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="5" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4586406"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4586408"></A>0x31</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4586410"></A>Device has not yet received an <EM CLASS="Computer">
+ExtendedNetworkControl.Hello.Get()</EM>
+ message.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3653405"></A>0x32</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3653401"></A>Device has already successfully received an <EM CLASS="Computer">
+ExtendedNetworkControl.Welcome.StartResult()</EM>
+ message.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3920377"></A>0x33</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3920379"></A><EM CLASS="Computer">
+<A HREF="#50495582_ENC/Welcome/AdminNodeAddress" CLASS="XRef">AdminNodeAddress</A></EM>
+ is 0xFFFF. This value is not supported during system diagnosis state.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4586506"></A>0x34</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4586508"></A><EM CLASS="Computer">
+<A HREF="#50495582_ENC/Welcome/AdminNodeAddress" CLASS="XRef">AdminNodeAddress</A></EM>
+ is 0xFFFF. This value is not supported in <A HREF="#50495606_Device Management/System Mode" CLASS="XRef">System Mode</A> <EM CLASS="Computer">
+MOSTNetServices</EM>
+. </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4586514"></A>0x35</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4586516"></A>Value of <A HREF="#50495606_IDString/NetworkManagement/Node Address" CLASS="XRef">Node Address</A> in the identification string is not valid. The value is either 0xFFFF or in the dynamic range (see <A HREF="#50495565_31917" CLASS="XRef"><EM CLASS="Link">
+Section 4.11.1</EM>
+</A>) while <EM CLASS="Computer">
+<A HREF="#50495582_ENC/Welcome/AdminNodeAddress" CLASS="XRef">AdminNodeAddress</A></EM>
+ is 0xFFFF.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4586520"></A><A HREF="#50495582_ErrorClass/0x04" CLASS="XRef">0x04</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4586522"></A>0x40</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4586524"></A>INIC is already in device diagnosis mode.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<A NAME="MNSH2-Signature202" /><H6 CLASS="Heading2">
+<A NAME="50495582_pgfId-4587085"></A><A NAME="50495582_55711"></A>Signature (0x202) <A NAME="50495582_marker-4587083"></A> <A NAME="50495582_marker-4587084"></A> </H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4587607"></A>This function is used to get the unique <EM CLASS="Computer">
+Signature</EM>
+ of an INIC device.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4587608"></A>Every network device responds to this message, regardless of whether it was already welcomed or not.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587611"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587613"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587615"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587617"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587619"></A>ExtendedNetworkControl</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587620"></A>(0x0A)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587622"></A>Signature</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587623"></A>(0x202)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4587625"></A>Get (0x1)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4587630"></A><A HREF="#50495582_ENC/Signature/VersionLimit" CLASS="XRef">VersionLimit</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4587636"></A>Status (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4587644"></A><A HREF="#50495582_ENC/Signature/Version" CLASS="XRef">Version</A>, <A HREF="#50495582_ENC/Signature/Signature" CLASS="XRef">Signature</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4587650"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4587655"></A>ErrorCode, ErrorInfo</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-4621999"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_ENC/Signature/VersionLimit"></A>VersionLimit<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4622021"></A>Defines the maximum version of <EM CLASS="Computer">
+Signature</EM>
+ the requesting device can handle</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4622002"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4622004"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4622006"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4622008"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4622010"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4622012"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4622014"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4622016"></A>1...255</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4622018"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4622020"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-4622023"></A><A NAME="50495582_ENC/Signature/Version"></A>Version<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4622041"></A>Defines the version of the <EM CLASS="Computer">
+Signature</EM>
+</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4622026"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4622028"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4622030"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4622032"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4622034"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4622036"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4622038"></A><EM CLASS="Computer">
+v1</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4622040"></A>Version 1 of the <EM CLASS="Computer">
+Signature</EM>
+</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-4587687"></A><A NAME="50495582_ENC/Signature/Signature"></A>Signature<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4587688"></A>Contains the <EM CLASS="Computer">
+Signature</EM>
+ values as returned by parameter <EM CLASS="Computer">
+ExtendedNetworkControl.Signature.Status.Signature</EM>
+</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587691"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587693"></A>Number of Elements</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587695"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587697"></A>Stream</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587699"></A><EM CLASS="BlackMarker">
+16</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4587707"></A><A HREF="#50495582_ENC/Signature/NodeAddress" CLASS="XRef">NodeAddress</A><EM CLASS="BlackMarker">
+, </EM>
+<A HREF="#50495582_ENC/Signature/GroupAddress" CLASS="XRef">GroupAddress</A><EM CLASS="BlackMarker">
+, <BR>
+</EM>
+<A HREF="#50495582_ENC/Signature/MACAddress_47to32" CLASS="XRef">MACAddress_47to32</A><EM CLASS="BlackMarker">
+, </EM>
+<A HREF="#50495582_ENC/Signature/MACAddress_31to16" CLASS="XRef">MACAddress_31to16</A><EM CLASS="BlackMarker">
+, </EM>
+<A HREF="#50495582_ENC/Signature/MACAddress_15to0" CLASS="XRef">MACAddress_15to0</A><EM CLASS="BlackMarker">
+, </EM>
+<A HREF="#50495582_ENC/Signature/NodePositionAddress" CLASS="XRef">NodePositionAddress</A><EM CLASS="BlackMarker">
+, <BR>
+</EM>
+<A HREF="#50495582_ENC/Signature/DiagID" CLASS="XRef">DiagID</A><EM CLASS="BlackMarker">
+, </EM>
+<A HREF="#50495582_ENC/Signature/NumberOfPorts" CLASS="XRef">NumberOfPorts</A><EM CLASS="BlackMarker">
+, </EM>
+<A HREF="#50495582_ENC/Signature/ChipID" CLASS="XRef">ChipID</A><EM CLASS="BlackMarker">
+, <BR>
+</EM>
+<A HREF="#50495582_ENC/Signature/FWVersion_Major" CLASS="XRef">FWVersion_Major</A><EM CLASS="BlackMarker">
+, </EM>
+<A HREF="#50495582_ENC/Signature/FWVersion_Minor" CLASS="XRef">FWVersion_Minor</A><EM CLASS="BlackMarker">
+, <BR>
+</EM>
+<A HREF="#50495582_ENC/Signature/FWVersion_Release" CLASS="XRef">FWVersion_Release</A><EM CLASS="BlackMarker">
+, </EM>
+<A HREF="#50495582_ENC/Signature/FWVersion_Build" CLASS="XRef">FWVersion_Build</A><EM CLASS="BlackMarker">
+, </EM>
+<A HREF="#50495582_ENC/Signature/CSVersion_Major" CLASS="XRef">CSVersion_Major</A><EM CLASS="BlackMarker">
+, </EM>
+<A HREF="#50495582_ENC/Signature/CSVersion_Minor" CLASS="XRef">CSVersion_Minor</A><EM CLASS="BlackMarker">
+, <BR>
+</EM>
+<A HREF="#50495582_ENC/Signature/CSVersion_Release" CLASS="XRef">CSVersion_Release</A><EM CLASS="BlackMarker">
+</EM>
+</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-4587751"></A><A NAME="50495582_ENC/Signature/NodeAddress"></A>NodeAddress<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4835957"></A><A HREF="#50495606_IDString/NetworkManagement/Node Address" CLASS="XRef">Node Address</A> as entered in the identification string.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4835947"></A>This parameter can be customized via the <A HREF="#50495606_31610" CLASS="XRef">Identification String</A>. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587755"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587757"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587759"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587761"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587763"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587765"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587767"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587769"></A>0x0100...0x013F</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587771"></A>1</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587773"></A>None</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587779"></A>0x0010...0x00FF,</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587780"></A>0x0140...0x02FF,</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587781"></A>0x0500...0x0EFF</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4838892"></A>0xFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4838894"></A>-</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-4587787"></A><A NAME="50495582_ENC/Signature/GroupAddress"></A>GroupAddress<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4836031"></A><A HREF="#50495606_IDString/NetworkManagement/Node Address/Group Address" CLASS="XRef">Group Address</A> as entered in the identification string.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4587788"></A>This parameter can be customized via the <A HREF="#50495606_31610" CLASS="XRef">Identification String</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587791"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587793"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587795"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587797"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587799"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587801"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587803"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587805"></A>0x0300...0x03FF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587807"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587809"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-4587811"></A><A NAME="50495582_ENC/Signature/MACAddress_47to32"></A>MACAddress_47to32<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4836064"></A><A HREF="#50495606_IDString/NetworkManagement/Node Address/Packet EUI-48 Bits 47" CLASS="XRef">Packet EUI-48 Bits 47:32</A> of the MAC address as entered in the identification string.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4587812"></A>This parameter can be customized via the <A HREF="#50495606_31610" CLASS="XRef">Identification String</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587815"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587817"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587819"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587821"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587823"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587825"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587827"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587829"></A>0x0000...0xFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587831"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587833"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-4587835"></A><A NAME="50495582_ENC/Signature/MACAddress_31to16"></A>MACAddress_31to16<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4836084"></A><A HREF="#50495606_IDString/NetworkManagement/Node Address/Packet EUI-48 Bits 31" CLASS="XRef">Packet EUI-48 Bits 31:16</A> of the MAC address as entered in the identification string.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4587836"></A>This parameter can be customized via the <A HREF="#50495606_31610" CLASS="XRef">Identification String</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587839"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587841"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587843"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587845"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587847"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587849"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587851"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587853"></A>0x0000...0xFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587855"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587857"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-4587859"></A><A NAME="50495582_ENC/Signature/MACAddress_15to0"></A>MACAddress_15to0<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4836100"></A><A HREF="#50495606_IDString/NetworkManagement/Node Address/Packet EUI-48 Bits 15" CLASS="XRef">Packet EUI-48 Bits 15:0</A> of the MAC address as entered in the identification string.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4587860"></A>This parameter can be customized via the <A HREF="#50495606_31610" CLASS="XRef">Identification String</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587863"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587865"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587867"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587869"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587871"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587873"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587875"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587877"></A>0x0000...0xFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587879"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587881"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-4587883"></A><A NAME="50495582_ENC/Signature/NodePositionAddress"></A>NodePositionAddress<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4587884"></A>Contains the <EM CLASS="Computer">
+NodePositionAddress</EM>
+ as returned by parameter <EM CLASS="Computer">
+ExtendedNetworkControl.Hello.Status()</EM>
+ message. 0x04FF is reported in case no <EM CLASS="Computer">
+ExtendedNetworkControl.Hello.Get</EM>
+ message was seen. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587887"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587889"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587891"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587893"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587895"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587897"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587899"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587901"></A>0x0400...0x043F</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587903"></A>1</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587905"></A>None</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4589075"></A>0x04FF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4589077"></A>-</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-4587907"></A><A NAME="50495582_ENC/Signature/DiagID"></A>DiagID<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4837616"></A><A HREF="#50495606_DeviceManagement/Diag ID" CLASS="XRef">Diag ID</A> as entered in the configuration string.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4587908"></A>This parameter can be customized via the <A HREF="#50495606_34947" CLASS="XRef">Configuration String</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587911"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587913"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587915"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587917"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587919"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587921"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587923"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587925"></A>0x0000...0xFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587927"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587929"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-4587931"></A><A NAME="50495582_ENC/Signature/NumberOfPorts"></A>NumberOfPorts<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4587932"></A>Number of MOST ports available by chip</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587935"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587937"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587939"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587941"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587943"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587945"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587947"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587949"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587951"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587953"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-4587955"></A><A NAME="50495582_ENC/Signature/ChipID"></A>ChipID<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587959"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587961"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587963"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587965"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587967"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587969"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587971"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587973"></A>0x18</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587975"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587977"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-4587979"></A><A NAME="50495582_ENC/Signature/FWVersion_Major"></A>FWVersion_Major<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4587980"></A>Major version number of the firmware</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587983"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587985"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587987"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587989"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587991"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587993"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587995"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587997"></A>0x00...0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587999"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4588001"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-4588003"></A><A NAME="50495582_ENC/Signature/FWVersion_Minor"></A>FWVersion_Minor<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4588004"></A>Minor version number of the firmware</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4588007"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4588009"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4588011"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4588013"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4588015"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4588017"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4588019"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4588021"></A>0x00...0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4588023"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4588025"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-4588027"></A><A NAME="50495582_ENC/Signature/FWVersion_Release"></A>FWVersion_Release<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4588028"></A>Release version number of the firmware</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4588031"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4588033"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4588035"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4588037"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4588039"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4588041"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4588043"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4588045"></A>0x00...0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4588047"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4588049"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-4588123"></A><A NAME="50495582_ENC/Signature/FWVersion_Build"></A>FWVersion_Build<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4588145"></A>Build version number of the firmware</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4588126"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4588128"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4588130"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4588132"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4588134"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4588136"></A>Unsigned Long</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4588138"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4588140"></A>0x00000000...<BR>
+0xFFFFFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4588142"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4588144"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-4588051"></A><A NAME="50495582_ENC/Signature/CSVersion_Major"></A>CSVersion_Major<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4588052"></A>Major version number of the configuration string.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4837800"></A>This parameter can be customized via the <A HREF="#50495606_34947" CLASS="XRef">Configuration String</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4588055"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4588057"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4588059"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4588061"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4588063"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4588065"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4588067"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4588069"></A>0x00...0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4588071"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4588073"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-4588075"></A><A NAME="50495582_ENC/Signature/CSVersion_Minor"></A>CSVersion_Minor<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4837822"></A>Minor version number of the configuration string.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4588076"></A>This parameter can be customized via the <A HREF="#50495606_34947" CLASS="XRef">Configuration String</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4588079"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4588081"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4588083"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4588085"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4588087"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4588089"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4588091"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4588093"></A>0x00...0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4588095"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4588097"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-4588099"></A><A NAME="50495582_ENC/Signature/CSVersion_Release"></A>CSVersion_Release<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4837847"></A>Release version number of the configuration string.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4588100"></A>This parameter can be customized via the <A HREF="#50495606_34947" CLASS="XRef">Configuration String</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4588103"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4588105"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4588107"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4588109"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4588111"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4588113"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4588115"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4588117"></A>0x00...0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4588119"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4588121"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<A NAME="MNSH2-Init203" /><H6 CLASS="Heading2">
+<A NAME="50495582_pgfId-4587300"></A><A NAME="50495582_63605"></A>Init (0x203) <A NAME="50495582_marker-4590338"></A> <A NAME="50495582_marker-4590339"></A> </H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4587301"></A>This function is used to set back the FBlock ExtendedNetworkControl of a device into its initial state, which means:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495582_pgfId-4589842"></A>&#8226; Sets the device to not welcomed (no <EM CLASS="Computer">
+ExtendedNetworkControl.Hello.Get()</EM>
+ message was seen)</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495582_pgfId-4589969"></A>&#8226; Sets the NodeAddress to 0x0FFE if </LI>
+<LI CLASS="Bullet2">
+<A NAME="50495582_pgfId-4590036"></A>- UNICENS is enabled or</LI>
+<LI CLASS="Bullet2">
+<A NAME="50495582_pgfId-4590045"></A>- system diagnosis is running (see <A HREF="#50495565_78749" CLASS="XRef"><EM CLASS="Link">
+Section 4.7</EM>
+</A>)</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495582_pgfId-4589777"></A>&#8226; Ends the device diagnosis mode</LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4622201"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587307"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587309"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587311"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4587313"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587315"></A>ExtendedNetworkControl</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587316"></A>(0x0A)</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587318"></A>Init</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4587319"></A>(0x203)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4587321"></A>Start (0x0)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4587329"></A>-</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4587355"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4587360"></A>ErrorCode, ErrorInfo</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<A NAME="MNSH2-EnablePort210" /><H6 CLASS="Heading2">
+<A NAME="50495582_pgfId-3614811"></A><A NAME="50495582_14227"></A>EnablePort (0x210) <A NAME="50495582_marker-3614809"></A> <A NAME="50495582_marker-3614810"></A> </H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3616126"></A>This function is used to enable a particular MOST Port.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3616078"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3616080"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3616082"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3616084"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3616086"></A>ExtendedNetworkControl</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3616087"></A>(0x0A)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3616089"></A>EnablePort</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3616090"></A>(0x210)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3616092"></A>StartResult (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3616100"></A><A HREF="#50495582_ENC/EnalbePort/PortNumber" CLASS="XRef">PortNumber</A>, <A HREF="#50495582_ENC/EnalbePort/Enabled" CLASS="XRef">Enabled</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3616106"></A>Result (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3616114"></A>-</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3616120"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3616125"></A><A HREF="#50495582_ENC/EnalbePort/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-3616072"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_ENC/EnalbePort/PortNumber"></A>PortNumber<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3623624"></A>Number of MOST Port</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623605"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623607"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623609"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623611"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623613"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623615"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623617"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623619"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623621"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623623"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3616175"></A><A NAME="50495582_ENC/EnalbePort/Enabled"></A>Enabled<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3623836"></A>Indicates if the MOST Port is enabled or disabled</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623797"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623799"></A>Bit #</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623801"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623803"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623805"></A>Boolean</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623807"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623809"></A>False (0)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3623811"></A>MOST Port is disabled. </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623823"></A>True (1)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3623825"></A>MOST Port is enabled.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3616184"></A><A NAME="50495582_ENC/EnalbePort/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3653566"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3653568"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3653576"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3653578"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3653580"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3653585"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3653590"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3653592"></A>0x30</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3653594"></A>Device is not in system diagnosis state and therefore no MOST Port can be enabled or disabled.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3653809"></A>0x32</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3667244"></A>The slave&#8217;s clock reference MOST Port cannot be enabled or disabled.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3653939"></A>0x33</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3653941"></A>The MOST Port is not used.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3653975"></A><A HREF="#50495582_ErrorClass/0x04" CLASS="XRef">0x04</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3653977"></A>0x40</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3653979"></A>The MOST Port is not configured in full duplex coax mode.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<A NAME="MNSH2-CableLinkDiagnosis211" /><H6 CLASS="Heading2">
+<A NAME="50495582_pgfId-3614860"></A><A NAME="50495582_27532"></A>CableLinkDiagnosis (0x211) <A NAME="50495582_marker-4838329"></A> <A NAME="50495582_marker-4838330"></A> </H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3616373"></A>This function is used to start the cable link diagnosis. The cable link diagnosis is used to verify a full duplex MOST Port cable link.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3616331"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3616333"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3616335"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3616337"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3616339"></A>ExtendedNetworkControl</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3616340"></A>(0x0A)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3616342"></A>CableLinkDiagnosis</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3616343"></A>(0x211)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3616345"></A>StartResult (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3616353"></A><A HREF="#50495582_ENC/CableLinkDiagnosis/PortNumber" CLASS="XRef">PortNumber</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3616359"></A>Result (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3616361"></A><A HREF="#50495582_ENC/CableLinkDiagnosis/PortNumber" CLASS="XRef">PortNumber</A>, <A HREF="#50495582_ENC/CableLinkDiagnosis/Result" CLASS="XRef">Result</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3616367"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3616372"></A><A HREF="#50495582_ENC/CableLinkDiagnosis/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-3614914"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_ENC/CableLinkDiagnosis/PortNumber"></A>PortNumber<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3623659"></A>Number of MOST Port the diagnosis is running on</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623640"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623642"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623644"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623646"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623648"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3639767"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3639769"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3639771"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3639773"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3639775"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3616419"></A><A NAME="50495582_ENC/CableLinkDiagnosis/Result"></A>Result<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3617920"></A>Result of the cable link diagnosis. </P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3911073"></A>Cable link diagnosis was run without any test interruption.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3617897"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3617899"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3617901"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3617903"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3617905"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3617907"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3617909"></A><EM CLASS="Computer">
+NoConnection</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3617911"></A>The cable is unconnected or has a short between inner and outer conductor.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3618026"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3617917"></A><EM CLASS="Computer">
+TerminatedConnection</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4525694"></A>The cable end is correctly terminated with an appropriate impedance, but there is no responding signal from the receiving node. </P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4525695"></A>This points towards a properly connected cable with a receiving device that is not powered.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3618028"></A>0x02</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3617936"></A><EM CLASS="Computer">
+Passive-<BR>
+Connection</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3668431"></A>The receiving device is available, but the NetInterface is in passive bypass, e.g., the receiving device is in reset.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3618030"></A>0x03</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3617944"></A><EM CLASS="Computer">
+Active-<BR>
+Connection</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3617946"></A>The receiving device is available and the NetInterface is fully operational.</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3911669"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3668867"></A>Cable link diagnosis was run with test interruption.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3668721"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3668723"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3668725"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3668727"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="9" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4022997"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3668771"></A>0x81</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3668773"></A><EM CLASS="Computer">
+DebugInt0</EM>
+</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3668775"></A>Test was aborted since the Debug Header was used at the same time.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4022694"></A>0x91</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4022696"></A><EM CLASS="Computer">
+DebugInt1</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4022987"></A>0x80</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4022989"></A><EM CLASS="Computer">
+Failure0</EM>
+</P>
+</TD>
+<TD ROWSPAN="7" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3668783"></A>Test was aborted due a common processing failure.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4022982"></A>0x82</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4022985"></A><EM CLASS="Computer">
+Failure1</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3668787"></A>0x83</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3668789"></A><EM CLASS="Computer">
+Failure2</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3668795"></A>0x87</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3668797"></A><EM CLASS="Computer">
+Failure3</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3668803"></A>0x90</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3668805"></A><EM CLASS="Computer">
+Failure4</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4023115"></A>0x92</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4023117"></A><EM CLASS="Computer">
+Failure5</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3668827"></A>0x95</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3668829"></A><EM CLASS="Computer">
+Failure6</EM>
+</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3666903"></A><A NAME="50495582_ENC/CableLinkDiagnosis/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3666839"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3666841"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3666849"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3666851"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3666853"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="5" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3666858"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3666863"></A><A HREF="#50495582_ErrorClass/0x01" CLASS="XRef">0x01</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3666865"></A>0x10</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeftIndent">
+<A NAME="50495582_pgfId-3666867"></A>- The last <EM CLASS="Computer">
+INIC.CableLinkDiagnosis()</EM>
+ call has not yet been finished.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3666879"></A><A HREF="#50495582_ErrorClass/0x02" CLASS="XRef">0x02</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3666881"></A>0x20</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3919320"></A>- RBD is active or</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3919324"></A>- <EM CLASS="Computer">
+<A HREF="#50495582_ForcedNA/AvailInfo/MostStatus" CLASS="XRef"><EM CLASS="Computer">
+ForcedNA</EM>
+</A></EM>
+ was set.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3666887"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3666889"></A>0x30</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3667111"></A>Device is not in system diagnosis state and therefore cable link diagnosis cannot be triggered.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3920494"></A>0x31</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3920496"></A>The respective MOST Port is not enabled.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3666977"></A>0x32</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3667180"></A>Cable link diagnosis cannot be triggered on the slave&#8217;s clock reference MOST Port.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<A NAME="MNSH2-PhysicalLayerTest220" /><H6 CLASS="Heading2">
+<A NAME="50495582_pgfId-2667199"></A><A NAME="50495582_91148"></A>PhysicalLayerTest <A NAME="50495582_marker-3624444"></A>(0x220)<A NAME="50495582_marker-3624445"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2667201"></A>This function starts the physical layer test on a MOST Port.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2667202"></A>Once the physical layer test is started it will force the MOST network to enter <EM CLASS="Computer">
+<A HREF="#50495582_NotAvailable/Availability/MOSTNetworkStatus" CLASS="XRef"><EM CLASS="Computer">
+NotAvailable</EM>
+</A></EM>
+ state, indicating sub state <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MOSTNetworkStatus/AvailabilityInfo" CLASS="XRef">AvailabilityInfo</A></EM>
+ <EM CLASS="Computer">
+<A HREF="#50495582_Diagnosis/AvailInfo/MostStatus" CLASS="XRef"><EM CLASS="Computer">
+Diagnosis</EM>
+</A></EM>
+. After the test has been finished, it changes back to <EM CLASS="Computer">
+<A HREF="#50495582_Regular/AvailInfo/MostStatus" CLASS="XRef"><EM CLASS="Computer">
+Regular</EM>
+</A></EM>
+ and the chip is ready to start up again. <BR>
+If the network is <EM CLASS="Computer">
+<A HREF="#50495582_Available/Availability/MOSTNetworkStatus" CLASS="XRef"><EM CLASS="Computer">
+Available</EM>
+</A></EM>
+ when starting the test, the <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MOSTNetworkStatus/AvailabilityTransitionCause" CLASS="XRef">AvailabilityTransitionCause</A></EM>
+ will be <EM CLASS="Computer">
+Normal</EM>
+.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2667224"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2667226"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2667228"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2667230"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3795424"></A>ExtendedNetworkControl</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2667233"></A>(0x0A)</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2667235"></A>PhysicalLayerTest</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2667236"></A>(0x220)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2667238"></A>Start (0x0)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2667245"></A><A HREF="#50495582_ENC/PhysicalLayerTest/PortNumber" CLASS="XRef">PortNumber</A>, <A HREF="#50495582_ENC/PhysicalLayerTest/Type" CLASS="XRef">Type</A>, <A HREF="#50495582_ENC/PhysicalLayerTest/LeadIn" CLASS="XRef">LeadIn</A>, <A HREF="#50495582_ENC/PhysicalLayerTest/Duration" CLASS="XRef">Duration</A>, <A HREF="#50495582_ENC/PhysicalLayerTest/LeadOut" CLASS="XRef">LeadOut</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2667264"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2667271"></A><A HREF="#50495582_ENC/PhysicalLayerTest/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-3625093"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_ENC/PhysicalLayerTest/PortNumber"></A>PortNumber<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3625133"></A>Number of MOST Port the test is performed on </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3625114"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3625116"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3625118"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3625120"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3625122"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3639786"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3639788"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3639790"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3639792"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3639794"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-2005668"></A><A NAME="50495582_ENC/PhysicalLayerTest/Type"></A>Type<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2007087"></A>Indicates the type of physical layer test. The device is switched back to its original mode after the physical layer test is finished and the MOST network has been started up again.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2765839"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2765841"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2765843"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2765845"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2765855"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2765857"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2765860"></A><EM CLASS="Computer">
+RetimedBypassMaster</EM>
+<A NAME="50495582_Type/RetimedBypassMaster"></A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2765862"></A>Forces the device to enter <EM CLASS="Computer">
+RetimedBypassMaster</EM>
+ mode independent of original mode.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2765866"></A>0x02</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2765869"></A><EM CLASS="Computer">
+RetimedBypassSlave</EM>
+<A NAME="50495582_Type/RetimedBypassSlave"></A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2765871"></A>Forces the device to enter <EM CLASS="Computer">
+RetimedBypassSlave</EM>
+ mode independent of original mode. </P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-2004819"></A><A NAME="50495582_ENC/PhysicalLayerTest/LeadIn"></A>LeadIn<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2005027"></A>Lead in time of physical layer test</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2005243"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2005245"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2005247"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2005249"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2005251"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2005253"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2005255"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2005257"></A>10...65535</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2005259"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2005261"></A>ms</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-2004827"></A><A NAME="50495582_ENC/PhysicalLayerTest/Duration"></A>Duration<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2005730"></A>Duration time of physical layer test</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2005711"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2005713"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2005715"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2005717"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2005719"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2005721"></A>Unsigned Long</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2005723"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2005725"></A>50...4294967295</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2005727"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2005729"></A>ms</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-2004837"></A><A NAME="50495582_ENC/PhysicalLayerTest/LeadOut"></A>LeadOut<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2005061"></A>Lead out time of physical layer test</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2005506"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2005508"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2005510"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2005512"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2005514"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2005516"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2005518"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2005520"></A>10...65535</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2005522"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2005524"></A>ms</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-2006421"></A><A NAME="50495582_ENC/PhysicalLayerTest/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2839525"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2839527"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2839535"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2839537"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2839539"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2031224"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2031229"></A><A HREF="#50495582_ErrorClass/0x01" CLASS="XRef">0x01</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2031231"></A>0x10</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2031233"></A>The last <EM CLASS="Computer">
+PhysicalLayerTest()</EM>
+ call has not yet been finished.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2031240"></A><A HREF="#50495582_ErrorClass/0x02" CLASS="XRef">0x02</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2031242"></A>0x20</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3345966"></A>- RBD is active or</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3345971"></A>- <EM CLASS="Computer">
+<A HREF="#50495582_ForcedNA/AvailInfo/MostStatus" CLASS="XRef"><EM CLASS="Computer">
+ForcedNA</EM>
+</A></EM>
+ was set.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<A NAME="MNSH2-PhysicalLayerTestResult221" /><H6 CLASS="Heading2">
+<A NAME="50495582_pgfId-2008854"></A><A NAME="50495582_89384"></A>PhysicalLayerTestResult <A NAME="50495582_marker-3624712"></A>(0x221)<A NAME="50495582_marker-3624713"></A></H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2029319"></A>This function returns the result for the tested MOST Port, after the physical layer test has been finished.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2164700"></A>As soon as the physical layer test is started by executing function <EM CLASS="Computer">
+ExtendedNetworkControl.PhysicalLayerTest()</EM>
+, all parameters of <EM CLASS="Computer">
+ExtendedNetworkControl.PhysicalLayerTestResult()</EM>
+ become invalid. This means:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495582_pgfId-2029323"></A>&#8226; the <EM CLASS="Computer">
+PortNumber</EM>
+ returns 0xFF,</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495582_pgfId-2011388"></A>&#8226; the <EM CLASS="Computer">
+LockStatus</EM>
+ returns False, and</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495582_pgfId-2011433"></A>&#8226; the <EM CLASS="Computer">
+ErrorCounterValue</EM>
+ returns 0.</LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2011486"></A>If the test is erroneous, all values will stay invalid. If the test can be finished successfully, the <EM CLASS="Computer">
+PortNumber</EM>
+ changes to a valid number given during the test and <EM CLASS="Computer">
+LockStatus</EM>
+ and <EM CLASS="Computer">
+ErrorCounterValue</EM>
+ also return with evaluated values.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2011507"></A>After INIC reset, all values are invalidated. They are also invalidated after they have been read.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2032021"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2032023"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2032025"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2032027"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3795437"></A>ExtendedNetworkControl</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2032030"></A>(0x0A)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2032032"></A>PhysicalLayer-TestResult</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2032033"></A>(0x221)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2032035"></A>Get (0x1)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2032037"></A>-</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2032043"></A>Status (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2032050"></A><A HREF="#50495582_ENC/PhysicalLayerTestResult/PortNumber" CLASS="XRef">PortNumber</A>, <A HREF="#50495582_ENC/PhysicalLayerTestResult/LockStatus" CLASS="XRef">LockStatus</A>, <A HREF="#50495582_ENC/PhysicalLayerTestResult/ErrorCounterValue" CLASS="XRef">ErrorCounterValue</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2032060"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2032062"></A>ErrorCode, ErrorInfo</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-3625245"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_ENC/PhysicalLayerTestResult/PortNumber"></A>PortNumber<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3625267"></A>Number of MOST Port the test was performed on. If the handle is invalid, 0xFF is returned.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3625248"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3625250"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3625252"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3625254"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3625256"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3625258"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3625260"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3625262"></A>0x00</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3625264"></A>1</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3625266"></A>None</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3627156"></A>0xFF</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-2009263"></A><A NAME="50495582_ENC/PhysicalLayerTestResult/LockStatus"></A>LockStatus<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2012337"></A>Indicates if an unlock has occurred during the physical layer test</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2012340"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2012342"></A>Bit #</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2012344"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2012346"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2012348"></A>Boolean</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2012350"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2012352"></A>False (0)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2012354"></A>No unlock occurred</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2012360"></A>True (1)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2012362"></A>Unlock occurred</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-2009266"></A><A NAME="50495582_ENC/PhysicalLayerTestResult/ErrorCounterValue"></A>ErrorCounterValue<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2012407"></A>Number of detected coding errors occurred during physical layer test</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2009320"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2009322"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2009324"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2009326"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-2009328"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2009330"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2009332"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2009334"></A>0x0000...0xFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2009336"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-2009338"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<A NAME="MNSH2-MemorySessionOpen300" /><H6 CLASS="Heading2">
+<A NAME="50495582_pgfId-3615039"></A><A NAME="50495582_51451"></A>MemorySessionOpen (0x300) <A NAME="50495582_marker-3707350"></A> <A NAME="50495582_marker-3707351"></A> </H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3705949"></A>This function is used to open a memory session. A memory session is used to control access to the memory resources. Before a memory could be read or written, a session of the appropriate type has to be opened. </P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3705917"></A>Only a single memory session is supported. Once opened, the session must be first closed before a new session of a different type could be used. </P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4788332"></A>Some session types (0x01, 0x02 and 0x04) require a hardware reset after they were closed. If one of these sessions is opened to write the configuration string and/or the identification string, an INIC reset request is placed. Execution of the INIC reset happens when the INIC transitions to NetInterface Off state or after ExtendedNetworkControl.Init() was called, see <A HREF="#50495582_63605" CLASS="XRef"><EM CLASS="Link">
+Section 21.4.4</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3705918"></A>This function also performs some preprocessing, depending on the <EM CLASS="Computer">
+<A HREF="#50495582_ENC/MemoryWriteSessionOpen/SessionType" CLASS="XRef">SessionType</A></EM>
+. This includes the clearing of the configuration and identification strings in advance to programming or erasing the error memory.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3617062"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3617064"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3617066"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3617068"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3617070"></A>ExtendedNetworkControl</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3617071"></A>(0x0A)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3617073"></A>MemorySessionOpen</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3617074"></A>(0x300)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3617076"></A>StartResult (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3617084"></A><A HREF="#50495582_ENC/MemoryWriteSessionOpen/SessionType" CLASS="XRef">SessionType</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3617099"></A>Result (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3617107"></A><A HREF="#50495582_ENC/MemoryWriteSessionOpen/SessionHandle" CLASS="XRef">SessionHandle</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3617113"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3617118"></A><A HREF="#50495582_ENC/MemoryWriteSessionOpen/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-3617056"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_ENC/MemoryWriteSessionOpen/SessionType"></A>SessionType<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3619333"></A>Defines the set of <EM CLASS="Computer">
+MemIDs</EM>
+ and the memory access type(s) (read and/or write)</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3619246"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3619248"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3619250"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3619252"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="6" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3619362"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3619264"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3619266"></A><EM CLASS="Computer">
+ProgramCS</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3619268"></A>Writes to <A HREF="#50495582_ENC/MemoryWrite/MemID" CLASS="XRef">MemID</A> 0x00, configuration string</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3619272"></A>0x02</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3619274"></A><EM CLASS="Computer">
+ProgramIS</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3619276"></A>Writes to <A HREF="#50495582_ENC/MemoryWrite/MemID" CLASS="XRef">MemID</A> 0x01, identification string</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3619288"></A>0x04</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3619290"></A><EM CLASS="Computer">
+ProgramCS_IS</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3619292"></A>Writes to <A HREF="#50495582_ENC/MemoryWrite/MemID" CLASS="XRef">MemID</A> 0x00 and <A HREF="#50495582_ENC/MemoryWrite/MemID" CLASS="XRef">MemID</A><EM CLASS="Computer">
+ </EM>
+0x01</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3619320"></A>0x08</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3619322"></A><EM CLASS="Computer">
+EraseEM</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3619324"></A>Erases the error memory</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3619551"></A>0x10</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3619553"></A><EM CLASS="Computer">
+ReadIM</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3619555"></A>Reads the information memory <A HREF="#50495582_ENC/MemoryWrite/MemID" CLASS="XRef">MemID</A> 0x00, <A HREF="#50495582_ENC/MemoryWrite/MemID" CLASS="XRef">MemID</A> 0x01, <A HREF="#50495582_ENC/MemoryWrite/MemID" CLASS="XRef">MemID</A> 0x02</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4582014"></A>0x20</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4582016"></A><EM CLASS="Computer">
+Internal</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4582018"></A>Internal</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3617153"></A><A NAME="50495582_ENC/MemoryWriteSessionOpen/SessionHandle"></A>SessionHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3622710"></A>Unique number used to authorize memory access. Required as a parameter in functions <EM CLASS="Computer">
+ExtendedNetworkControl.MemoryRead()</EM>
+ and <EM CLASS="Computer">
+ExtendedNetworkControl.MemoryWrite()</EM>
+</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622691"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622693"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622695"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622697"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622699"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622701"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622703"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622705"></A>0x0000...0xFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622707"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622709"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3617169"></A><A NAME="50495582_ENC/MemoryWriteSessionOpen/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3703749"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3703751"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3703759"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3703761"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3703763"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3703768"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3703773"></A><A HREF="#50495582_ErrorClass/0x01" CLASS="XRef">0x01</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3703775"></A>0x10</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3703780"></A>Before a new session can be opened, a hardware reset must be applied.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3703825"></A>0x11</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3703830"></A>The memory session using the <EM CLASS="Computer">
+<A HREF="#50495582_ENC/MemoryWriteSessionOpen/SessionHandle" CLASS="XRef">SessionHandle</A></EM>
+ is already active.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3703784"></A><A HREF="#50495582_ErrorClass/0x02" CLASS="XRef">0x02</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3703786"></A>0x20</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3703788"></A>A configuration string erase error has occurred.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3703821"></A>0x21</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3703823"></A>An error memory erase error has occurred.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<A NAME="MNSH2-MemorySessionClose301" /><H6 CLASS="Heading2">
+<A NAME="50495582_pgfId-3615096"></A><A NAME="50495582_21181"></A>MemorySessionClose (0x301) <A NAME="50495582_marker-3707642"></A> <A NAME="50495582_marker-3707643"></A> </H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3704421"></A>This function is used to close an active memory session that was previously opened by function <EM CLASS="Computer">
+ExtendedNetworkControl.MemorySessionOpen()</EM>
+. In addition, the function performs some post-processing on given session types. This includes validation of the newly programmed configuration and identification strings as well as the deactivation of the current configuration and identification strings. In these cases, the new configuration becomes active after a hardware reset.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3617255"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3617257"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3617259"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3617261"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3617263"></A>ExtendedNetworkControl</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3617264"></A>(0x0A)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3617266"></A>MemorySessionClose</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3617267"></A>(0x301)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3617269"></A>StartResult (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3617274"></A><A HREF="#50495582_ENC/MemoryWriteSessionClose/SessionHandle" CLASS="XRef">SessionHandle</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3617280"></A>Result (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3617285"></A><A HREF="#50495582_ENC/MemoryWriteSessionClose/SessionResult" CLASS="XRef">SessionResult</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3617291"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3617296"></A>ErrorCode, ErrorInfo</P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-3613988"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_ENC/MemoryWriteSessionClose/SessionHandle"></A>SessionHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3622745"></A>Unique number assigned to the active memory session by function <EM CLASS="Computer">
+ExtendedNetworkControl.MemorySessionOpen()</EM>
+ </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622726"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622728"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622730"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622732"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622734"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622736"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622738"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622740"></A>0x0000...0xFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622742"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622744"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3617335"></A><A NAME="50495582_ENC/MemoryWriteSessionClose/SessionResult"></A>SessionResult<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3619667"></A>Reports the memory session state on closing</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3619612"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3619614"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3619616"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3619618"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="5" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3619620"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3619622"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3619624"></A><EM CLASS="Computer">
+Success</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3619626"></A>Memory session closed successfully</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3619630"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3619632"></A><EM CLASS="Computer">
+CRCErrorNewCS</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3619634"></A>CRC error found in the new configuration string </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3619638"></A>0x02</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3619640"></A><EM CLASS="Computer">
+CRCErrorNewIS</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3704265"></A>CRC error found in the new identification string </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3619646"></A>0x03</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3619648"></A><EM CLASS="Computer">
+CRCErrorOldCS</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3704298"></A>CRC error found in the active configuration string </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3619654"></A>0x04</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3619656"></A><EM CLASS="Computer">
+CRCErrorOldIS</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3619658"></A>CRC error found in the active identification string</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<A NAME="MNSH2-MemoryRead302" /><H6 CLASS="Heading2">
+<A NAME="50495582_pgfId-3614925"></A><A NAME="50495582_34952"></A>MemoryRead (0x302) <A NAME="50495582_marker-3614983"></A> <A NAME="50495582_marker-3614984"></A> </H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3701026"></A>This function provides read access to the memories described by parameter <EM CLASS="Computer">
+<A HREF="#50495582_ENC/MemoryRead/MemID" CLASS="XRef">MemID</A></EM>
+. In addition, the function can be used to retrieve the active <A HREF="#50495606_34947" CLASS="XRef">Configuration String</A> and <A HREF="#50495606_31610" CLASS="XRef">Identification String</A>.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3701836"></A>Reading the memory can only be done within an active memory session. Parameter <EM CLASS="Computer">
+<A HREF="#50495582_ENC/MemoryRead/SessionHandle" CLASS="XRef">SessionHandle</A></EM>
+ authorizes the access to the memory resource defined by parameter <EM CLASS="Computer">
+<A HREF="#50495582_ENC/MemoryRead/MemID" CLASS="XRef">MemID</A></EM>
+. The <EM CLASS="Computer">
+<A HREF="#50495582_ENC/MemoryRead/SessionHandle" CLASS="XRef">SessionHandle</A></EM>
+ is provided by function <EM CLASS="Computer">
+ExtendedNetworkControl.MemorySessionOpen()</EM>
+, which must be called in advance to memory access.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3616523"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3616525"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3616527"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3616529"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3616531"></A>ExtendedNetworkControl</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3616532"></A>(0x0A)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3616534"></A>MemoryRead</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3616535"></A>(0x302)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3616537"></A>StartResult (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3616542"></A><A HREF="#50495582_ENC/MemoryRead/SessionHandle" CLASS="XRef">SessionHandle</A>, <A HREF="#50495582_ENC/MemoryRead/MemID" CLASS="XRef">MemID</A>, <A HREF="#50495582_ENC/MemoryRead/Address" CLASS="XRef">Address</A>, <A HREF="#50495582_ENC/MemoryRead/UnitLen" CLASS="XRef">UnitLen</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3616548"></A>Result (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3616556"></A><A HREF="#50495582_ENC/MemoryRead/SessionHandle" CLASS="XRef">SessionHandle</A>, <A HREF="#50495582_ENC/MemoryRead/MemID" CLASS="XRef">MemID</A>, <A HREF="#50495582_ENC/MemoryRead/Address" CLASS="XRef">Address</A>, <A HREF="#50495582_ENC/MemoryRead/UnitLen" CLASS="XRef">UnitLen</A>, <A HREF="#50495582_ENC/MemoryRead/UnitData" CLASS="XRef">UnitData</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3616562"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3616567"></A><A HREF="#50495582_ENC/MemoryRead/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-3616517"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_ENC/MemoryRead/SessionHandle"></A>SessionHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3701495"></A>Identifies the active memory session already opened to authorize the reading operation</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622549"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622551"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622553"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622555"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622557"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622559"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622561"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622563"></A>0x0000...0xFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622565"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622567"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3616618"></A><A NAME="50495582_ENC/MemoryRead/MemID"></A>MemID<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3701394"></A>Represents the memory resource to be read </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3618413"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3618415"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3618417"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3618419"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3618421"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3618423"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3618425"></A><EM CLASS="Computer">
+ConfigurationString</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3618427"></A>Reads the configuration string</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3618431"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3618433"></A><EM CLASS="Computer">
+IdentificationString</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3618435"></A>Reads the identification string</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3618439"></A>0x02</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3618441"></A><EM CLASS="Computer">
+ErrorMemory</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3618443"></A>Reads the error memory</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4582064"></A>0x03...0x09</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4582066"></A><EM CLASS="Computer">
+Internal</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4582068"></A>Internal</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3616625"></A><A NAME="50495582_ENC/MemoryRead/Address"></A>Address<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3623884"></A>Defines the memory location at which the reading operation starts.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495582_pgfId-3702401"></A>Note: Each memory has its own address range limits, which must not be exceeded for the particular <EM CLASS="Computer">
+MemID</EM>
+.</Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3702544"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623865"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623867"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623869"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623871"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623873"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623875"></A>Unsigned Long</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623877"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623879"></A>0x00000000...<BR>
+0xFFFFFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623881"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623883"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3616635"></A><A NAME="50495582_ENC/MemoryRead/UnitLen"></A>UnitLen<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3702659"></A>Sets the number of memory units to be read. Memory units can be unsigned bytes, unsigned words or unsigned masked data depending on the memory type. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3702617"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3702619"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3702621"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3702623"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3702625"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3702627"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3702629"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3702631"></A>0x01...0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3702633"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3702635"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3616645"></A><A NAME="50495582_ENC/MemoryRead/UnitData"></A>UnitData<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3626222"></A>Contains the data read from the memory resource and formatted as memory units </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3626105"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3626107"></A>Number of Elements</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3626109"></A>Condition</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3626111"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="10" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3626113"></A>Stream</P>
+</TD>
+<TD ROWSPAN="10" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3626115"></A><EM CLASS="BlackMarker">
+1...18</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3626117"></A>MemID = 0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3626122"></A><EM CLASS="BlackMarker">
+{ <A HREF="#50495582_ENC/MemoryRead/ByteData" CLASS="XRef">ByteData</A> }</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3626128"></A>MemID = 0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3626133"></A><EM CLASS="BlackMarker">
+{ <A HREF="#50495582_ENC/MemoryRead/ByteData" CLASS="XRef">ByteData</A> }</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3626139"></A>MemID = 0x02</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3626144"></A><EM CLASS="BlackMarker">
+{ <A HREF="#50495582_ENC/MemoryRead/ByteData" CLASS="XRef">ByteData</A> }</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4582174"></A>MemID = 0x03</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4582191"></A><EM CLASS="BlackMarker">
+{ <A HREF="#50495582_ENC/MemoryRead/WordData" CLASS="XRef">WordData</A> }</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4582176"></A>MemID = 0x04</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4582196"></A><EM CLASS="BlackMarker">
+{ <A HREF="#50495582_ENC/MemoryRead/ByteData" CLASS="XRef">ByteData</A> }</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4582178"></A>MemID = 0x05</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4582201"></A><EM CLASS="BlackMarker">
+{ <A HREF="#50495582_ENC/MemoryRead/ByteData" CLASS="XRef">ByteData</A> }</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4582180"></A>MemID = 0x06</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4582206"></A><EM CLASS="BlackMarker">
+{ <A HREF="#50495582_ENC/MemoryRead/MaskedWordData" CLASS="XRef">MaskedWordData</A> }</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4582182"></A>MemID = 0x07</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4582211"></A><EM CLASS="BlackMarker">
+{ <A HREF="#50495582_ENC/MemoryRead/MaskedWordData" CLASS="XRef">MaskedWordData</A> }</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4582184"></A>MemID = 0x08</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4582216"></A><EM CLASS="BlackMarker">
+{ <A HREF="#50495582_ENC/MemoryRead/MaskedWordData" CLASS="XRef">MaskedWordData</A> }</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4582186"></A>MemID = 0x09</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4582221"></A><EM CLASS="BlackMarker">
+{ <A HREF="#50495582_ENC/MemoryRead/ByteData" CLASS="XRef">ByteData</A> }</EM>
+</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3616665"></A><A NAME="50495582_ENC/MemoryRead/ByteData"></A>ByteData<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3623705"></A>Defines a stream of unsigned bytes</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623686"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623688"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623690"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623692"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623694"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623696"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623698"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623700"></A>0x00...0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623702"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623704"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-4578578"></A><A NAME="50495582_ENC/MemoryRead/WordData"></A>WordData<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4578600"></A>Defines a stream of unsigned words</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4578581"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4578583"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4578585"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4578587"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4578589"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4578591"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4578593"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4578595"></A>0x0000...0xFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4578597"></A>2</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4578599"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-4578602"></A><A NAME="50495582_ENC/MemoryRead/MaskedWordData"></A>MaskedWordData<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4578622"></A>Defines a stream formatted as pairs of unsigned words and their corresponding word bit masks</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4578605"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4578607"></A>Number of Elements</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4578609"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4578611"></A>Stream</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4578613"></A>2</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4578621"></A><EM CLASS="BlackMarker">
+<A HREF="#50495582_ENC/MemoryRead/WordData" CLASS="XRef">WordData</A>, <A HREF="#50495582_ENC/MemoryRead/WordMask" CLASS="XRef">WordMask</A></EM>
+</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-4578624"></A><A NAME="50495582_ENC/MemoryRead/WordMask"></A>WordMask<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4578646"></A>Always 0xFFFF on reading</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4578627"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4578629"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4578631"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4578633"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4578635"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4578637"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4578639"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4578641"></A>0xFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4578643"></A>2</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4578645"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3703555"></A><A NAME="50495582_ENC/MemoryRead/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3703511"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3703513"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3703521"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3703523"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3703525"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3703530"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3703535"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3703537"></A>0x30</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3703539"></A>The <EM CLASS="Computer">
+<A HREF="#50495582_ENC/MemoryRead/SessionHandle" CLASS="XRef">SessionHandle</A></EM>
+ does not match the current memory session.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3703548"></A>0x31</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3703554"></A>The memory session does not support the requested <EM CLASS="Computer">
+<A HREF="#50495582_ENC/MemoryRead/MemID" CLASS="XRef">MemID</A></EM>
+.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<A NAME="MNSH2-MemoryWrite303" /><H6 CLASS="Heading2">
+<A NAME="50495582_pgfId-3614996"></A><A NAME="50495582_74500"></A>MemoryWrite (0x303) <A NAME="50495582_marker-3614994"></A> <A NAME="50495582_marker-3614995"></A> </H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3704679"></A>This function provides write access to the memories described by parameter <EM CLASS="Computer">
+<A HREF="#50495582_ENC/MemoryWrite/MemID" CLASS="XRef">MemID</A></EM>
+. In addition, the function can be used to program a new <A HREF="#50495606_34947" CLASS="XRef">Configuration String</A> and <A HREF="#50495606_31610" CLASS="XRef">Identification String</A>.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3616928"></A>Writing the memory can only be done within an active memory session. Parameter <EM CLASS="Computer">
+<A HREF="#50495582_ENC/MemoryWrite/SessionHandle" CLASS="XRef">SessionHandle</A></EM>
+ authorizes the access to the memory resource defined by parameter <EM CLASS="Computer">
+<A HREF="#50495582_ENC/MemoryWrite/MemID" CLASS="XRef">MemID</A></EM>
+. The <EM CLASS="Computer">
+<A HREF="#50495582_ENC/MemoryWrite/SessionHandle" CLASS="XRef">SessionHandle</A></EM>
+ is provided by function <EM CLASS="Computer">
+ExtendedNetworkControl.MemorySessionOpen()</EM>
+, which must be called in advance to memory access.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3616865"></A>FBlockID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3616867"></A>FktID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3616869"></A>OPType</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3616871"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3616873"></A>ExtendedNetworkControl</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3616874"></A>(0x0A)</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3616876"></A>MemoryWrite</P>
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3616877"></A>(0x303)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3616879"></A>StartResult (0x2)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3616887"></A><A HREF="#50495582_ENC/MemoryWrite/SessionHandle" CLASS="XRef">SessionHandle</A>, <A HREF="#50495582_ENC/MemoryWrite/MemID" CLASS="XRef">MemID</A>, <A HREF="#50495582_ENC/MemoryWrite/Address" CLASS="XRef">Address</A>, <A HREF="#50495582_ENC/MemoryWrite/UnitLen" CLASS="XRef">UnitLen</A>, <A HREF="#50495582_ENC/MemoryWrite/UnitData" CLASS="XRef">UnitData</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3616899"></A>Result (0xC)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3616907"></A><A HREF="#50495582_ENC/MemoryWrite/SessionHandle" CLASS="XRef">SessionHandle</A>, <A HREF="#50495582_ENC/MemoryWrite/MemID" CLASS="XRef">MemID</A></P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3616922"></A>Error (0xF)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3616927"></A><A HREF="#50495582_ENC/MemoryWrite/ErrorCode, ErrorInfo" CLASS="XRef">ErrorCode, ErrorInfo</A></P>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<H6 CLASS="Parameter-Head">
+<A NAME="50495582_pgfId-3616930"></A><DIV>
+<IMG SRC="OS81118-115.gif" ALT="">
+</DIV>
+<A NAME="50495582_ENC/MemoryWrite/SessionHandle"></A>SessionHandle<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3622638"></A>Identifies the active memory session already opened to authorize the writing operation</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622619"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622621"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622623"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622625"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3622627"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622629"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622631"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622633"></A>0x0000...0xFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622635"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3622637"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3616932"></A><A NAME="50495582_ENC/MemoryWrite/MemID"></A>MemID<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3628947"></A>Represents the memory resource to be written </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3628916"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3628918"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3628920"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3628922"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3628924"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3628926"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3628928"></A><EM CLASS="Computer">
+ConfigurationString</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3628930"></A>Writes the configuration string</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3628934"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3628936"></A><EM CLASS="Computer">
+IdentificationString</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3628938"></A>Writes the identification string</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4582254"></A>0x03...0x09</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4582256"></A><EM CLASS="Computer">
+Internal</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4582258"></A>Internal</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3616934"></A><A NAME="50495582_ENC/MemoryWrite/Address"></A>Address<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3705164"></A>Defines the memory location at which the writing operation starts.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495582_pgfId-3705163"></A>Note: Each memory has its own address range limits, which must not be exceeded for the particular <EM CLASS="Computer">
+MemID</EM>
+.</Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3623953"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623934"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623936"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623938"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623940"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623942"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623944"></A>Unsigned Long</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623946"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623948"></A>0x00000000...<BR>
+0xFFFFFFFE</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623950"></A>2</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623952"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3616936"></A><A NAME="50495582_ENC/MemoryWrite/UnitLen"></A>UnitLen<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3705292"></A>Sets the number of memory units to be written. Memory units can be unsigned bytes, unsigned words or unsigned masked data depending on the memory type. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3705295"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3705297"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3705299"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3705301"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3705303"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3705305"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3705307"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3705309"></A>0x01...0xFE</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3705311"></A>2</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3705313"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3616938"></A><A NAME="50495582_ENC/MemoryWrite/UnitData"></A>UnitData<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3705592"></A>Contains the actual data written to the memory resource and formatted as memory units </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3705552"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3705554"></A>Number of Elements</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3705556"></A>Condition</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3705558"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="9" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3705560"></A>Stream</P>
+</TD>
+<TD ROWSPAN="9" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3705562"></A><EM CLASS="BlackMarker">
+1...18</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3705564"></A>MemID = 0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3705569"></A><EM CLASS="BlackMarker">
+{ <A HREF="#50495582_ENC/MemoryRead/ByteData" CLASS="XRef">ByteData</A> }</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3705575"></A>MemID = 0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3705580"></A><EM CLASS="BlackMarker">
+{ <A HREF="#50495582_ENC/MemoryRead/ByteData" CLASS="XRef">ByteData</A> }</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4582393"></A>MemID = 0x03</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4582398"></A><EM CLASS="BlackMarker">
+{ <A HREF="#50495582_ENC/MemoryRead/WordData" CLASS="XRef">WordData</A> }</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4582400"></A>MemID = 0x04</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4582405"></A><EM CLASS="BlackMarker">
+{ <A HREF="#50495582_ENC/MemoryRead/ByteData" CLASS="XRef">ByteData</A> }</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4582407"></A>MemID = 0x05</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4582412"></A><EM CLASS="BlackMarker">
+{ <A HREF="#50495582_ENC/MemoryRead/ByteData" CLASS="XRef">ByteData</A> }</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4582414"></A>MemID = 0x06</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4582419"></A><EM CLASS="BlackMarker">
+{ <A HREF="#50495582_ENC/MemoryRead/MaskedWordData" CLASS="XRef">MaskedWordData</A> }</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4582421"></A>MemID = 0x07</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4582426"></A><EM CLASS="BlackMarker">
+{ <A HREF="#50495582_ENC/MemoryRead/MaskedWordData" CLASS="XRef">MaskedWordData</A> }</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4582428"></A>MemID = 0x08</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4582433"></A><EM CLASS="BlackMarker">
+{ <A HREF="#50495582_ENC/MemoryRead/MaskedWordData" CLASS="XRef">MaskedWordData</A> }</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4582435"></A>MemID = 0x09</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4582440"></A><EM CLASS="BlackMarker">
+{ <A HREF="#50495582_ENC/MemoryRead/ByteData" CLASS="XRef">ByteData</A> }</EM>
+</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3621595"></A><A NAME="50495582_ENC/MemoryWrite/ByteData"></A>ByteData<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-3623752"></A>Defines a stream of unsigned bytes</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623733"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623735"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623737"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623739"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3623741"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623743"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623745"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623747"></A>0x00...0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623749"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3623751"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-4578814"></A><A NAME="50495582_ENC/MemoryWrite/WordData"></A>WordData<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4578836"></A>Defines a stream of unsigned words</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4578817"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4578819"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4578821"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4578823"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4578825"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4578827"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4578829"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4578831"></A>0x0000...0xFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4578833"></A>2</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4578835"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-4578838"></A><A NAME="50495582_ENC/MemoryWrite/MaskedWordData"></A>MaskedWordData<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4578858"></A>Defines a stream formatted as pairs of unsigned words and their corresponding word bit masks.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4578841"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4578843"></A>Number of Elements</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4578845"></A>Parameters</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4578847"></A>Stream</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4578849"></A><EM CLASS="BlackMarker">
+2</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-4578857"></A><EM CLASS="BlackMarker">
+<A HREF="#50495582_ENC/MemoryWrite/WordData" CLASS="XRef">WordData</A>, <A HREF="#50495582_ENC/MemoryWrite/WordMask" CLASS="XRef">WordMask</A></EM>
+</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-4578860"></A><A NAME="50495582_ENC/MemoryWrite/WordMask"></A>WordMask<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4578882"></A>Bit mask where '1' corresponds to the bits in the data which can be written.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4578863"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4578865"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4578867"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4578869"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-4578871"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4578873"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4578875"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4578877"></A>0x0000...0xFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4578879"></A>2</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-4578881"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495582_pgfId-3616944"></A><A NAME="50495582_ENC/MemoryWrite/ErrorCode, ErrorInfo"></A>ErrorCode, ErrorInfo<DIV>
+<IMG SRC="OS81118-116.gif" ALT="">
+</DIV>
+</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3703655"></A>ErrorCode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3703657"></A>ErrorInfo</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3703665"></A>ErrorClass</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3703667"></A>ErrorID</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-3703669"></A>Description of the Error</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3703674"></A><A HREF="#50495582_ErrorCode/0x20" CLASS="XRef">0x20</A></P>
+</TD>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3703679"></A><A HREF="#50495582_ErrorClass/0x03" CLASS="XRef">0x03</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3703681"></A>0x30</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3703686"></A>The <EM CLASS="Computer">
+<A HREF="#50495582_ENC/MemoryRead/SessionHandle" CLASS="XRef">SessionHandle</A></EM>
+ does not match the current memory session.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3703692"></A>0x31</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3703694"></A>The memory session does not support the requested <EM CLASS="Computer">
+<A HREF="#50495582_ENC/MemoryRead/MemID" CLASS="XRef">MemID</A></EM>
+.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3921618"></A>0x32</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3921620"></A>The <EM CLASS="Computer">
+<A HREF="#50495582_ENC/MemoryRead/Address" CLASS="XRef">Address</A></EM>
+ is odd when writing the memory.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-3921626"></A>0x33</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-3921628"></A>The <EM CLASS="Computer">
+<A HREF="#50495582_ENC/MemoryRead/UnitLen" CLASS="XRef">UnitLen</A></EM>
+ is odd when writing the memory.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495582_pgfId-1879890"></A><A NAME="50495582_32282"></A>Error Reporting</H3>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-670746"></A>The INIC&#8217;s error reporting is based on standard error codes as provided by the MOST Specification <A HREF="#50495561_60695" CLASS="XRef"><EM CLASS="Blue">
+[1]</EM>
+</A>. This includes error codes (0x01-0x06) that indicate format failures. A format failure occurs whenever a function or parameter-related setting was done that is not supported by the INIC API. In addition to these error codes, error code 0x0C is reported if a segmentation error occurs. The standard error codes are listed in <A HREF="#50495582_23308" CLASS="XRef"><EM CLASS="Link">
+Table 21-16</EM>
+</A>, including error code 0x20, which is function-specific. Function-specific error codes are related to errors that can only happen during runtime.</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-670750"></A>Error code information consists of a code (<EM CLASS="Computer">
+ErrorCode</EM>
+) and a description of it (<EM CLASS="Computer">
+ErrorInfo</EM>
+), see <A HREF="#50495582_23308" CLASS="XRef"><EM CLASS="Link">
+Table 21-16</EM>
+</A>. A function-specific error code always has the <EM CLASS="Computer">
+ErrorCode</EM>
+ number 0x20; its <EM CLASS="Computer">
+ErrorInfo</EM>
+ contains the <A NAME="50495582_marker-1172756"></A>ErrorClass and the <A NAME="50495582_marker-1172761"></A>ErrorID. The ErrorClass describes the classification of the error, and the ErrorID and its description the details. A description of available error classes is given in <A HREF="#50495582_14262" CLASS="XRef"><EM CLASS="Link">
+Table 21-17</EM>
+</A>; the ErrorID and its description can be found beneath the appropriate INIC API function in this chapter. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495582_pgfId-967190"></A>Note: An error is reported only to the device that sent the instruction.</Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-670914"></A> &nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495582_pgfId-914495"></A>Table 21-16: <A NAME="50495582_23308"></A><A NAME="50495582_marker-1172751"></A>Standard ErrorCodes and ErrorInfo (Continued)</TableTitle>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-670759"></A>ErrorCode</P>
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-670760"></A>Data[0] On ErrorData[2]</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-670762"></A>Description</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-670764"></A>ErrorInfo Data[1]...Data[n] OnErrorData[3]...<BR>
+Data[n]</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-670766"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-670768"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-670770"></A>FBlockID not available</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-670772"></A>-</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-670774"></A>No info</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-670776"></A>0x02</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-670778"></A>InstID not available</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-670780"></A>-</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-670782"></A>No info</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-670784"></A>0x03</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-670786"></A>FktID not available</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-670788"></A>-</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-670790"></A>No info</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-670792"></A>0x04</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-670794"></A>OPType not available</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-670796"></A>Return OPType</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-670798"></A>Invalid OPType</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-670800"></A>0x05</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-670802"></A>Invalid length</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-670804"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-670806"></A>No info</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-670808"></A>0x06</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-670810"></A>Parameter wrong/ out of range:</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-670811"></A>One or more of the parameters were wrong, i.e., not within the boundaries specified for the function.</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-670816"></A>Return parameter<EM CLASS="Blue">
+<A HREF="#50495582_46373" CLASS="XRef"></A></EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-670818"></A>Number of parameter (byte containing 1,2, &#8230;). Value of first incorrect parameter only (optional). Interpretation will be stopped then.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="7" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-670820"></A>0x0C</P>
+</TD>
+<TD ROWSPAN="7" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-670822"></A>Segmentation error:</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-670823"></A>After this error code, the following <EM CLASS="Computer">
+ErrorInfo</EM>
+ 0x01 up to 0x07 can be sent.</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-670825"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-670827"></A>First segment missing</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-670833"></A>0x02</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-670835"></A>Receive buffer overflow. Message is too long.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-670841"></A>0x03</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-670843"></A>Unexpected segment number</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-670849"></A>0x04</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-670851"></A>Receive buffer overflow. No free Rx slot available.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-670857"></A>0x05</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-670859"></A>Timeout while waiting for the next segment</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-670865"></A>0x06</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-670867"></A>Device is not capable to handle segmented messages.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-670873"></A>0x07</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-670875"></A>Segmented message has not been finished before the arrival of another message set by the same node.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-670878"></A><A NAME="50495582_ErrorCode/0x20"></A>0x20</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-670880"></A>Function-specific error</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-670882"></A>ErrorClass and ErrorID</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-670887"></A>Refer to <A HREF="#50495582_14262" CLASS="XRef"><EM CLASS="Link">
+Table 21-17</EM>
+</A>. Additional error information can be found beneath the appropriate INIC API function.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="4">
+<P CLASS="Body">
+<A NAME="50495582_pgfId-670898"></A><A NAME="50495582_46373"></A>&nbsp;</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1076567"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495582_pgfId-1076534"></A>Table 21-17: <A NAME="50495582_14262"></A><A NAME="50495582_marker-1172766"></A>List of ErrorClasses</TableTitle>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1076538"></A>ErrorClass Data[1] OnErrorData[3]</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495582_pgfId-1076540"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1076543"></A><A NAME="50495582_ErrorClass/0x01"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1076545"></A><A NAME="50495582_marker-1172790"></A>Busy<BR>
+Process in INIC is currently busy. Retries are possible in a reasonable time.</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2164823"></A>Example: Returned when a detach request is pending, but the application triggers an attach. </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1076548"></A><A NAME="50495582_ErrorClass/0x02"></A>0x02</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1076550"></A><EM CLASS="Underline">
+Processing error</EM>
+<A NAME="50495582_marker-1172795"></A></P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1076551"></A>Process could not be finished. Retries are possible.</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2164831"></A>Example: The MOST network cannot reach <EM CLASS="Computer">
+<A HREF="#50495582_Available/Availability/MOSTNetworkStatus" CLASS="XRef"><EM CLASS="Computer">
+Available</EM>
+</A></EM>
+ state.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1076557"></A><A NAME="50495582_ErrorClass/0x03"></A>0x03</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1076559"></A><EM CLASS="Bold">
+Configuration error</EM>
+<A NAME="50495582_marker-1172800"></A></P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1076560"></A>Wrong configuration (values are temporarily out of range).<BR>
+Retries are not useful.</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2164834"></A>Example: Application has already opened a port that was requested to be opened again with a different, but valid setting.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495582_pgfId-1076563"></A><A NAME="50495582_ErrorClass/0x04"></A>0x04</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1076565"></A><A NAME="50495582_marker-1172805"></A>System error </P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-1076566"></A>Current state of INIC or network prevents a successful execution of the process and retries are not possible. <BR>
+Retries are only possible when the state changes, but it is not clear when or if this happens (dynamic error).</P>
+<P CLASS="CellBodyLeft">
+<A NAME="50495582_pgfId-2164837"></A>Example: Occurs if it is requested to create streaming sockets while there is not enough streaming bandwidth available on the MOST network.</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1076568"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-1076599"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-4753720"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495582_pgfId-2304580"></A>&nbsp;</P>
+</DIV>
+</DIV>
+<h1><a class="anchor" id="SEC_OS81118_24"></a>
+Configuration</h1>
+<DIV>
+<H1 CLASS="Chapter">
+<A NAME="50495606_pgfId-630401"></A><DIV>
+<IMG SRC="OS81118-117.gif" ALT="">
+</DIV>
+<A NAME="50495606_47728"></A>Configuration<DIV>
+<IMG SRC="OS81118-118.gif" ALT="">
+</DIV>
+</H1>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-902073"></A>The INIC provides two flash memory sections for configuration, namely the <A HREF="#50495606_34947" CLASS="XRef">Configuration String</A> and the <A HREF="#50495606_31610" CLASS="XRef">Identification String</A>. Each flash memory section consists of a list of properties, with a factory default value associated to each property. If the factory default values do not match the settings required for the application, the values can be adjusted and the string can be re-programmed.</P>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-902256"></A>Configuration string</P>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-904193"></A>This memory section includes the factory default values to be used as information on the INIC&#8217;s initial hardware configuration (e.g., the type of default port that is automatically opened for communication between the INIC and the EHC). Re-programming the configuration string is done during development or production. <BR>
+For information on how to program the string, refer to <EM CLASS="Blue">
+<A HREF="#50495608_47728" CLASS="XRef">Device Update Process</A></EM>
+.</P>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-902340"></A>Identification string</P>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-903183"></A>This memory section includes the factory default values to be used for unambiguous device identification. Re-programming the identification string is done during device installation. <BR>
+For information on how to program the string, refer to <EM CLASS="Blue">
+<A HREF="#50495608_47728" CLASS="XRef">Device Update Process</A></EM>
+.</P>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495606_pgfId-901004"></A><A NAME="50495606_34947"></A><A NAME="50495606_Configuration String"></A>Configuration String</H3>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-906158"></A>This section lists the properties of the configuration string. The properties are grouped (e.g., Device Management, Power Management). To each property a general description is given that explains the intended use of the property and its valid values. The default value associated to every property is given in <A HREF="#50495606_59805" CLASS="XRef"><EM CLASS="Link">
+Table 22-1</EM>
+</A>.</P>
+<DIV>
+<A NAME="MNSH2-Properties" /><H6 CLASS="Heading2">
+<A NAME="50495606_pgfId-905534"></A><A NAME="50495606_78028"></A>Properties</H6>
+<DIV>
+<A NAME="MNSH3-DeviceManagement" /><H6 CLASS="Heading3">
+<A NAME="50495606_pgfId-691585"></A><A NAME="50495606_30282"></A>Device Management</H6>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-691587"></A><A NAME="50495606_DeviceManagement/Default Instance ID"></A>Default Instance ID<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-691581"></A>Sets the default instance identifier of FBlock INIC</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-691562"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-691564"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-691566"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-691568"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-691570"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495606_pgfId-691572"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495606_pgfId-691574"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495606_pgfId-691576"></A>0x01...0xFE</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495606_pgfId-691578"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495606_pgfId-691580"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-690376"></A><A NAME="50495606_DeviceManagement/Diag ID"></A>Diag ID<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-690377"></A>Defines the diagnostic identifier of the device.<BR>
+For available parameters refer to <EM CLASS="Computer">
+<A HREF="#50495582_INIC/DeviceVersion/DiagID" CLASS="XRef">DiagID</A></EM>
+.</P>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-696268"></A><A NAME="50495606_DeviceManagement/MUTE/RSOUT Configuration"></A>MUTE/RSOUT Configuration<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-696289"></A>Determines whether <EM CLASS="Pin-Name">
+MUTE</EM>
+/<EM CLASS="Overline">
+RSOUT</EM>
+/<EM CLASS="Pin-Name">
+GP8</EM>
+ pin is used to signal reset or mute. If the pin is configured to signal reset, the pin is driven low for 10 ms as soon as INIC enters Protected Mode.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975224"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975226"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975228"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-975230"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975232"></A><EM CLASS="Computer">
+Disabled</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975234"></A>No action. <EM CLASS="Pin-Name">
+MUTE/</EM>
+<EM CLASS="Overline">
+RSOUT</EM>
+<EM CLASS="Pin-Name">
+/GP8 </EM>
+pin can be used as GPIO pin, see <A HREF="#50495575_47728" CLASS="XRef"><EM CLASS="CrossReference">
+Chapter 14</EM>
+</A>.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975241"></A><EM CLASS="Computer">
+RSOUT</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975243"></A><EM CLASS="Pin-Name">
+MUTE/</EM>
+<EM CLASS="Overline">
+RSOUT</EM>
+<EM CLASS="Pin-Name">
+/GP8 </EM>
+pin signals reset.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975247"></A><EM CLASS="Computer">
+MUTE</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975249"></A><EM CLASS="Pin-Name">
+MUTE/</EM>
+<EM CLASS="Overline">
+RSOUT</EM>
+<EM CLASS="Pin-Name">
+/GP8</EM>
+ pin is used to signal mute.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-916835"></A><A NAME="50495606_Device Management/Configuration Interface"></A>Configuration Interface<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-916836"></A>Selects the port for the configuration interface. The configuration interface defines that the port is used for the ICM and RCM PMP channels. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495606_pgfId-916755"></A>Note: <A HREF="#50495606_Device Management/Configuration Interface" CLASS="XRef">Configuration Interface</A> and <A HREF="#50495606_Device Management/Application Interface" CLASS="XRef">Application Interface</A> property settings do not allow the combination of <EM CLASS="Computer">
+MediaLB</EM>
+ and <EM CLASS="Computer">
+USB</EM>
+.</Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-917078"></A> &nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975277"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975279"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975281"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-975283"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975285"></A><EM CLASS="Computer">
+None</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975287"></A>ICM and RCM PMP channels are disabled. This setting enables the use of the Remote Control Mode. </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975291"></A><EM CLASS="Computer">
+I2C</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975293"></A>I<EM CLASS="Superscript">
+2</EM>
+C Port is used for the ICM and RCM PMP channels.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975297"></A><EM CLASS="Computer">
+MediaLB</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975299"></A>MediaLB Port is used for the ICM and RCM PMP channels.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975303"></A><EM CLASS="Computer">
+USB</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975305"></A>USB Port is used for the ICM and RCM PMP channels.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-916920"></A><A NAME="50495606_Device Management/Application Interface"></A>Application Interface<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-916921"></A>Selects the port for the application interface. The application interface defines that the port is used for the MCM PMP channel.</P>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-919075"></A>For limitations refer to <A HREF="#50495606_Device Management/Configuration Interface" CLASS="XRef">Configuration Interface</A>. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975345"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975347"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975349"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-975351"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975353"></A><EM CLASS="Computer">
+None</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975355"></A>MCM PMP channel is disabled.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975359"></A><EM CLASS="Computer">
+I2C</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975361"></A>I<EM CLASS="Superscript">
+2</EM>
+C Port is used for the MCM PMP channel.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975365"></A><EM CLASS="Computer">
+MediaLB</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975367"></A>MediaLB Port is used for the MCM PMP channel.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975371"></A><EM CLASS="Computer">
+USB</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975373"></A>USB Port is used for the MCM PMP channel.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-977539"></A><A NAME="50495606_Device Management/System Mode"></A>System Mode<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-977540"></A>Selects the service that runs the device</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-977630"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-977632"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-977634"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-977636"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-977638"></A><EM CLASS="Computer">
+MOSTNetServices</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-977640"></A>MOST NetServices runs the device.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-977647"></A><EM CLASS="Computer">
+UNICENS</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-977649"></A>UNICENS runs the device.</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-916739"></A>&nbsp;</P>
+<DIV>
+<A NAME="MNSH3-PowerManagement" /><H6 CLASS="Heading3">
+<A NAME="50495606_pgfId-665477"></A><EM CLASS="BlackMarker">
+Power Management</EM>
+<A NAME="50495606_18653"></A></H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-665415"></A>By using the properties below, the following actions can be automatically initiated by INIC in Protected Mode.</P>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-684111"></A><A NAME="50495606_PowerManagement/Monitoring"></A>Monitoring<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-684137"></A>Enables or disables the power management monitoring of the <EM CLASS="Pin-Name">
+PS0</EM>
+ and <EM CLASS="Pin-Name">
+PS1 </EM>
+pins </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975405"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975407"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975409"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-975411"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975413"></A><EM CLASS="Computer">
+Disabled</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975415"></A>Disables the power management monitoring of the <EM CLASS="Pin-Name">
+PS0</EM>
+ and <EM CLASS="Pin-Name">
+PS1</EM>
+ pins, but allows for limited property settings: configuration of <A HREF="#50495606_PowerManagement/Power Off Time" CLASS="XRef">Power Off Time</A> is possible.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975422"></A><EM CLASS="Computer">
+Enabled</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975424"></A>Enables the power management monitoring of the <EM CLASS="Pin-Name">
+PS0</EM>
+ and <EM CLASS="Pin-Name">
+PS1</EM>
+ pins with further property settings, see below.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-665417"></A><A NAME="50495606_PowerManagement/Action On U_Low"></A>Action On U_Low<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-655283"></A>Determines the INIC&#8217;s behavior when it detects an erroneous power condition (U<EM CLASS="Subscript">
+Low</EM>
+) on the <EM CLASS="Pin-Name">
+PS0/PS1 </EM>
+pins, see <A HREF="#50495566_23533" CLASS="XRef"><EM CLASS="Link">
+Table 3-1</EM>
+</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975426"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975428"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975430"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-975432"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975434"></A><EM CLASS="Computer">
+None</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975436"></A>No action </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975440"></A><EM CLASS="Computer">
+PowerOff</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975442"></A>Drives <EM CLASS="Pin-Name">
+PWROFF</EM>
+ pin high</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975446"></A><EM CLASS="Computer">
+ForcedNA</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975451"></A>Sets <EM CLASS="Computer">
+<A HREF="#50495582_ForcedNA/AvailInfo/MostStatus" CLASS="XRef"><EM CLASS="Computer">
+ForcedNA</EM>
+</A></EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975455"></A><EM CLASS="Computer">
+PowerOffForcedNA</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975457"></A>Drives <EM CLASS="Pin-Name">
+PWROFF</EM>
+ pin high and sets <EM CLASS="Computer">
+<A HREF="#50495582_ForcedNA/AvailInfo/MostStatus" CLASS="XRef"><EM CLASS="Computer">
+ForcedNA</EM>
+</A></EM>
+</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-655335"></A><A NAME="50495606_PowerManagement/Action On STP"></A>Action On STP<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-854699"></A>Determines the INIC&#8217;s behavior when it detects an STP condition on the <EM CLASS="Pin-Name">
+PS0/PS1 </EM>
+pins, see <A HREF="#50495566_23533" CLASS="XRef"><EM CLASS="Link">
+Table 3-1</EM>
+</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975462"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975464"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975466"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-975468"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975470"></A><EM CLASS="Computer">
+None</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975472"></A>No action </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975476"></A><EM CLASS="Computer">
+StartDiagnosisSlave</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975478"></A>INIC starts Ring Break Diagnosis as TimingSlave when <EM CLASS="Pin-Name">
+PS0</EM>
+ and <EM CLASS="Pin-Name">
+PS1 </EM>
+pins<EM CLASS="Pin-Name">
+ </EM>
+indicate state STP, see <A HREF="#50495566_23533" CLASS="XRef"><EM CLASS="Link">
+Table 3-1</EM>
+</A>.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975485"></A><EM CLASS="Computer">
+StartDiagnosisMaster</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975487"></A>INIC starts Ring Break Diagnosis as TimingMaster when <EM CLASS="Pin-Name">
+PS0</EM>
+ and <EM CLASS="Pin-Name">
+PS1 </EM>
+pins<EM CLASS="Pin-Name">
+ </EM>
+indicate state STP, see <A HREF="#50495566_23533" CLASS="XRef"><EM CLASS="Link">
+Table 3-1</EM>
+</A>.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-976113"></A><EM CLASS="Computer">
+StartNetwork</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-976115"></A>INIC starts the MOST network as TimingMaster when <EM CLASS="Pin-Name">
+PS0</EM>
+ and <EM CLASS="Pin-Name">
+PS1 </EM>
+pins<EM CLASS="Pin-Name">
+ </EM>
+indicate state STP, see <A HREF="#50495566_23533" CLASS="XRef"><EM CLASS="Link">
+Table 3-1</EM>
+</A>. This action provides the ability for two further property settings, see below.</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-976563"></A><EM CLASS="Underline">
+StartNetwork-related settings are as follows:</EM>
+</P>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-976564"></A><A NAME="50495606_PowerManagement/Auto Forced Not Available Time"></A>Auto Forced Not Available Time<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-976565"></A>Sets the delay for network shut down when INIC resides in Protected Mode and NetInterface Off state has been left (e.g., network startup has been triggered).<BR>
+For available parameters refer to <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MOSTNetworkStartup/AutoForcedNotAvailableTime" CLASS="XRef">AutoForcedNotAvailableTime</A></EM>
+.</P>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-976569"></A><A NAME="50495606_PowerManagement/Packet Bandwidth"></A>Packet Bandwidth<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-976550"></A>Determines the packet data bandwidth on the MOST network configured by a TimingMaster device. <BR>
+For available parameters refer to <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MOSTNetworkStartup/PacketBW" CLASS="XRef">PacketBW</A></EM>
+.</P>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-976552"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-854732"></A><A NAME="50495606_PowerManagement/Power Off Time"></A>Power Off Time<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-665441"></A>Defines the time after which the <EM CLASS="Pin-Name">
+PWROFF</EM>
+ pin is set high. The precondition for timer start is that both conditions must occur: the Network must be in NetInterface Off state (see <BR>
+<A HREF="#50495565_73589" CLASS="XRef"><EM CLASS="CrossReference">
+Figure&#160;4-1</EM>
+</A>) and INIC must have entered Protected Mode. If one of the conditions is no longer met, the timer will stop.<BR>
+If the timer is set to 65535, it will be disabled and the INIC will never drive the <EM CLASS="Pin-Name">
+PWROFF</EM>
+ pin high, not even if the Network is in NetInterface Off state and INIC has entered Protected Mode.<BR>
+The default value is 65535 s.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-665447"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-665449"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-665451"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-665453"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-665455"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495606_pgfId-665457"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495606_pgfId-665459"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495606_pgfId-665461"></A>1...65535</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495606_pgfId-665463"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495606_pgfId-665465"></A>s</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-675796"></A>&nbsp;</P>
+<DIV>
+<A NAME="MNSH3-NetworkManagement" /><H6 CLASS="Heading3">
+<A NAME="50495606_pgfId-665467"></A><A NAME="50495606_32128"></A>Network Management</H6>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-855089"></A><A NAME="50495606_NetworkManagement/Control Message Low Level Retry Block Count"></A>Control Message Low Level Retry Block Count<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-855111"></A>Defines the block count for control Low-Level Retries for all messages generated by the INIC itself.<BR>
+For available parameters refer to <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MOSTNetworkConfiguration/ControlLLRBlockCount" CLASS="XRef">ControlLLRBlockCount</A></EM>
+.</P>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-907003"></A><A NAME="50495606_19247"></A>&nbsp;</P>
+<DIV>
+<A NAME="MNSH3-MOSTPort" /><H6 CLASS="Heading3">
+<A NAME="50495606_pgfId-732376"></A><A NAME="50495606_19454"></A>MOST Port </H6>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-732378"></A><A NAME="50495606_MOSTPort/Physical Layer"></A>Physical Layer<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-733313"></A>Defines the physical layer used for MOST network communication</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975510"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975512"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975514"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-975516"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975518"></A><EM CLASS="Computer">
+Optical</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975520"></A>Optical physical layer is activated.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975524"></A><EM CLASS="Computer">
+Coax</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975526"></A>Coax physical layer is activated.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975530"></A><EM CLASS="Computer">
+DefinedByPackage</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975532"></A>Sets the physical layer to <EM CLASS="Computer">
+Coax</EM>
+ for AF devices and to <EM CLASS="Computer">
+Optical</EM>
+ for BF devices. For information on AF and BF devices, refer to the OS81118 Hardware Data Sheet <A HREF="#50495561_65912" CLASS="XRef"><EM CLASS="CrossReference">
+[4]</EM>
+</A>.</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-733314"></A>&nbsp;</P>
+<DIV>
+<A NAME="MNSH3-I2CPort" /><H6 CLASS="Heading3">
+<A NAME="50495606_pgfId-733316"></A><A NAME="50495606_15596"></A>I<EM CLASS="Superscript">
+2</EM>
+C Port</H6>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-655476"></A><A NAME="50495606_I2CPort/Port Create"></A>Port Create<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-655505"></A>Creates the I<EM CLASS="Superscript">
+2</EM>
+C Port of the device</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495606_pgfId-956763"></A>Note: Creation of an I<EM CLASS="Superscript">
+2</EM>
+C Port at chip startup is only supported when the property setting of the <A HREF="#50495606_Device Management/Configuration Interface" CLASS="XRef">Configuration Interface</A> or the <A HREF="#50495606_Device Management/Application Interface" CLASS="XRef">Application Interface</A> is set to <EM CLASS="Mnemonic">
+I2C</EM>
+.</Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-956760"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975540"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975542"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975544"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-975546"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975548"></A><EM CLASS="Computer">
+NotCreatedAtStartup</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975552"></A>At chip startup the port is not created. If the port is required, it can be created and configured per FBlock INIC API command. </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975557"></A><EM CLASS="Computer">
+CreatedAtStartup</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975561"></A>At chip startup the port is created with further property settings, see below. The INIC operates as I<EM CLASS="Superscript">
+2</EM>
+C-bus slave.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-655507"></A><A NAME="50495606_I2CPort/PortAddress"></A>Port Address<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-655529"></A>Sets the 7-bit I<EM CLASS="Superscript">
+2</EM>
+C slave address of the device</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-655510"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-655512"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-655514"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-655516"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-655518"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495606_pgfId-655520"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495606_pgfId-655522"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495606_pgfId-655524"></A>0x00...0x7F</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495606_pgfId-655526"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495606_pgfId-655528"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-655530"></A>&nbsp;</P>
+<DIV>
+<A NAME="MNSH3-MediaLBPort" /><H6 CLASS="Heading3">
+<A NAME="50495606_pgfId-655531"></A>MediaLB Port</H6>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-655533"></A><A NAME="50495606_MediaLBPort/Port Create"></A>Port Create<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-655562"></A>Creates the MediaLB Port of the device</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975564"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975566"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975568"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-975570"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975572"></A><EM CLASS="Computer">
+NotCreatedAtStartup</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975576"></A>At chip startup the port is not created. If the port is required, it can be created and configured per FBlock INIC API command. </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975581"></A><EM CLASS="Computer">
+CreatedAtStartup</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975585"></A>At chip startup the port is created with further property settings, see below.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-655564"></A><A NAME="50495606_MediaLBPort/PortSpeed"></A>Port Speed<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-664020"></A>Defines the clock speed configuration.<BR>
+For available parameters refer to <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MediaLBPortCreate/ClockConfig" CLASS="XRef">ClockConfig</A></EM>
+.</P>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-664024"></A>&nbsp;</P>
+<DIV>
+<A NAME="MNSH3-USBPort" /><H6 CLASS="Heading3">
+<A NAME="50495606_pgfId-725775"></A><A NAME="50495606_39501"></A>USB Port</H6>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-725777"></A><A NAME="50495606_USBPort/Port Create"></A>Port Create<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-725809"></A>Creates the USB Port of the device</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975606"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975608"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975610"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-975612"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975614"></A><EM CLASS="Computer">
+NotCreatedAtStartup</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975618"></A>At chip startup the port is not created. If the port is required, it can be created and configured per FBlock INIC API command. </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975623"></A><EM CLASS="Computer">
+CreatedAtStartup</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975627"></A>At chip startup the port is created with further property settings, see below.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-725811"></A><A NAME="50495606_USBPort/Physical Layer"></A>Physical Layer<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-851309"></A>Selects the interface of the USB Port&#8217;s physical layer.<BR>
+For available parameters refer to <EM CLASS="Computer">
+<A HREF="#50495582_INIC/USBPortCreate/PhysicalLayer" CLASS="XRef">PhysicalLayer</A></EM>
+.</P>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-851321"></A><A NAME="50495606_USBPort/Control Interface"></A>Control Interface<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-851580"></A>Enables or disables the control interface communication over the USB Port. This interface provides the Endpoints 0x0F (OUT) and 0x8F (IN).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975630"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975632"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975634"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-975636"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975638"></A><EM CLASS="Computer">
+Disabled</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975640"></A>The control interface is disabled.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975644"></A><EM CLASS="Computer">
+Enabled</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975646"></A>The control interface is enabled.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-851350"></A><A NAME="50495606_USBPort/Packet Interface"></A>Packet Interface<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-851925"></A>Enables or disables the packet interface communication over the USB Port. This interface provides the Endpoints 0x0E (OUT) and 0x8E (IN).</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975648"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975650"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975652"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-975654"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975656"></A><EM CLASS="Computer">
+Disabled</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975658"></A>The packet interface is disabled.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975662"></A><EM CLASS="Computer">
+Enabled</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975664"></A>The packet interface is enabled.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-851402"></A><A NAME="50495606_USBPort/Streaming Interface"></A>Streaming Interface<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-853505"></A>Enables or disables the streaming interface communication over the USB Port. This interface provides the Endpoints 0x01...0x0A (OUT) and 0x81...0x8A (IN), dependent on the configured count of OUT and IN Endpoints. The count is configured by parameters <EM CLASS="Blue">
+<A HREF="#50495606_USBPort/OUT Endpoint Count for Streaming Interface" CLASS="XRef">OUT Endpoint Count for Streaming Interface</A></EM>
+ and <EM CLASS="Blue">
+<A HREF="#50495606_USBPort/IN Endpoint Count for Streaming Interface" CLASS="XRef">IN Endpoint Count for Streaming Interface</A></EM>
+.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975684"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975686"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975688"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-975690"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975692"></A><EM CLASS="Computer">
+Disabled</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975694"></A>The streaming interface is disabled.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975698"></A><EM CLASS="Computer">
+Enabled</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975700"></A>The streaming interface is enabled.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-853403"></A><A NAME="50495606_USBPort/OUT Endpoint Count for Streaming Interface"></A>OUT Endpoint Count for Streaming Interface<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-852763"></A>Defines the number of USB OUT Endpoints being provided through the USB streaming interface. The first Endpoint starts at address 0x01 and increases by one for each additional Endpoint.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-852766"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-852768"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-852770"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-852772"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-852774"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495606_pgfId-852776"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495606_pgfId-852778"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495606_pgfId-852780"></A>0...10</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495606_pgfId-852782"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495606_pgfId-852784"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-851521"></A><A NAME="50495606_USBPort/IN Endpoint Count for Streaming Interface"></A>IN Endpoint Count for Streaming Interface<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-854432"></A>Defines the number of USB IN Endpoints being provided through the streaming interface. The first Endpoint starts at address 0x81 and increases by one for each additional Endpoint.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-854435"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-854437"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-854439"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-854441"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-854443"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495606_pgfId-854445"></A>Unsigned Byte</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495606_pgfId-854447"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495606_pgfId-854449"></A>0...10</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495606_pgfId-854451"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495606_pgfId-854453"></A>None</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-854511"></A>&nbsp;</P>
+<DIV>
+<A NAME="MNSH3-SPIPort" /><H6 CLASS="Heading3">
+<A NAME="50495606_pgfId-655657"></A><A NAME="50495606_28062"></A>SPI Port</H6>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-655659"></A><A NAME="50495606_SPIPort/Port Create"></A>Port Create<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-655688"></A>Creates the SPI Port of the device</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975702"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975704"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975706"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-975708"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975710"></A><EM CLASS="Computer">
+NotCreatedAtStartup</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975714"></A>At chip startup the port is not created. If the port is required, it can be created and configured per FBlock INIC API command. </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975719"></A><EM CLASS="Computer">
+CreatedAtStartup</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975723"></A>At chip startup the port is created with further property settings, see below.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-655690"></A><A NAME="50495606_SPIPort/Clock Mode"></A>Clock Mode<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-655691"></A>Sets the phase and polarity of the SCLK signal.<BR>
+For available parameters refer to <EM CLASS="Computer">
+<A HREF="#50495582_INIC/SPIPortCreate/ClockMode" CLASS="XRef">ClockMode</A></EM>
+.</P>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-655695"></A>&nbsp;</P>
+<DIV>
+<A NAME="MNSH3-StreamingPortBaseConfiguration" /><H6 CLASS="Heading3">
+<A NAME="50495606_pgfId-680665"></A><A NAME="50495606_52024"></A>Streaming Port Base Configuration</H6>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-680667"></A><A NAME="50495606_StreamingPort/Base Configuration Load"></A>Base Configuration Load<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-680668"></A>Loads the base configuration. For more information refer to <A HREF="#50495572_65088" CLASS="XRef"><EM CLASS="CrossReference">
+Chapter 11</EM>
+</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975726"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975728"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975730"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-975732"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975734"></A><EM CLASS="Computer">
+NotLoadedAtStartup</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975736"></A>At chip startup the base configuration is not loaded. If the base configuration is required, it can be configured per FBlock INIC command.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975740"></A><EM CLASS="Computer">
+LoadedAtStartup</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975742"></A>At chip startup the base configuration is loaded with further property settings, see below.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-655730"></A><A NAME="50495606_StreamingPort/Port A Option"></A>Port A Option<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-655731"></A>Defines the direction of the physical data pins of Streaming Port A.<BR>
+For available parameters refer to <EM CLASS="Computer">
+<A HREF="#50495582_INIC/StreamPortConfiguration/PortOption" CLASS="XRef">PortOption</A></EM>
+.</P>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-655736"></A><A NAME="50495606_StreamingPort/Port A Operation Mode"></A>Port A Operation Mode<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-664152"></A>Defines the operation mode of Streaming Port A.<BR>
+For available parameters refer to <EM CLASS="Computer">
+<A HREF="#50495582_INIC/StreamPortConfiguration/OperationMode" CLASS="XRef">OperationMode</A></EM>
+.</P>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-655768"></A><A NAME="50495606_StreamingPort/Por tA Clock Mode"></A>Port A Clock Mode<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-655794"></A>Defines the clock generation mode for Streaming Port A</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975762"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975764"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975766"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-975768"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975770"></A><EM CLASS="Computer">
+Output</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975772"></A>INIC drives the <EM CLASS="Pin-Name">
+FSY</EM>
+/<EM CLASS="Pin-Name">
+SCK</EM>
+ signals as outputs, frequency locked to the network clock.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975776"></A><EM CLASS="Computer">
+Input</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975778"></A><EM CLASS="Pin-Name">
+FSY</EM>
+/<EM CLASS="Pin-Name">
+SCK</EM>
+ signals are configured as inputs and are driven from outside the INIC. Use RMCK, frequency locked to the network clock, as reference for clock generation.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-655824"></A><A NAME="50495606_StreamingPort/Port A Clock Data Delay"></A>Port A Clock Data Delay<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-655825"></A>Indicates if there should be a single clock cycle delay between the start of frame and the start of the frame data.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975799"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975801"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975803"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-975805"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975807"></A><EM CLASS="Computer">
+NonDelayed</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975809"></A>Data is not delayed by a single <EM CLASS="Pin-Name">
+SCK</EM>
+ clock delay.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975813"></A><EM CLASS="Computer">
+Delayed</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975815"></A>There is a single <EM CLASS="Pin-Name">
+SCK</EM>
+ clock delay between the start of frame (falling edge of <EM CLASS="Pin-Name">
+FSY</EM>
+) and the start of the frame data on the data pins.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-655852"></A><A NAME="50495606_StreamingPort/Port B Option"></A>Port B Option<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-655853"></A>Defines the direction of the physical data pins of Streaming Port B.<BR>
+For available parameters refer to <EM CLASS="Computer">
+<A HREF="#50495582_INIC/StreamPortConfiguration/PortOption" CLASS="XRef">PortOption</A></EM>
+.</P>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-655858"></A><A NAME="50495606_StreamingPort/Port B Operation Mode"></A>Port B Operation Mode<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-655859"></A>Defines the operation mode of Streaming Port B.<BR>
+For available parameters refer to <EM CLASS="Computer">
+<A HREF="#50495582_INIC/StreamPortConfiguration/OperationMode" CLASS="XRef">OperationMode</A></EM>
+.</P>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-655889"></A>&nbsp;</P>
+<DIV>
+<A NAME="MNSH3-RMCKPort" /><H6 CLASS="Heading3">
+<A NAME="50495606_pgfId-655891"></A><A NAME="50495606_36288"></A>RMCK Port</H6>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-655893"></A><A NAME="50495606_RMCKPort/Port Create"></A>Port Create<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-655922"></A>Creates the RMCK Port of the device</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975835"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975837"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975839"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-975841"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975843"></A><EM CLASS="Computer">
+NotCreatedAtStartup</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975847"></A>At chip startup the port is not created. If the port is required, it can be created and configured per FBlock INIC API command. </P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975852"></A><EM CLASS="Computer">
+CreatedAtStartup</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975856"></A>At chip startup the port is created with further property settings, see below.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-655924"></A><A NAME="50495606_RMCKPort/Divisor"></A>Divisor<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-655925"></A>Determines the output frequency for the RMCK pin.<BR>
+For available parameters refer to <EM CLASS="Computer">
+<A HREF="#50495582_INIC/RMCKPortCreate/Divisor" CLASS="XRef">Divisor</A></EM>
+.</P>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-673398"></A>&nbsp;</P>
+<DIV>
+<A NAME="MNSH3-PacketConnection" /><H6 CLASS="Heading3">
+<A NAME="50495606_pgfId-656048"></A><A NAME="50495606_92184"></A>Packet Connection</H6>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-656050"></A><A NAME="50495606_PacketConnection/Driver Control Interface Access"></A>Driver Control Interface Access<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-709748"></A>Enables or disables the driver control interface access of the packet connection. Driver control interface access is only possible over a MediaLB Port or an SPI Port.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975883"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975885"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975887"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-975889"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975891"></A><EM CLASS="Computer">
+Disabled</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975893"></A>Disables driver control interface access</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975897"></A><EM CLASS="Computer">
+Enabled</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975899"></A>Enables driver control interface access</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-709781"></A><A NAME="50495606_PacketConnection/Reduced Transmission Buffer"></A>Reduced Transmission Buffer<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-711835"></A>Enables or disables the functionality for reduction of standard routing memory space used for packet transmission, see <A HREF="#50495567_64336" CLASS="XRef"><EM CLASS="Link">
+Table 6-3</EM>
+</A>. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975901"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975903"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975905"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-975907"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975909"></A><EM CLASS="Computer">
+Disabled</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975911"></A>Standard routing memory space for packet transmission is not reduced.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975915"></A><EM CLASS="Computer">
+Enabled</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975917"></A>Reduces the standard routing memory space needed for packet transmission to free-up more space for the isochronous transmission class.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-711865"></A><A NAME="50495606_PacketConnection/Port Select"></A>Port Select<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-656120"></A>Defines the physical port used for the packet connection </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975921"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975923"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975925"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-975927"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975929"></A><EM CLASS="Computer">
+None</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975931"></A>No packet connection activated</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975935"></A><EM CLASS="Computer">
+MediaLB</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975937"></A>Packet connection uses the MediaLB Port and provides the ability for further property settings, see below.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975941"></A><EM CLASS="Computer">
+USB</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975943"></A>Packet connection uses the USB Port.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975947"></A><EM CLASS="Computer">
+SPI</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975949"></A>Packet connection uses the SPI Port.</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-656121"></A><EM CLASS="Underline">
+MediaLB-related settings are as follows:</EM>
+</P>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-855969"></A><A NAME="50495606_PacketConnection/Multiplexing"></A>Multiplexing<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-862402"></A>Enables or disables the packet multiplexing feature </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975985"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975987"></A>Mnemonic</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-975989"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-975991"></A>Enum</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975993"></A><EM CLASS="Computer">
+Disabled</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975995"></A>Disables packet multiplexing</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-975999"></A><EM CLASS="Computer">
+Enabled</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-976001"></A>Enables packet multiplexing</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-862453"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495606_pgfId-862431"></A>Note: When packet multiplexing is enabled, the following conditions must be taken into account:</Note: >
+<P CLASS="Bullet-In-Note">
+<A NAME="50495606_pgfId-862437"></A> The values for <A HREF="#50495606_PacketConnection/MediaLB Input Bandwidth" CLASS="XRef">MediaLB Input Bandwidth</A> and <A HREF="#50495606_PacketConnection/MediaLB Output Bandwidth" CLASS="XRef">MediaLB Output Bandwidth</A> must be the same.</P>
+<P CLASS="Bullet-In-Note">
+<A NAME="50495606_pgfId-862445"></A> The <A HREF="#50495606_PacketConnection/MediaLB Input Bandwidth" CLASS="XRef">MediaLB Input Bandwidth</A> and the <A HREF="#50495606_PacketConnection/MediaLB Output Bandwidth" CLASS="XRef">MediaLB Output Bandwidth</A> must be each at least 12 bytes in size.</P>
+<P CLASS="Bullet-In-Note">
+<A NAME="50495606_pgfId-862451"></A> The difference between the <A HREF="#50495606_PacketConnection/MediaLB Input Address" CLASS="XRef">MediaLB Input Address</A> and the <A HREF="#50495606_PacketConnection/MediaLB Output Address" CLASS="XRef">MediaLB Output Address</A> must be 2 (e.g., 0x0006 and 0x0008).</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-862494"></A><A NAME="50495606_PacketConnection/MediaLB Input Address"></A>MediaLB Input Address<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-862504"></A>Sets the MediaLB <EM CLASS="Computer">
+Input</EM>
+ address of the packet<BR>
+</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495606_pgfId-913717"></A>Note: Address values must always differ from each other, regardless of the direction (<EM CLASS="Computer">
+Input</EM>
+/<EM CLASS="Computer">
+Output</EM>
+). </Note: >
+</TD>
+</TR>
+</TABLE>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-862507"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-862509"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-862511"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-862513"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-862515"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-862517"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-862519"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-862521"></A>MediaLB 3-Pin:</P>
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-862522"></A>0x0006...0x003E</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-862524"></A>2</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-862526"></A>None</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-862532"></A>MediaLB 6-Pin:</P>
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-862533"></A>0x0006...0x007E</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-656147"></A><A NAME="50495606_PacketConnection/MediaLB Input Bandwidth"></A>MediaLB Input Bandwidth<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-850419"></A>Determines the number of bytes reserved for a packet connection of direction <EM CLASS="Computer">
+Input</EM>
+.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495606_pgfId-913118"></A>Note: <A NAME="50495606_74914"></A>The bytes specified by parameter <A HREF="#50495582_INIC/MediaLBSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A> are shared between the number of bytes used for:</Note: >
+<P CLASS="Bullet-In-Note">
+<A NAME="50495606_pgfId-913427"></A> <A HREF="#50495606_PacketConnection/MediaLB Input Bandwidth" CLASS="XRef">MediaLB Input Bandwidth</A> and <A HREF="#50495606_PacketConnection/MediaLB Output Bandwidth" CLASS="XRef">MediaLB Output Bandwidth</A> used in a packet connection, </P>
+<P CLASS="Bullet-In-Note">
+<A NAME="50495606_pgfId-913505"></A> <A HREF="#50495606_Device Management/Configuration Interface" CLASS="XRef">Configuration Interface</A> and <A HREF="#50495606_Device Management/Application Interface" CLASS="XRef">Application Interface</A> (each PMP channel requires 4 bytes if <EM CLASS="Computer">
+MediaLB</EM>
+ is selected).</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-849775"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-656150"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-656152"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-656154"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-656156"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-656158"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495606_pgfId-656160"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495606_pgfId-656162"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495606_pgfId-656164"></A>4...856</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495606_pgfId-656166"></A>4</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495606_pgfId-656168"></A>Byte</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-656171"></A><A NAME="50495606_PacketConnection/MediaLB Output Address"></A>MediaLB Output Address<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-862605"></A>Sets the MediaLB <EM CLASS="Computer">
+Output</EM>
+ address of the packet.<BR>
+For available parameters and limitations refer to <A HREF="#50495606_PacketConnection/MediaLB Input Address" CLASS="XRef">MediaLB Input Address</A>.</P>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-862610"></A><A NAME="50495606_PacketConnection/MediaLB Output Bandwidth"></A>MediaLB Output Bandwidth<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-656217"></A>Determines the number of bytes reserved for a packet connection of direction <EM CLASS="Computer">
+Output</EM>
+. For available parameters and limitations refer to <A HREF="#50495606_PacketConnection/MediaLB Input Bandwidth" CLASS="XRef">MediaLB Input Bandwidth</A>. </P>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-864121"></A>&nbsp;</P>
+<DIV>
+<A NAME="MNSH3-User-DefinedVersion" /><H6 CLASS="Heading3">
+<A NAME="50495606_pgfId-705002"></A><A NAME="50495606_17607"></A>User-Defined Version</H6>
+</DIV>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-705061"></A><A NAME="50495606_User-Defined Version/Major Version"></A>Major Version<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-705071"></A>Defines the major version number of the configuration string.</P>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-705073"></A>For available parameters refer to <EM CLASS="Computer">
+<A HREF="#50495582_INIC/DeviceVersion/ExtMajorVersion" CLASS="XRef">ExtMajorVersion</A></EM>
+.</P>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-705075"></A><A NAME="50495606_User-Defined Version/Minor Version"></A>Minor Version<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-705066"></A>Defines the minor version number of the configuration string.</P>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-705176"></A>For available parameters refer to <EM CLASS="Computer">
+<A HREF="#50495582_INIC/DeviceVersion/ExtMinorVersion" CLASS="XRef">ExtMinorVersion</A></EM>
+.</P>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-705068"></A><A NAME="50495606_User-Defined Version/Release Version"></A>Release Version<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-705194"></A>Defines the release version number of the configuration string.</P>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-705200"></A>For available parameters refer to <EM CLASS="Computer">
+<A HREF="#50495582_INIC/DeviceVersion/ExtReleaseVersion" CLASS="XRef">ExtReleaseVersion</A></EM>
+.</P>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-906303"></A>&nbsp;</P>
+</DIV>
+</DIV>
+<DIV>
+<A NAME="MNSH2-DefaultValues" /><H6 CLASS="Heading2">
+<A NAME="50495606_pgfId-656233"></A><A NAME="50495606_66148"></A>Default Values</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-656654"></A>The properties and their associated default values are as follows:</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495606_pgfId-880995"></A>Table 22-1: <A NAME="50495606_59805"></A>Configuration String &#8211; Properties and Default Values (Continued)</TableTitle>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="2">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-880999"></A><EM CLASS="Bold">
+Device Management</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-881003"></A><EM CLASS="Bold">
+Property</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-881005"></A><EM CLASS="Bold">
+Default Value</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881010"></A><A HREF="#50495606_DeviceManagement/Default Instance ID" CLASS="XRef">Default Instance ID</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881012"></A>0x01</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881017"></A><A HREF="#50495606_DeviceManagement/Diag ID" CLASS="XRef">Diag ID</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881019"></A>0x0000</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881024"></A><A HREF="#50495606_DeviceManagement/MUTE/RSOUT Configuration" CLASS="XRef">MUTE/RSOUT Configuration</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881026"></A>Disabled</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-919163"></A><A HREF="#50495606_Device Management/Configuration Interface" CLASS="XRef">Configuration Interface</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-919165"></A>I<EM CLASS="Superscript">
+2</EM>
+C</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-919170"></A><A HREF="#50495606_Device Management/Application Interface" CLASS="XRef">Application Interface</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-919172"></A>I<EM CLASS="Superscript">
+2</EM>
+C</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-977907"></A><A HREF="#50495606_Device Management/System Mode" CLASS="XRef">System Mode</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-977909"></A>MOSTNetServices</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="2">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-881035"></A><EM CLASS="Bold">
+Power Management</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-881039"></A><EM CLASS="Bold">
+Property</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-881041"></A><EM CLASS="Bold">
+Default Value</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881046"></A><A HREF="#50495606_PowerManagement/Monitoring" CLASS="XRef">Monitoring</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881048"></A>Enabled</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881053"></A><A HREF="#50495606_PowerManagement/Action On U_Low" CLASS="XRef">Action On U_Low</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881055"></A>None</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881060"></A><A HREF="#50495606_PowerManagement/Action On STP" CLASS="XRef">Action On STP</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881062"></A>None</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-976659"></A> <A HREF="#50495606_PowerManagement/Auto Forced Not Available Time" CLASS="XRef">Auto Forced Not Available Time</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-976661"></A>65535 ms</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-976663"></A> <A HREF="#50495606_PowerManagement/Packet Bandwidth" CLASS="XRef">Packet Bandwidth</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-976665"></A>52</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881067"></A><A HREF="#50495606_PowerManagement/Power Off Time" CLASS="XRef">Power Off Time</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881069"></A>65535 s</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="2">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-881071"></A><EM CLASS="Bold">
+Network Management</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-881075"></A><EM CLASS="Bold">
+Property</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-881077"></A><EM CLASS="Bold">
+Default Value</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881096"></A><A HREF="#50495606_NetworkManagement/Control Message Low Level Retry Block Count" CLASS="XRef">Control Message Low Level Retry Block Count</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881098"></A>10</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="2">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-881144"></A><EM CLASS="Bold">
+MOST Port</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-881148"></A><EM CLASS="Bold">
+Property</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-881150"></A><EM CLASS="Bold">
+Default Value</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881162"></A><A HREF="#50495606_MOSTPort/Physical Layer" CLASS="XRef">Physical Layer</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881164"></A>DefinedByPackage</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="2">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-881166"></A><EM CLASS="Bold">
+I2C Port</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-881170"></A><EM CLASS="Bold">
+Property</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-881172"></A><EM CLASS="Bold">
+Default Value</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881177"></A><A HREF="#50495606_I2CPort/Port Create" CLASS="XRef">Port Create</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881179"></A>CreatedAtStartup</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881184"></A><A HREF="#50495606_I2CPort/PortAddress" CLASS="XRef">Port Address</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881186"></A>0x20</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="2">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-881188"></A><EM CLASS="Bold">
+MediaLB Port</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-881192"></A><EM CLASS="Bold">
+Property</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-881194"></A><EM CLASS="Bold">
+Default Value</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881199"></A><A HREF="#50495606_MediaLBPort/Port Create" CLASS="XRef">Port Create</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881201"></A>NotCreatedAtStartup</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881213"></A><A HREF="#50495606_MediaLBPort/PortSpeed" CLASS="XRef">Port Speed</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881215"></A>1024Fs</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="2">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-881217"></A><EM CLASS="Bold">
+USB Port</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-881221"></A><EM CLASS="Bold">
+Property</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-881223"></A><EM CLASS="Bold">
+Default Value</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881228"></A><A HREF="#50495606_USBPort/Port Create" CLASS="XRef">Port Create</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881230"></A>NotCreatedAtStartup</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881235"></A><A HREF="#50495606_USBPort/Physical Layer" CLASS="XRef">Physical Layer</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881237"></A>Standard</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881242"></A><A HREF="#50495606_USBPort/Control Interface" CLASS="XRef">Control Interface</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881244"></A>Enabled</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881249"></A><A HREF="#50495606_USBPort/Packet Interface" CLASS="XRef">Packet Interface</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881251"></A>Disabled</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881263"></A><A HREF="#50495606_USBPort/Streaming Interface" CLASS="XRef">Streaming Interface</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881265"></A>Enabled</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881270"></A> <A HREF="#50495606_USBPort/OUT Endpoint Count for Streaming Interface" CLASS="XRef">OUT Endpoint Count for Streaming Interface</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881272"></A>2</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881277"></A> <A HREF="#50495606_USBPort/IN Endpoint Count for Streaming Interface" CLASS="XRef">IN Endpoint Count for Streaming Interface</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881279"></A>2</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="2">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-881281"></A><EM CLASS="Bold">
+SPI Port</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-881285"></A><EM CLASS="Bold">
+Property</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-881287"></A><EM CLASS="Bold">
+Default Value</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881292"></A><A HREF="#50495606_SPIPort/Port Create" CLASS="XRef">Port Create</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881294"></A>NotCreatedAtStartup</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881299"></A><A HREF="#50495606_SPIPort/Clock Mode" CLASS="XRef">Clock Mode</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881301"></A>SCLKLowSFCR</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="2">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-881303"></A><EM CLASS="Bold">
+Streaming Port Base Configuration</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-881307"></A><EM CLASS="Bold">
+Property</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-881309"></A><EM CLASS="Bold">
+Default Value</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881314"></A><A HREF="#50495606_StreamingPort/Base Configuration Load" CLASS="XRef">Base Configuration Load</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881316"></A>NotLoadedAtStartup</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881321"></A><A HREF="#50495606_StreamingPort/Port A Option" CLASS="XRef">Port A Option</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881323"></A>InOut</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881328"></A><A HREF="#50495606_StreamingPort/Port A Operation Mode" CLASS="XRef">Port A Operation Mode</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881330"></A>Generic</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881335"></A><A HREF="#50495606_StreamingPort/Por tA Clock Mode" CLASS="XRef">Port A Clock Mode</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881337"></A>Output</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881342"></A><A HREF="#50495606_StreamingPort/Port A Clock Data Delay" CLASS="XRef">Port A Clock Data Delay</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881344"></A>Delayed</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881349"></A><A HREF="#50495606_StreamingPort/Port B Option" CLASS="XRef">Port B Option</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881351"></A>InOut</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881356"></A><A HREF="#50495606_StreamingPort/Port B Operation Mode" CLASS="XRef">Port B Operation Mode</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881358"></A>Generic</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="2">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-881360"></A><EM CLASS="Bold">
+RMCK Port</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-881364"></A><EM CLASS="Bold">
+Property</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-881366"></A><EM CLASS="Bold">
+Default Value</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881371"></A><A HREF="#50495606_RMCKPort/Port Create" CLASS="XRef">Port Create</A> </P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881373"></A>NotCreatedAtStartup</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881378"></A><A HREF="#50495606_RMCKPort/Divisor" CLASS="XRef">Divisor</A> </P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881380"></A>48</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="2">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-881397"></A><EM CLASS="Bold">
+Packet Connection</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-881401"></A><EM CLASS="Bold">
+Property</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-881403"></A><EM CLASS="Bold">
+Default Value</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881408"></A><A HREF="#50495606_PacketConnection/Driver Control Interface Access" CLASS="XRef">Driver Control Interface Access</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881410"></A>Disabled</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881415"></A><A HREF="#50495606_PacketConnection/Reduced Transmission Buffer" CLASS="XRef">Reduced Transmission Buffer</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881417"></A>Disabled</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881422"></A><A HREF="#50495606_PacketConnection/Port Select" CLASS="XRef">Port Select</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881424"></A>None</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881429"></A> <A HREF="#50495606_PacketConnection/Multiplexing" CLASS="XRef">Multiplexing</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881431"></A>Disabled</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881436"></A> <A HREF="#50495606_PacketConnection/MediaLB Input Address" CLASS="XRef">MediaLB Input Address</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881438"></A>0x0008</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881443"></A> <A HREF="#50495606_PacketConnection/MediaLB Input Bandwidth" CLASS="XRef">MediaLB Input Bandwidth</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881445"></A>4</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881450"></A> <A HREF="#50495606_PacketConnection/MediaLB Output Address" CLASS="XRef">MediaLB Output Address</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881452"></A>0x0006</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881457"></A> <A HREF="#50495606_PacketConnection/MediaLB Output Bandwidth" CLASS="XRef">MediaLB Output Bandwidth</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881459"></A>4</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="2">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-881504"></A><EM CLASS="Bold">
+User-Defined Version</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-881508"></A><EM CLASS="Bold">
+Property</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-881510"></A><EM CLASS="Bold">
+Default Value</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881515"></A><A HREF="#50495606_User-Defined Version/Major Version" CLASS="XRef">Major Version</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881517"></A>0x00</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881522"></A><A HREF="#50495606_User-Defined Version/Minor Version" CLASS="XRef">Minor Version</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881524"></A>0x00</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881529"></A><A HREF="#50495606_User-Defined Version/Release Version" CLASS="XRef">Release Version</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-881531"></A>0x00</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-901353"></A>&nbsp;</P>
+</DIV>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495606_pgfId-898613"></A><A NAME="50495606_31610"></A>Identification String</H3>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-906233"></A>This section lists the properties of the identification string. To each property a general description is given that explains the intended use of the property. The default value associated to every property is given in <A HREF="#50495606_35900" CLASS="XRef"><EM CLASS="Link">
+Table 22-2</EM>
+</A>.</P>
+<DIV>
+<A NAME="MNSH2-Properties" /><H6 CLASS="Heading2">
+<A NAME="50495606_pgfId-905625"></A><A NAME="50495606_93371"></A>Properties</H6>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-898876"></A><A NAME="50495606_IDString/NetworkManagement/Node Address"></A>Node Address<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-898877"></A>Defines the logical address of the device.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-988790"></A>Data Type</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-988792"></A>Exp.</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-988794"></A>Valid Values</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-988796"></A>Step</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495606_pgfId-988798"></A>Unit</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-988800"></A>Unsigned Word</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-988802"></A>0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-988804"></A>0x0100...0x013F</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-988806"></A>1</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-988808"></A>None</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-988814"></A>0x0010...0x00FF,</P>
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-988815"></A>0x0140...0x02FF,</P>
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-988816"></A>0x0500...0x0EFF</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-988836"></A>0xFFFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-988838"></A>-</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-898882"></A><A NAME="50495606_IDString/NetworkManagement/Node Address/Group Address"></A>Group Address<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-898883"></A>Defines the second group address of the device.<BR>
+For available parameters refer to <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MOSTNetworkConfiguration/GroupAddress" CLASS="XRef">GroupAddress</A></EM>
+.</P>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-898894"></A><A NAME="50495606_IDString/NetworkManagement/Node Address/Packet EUI-48 Bits 47"></A>Packet EUI-48 Bits 47:32<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-898895"></A>Defines bits 47:32 of the EUI-48.<BR>
+For available parameters refer to <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MOSTNetworkConfiguration/PacketEUI48_47to32" CLASS="XRef">PacketEUI48_47to32</A></EM>
+.</P>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-898900"></A><A NAME="50495606_IDString/NetworkManagement/Node Address/Packet EUI-48 Bits 31"></A>Packet EUI-48 Bits 31:16<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-898901"></A>Defines bits 31:16 of the EUI-48.<BR>
+For available parameters refer to <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MOSTNetworkConfiguration/PacketEUI48_31to16" CLASS="XRef">PacketEUI48_31to16</A></EM>
+.</P>
+</DIV>
+<DIV>
+<H6 CLASS="Parameter">
+<A NAME="50495606_pgfId-898906"></A><A NAME="50495606_IDString/NetworkManagement/Node Address/Packet EUI-48 Bits 15"></A>Packet EUI-48 Bits 15:0<DIV>
+<IMG SRC="OS81118-119.gif" ALT="">
+</DIV>
+</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-898907"></A>Defines bits 15:0 of the EUI-48.<BR>
+For available parameters refer to <EM CLASS="Computer">
+<A HREF="#50495582_INIC/MOSTNetworkConfiguration/PacketEUI48_15to0" CLASS="XRef">PacketEUI48_15to0</A></EM>
+.</P>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-898911"></A>&nbsp;</P>
+</DIV>
+</DIV>
+<DIV>
+<A NAME="MNSH2-DefaultValues" /><H6 CLASS="Heading2">
+<A NAME="50495606_pgfId-900308"></A>Default Values</H6>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-900851"></A>The properties and their associated default values are as follows:</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495606_pgfId-900315"></A>Table 22-2: <A NAME="50495606_35900"></A>Identification String &#8211; Properties and Default Values </TableTitle>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-900395"></A><EM CLASS="Bold">
+Property</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495606_pgfId-900397"></A><EM CLASS="Bold">
+Default Value</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-900402"></A><A HREF="#50495606_IDString/NetworkManagement/Node Address" CLASS="XRef">Node Address</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-900404"></A>0xFFFF</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-900409"></A><A HREF="#50495606_IDString/NetworkManagement/Node Address/Group Address" CLASS="XRef">Group Address</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-900411"></A>0x03C8</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-900423"></A><A HREF="#50495606_IDString/NetworkManagement/Node Address/Packet EUI-48 Bits 47" CLASS="XRef">Packet EUI-48 Bits 47:32</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-900425"></A>0x0000</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-900430"></A><A HREF="#50495606_IDString/NetworkManagement/Node Address/Packet EUI-48 Bits 31" CLASS="XRef">Packet EUI-48 Bits 31:16</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-900432"></A>0x0000</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-900437"></A><A HREF="#50495606_IDString/NetworkManagement/Node Address/Packet EUI-48 Bits 15" CLASS="XRef">Packet EUI-48 Bits 15:0</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495606_pgfId-900439"></A>0x0000</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-900852"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<H4 CLASS="ZNotes">
+<A NAME="50495606_pgfId-981994"></A>&nbsp;</H4>
+<P CLASS="Body">
+<A NAME="50495606_pgfId-692208"></A>&nbsp;</P>
+</DIV>
+</DIV>
+</DIV>
+<h1><a class="anchor" id="SEC_OS81118_25"></a>
+Device Update Process</h1>
+<DIV>
+<H1 CLASS="Appendix">
+<A NAME="50495608_pgfId-662178"></A><DIV>
+<IMG SRC="OS81118-120.gif" ALT="">
+</DIV>
+<A NAME="50495608_47728"></A>Device Update Process<DIV>
+<IMG SRC="OS81118-121.gif" ALT="">
+</DIV>
+</H1>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495608_pgfId-662179"></A>Overview</H3>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-862640"></A>The INIC provides firmware memory sections (see <A HREF="#50495608_87025" CLASS="XRef"><EM CLASS="Link">
+Figure A-5</EM>
+</A>) and a configuration memory section (see <A HREF="#50495608_13135" CLASS="XRef"><EM CLASS="Link">
+Figure A-8</EM>
+</A>) that can be programmed by the customer. The method used to program the memory depends on the environment in which the application is used:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495608_pgfId-677402"></A>&#8226; For production-level applications, the memory is to be programmed by the EHC via the I<EM CLASS="Superscript">
+2</EM>
+C Port. For the EHC to INIC connection diagram refer to <A HREF="#50495608_28824" CLASS="XRef"><EM CLASS="Link">
+Figure A-1</EM>
+</A>.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495608_pgfId-850579"></A>&#8226; For development-level applications, the memory is to be programmed by using the INIC Explorer Interface Box <A HREF="#50495561_70896" CLASS="XRef"><EM CLASS="Blue">
+[8]</EM>
+</A> connected via the Configuration/Debug Header (see the OS81118 Hardware Data Sheet <A HREF="#50495561_65912" CLASS="XRef"><EM CLASS="Blue">
+[4]</EM>
+</A>). Consider, programming the INIC by using the INIC Explorer Interface Box is not discussed in this user&#8217;s guide.</LI>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495608_pgfId-850591"></A>Note: When programming the INIC&#8217;s memory, either the I<EM CLASS="Superscript">
+2</EM>
+C Port or the Configuration/Debug Header is allowed to be used. Running both interfaces simultaneously will prevent proper programming.</Note: >
+</TD>
+</TR>
+</TABLE>
+</UL>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-850614"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-857146"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495608_pgfId-709608"></A><A NAME="50495608_62515"></A>Download the Image Files</H3>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-775731"></A>The image files required to program the INIC can be exported by using the Microchip Automotive Target Manager <A HREF="#50495561_28449" CLASS="XRef"><EM CLASS="Blue">
+[15]</EM>
+</A>. <A NAME="50495608_91069"></A></P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495608_pgfId-775735"></A>Note: In order to allow proper communication between the EHC and the INIC and to avoid version conflicts between older MOST NetServices versions and the current INIC firmware version, it is strongly recommended to update first the EHC&#8217;s MOST NetServices before programming the INIC.</Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-775736"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495608_pgfId-680642"></A>Setup the EHC to INIC Connection</H3>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-683448"></A>To be able to program the INIC&#8217;s memory, first the EHC must be connected to the INIC as shown in <A HREF="#50495608_28824" CLASS="XRef"><EM CLASS="Link">
+Figure A-1</EM>
+</A>. The <EM CLASS="Pin-Name">
+SCL</EM>
+, <EM CLASS="Pin-Name">
+SDA</EM>
+, and <EM CLASS="Overline">
+INT</EM>
+ pins are connected the same way as for standard INIC communication via the I<EM CLASS="Superscript">
+2</EM>
+C Port. The <EM CLASS="Pin-Name">
+ERR/</EM>
+<EM CLASS="Overline">
+BOOT</EM>
+ pin and <EM CLASS="Overline">
+RST</EM>
+ pin connections are needed to put the INIC into its boot monitor mode to enable programming through the I<EM CLASS="Superscript">
+2</EM>
+C Port.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<H6 CLASS="AppFigureTitle">
+<A NAME="50495608_pgfId-683455"></A><A NAME="50495608_28824"></A>EHC to INIC Connection Diagram</H6>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-683462"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-122.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-683463"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495608_pgfId-682629"></A>I&#178;C Communication Protocol</H3>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-682271"></A>The I<EM CLASS="Superscript">
+2</EM>
+C Port operates as an I<EM CLASS="Superscript">
+2</EM>
+C slave device; see the OS81118 Hardware Data Sheet <A HREF="#50495561_65912" CLASS="XRef"><EM CLASS="Blue">
+[4]</EM>
+</A> for details on the I<EM CLASS="Superscript">
+2</EM>
+C specifications of the part. The general protocol is based on command packets that contain a command byte (CMD) and data bytes (optional parameters). A typical packet is shown in <A HREF="#50495608_83110" CLASS="XRef"><EM CLASS="Link">
+Figure A-2</EM>
+</A>.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<H6 CLASS="AppFigureTitle">
+<A NAME="50495608_pgfId-682280"></A><A NAME="50495608_83110"></A>I&#178;C Command/Response Sequence</H6>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-682287"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-123.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-725053"></A>The boot monitor buffers the data until the entire command has been received, then interprets and executes the command. The command buffer data size is 32 bytes. The EHC must not send more data than 32 data bytes per command. Those commands that consist of Command (CMD), address (Addr-H, Addr-L), and length (Len) bytes do not count against the 32-byte count. </P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-682290"></A>The protocol is a master/slave &#8211; command/response type format with the EHC being the master, and the INIC boot monitor being the slave. The I<EM CLASS="Superscript">
+2</EM>
+C START condition signals the beginning of a message and the boot monitor buffers the command until the I<EM CLASS="Superscript">
+2</EM>
+C STOP condition is received. The boot monitor then executes the command. When execution is complete, the boot monitor asserts the <EM CLASS="Overline">
+INT</EM>
+ pin (low), signaling the EHC that the command has been executed. When the EHC detects that the <EM CLASS="Overline">
+INT</EM>
+ pin is low, it reads the command response (Completion Code (CC)). At the end of the read cycle (I<EM CLASS="Superscript">
+2</EM>
+C STOP condition) the boot monitor clears the <EM CLASS="Overline">
+INT</EM>
+ line (back high). The boot monitor is now ready for another command.</P>
+<DIV>
+<A NAME="MNSH2-ICResponsePacket" /><H6 CLASS="Heading2">
+<A NAME="50495608_pgfId-682296"></A>I&#178;C Response Packet</H6>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-725386"></A>When the boot monitor executes a command, it assembles a response packet for the EHC to read. For most commands there is only the single Completion Code to read. However, for commands that do return data, the data follows the Completion Code. </P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-706363"></A>The general format of the response packet is shown below.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-706404"></A>Completion Code</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-706406"></A>Don&#8217;t Care</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-706408"></A>Don&#8217;t Care</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-706410"></A>Don&#8217;t Care</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-706412"></A>Data 0</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-706414"></A>Data 1</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-706416"></A>...</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-706418"></A>Data n</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-706420"></A>8 bits</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-706422"></A>-</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-706424"></A>-</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-706426"></A>-</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-706428"></A>0xXX</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-706430"></A>0xXX</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-706432"></A>...</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-706434"></A>0xXX</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-706436"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-706438"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-706440"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-706442"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-706444"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-706446"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-706448"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-706450"></A>&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-706452"></A>Byte 0</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-706454"></A>Byte 1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-706456"></A>Byte 2</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-706458"></A>Byte 3</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-706464"></A>...</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-706466"></A>Byte n</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-725391"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-725409"></A>It is important to read the Completion Code, because this is what clears the <EM CLASS="Overline">
+INT</EM>
+ signal from INIC.</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-818173"></A>The Completion Code 0xFF indicates a valid response. If the command encounters an error, the Completion Code is changed from 0xFF to a command dependent value, which is documented for each command, see <A HREF="#50495608_68383" CLASS="XRef"><EM CLASS="Link">
+Section A.6</EM>
+</A>. If the command is not recognized, then 0x40 is returned. The response (0x40) to an unknown/not recognized package happens only after the <A HREF="#50495608_89158" CLASS="XRef">Programming Start (0x0D)</A> was sent.</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-857630"></A>&nbsp;</P>
+</DIV>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495608_pgfId-818183"></A><A NAME="50495608_33652"></A>Programming Sequence </H3>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-849323"></A>Starting the programming sequence assumes that the image files have been downloaded (see <A HREF="#50495608_62515" CLASS="XRef"><EM CLASS="Link">
+Section A.2</EM>
+</A>) and verified by the EHC. If this is done, the EHC must place the INIC into its program mode to start with the programming procedure. After programming is finished, the EHC must reset the INIC. </P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-849400"></A><A HREF="#50495608_83784" CLASS="XRef"><EM CLASS="Link">
+Figure A-3</EM>
+</A> outlines the entire programming and read sequences for the firmware and the configuration memory. Programming details are shown from <A HREF="#50495608_14118" CLASS="XRef"><EM CLASS="Link">
+Figure A-6</EM>
+</A> to <A HREF="#50495608_66562" CLASS="XRef"><EM CLASS="Link">
+Figure A-11</EM>
+</A>. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495608_pgfId-849347"></A>Note: If an error is detected during the programming sequence, start the programming process from the beginning or leave the program mode.</Note: >
+</TD>
+</TR>
+</TABLE>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<H6 CLASS="AppFigureTitle">
+<A NAME="50495608_pgfId-862667"></A><A NAME="50495608_83784"></A><A NAME="50495608_marker-879795"></A>Programming Sequence</H6>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-862674"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-124.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH2-EnterandLeavetheProgramMode" /><H6 CLASS="Heading2">
+<A NAME="50495608_pgfId-846488"></A>Enter and Leave the Program Mode</H6>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-725773"></A>At startup, the <EM CLASS="Pin-Name">
+ERR/</EM>
+<EM CLASS="Overline">
+BOOT</EM>
+ pin is sampled, and, if it is low, the program mode is entered, see <A HREF="#50495608_45663" CLASS="XRef"><EM CLASS="Link">
+Figure A-4</EM>
+</A>. In program mode, the I<EM CLASS="Superscript">
+2</EM>
+C Port is always enabled. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495608_pgfId-725779"></A>Note: The time from reset high until the INIC is in program mode (boot time) takes 12 ms at the maximum. The EHC may not send any commands during this time.</Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-698887"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-698925"></A>After the <EM CLASS="Italic">
+Programming Start</EM>
+ command has been sent, the programming of the INIC&#8217;s memory sections can begin. When programming is finished, the program mode can be left. After resetting the INIC, the standard mode of operation is resumed. Since the <EM CLASS="Pin-Name">
+ERR/</EM>
+<EM CLASS="Overline">
+BOOT</EM>
+ pin will be high during <EM CLASS="Overline">
+RST</EM>
+, standard mode of operation is gained by toggling the <EM CLASS="Overline">
+RST</EM>
+ line. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<H6 CLASS="AppFigureTitle">
+<A NAME="50495608_pgfId-696816"></A><A NAME="50495608_45663"></A>Sequence to Enter and Leave the Program Mode</H6>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-696823"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-125.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<A NAME="MNSH2-ReadandUpdateFirmwareMemory" /><H6 CLASS="Heading2">
+<A NAME="50495608_pgfId-862681"></A><A NAME="50495608_98944"></A>Read and Update Firmware Memory </H6>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-862682"></A>The following figure depicts an overview of the firmware memory.</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-862694"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<H6 CLASS="AppFigureTitle">
+<A NAME="50495608_pgfId-862686"></A><A NAME="50495608_87025"></A><A NAME="50495608_marker-879800"></A>Firmware Memory</H6>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-862693"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-126.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-862695"></A>&nbsp;</P>
+<DIV>
+<A NAME="MNSH3-ReadFirmwareVersion" /><H6 CLASS="Heading3">
+<A NAME="50495608_pgfId-862697"></A><A NAME="50495608_31595"></A>Read Firmware Version</H6>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-872938"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<H6 CLASS="AppFigureTitle">
+<A NAME="50495608_pgfId-872932"></A><A NAME="50495608_14118"></A><A NAME="50495608_marker-879805"></A>Firmware Version Read Sequence</H6>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495608_pgfId-872937"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-127.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-872939"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-872940"></A>The return parameters for Analyze Firmware Version Info are coded in big-endian format. <A HREF="#50495608_21600" CLASS="XRef"><EM CLASS="Link">
+Table A-1</EM>
+</A> lists the parameters.</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-873553"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<H6 CLASS="AppTableTitle">
+<A NAME="50495608_pgfId-872947"></A><A NAME="50495608_21600"></A><A NAME="50495608_marker-879810"></A>Return Parameters of Firmware Version Info</H6>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-872953"></A>Return Parameter</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-872955"></A>Size</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-872957"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-872959"></A>Reserved</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-872961"></A>8 bit</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-872963"></A>-</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-872965"></A>Identifier</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-872967"></A>32 bit</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-872969"></A>Chip identifier, always 0x81118</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-872971"></A>Major</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-872973"></A>8 bit</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-872975"></A>Firmware major version number, e.g., V2.1.0-45</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-872977"></A>Minor</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-872979"></A>8 bit</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-872981"></A>Firmware minor version number, e.g., V2.1.0-45</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-872983"></A>Release</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-872985"></A>8 bit</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-872987"></A>Firmware release version number, e.g., V2.1.0-45</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-872989"></A>Build</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-872991"></A>32 bit</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-872993"></A>Firmware build version number, e.g., V2.1.0-45</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-872995"></A>Reserved</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-872997"></A>8 bit</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-872999"></A>-</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-873001"></A>Reserved</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-873003"></A>8 bit</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-873005"></A>-</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-873007"></A>CRC</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-873009"></A>16 bit</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-873011"></A>Valid, since the completion code reported 0xFF, success.</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<A NAME="MNSH3-ProgramFirmware" /><H6 CLASS="Heading3">
+<A NAME="50495608_pgfId-873013"></A><A NAME="50495608_66562"></A>Program Firmware</H6>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-862719"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<H6 CLASS="AppFigureTitle">
+<A NAME="50495608_pgfId-862713"></A><A NAME="50495608_95055"></A><A NAME="50495608_marker-898269"></A>Firmware Programming Sequence</H6>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-862718"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-128.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<DIV>
+<A NAME="MNSH2-ReadandUpdateConfigurationMemory" /><H6 CLASS="Heading2">
+<A NAME="50495608_pgfId-850674"></A><A NAME="50495608_95535"></A>Read and Update Configuration Memory</H6>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-855088"></A>The following figure depicts an overview of the configuration memory, which includes the configuration string and the identification string.</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-856022"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<H6 CLASS="AppFigureTitle">
+<A NAME="50495608_pgfId-862731"></A><A NAME="50495608_marker-898415"></A><A NAME="50495608_13135"></A>Configuration Memory Section</H6>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-862738"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-129.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-941787"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-941560"></A>&nbsp;</P>
+<DIV>
+<A NAME="MNSH3-VerifyConfiguration" /><H6 CLASS="Heading3">
+<A NAME="50495608_pgfId-940935"></A><A NAME="50495608_74642"></A>Verify Configuration</H6>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-940939"></A>The flow described in <A HREF="#50495608_51832" CLASS="XRef"><EM CLASS="Link">
+Figure A-9</EM>
+</A> is entered to validate the CRC for both the configuration string and the identification string.</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-940950"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<H6 CLASS="AppFigureTitle">
+<A NAME="50495608_pgfId-940944"></A><A NAME="50495608_marker-940942"></A><A NAME="50495608_51832"></A>Configuration Verification Sequence</H6>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495608_pgfId-940949"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-130.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-857053"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<A NAME="MNSH3-ReadConfigurationStringVersion" /><H6 CLASS="Heading3">
+<A NAME="50495608_pgfId-855089"></A><A NAME="50495608_87073"></A>Read Configuration String Version</H6>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-862744"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<H6 CLASS="AppFigureTitle">
+<A NAME="50495608_pgfId-856162"></A><A NAME="50495608_69151"></A><A NAME="50495608_marker-879825"></A>Configuration String Version Read Sequence</H6>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495608_pgfId-856167"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-131.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-873544"></A>The return parameters for Decode Version are coded in big-endian format. <A HREF="#50495608_19831" CLASS="XRef"><EM CLASS="Link">
+Table A-2</EM>
+</A> lists the parameters.</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-873541"></A> &nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<H6 CLASS="AppTableTitle">
+<A NAME="50495608_pgfId-872659"></A><A NAME="50495608_19831"></A>Return Parameters of Decode Version</H6>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-872665"></A>Return Parameter</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-872667"></A>Size</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-872669"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-872683"></A>Major</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-872685"></A>8 bit</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-872687"></A>User-defined major version number</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-872689"></A>Minor</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-872691"></A>8 bit</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-872693"></A>User-defined minor version number</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-872695"></A>Release</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-872697"></A>8 bit</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-872699"></A>User-defined release version number</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-937058"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-856098"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<A NAME="MNSH3-ProgramConfiguration" /><H6 CLASS="Heading3">
+<A NAME="50495608_pgfId-855090"></A><A NAME="50495608_18127"></A>Program Configuration</H6>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-847101"></A> &nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<H6 CLASS="AppFigureTitle">
+<A NAME="50495608_pgfId-862752"></A><A NAME="50495608_66562"></A><A NAME="50495608_marker-879830"></A>Configuration Memory Programming Sequence</H6>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Centered">
+<A NAME="50495608_pgfId-862757"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-132.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-938415"></A>&nbsp;</P>
+</DIV>
+</DIV>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495608_pgfId-847103"></A><A NAME="50495608_68383"></A>Boot Monitor Commands</H3>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-862763"></A>This section lists all commands that are required for preparing, erasing, and programming the INIC&#8217;s memory. It also lists the commands used for checking the programming procedure and the version information of the firmware and the configuration memory. </P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-862764"></A>All commands and responses are denoted byte-wise and read from left to right, starting with byte 0.</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-860947"></A><A HREF="#50495608_26214" CLASS="XRef"><EM CLASS="Link">
+Table A-3</EM>
+</A> gives an overview of available commands. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<H6 CLASS="AppTableTitle">
+<A NAME="50495608_pgfId-848898"></A><A NAME="50495608_26214"></A><A NAME="50495608_marker-879835"></A>Boot Monitor Commands</H6>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-848904"></A>Command</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-848906"></A>Name</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-848908"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-848910"></A>0x0D</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-848913"></A><EM CLASS="Blue">
+<A HREF="#50495608_Programming Start" CLASS="Hypertext">Programming Start</A></EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-848915"></A>Init, checks for PLL lock</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-848917"></A>0XEE</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-848920"></A><A HREF="#50495608_Read Firmware Version" CLASS="Hypertext">Read Firmware Version</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-848922"></A>Reads the firmware version of the INIC, see <A HREF="#50495608_21600" CLASS="XRef"><EM CLASS="Link">
+Table A-1</EM>
+</A>.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-848924"></A>0x0C</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-848927"></A><EM CLASS="Blue">
+<A HREF="#50495608_Erase Flash Partitions" CLASS="Hypertext">Erase Flash Partitions</A></EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-848929"></A>Erases the INIC Firmware section</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-848931"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-848934"></A><EM CLASS="Blue">
+<A HREF="#50495608_Write Flash Memory" CLASS="Hypertext">Write Flash Memory</A></EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-848936"></A>Programs the INIC Firmware section</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-848938"></A>0x06</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-848941"></A><EM CLASS="Blue">
+<A HREF="#50495608_Set Flash Page" CLASS="Hypertext">Set Flash Page</A></EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-848943"></A>Selects which 64k page to address</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-848945"></A>0xCF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-848948"></A><A HREF="#50495608_Verify Configuration Memory" CLASS="Hypertext">Verify Configuration Memory</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-848950"></A>Verifies the INIC configuration memory section</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-848952"></A>0xD2</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-848955"></A><A HREF="#50495608_Read Configuration Memory" CLASS="Hypertext">Read Configuration Memory</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-848957"></A>Reads the INIC configuration memory section</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-848959"></A>0xCE</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-848962"></A><A HREF="#50495608_Erase Configuration Memory" CLASS="Hypertext">Erase Configuration Memory</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-848964"></A>Erases the INIC configuration memory section</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-848966"></A>0xC2</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-848969"></A><A HREF="#50495608_Write Configuration Memory" CLASS="Hypertext">Write Configuration Memory</A></P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-848971"></A>Programs the INIC configuration memory section</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-848987"></A>0xE5</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-848990"></A><EM CLASS="Blue">
+<A HREF="#50495608_Clear CRC" CLASS="Hypertext">Clear CRC</A></EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-848992"></A>Initializes the CRC value</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-848994"></A>0xE6</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-848997"></A><EM CLASS="Blue">
+<A HREF="#50495608_Get CRC" CLASS="Hypertext">Get CRC</A></EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-848999"></A>Returns the current CRC value</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-666151"></A> &nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495608_pgfId-666150"></A>Note: All commands have to be sent to I<EM CLASS="Superscript">
+2</EM>
+C address 0x20.</Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-666011"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-675635"></A>The table below shows typical execution times of the commands needed for erasing and writing the firmware or the configuration memory. These times can be used as a guideline to estimate how long flash and erase operations can take. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<H6 CLASS="AppTableTitle">
+<A NAME="50495608_pgfId-675639"></A><A NAME="50495608_marker-879840"></A>Programming Times for Memory Erase and Write Commands </H6>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-675645"></A>Typical Time to</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-675647"></A>100 kHz I<EM CLASS="Superscript">
+2</EM>
+C<BR>
+@ 48 kHz Crystal</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-675649"></A>400 kHz I<EM CLASS="Superscript">
+2</EM>
+C<BR>
+@ 48 kHz Crystal</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-675651"></A><EM CLASS="Italic">
+Erase Flash Partitions </EM>
+(all partitions)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-675653"></A>4.95 s</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-675655"></A>4.80 s</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-675657"></A><EM CLASS="Italic">
+Write Flash Memory </EM>
+(all partitions)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-675659"></A>22.7 s</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-675661"></A>6.4 s</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-675663"></A><EM CLASS="Italic">
+Erase Configuration Memory</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-675665"></A>530 ms</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-675667"></A>530 ms</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-675669"></A><EM CLASS="Italic">
+Write Configuration Memory</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-675671"></A>520 ms</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-675673"></A>510 ms</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-675677"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495608_pgfId-675676"></A>Note: Any EHC latencies increase the time required for those operations. Thus, the times above should be considered as the minimum typical times.</Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-667514"></A>&nbsp;</P>
+<DIV>
+<A NAME="MNSH2-ProgrammingStart0D" /><H6 CLASS="Heading2">
+<A NAME="50495608_pgfId-707768"></A><A NAME="50495608_Programming Start"></A><A NAME="50495608_89158"></A>Programming Start (0x0D)</H6>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-707769"></A>Starts the programing process. It must be sent prior to sending any erase or program command.</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-683752"></A>The INIC locks to the crystal oscillator immediately after entering the program mode. The node stays in bypass. This condition is kept until the update process is finished and INIC is reset.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495608_pgfId-683755"></A>Note: It is recommended to start the programming process while the MOST network is in NetInterface Off state.</Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-683756"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-683774"></A>I<EM CLASS="Superscript">
+2</EM>
+C Command:</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-683759"></A>Command</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-683761"></A>Data 0</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-683763"></A>Data 1</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-683765"></A>Data 2</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-683767"></A>0x0D</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-683769"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-683771"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-683773"></A>0x00</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-852195"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-683735"></A>I<EM CLASS="Superscript">
+2</EM>
+C Success Response:</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-852141"></A>Completion Code</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-852143"></A>0xFF</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-852010"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-683749"></A>I<EM CLASS="Superscript">
+2</EM>
+C Error Response:</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-852301"></A>Completion Code</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-852322"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-852303"></A>0x20</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-852324"></A>INIC is not locked to the crystal oscillator due to a wiring failure (e.g., the crystal oscillator is not connected properly or of wrong frequency.</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-852275"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-668348"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-ReadFirmwareVersionEE" /><H6 CLASS="Heading2">
+<A NAME="50495608_pgfId-844021"></A><A NAME="50495608_Read Firmware Version"></A>Read Firmware Version (0xEE)</H6>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-844076"></A>Reads and verifies the firmware version of the INIC. Verification includes the check of the application start vector (0x1800), which should be non-0x0000 and non-0xFFFF. The application is considered erroneous, due to:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495608_pgfId-853022"></A>&#8226; a used INIC or product version that does not match the chip ID</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495608_pgfId-857746"></A>&#8226; CRC field is 0xFFFF</LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-857747"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-857765"></A>I<EM CLASS="Superscript">
+2</EM>
+C Command:</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-858261"></A>Command</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-858263"></A>Data 0</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-858265"></A>Data 1</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-858267"></A>Data 2</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-858269"></A>0xEE</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-858271"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-858273"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-858275"></A>0x00</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-844465"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-844515"></A>I<EM CLASS="Superscript">
+2</EM>
+C Success Response:</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-844468"></A>Completion Code</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-844470"></A>Don&#8217;t Care</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-844472"></A>Don&#8217;t Care</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-844474"></A>Don&#8217;t Care</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-844476"></A>Len</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-844478"></A>FW Version</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-844480"></A>0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-844482"></A>-</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-844484"></A>-</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-844486"></A>-</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-844488"></A>0xXX</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-844490"></A>0xXX ...</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-851903"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-857793"></A>I<EM CLASS="Superscript">
+2</EM>
+C Error Response:</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-857778"></A>Completion Code</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-857780"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-857782"></A>0x10</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-857784"></A>Verification error - Invalid INIC firmware</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<A NAME="MNSH2-EraseFlashPartitions0C" /><H6 CLASS="Heading2">
+<A NAME="50495608_pgfId-862794"></A><A NAME="50495608_Erase Flash Partitions"></A>Erase Flash Partitions (0x0C)</H6>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-862795"></A>Erases the partitions of the INIC firmware memory section. The program memory is divided into 192 1k partitions, whereas six of these partitions are used for the boot monitor. This command expects the starting partition number and the number of partitions to be erased. To erase the entire image, the start partition has to be set to 0x06 and the number of partitions has to be set to 0xBA. </P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-862813"></A>I<EM CLASS="Superscript">
+2</EM>
+C Command:</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-862798"></A>Command</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-862800"></A>Start Partition</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-862802"></A>Number of Partitions </P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-862804"></A>Spare</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-862806"></A>0x0C</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-862808"></A>0x06...0xB9</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-862810"></A>0x01...0xBA</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-862812"></A>0x00</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-862814"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-862824"></A>I<EM CLASS="Superscript">
+2</EM>
+C Success Response:</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-862817"></A>Completion Code</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-862819"></A>0xFF</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-862825"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-862847"></A>I<EM CLASS="Superscript">
+2</EM>
+C Error Response:</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-862828"></A>Completion Code</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-862830"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-862832"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-862834"></A>Invalid parameter(s) - Invalid start partition and/or invalid number of partitions</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-862836"></A>0x21</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-862838"></A>No initialization done &#8211; <EM CLASS="Italic">
+Programming Start</EM>
+ command was not sent or successful.</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-862848"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-862849"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-WriteFlashMemory01" /><H6 CLASS="Heading2">
+<A NAME="50495608_pgfId-862851"></A><A NAME="50495608_Write Flash Memory"></A><A NAME="50495608_10447"></A>Write Flash Memory (0x01)</H6>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-862852"></A>Programs Len (Length) number of bytes, starting at Addr-H:Addr-L. The 16-bit address in Addr-H:Addr-L is used in conjunction with the <EM CLASS="Italic">
+Set Flash Page</EM>
+ command to determine the final address. The memory is programmed 2 bytes at a time, so the address sent must be even, and the Len must be even. The maximum value for Len is 32 bytes, and all packets have to send 32 bytes. The INIC images are padded so that the total length is always a multiple of 32. Thus the EHC does not have to deal with partial packets or padding, which could affect the CRC calculations. During programming, verification is done and the CRC value is updated. </P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-862890"></A>I<EM CLASS="Superscript">
+2</EM>
+C Command:</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-862855"></A>Command</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-862857"></A>Addr-H</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-862859"></A>Addr-L</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-862861"></A>Len</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-862863"></A>Data 0</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-862865"></A>Data 1</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-862867"></A>...</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-862869"></A>Data 30</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-862871"></A>Data 31</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-862873"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-862875"></A>0x00...0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-862877"></A>0x00...0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-862879"></A>0x02...0x20</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="5">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-862881"></A>...</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-862891"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-862901"></A>I<EM CLASS="Superscript">
+2</EM>
+C Success Response:</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-862894"></A>Completion Code</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-862896"></A>0xFF</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-862902"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-862936"></A>I<EM CLASS="Superscript">
+2</EM>
+C Error Response:</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-862905"></A>Completion Code</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-862907"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-862909"></A>0x10</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-862911"></A>Verification error &#8211; Read back after write does not match the data sent.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-862913"></A>0x11</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-862915"></A>Invalid location &#8211; Tried to program the boot monitor memory section than the current INIC firmware area.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-862917"></A>0x12</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-862919"></A>Invalid address</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-862921"></A>0x13</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-862923"></A>Invalid length</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-862925"></A>0x21</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-862927"></A>No initialization done &#8211; <EM CLASS="Italic">
+Programming Start</EM>
+ command was not sent or successful.</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-862937"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-862938"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-SetFlashPage06" /><H6 CLASS="Heading2">
+<A NAME="50495608_pgfId-862940"></A> <A NAME="50495608_Set Flash Page"></A>Set Flash Page (0x06)</H6>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-862941"></A>Sets the page (64k space) that is targeted by any following program commands. Since the address field of the programming command only supports 64k address space, this command selects which 64k space to address. Once set, the particular page stays in effect until it is changed by another <EM CLASS="Italic">
+Set Flash Page</EM>
+ command or a reset. </P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-862942"></A>Page is 0: address range is 0x00000 to 0x0FFFF. </P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-862943"></A>Page is 1: address range is 0x10000 to 0x1FFFF.</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-862944"></A>Page is 2: address range is 0x20000 to 0x2FFFF.</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-862954"></A>I<EM CLASS="Superscript">
+2</EM>
+C Command:</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-862947"></A>Command</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-862949"></A>Page</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-862951"></A>0x06</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-862953"></A>0, 1 or 2</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-862955"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-875765"></A>I<EM CLASS="Superscript">
+2</EM>
+C Success Response:</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-875762"></A>Completion Code</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-875764"></A>0xFF</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<A NAME="MNSH2-VerifyConfigurationMemoryCF" /><H6 CLASS="Heading2">
+<A NAME="50495608_pgfId-875768"></A><A NAME="50495608_Verify Configuration Memory"></A>Verify Configuration Memory (0xCF)</H6>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-862970"></A>Verifies the INIC configuration memory section. The address can be any value from 0x0000 to 0x01FF. Len can be any value less than or equal to 255. When Len is 0x00, it will be considered as 256 bytes. The requested section is reported as valid if the CRC of all the bytes in the section ends up being 0x0000.</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-862988"></A>I<EM CLASS="Superscript">
+2</EM>
+C Command:</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-862973"></A>Command</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-862975"></A>Addr-H</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-862977"></A>Addr-L</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-862979"></A>Len</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-862981"></A>0xCF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-862983"></A>0x00...0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-862985"></A>0x00...0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-862987"></A>0x00...0xFF</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-862989"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-862999"></A>I<EM CLASS="Superscript">
+2</EM>
+C Success Response:</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-862992"></A>Completion Code</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-862994"></A>0xFF</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-863000"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-863018"></A>I<EM CLASS="Superscript">
+2</EM>
+C Error Response:</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-863003"></A>Completion Code</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-863005"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-863007"></A>0x10</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-863009"></A>Verification error - Invalid CRC</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-863019"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-863020"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-ReadConfigurationMemoryD2" /><H6 CLASS="Heading2">
+<A NAME="50495608_pgfId-863022"></A><A NAME="50495608_Read Configuration Memory"></A><A NAME="50495608_56159"></A>Read Configuration Memory (0xD2)</H6>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-863023"></A>Reads Len number of bytes, starting at Addr-H:Addr-L. The 16-bit address in <BR>
+Addr-H:Addr-L can be any value from 0x0000 to 0x01FF. Len can be any value up to 32.</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-863041"></A>I<EM CLASS="Superscript">
+2</EM>
+C Command:</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-863026"></A>Command</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-863028"></A>Addr-H</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-863030"></A>Addr-L</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-863032"></A>Len</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-863034"></A>0xD2</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-937428"></A>0x00...0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-937430"></A>0x00...0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-863040"></A>0x01...0x20</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-863042"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-863084"></A>I<EM CLASS="Superscript">
+2</EM>
+C Success Response: </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-863045"></A>Completion Code</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-863047"></A>Don&#8217;t Care</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-863049"></A>Don&#8217;t Care</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-863051"></A>Don&#8217;t Care</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-863053"></A>Data 0...(Len-1)</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-863055"></A>0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-863057"></A>-</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-863059"></A>-</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-863061"></A>-</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-863063"></A>0xXX</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-863085"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-865226"></A>I<EM CLASS="Superscript">
+2</EM>
+C Error Response:</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-865219"></A>Completion Code</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-865221"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-865223"></A>0x12</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-865252"></A>Invalid address</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-865241"></A>0x13</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-865254"></A>Invalid length</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+<DIV>
+<A NAME="MNSH2-EraseConfigurationMemoryCE" /><H6 CLASS="Heading2">
+<A NAME="50495608_pgfId-863088"></A><A NAME="50495608_Erase Configuration Memory"></A><A NAME="50495608_62773"></A>Erase Configuration Memory (0xCE)</H6>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-863089"></A>Erases the INIC configuration memory section. </P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-863103"></A>I<EM CLASS="Superscript">
+2</EM>
+C Command:</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-863092"></A>Command</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-863094"></A>Start Page</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-863096"></A>Number of Pages</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-863098"></A>0xCE</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-863100"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-863102"></A>0x02</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-863104"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-863114"></A>I<EM CLASS="Superscript">
+2</EM>
+C Success Response:</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-863107"></A>Completion Code</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-863109"></A>0xFF</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-863115"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-863133"></A>I<EM CLASS="Superscript">
+2</EM>
+C Error Response:</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-863118"></A>Completion Code</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-863120"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-863122"></A>0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-863124"></A>Invalid parameter(s) - Invalid start page and/or invalid number of pages</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-874229"></A>0x21</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-874231"></A>No initialization done &#8211; <EM CLASS="Italic">
+Programming Start</EM>
+ command was not sent or successful.</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-863134"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-863135"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-WriteConfigurationMemoryC2" /><H6 CLASS="Heading2">
+<A NAME="50495608_pgfId-863137"></A><A NAME="50495608_Write Configuration Memory"></A><A NAME="50495608_35693"></A>Write Configuration Memory (0xC2)</H6>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-863138"></A>Programs Len number of bytes, starting at Addr-H:Addr-L. The 16-bit address in <BR>
+Addr-H:Addr-L can be any value from 0x0000 to 0x01FF. The memory is programmed 2 bytes at a time, so the address sent must be even, and the Len must be even. The maximum value for Len is 32 bytes.</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-863176"></A>I<EM CLASS="Superscript">
+2</EM>
+C Command:</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-937474"></A>Command</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-937476"></A>Addr-H</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-937478"></A>Addr-L</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-937480"></A>Len</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-937482"></A>Data 0</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-937484"></A>...</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-937486"></A>Data 31</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-937488"></A>0xC2</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-937490"></A>0x00...0x01</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-937492"></A>0x00...0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-937494"></A>0x02...0x20</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-937496"></A>...</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-863177"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-863187"></A>I<EM CLASS="Superscript">
+2</EM>
+C Success Response:</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-863180"></A>Completion Code</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-863182"></A>0xFF</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-863188"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-863222"></A>I<EM CLASS="Superscript">
+2</EM>
+C Error Response:</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-865261"></A>Completion Code</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-865263"></A>Description</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-865265"></A>0x10</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-865267"></A>Verification error &#8211; Read back after write does not match the data sent.</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-865273"></A>0x12</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-865275"></A>Invalid address</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-865277"></A>0x13</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-865279"></A>Invalid length</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-865281"></A>0x21</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495608_pgfId-865283"></A>No initialization done &#8211; <EM CLASS="Italic">
+Programming Start</EM>
+ command was not sent or successful.</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-863223"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-ClearCRCE5" /><H6 CLASS="Heading2">
+<A NAME="50495608_pgfId-863311"></A><A NAME="50495608_Clear CRC"></A>Clear CRC (0xE5)</H6>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-863312"></A>Initializes the boot monitor&#8217;s internal CRC value to 0. Then, during programming, each byte is added into the CRC calculation. </P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-863330"></A>I<EM CLASS="Superscript">
+2</EM>
+C Command:</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-863315"></A>Command</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-863317"></A>Data 0</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-863319"></A>Data 1</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-863321"></A>Data 2</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-863323"></A>0xE5</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-863325"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-863327"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-863329"></A>0x00</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-863331"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-863341"></A>I<EM CLASS="Superscript">
+2</EM>
+C Success Response:</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-863334"></A>Completion Code</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-863336"></A>0xFF</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-863342"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-863343"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-GetCRCE6" /><H6 CLASS="Heading2">
+<A NAME="50495608_pgfId-863345"></A><A NAME="50495608_Get CRC"></A>Get CRC (0xE6)</H6>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-863346"></A>Returns the value of the internal CRC variable. The CRC is updated as each byte is programmed. At the end of the programming sequence this value represents the CRC of all the data just programmed. The firmware image has an embedded CRC, so that the final CRC of the entire block should be zero. </P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-863364"></A>I<EM CLASS="Superscript">
+2</EM>
+C Command:</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-863349"></A>Command</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-863351"></A>Data 0</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-863353"></A>Data 1</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-863355"></A>Data 2</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-863357"></A>0xE6</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-863359"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-863361"></A>0x00</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-863363"></A>0x02</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-863365"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-863415"></A>I<EM CLASS="Superscript">
+2</EM>
+C Success Response:</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-863368"></A>Completion Code</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-863370"></A>Don&#8217;t Care</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-863372"></A>Don&#8217;t Care</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-863374"></A>Don&#8217;t Care</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-863376"></A>Data 0 is CRC-H</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495608_pgfId-863378"></A>Data 1 is CRC-L</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-863380"></A>0xFF</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-863382"></A>-</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-863384"></A>-</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-863386"></A>-</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-863388"></A>0xXX</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495608_pgfId-863390"></A>0xXX</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495608_pgfId-771713"></A>&nbsp;</P>
+</DIV>
+</DIV>
+</DIV>
+<h1><a class="anchor" id="SEC_OS81118_26"></a>
+Diagnosis</h1>
+<DIV>
+<H1 CLASS="Appendix">
+<A NAME="50495609_pgfId-630401"></A><DIV>
+<IMG SRC="OS81118-133.gif" ALT="">
+</DIV>
+<A NAME="50495609_47728"></A>Diagnosis<DIV>
+<IMG SRC="OS81118-134.gif" ALT="">
+</DIV>
+</H1>
+<P CLASS="Body">
+<A NAME="50495609_pgfId-667847"></A>The INIC provides diagnosis functionality via the MOST debug message. The message is used to send debug events &#8211; these are events that are generated by the INIC and sent to the MOST network, to allow a standard analysis tool such as the OptoLyzer MOCCA Bundle 150o/c <A HREF="#50495561_32116" CLASS="XRef"><EM CLASS="Blue">
+[10]</EM>
+</A> focusing on these events. </P>
+<P CLASS="Body">
+<A NAME="50495609_pgfId-667848"></A>MOST debug messages are always sent to debug address 0x0FF0; no retries are performed.</P>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495609_pgfId-666939"></A>FBlock DebugMessages</H3>
+<P CLASS="Body">
+<A NAME="50495609_pgfId-666904"></A>The FBlock DebugMessages is not included in the central registry. The InstID of the FBlock is equal to the node position of the device that implements the FBlock. <BR>
+The function that provides the debug events is called <EM CLASS="Computer">
+NIC_DebugMessage()</EM>
+, see <A HREF="#50495582_69004" CLASS="XRef"><EM CLASS="Link">
+Section 21.3.1</EM>
+</A>. Debug events are categorized to signal different debug levels, which are error and warning. The function cannot be adjusted; it always includes errors and warnings. Requests to this function are not supported.</P>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495609_pgfId-666864"></A><A NAME="50495609_20149"></A>Control Message Retry Failed</H3>
+<P CLASS="Body">
+<A NAME="50495609_pgfId-666692"></A>The INIC provides a mechanism to indicate that the final control message retry has failed. In this case, the control message is sent to debug address 0x0FF0 instead to the original target address. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495609_pgfId-666695"></A>Note: This mechanism applies to every control message sent to the MOST network.</Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495609_pgfId-666696"></A>&nbsp;</P>
+<DIV>
+<H4 CLASS="ZNotes">
+<A NAME="50495609_pgfId-666612"></A>&nbsp;</H4>
+</DIV>
+</DIV>
+</DIV>
+<h1><a class="anchor" id="SEC_OS81118_27"></a>
+Resource Planning</h1>
+<DIV>
+<H1 CLASS="Appendix">
+<A NAME="50495615_pgfId-630401"></A><DIV>
+<IMG SRC="OS81118-135.gif" ALT="">
+</DIV>
+<A NAME="50495615_47728"></A>Resource Planning<DIV>
+<IMG SRC="OS81118-136.gif" ALT="">
+</DIV>
+</H1>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495615_pgfId-690968"></A><A NAME="50495615_15483"></A>Resource Overview</H3>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-691439"></A>This section gives an overview of the resource objects (see <A HREF="#50495567_29286" CLASS="XRef"><EM CLASS="Link">
+Table 6-1</EM>
+</A>) and their data types. Furthermore, it shows which resource object tables, routing channels, or routing memories are utilized, when a resource object of a specific data type is created.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792014"></A>Socket </P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792016"></A>Data Type</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792018"></A>Combiner Table</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792020"></A>Splitter Table</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792022"></A>Socket Table</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792024"></A>Connection Table</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792026"></A>Synchronous Routing<BR>
+Channel </P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792028"></A>Isochronous Routing<BR>
+Channel</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792030"></A>Standard Routing<BR>
+Memory<BR>
+(Synchronous)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792032"></A>Standard Routing<BR>
+Memory<BR>
+(Isochronous)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792034"></A>Aggregation Routing<BR>
+Memory <BR>
+(Synchronous/Isochronous)</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792036"></A>MOST</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792038"></A><EM CLASS="Computer">
+Sync</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792040"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792042"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792044"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792046"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792048"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792050"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792052"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792054"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792056"></A>&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792060"></A><EM CLASS="Computer">
+AVPacketized</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792062"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792064"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792066"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792068"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792070"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792072"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792074"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792076"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792078"></A>&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792082"></A><EM CLASS="Computer">
+QoSPacket</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792084"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792086"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792088"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792090"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792092"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792094"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792096"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792098"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792100"></A>&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792104"></A><EM CLASS="Computer">
+DiscFramePhase</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792106"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792108"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792110"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792112"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792114"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792116"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792118"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792120"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792122"></A>&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="7" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792124"></A>MediaLB</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792126"></A><EM CLASS="Computer">
+Control</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792128"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792130"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792132"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792134"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792136"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792138"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792140"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792142"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792144"></A>&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792148"></A><EM CLASS="Computer">
+Packet</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792150"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792152"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792154"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792156"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792158"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792160"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792162"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792164"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792166"></A>&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792170"></A><EM CLASS="Computer">
+Sync</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792172"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792174"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792176"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792178"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792180"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792182"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792184"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792186"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792188"></A>&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792192"></A><EM CLASS="Computer">
+AVPacketized</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792194"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792196"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792198"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792200"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792202"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792204"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792206"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792208"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792210"></A>&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792214"></A><EM CLASS="Computer">
+QoSPacket</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792216"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792218"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792220"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792222"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792224"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792226"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792228"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792230"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792232"></A>&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792236"></A><EM CLASS="Computer">
+DiscFramePhase</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792238"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792240"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792242"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792244"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792246"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792248"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792250"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792252"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792254"></A>&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792278"></A>SPI</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792280"></A><EM CLASS="Computer">
+Packet</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792282"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792284"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792286"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792288"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792290"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792292"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792294"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792296"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792298"></A>&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="5" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792300"></A>USB</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792302"></A><EM CLASS="Computer">
+Control</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792304"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792306"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792308"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792310"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792312"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792314"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792316"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792318"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792320"></A>&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792324"></A><EM CLASS="Computer">
+Packet</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792326"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792328"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792330"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792332"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792334"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792336"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792338"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792340"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792342"></A>&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792346"></A><EM CLASS="Computer">
+Sync</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792348"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792350"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792352"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792354"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792356"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792358"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792360"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792362"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792364"></A>&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792368"></A><EM CLASS="Computer">
+AVPacketized</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792370"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792372"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792374"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792376"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792378"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792380"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792382"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792384"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792386"></A>&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792410"></A>Streaming </P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792412"></A><EM CLASS="Computer">
+Sync</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792414"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792416"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792418"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792420"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792422"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792424"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792426"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792428"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792430"></A>&nbsp;</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-677234"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792432"></A>Combiner</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792434"></A>DataType</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792436"></A>Combiner Table</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792438"></A>Splitter Table</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792440"></A>Socket Table</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792442"></A>Connection Table</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792444"></A>Synchronous Routing<BR>
+Channel</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792446"></A>Isochronous Routing<BR>
+Channel</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792448"></A>Standard Routing<BR>
+Memory<BR>
+(Synchronous)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792450"></A>Standard Routing<BR>
+Memory<BR>
+(Isochronous)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792452"></A>Aggregation Routing<BR>
+Memory <BR>
+(Synchronous/Isochronous)</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792454"></A>Combiner -&gt; MediaLB</P>
+</TD>
+<TD ROWSPAN="3" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792456"></A><EM CLASS="Computer">
+Sync</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792458"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792460"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792462"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792464"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792466"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792468"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792470"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792472"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792474"></A>&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792476"></A>Combiner -&gt; Streaming</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792480"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792482"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792484"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792486"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792488"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792490"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792492"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792494"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792496"></A>&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792498"></A>Combiner -&gt; USB</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792502"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792504"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792506"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792508"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792510"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792512"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792514"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792516"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792518"></A>X</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-682321"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792520"></A>Splitter</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792522"></A>DataType</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792524"></A>Combiner Table</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792526"></A>Splitter Table</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792528"></A>Socket Table</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792530"></A>Connection Table</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792532"></A>Synchronous Routing<BR>
+Channel</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792534"></A>Isochronous Routing<BR>
+Channel</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792536"></A>Standard Routing<BR>
+Memory<BR>
+(Synchronous)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792538"></A>Standard Routing<BR>
+Memory<BR>
+(Isochronous)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792540"></A>Aggregation Routing<BR>
+Memory <BR>
+(Synchronous/Isochronous)</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792542"></A>MOST -&gt; Splitter</P>
+</TD>
+<TD ROWSPAN="4" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792544"></A><EM CLASS="Computer">
+Sync</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792546"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792548"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792550"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792552"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792554"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792556"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792558"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792560"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792562"></A>&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792564"></A>MediaLB -&gt; Splitter</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792568"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792570"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792572"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792574"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792576"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792578"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792580"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792582"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792584"></A>&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792586"></A>Streaming -&gt; Splitter</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792590"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792592"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792594"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792596"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792598"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792600"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792602"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792604"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792606"></A>&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792608"></A>USB -&gt; Splitter</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792612"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792614"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792616"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792618"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792620"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792622"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792624"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792626"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792628"></A>X</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-677885"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792744"></A>Connection</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792746"></A> DataType</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792748"></A>Combiner Table</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792750"></A>Splitter Table</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792752"></A>Socket Table</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792754"></A>Connection Table</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792756"></A>Synchronous Routing<BR>
+Channel</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792758"></A>Isochronous Routing<BR>
+Channel</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792760"></A>Standard Routing<BR>
+Memory<BR>
+(Synchronous)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792762"></A>Standard Routing<BR>
+Memory<BR>
+(Isochronous)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-792764"></A>Aggregation Routing<BR>
+Memory <BR>
+(Synchronous/Isochronous)</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792766"></A>MOST &lt;-&gt; MediaLB</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792768"></A><EM CLASS="Computer">
+QoSPacket</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792770"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792772"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792774"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792776"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792778"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792780"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792782"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792784"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792786"></A>&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792788"></A>MOST &lt;-&gt; MediaLB</P>
+</TD>
+<TD ROWSPAN="10" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792790"></A><EM CLASS="Computer">
+Sync</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792792"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792794"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792796"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792798"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792800"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792802"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792804"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792806"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792808"></A>&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792810"></A>MOST &lt;-&gt; Streaming</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792814"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792816"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792818"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792820"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792822"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792824"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792826"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792828"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792830"></A>&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792832"></A>MOST &lt;-&gt; USB</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792836"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792838"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792840"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792842"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792844"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792846"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792848"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792850"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792852"></A>X</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792854"></A>MOST -&gt; Combiner</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792858"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792860"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792862"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792864"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792866"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792868"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792870"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792872"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792874"></A>&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792876"></A>Splitter (MediaLB) -&gt; MOST</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792880"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792882"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792884"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792886"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792888"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792890"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792892"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792894"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792896"></A>&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792898"></A>Splitter (Streaming) -&gt; MOST</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792902"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792904"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792906"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792908"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792910"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792912"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792914"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792916"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792918"></A>&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792920"></A>Splitter (USB) -&gt; MOST</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792924"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792926"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792928"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792930"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792932"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792934"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792936"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792938"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792940"></A>&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792942"></A>Splitter (MOST) -&gt; MediaLB</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792946"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792948"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792950"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792952"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792954"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792956"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792958"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792960"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792962"></A>&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792964"></A>Splitter (MOST) -&gt; Streaming</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792968"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792970"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792972"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792974"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792976"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792978"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792980"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792982"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792984"></A>&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-792986"></A>Splitter (MOST) -&gt; USB</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792990"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792992"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792994"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792996"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-792998"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-793000"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-793002"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-793004"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-793006"></A>X</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-793008"></A>MOST &lt;-&gt; MediaLB</P>
+</TD>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-793010"></A><EM CLASS="Computer">
+AVPacketized</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-793012"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-793014"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-793016"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-793018"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-793020"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-793022"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-793024"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-793026"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-793028"></A>&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-793030"></A>MOST &lt;-&gt; USB</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-793034"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-793036"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-793038"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-793040"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-793042"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-793044"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-793046"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-793048"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-793050"></A>X</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-793052"></A>MOST &lt;-&gt; MediaLB</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-793054"></A><EM CLASS="Computer">
+DiscFramePhase</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-793056"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-793058"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-793060"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-793062"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-793064"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-793066"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-793068"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-793070"></A>X</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-793072"></A>X</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-692628"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495615_pgfId-695683"></A>Available Resources</H3>
+<DIV>
+<A NAME="MNSH2-MOSTSystem" /><H6 CLASS="Heading2">
+<A NAME="50495615_pgfId-692629"></A><A NAME="50495615_77291"></A>MOST System</H6>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-692630"></A>In a MOST system the total available data bandwidth is a shared resource among all devices. Therefore, when designing a MOST device, this fact must be considered to avoid bandwidth resource conflicts. </P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-762202"></A>Parameter <A HREF="#50495582_INIC/MOSTNetworkStartup/PacketBW" CLASS="XRef">PacketBW</A> specifies the available bandwidth for packet and streaming data. If <A HREF="#50495582_INIC/MOSTNetworkStartup/PacketBW" CLASS="XRef">PacketBW</A> is set to 0, the total available streaming data bandwidth is 372 bytes per MOST frame, whereas 0 bytes per MOST frame are left for packet data. </P>
+</DIV>
+<DIV>
+<A NAME="MNSH2-INIC" /><H6 CLASS="Heading2">
+<A NAME="50495615_pgfId-692638"></A>INIC</H6>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-692639"></A>Resource object tables, routing memories, and routing channels are shared between multiple resource objects, see <A HREF="#50495615_15483" CLASS="XRef"><EM CLASS="Link">
+Section C.1</EM>
+</A>. A resource budget is required to be planned, such that the available resources can be used in an optimum manner.</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-692662"></A>The INIC stores all resource objects in tables, which have a specific number of slots.<BR>
+Each of the tables is a shared resource of the corresponding object type. Parameter <A HREF="#50495567_Index" CLASS="XRef">Index</A> denotes the limitations, see <A HREF="#50495567_86799" CLASS="XRef"><EM CLASS="Link">
+Section 6.2</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-695475"></A>For information on routing memory and available resources, refer to <A HREF="#50495567_40711" CLASS="XRef"><EM CLASS="Link">
+Section 6.8.1</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-692690"></A>Routing channels and available resources can be found in <A HREF="#50495567_37665" CLASS="XRef"><EM CLASS="Link">
+Section 6.8.2</EM>
+</A>.</P>
+</DIV>
+</DIV>
+<DIV>
+<H3 CLASS="Heading1">
+<A NAME="50495615_pgfId-716977"></A>Resource Budget Calculation</H3>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-716978"></A>The use case described in this section is intended to be a guideline on how to properly calculate and manage a resource budget. Before we step into the configuration and calculation details of our example device, consider the following device characteristics: the device utilizes multiple ports and requires multiple streaming resources for both synchronous and isochronous data transmission.</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-716979"></A>In the following sections, step-by-step functionality will be added to our example device, to finally get an impression on how resource calculation works.</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-716980"></A>Configuration details:</P>
+<UL>
+<LI CLASS="Bullet1">
+<A NAME="50495615_pgfId-716981"></A>&#8226; The serial data pins of Streaming Port A are configured as one <EM CLASS="Computer">
+Output</EM>
+ and one <EM CLASS="Computer">
+Input</EM>
+ pin. Streaming Port A is configured with an I<EM CLASS="Superscript">
+2</EM>
+S-compatible configuration, and a clock speed of <EM CLASS="Computer">
+64Fs</EM>
+. A 16-bit audio stereo stream will be transmitted on one of the data pins.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495615_pgfId-716982"></A>&#8226; Streaming Port B shares the same clocking signals as Streaming Port A. Its serial data pins are also configured as one <EM CLASS="Computer">
+Output</EM>
+ and one <EM CLASS="Computer">
+Input</EM>
+ pin. Streaming Port B is configured with sequential data alignment that enables routing of all bytes per Streaming Port frame. A splitter and a combiner object will be used to enable de-grouping and grouping of multiple audio streams onto the same Streaming Port pin.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495615_pgfId-716983"></A>&#8226; The MediaLB Port is configured as a 3-Pin interface with a clock speed of <EM CLASS="Computer">
+512Fs</EM>
+. A multichannel 5.1, 24-bit audio stream will be transmitted on an application channel.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495615_pgfId-716984"></A>&#8226; The USB Port is configured with a USB IN Endpoint for <EM CLASS="Computer">
+AVPacketized</EM>
+ streaming. A DVB-T stream with a peak data rate of 15 Mbit/s will be transmitted on one of the Endpoints.</LI>
+<LI CLASS="Bullet1">
+<A NAME="50495615_pgfId-716985"></A>&#8226; The I<EM CLASS="Superscript">
+2</EM>
+C Port will be used for <EM CLASS="Computer">
+Control</EM>
+ data. <EM CLASS="Computer">
+Packet</EM>
+ data transmission is not included in this example, thus the maximum bandwidth for streaming data is available on the MOST network.</LI>
+</UL>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-722315"></A><A HREF="#50495615_37661" CLASS="XRef"><EM CLASS="Link">
+Figure C-1</EM>
+</A> shows the MOST network, the peripheral ports, and the streaming applications running on the EHC. The coloring in the figure shows which streaming application is used with which peripheral port. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<H6 CLASS="AppFigureTitle">
+<A NAME="50495615_pgfId-796003"></A><A NAME="50495615_37661"></A>Streaming Applications and Peripheral Ports</H6>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-796008"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-137.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-722336"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495615_pgfId-722335"></A>Note: In this example the MOST device hardware is using a codec, which does not require the RMCK Port.</Note: >
+</TD>
+</TR>
+</TABLE>
+<DIV>
+<A NAME="MNSH2-SynchronousStreamingUsingtheStreamingPort" /><H6 CLASS="Heading2">
+<A NAME="50495615_pgfId-717003"></A> Synchronous Streaming Using the Streaming Port</H6>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-717004"></A>A stereo channel shall be transferred from Streaming Port A to the MOST network. The channel consists of a 16-bit audio stereo stream with a sample rate synchronized to the MOST network. Furthermore, a combiner object is created based on a Streaming Port B socket of direction <EM CLASS="Computer">
+Output</EM>
+. It groups two 16-bit audio stereo streams received from the network. A splitter object is created based on a Streaming Port B socket of direction <EM CLASS="Computer">
+Input</EM>
+. It splits a stream of two 16-bit audio stereo streams received on Streaming Port B. Each stream is transmitted on a separate network channel, outlined in <A HREF="#50495615_35304" CLASS="XRef"><EM CLASS="Link">
+Figure C-2</EM>
+</A>. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<H6 CLASS="AppFigureTitle">
+<A NAME="50495615_pgfId-796025"></A><A NAME="50495615_35304"></A>Synchronous Streaming Using Streaming Port A and Streaming Port B</H6>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-796030"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-138.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-717017"></A>&nbsp;</P>
+<DIV>
+<A NAME="MNSH3-PortConfiguration" /><H6 CLASS="Heading3">
+<A NAME="50495615_pgfId-717018"></A>Port Configuration</H6>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-717022"></A>As described in <A HREF="#50495572_86503" CLASS="XRef"><EM CLASS="Link">
+Section 11.3.1</EM>
+</A>, Streaming Port A is configured for audio streaming between the INIC and an external audio codec, using an I<EM CLASS="Superscript">
+2</EM>
+S-compatible format. In addition, Streaming Port B will be configured for sequential streaming. The following is a summary of the configuration:</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-717069"></A><EM CLASS="Computer">
+INIC.StreamPortConfiguration()</EM>
+</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717028"></A><A HREF="#50495582_INIC/StreamPortConfiguration/Index" CLASS="XRef">Index</A></P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717033"></A><A HREF="#50495582_INIC/StreamPortConfiguration/OperationMode" CLASS="XRef">OperationMode</A></P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717038"></A><A HREF="#50495582_INIC/StreamPortConfiguration/PortOption" CLASS="XRef">PortOption</A></P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717043"></A><A HREF="#50495582_INIC/StreamPortConfiguration/ClockMode" CLASS="XRef">ClockMode</A></P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717048"></A><A HREF="#50495582_INIC/StreamPortConfiguration/ClockDataDelay" CLASS="XRef">ClockDataDelay</A></P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-717050"></A>Streaming PortA</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-717052"></A><EM CLASS="Computer">
+Generic</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-717054"></A><EM CLASS="Computer">
+InOut</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-717056"></A><EM CLASS="Computer">
+Output</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-717058"></A><EM CLASS="Computer">
+Delayed</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-717060"></A>Streaming PortB</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-717062"></A><EM CLASS="Computer">
+Generic</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-717064"></A><EM CLASS="Computer">
+InOut</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-717066"></A><EM CLASS="Computer">
+Wildcard</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-717068"></A><EM CLASS="Computer">
+Wildcard</EM>
+</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-717070"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-717108"></A><EM CLASS="Computer">
+INIC.StreamPortCreate()</EM>
+</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-771473"></A><A HREF="#50495582_INIC/StreamPortCreate/Index" CLASS="XRef">Index</A></P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-771478"></A><A HREF="#50495582_INIC/StreamPortCreate/ClockConfig" CLASS="XRef">ClockConfig</A></P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-771483"></A><A HREF="#50495582_INIC/StreamPortCreate/DataAlignment" CLASS="XRef">DataAlignment</A></P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-771485"></A>Streaming PortA</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-771487"></A><EM CLASS="Computer">
+64Fs</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-771489"></A><EM CLASS="Computer">
+Left16Bit</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-771491"></A>Streaming PortB</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-771493"></A><EM CLASS="Computer">
+Wildcard</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495615_pgfId-771495"></A><EM CLASS="Computer">
+Seq</EM>
+</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-717109"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-717110"></A>This configuration enables the following resources on the Streaming Ports available when creating sockets.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717113"></A>Index</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717115"></A>Pin Direction</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717117"></A>Maximum Resources [bytes]</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717119"></A>Streaming PortA</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717121"></A>Input</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717123"></A>4</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717127"></A>Output</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717129"></A>4</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717131"></A>Streaming PortB</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717133"></A>Input</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717135"></A>8</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717139"></A>Output</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717141"></A>8</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-717142"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<A NAME="MNSH3-1x16bitAudioStereo" /><H6 CLASS="Heading3">
+<A NAME="50495615_pgfId-717143"></A>1 x 16 bit Audio Stereo</H6>
+<DIV>
+<H6 CLASS="Heading4">
+<A NAME="50495615_pgfId-717144"></A>Resource Usage</H6>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-717148"></A><A HREF="#50495572_29338" CLASS="XRef"><EM CLASS="Link">
+Section 11.2</EM>
+</A> describes the properties of a Streaming Port socket. The size of the socket specifies the number of bytes per Streaming Port frame to be routed. In the example described in <A HREF="#50495572_86503" CLASS="XRef"><EM CLASS="Link">
+Section 11.3.1</EM>
+</A>, a Streaming Port socket of direction <EM CLASS="Computer">
+Output</EM>
+ is created on the <EM CLASS="Pin-Name">
+SRXA1</EM>
+ pin. The only applicable size while using a legacy data alignment format is for this example 4 bytes. Furthermore, a slot in the socket resource table is required to be reserved.</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-717152"></A>Feature: 1 x 16 bit audio stereo</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-717262"></A>Resource object that is created: A Streaming socket</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="4">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717155"></A>Resource Tables</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717163"></A>Routing Memory</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="2">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717169"></A>Routing Channels</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717173"></A>MOST System Resources</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717175"></A>Socket</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717176"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717177"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717178"></A><EM CLASS="Grey">
+40</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717180"></A>Connection</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717181"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717182"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717183"></A><EM CLASS="Grey">
+20</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717185"></A>Splitter</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717186"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717187"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717188"></A><EM CLASS="Grey">
+3</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717190"></A>Combiner</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717191"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717192"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717193"></A><EM CLASS="Grey">
+3</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717195"></A>Standard</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717196"></A>(Sync)</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717197"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717198"></A><EM CLASS="Grey">
+384</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717200"></A>Standard</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717201"></A>(AVPacketized)</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717202"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717203"></A><EM CLASS="Grey">
+4352</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717205"></A>Aggregation</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717206"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717207"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717208"></A><EM CLASS="Grey">
+8192</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717210"></A>Sync</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717211"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717212"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717213"></A><EM CLASS="Grey">
+32</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717215"></A>AVPacketized</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717216"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717217"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717218"></A><EM CLASS="Grey">
+16</EM>
+</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717240"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717241"></A><EM CLASS="Grey">
+372</EM>
+</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717243"></A>40 - 1 = 39</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717245"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717247"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717249"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717251"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717253"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717255"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717257"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717259"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717261"></A>&nbsp;</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-717263"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-717267"></A>The example in <A HREF="#50495572_86503" CLASS="XRef"><EM CLASS="Link">
+Section 11.3.1</EM>
+</A> also describes the creation of a MOST socket. Since we create a socket of direction <EM CLASS="Computer">
+Input</EM>
+, an allocated network channel is required. Hence, MOST system resources have already been allocated when this action is performed. In addition to MOST system resources, a MOST socket always requires a routing channel and a slot in the socket resource table. See <A HREF="#50495568_88992" CLASS="XRef"><EM CLASS="Link">
+Section 7.2</EM>
+</A> for more information on MOST sockets.</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-717400"></A>Resource object that is created: A MOST socket</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="4">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717273"></A>Resource Tables</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717281"></A>Routing Memory</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="2">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717287"></A>Routing Channels</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717291"></A>MOST System Resources</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717293"></A>Socket</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717294"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717295"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717296"></A><EM CLASS="Grey">
+40</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717298"></A>Connection</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717299"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717300"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717301"></A><EM CLASS="Grey">
+20</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717303"></A>Splitter</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717304"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717305"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717306"></A><EM CLASS="Grey">
+3</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717308"></A>Combiner</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717309"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717310"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717311"></A><EM CLASS="Grey">
+3</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717313"></A>Standard</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717314"></A>(Sync)</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717315"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717316"></A><EM CLASS="Grey">
+384</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717318"></A>Standard</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717319"></A>(AVPacketized)</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717320"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717321"></A><EM CLASS="Grey">
+4352</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717323"></A>Aggregation</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717324"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717325"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717326"></A><EM CLASS="Grey">
+8192</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717328"></A>Sync</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717329"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717330"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717331"></A><EM CLASS="Grey">
+32</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717333"></A>AVPacketized</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717334"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717335"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717336"></A><EM CLASS="Grey">
+16</EM>
+</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717358"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717359"></A><EM CLASS="Grey">
+372</EM>
+</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717361"></A><EM CLASS="Grey">
+40 - 1 = 39</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717363"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717365"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717367"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717369"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717371"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717373"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717375"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717377"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717379"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717381"></A>39 - 1 = 38</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717383"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717385"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717387"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717389"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717391"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717393"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717395"></A>32 - 1 = 31</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717397"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717399"></A>372 - 4 = 368</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-717401"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-717402"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-717406"></A><A HREF="#50495580_39086" CLASS="XRef"><EM CLASS="Link">
+Section 19.1.2</EM>
+</A> describes the requirements when creating a synchronous connection between a peripheral port socket and a MOST network socket. Standard routing memory is required, where the amount is decided by the size of the sockets. The size of both sockets is required to be equal. A socket connection requires a slot in the connection resource table.</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-717556"></A>Resource object that is created: A <EM CLASS="Computer">
+Sync</EM>
+ connection</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="4">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717409"></A>Resource Tables</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717417"></A>Routing Memory</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="2">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717423"></A>Routing Channels</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717427"></A>MOST System Resources</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717429"></A>Socket</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717430"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717431"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717432"></A><EM CLASS="Grey">
+40</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717434"></A>Connection</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717435"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717436"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717437"></A><EM CLASS="Grey">
+20</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717439"></A>Splitter</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717440"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717441"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717442"></A><EM CLASS="Grey">
+3</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717444"></A>Combiner</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717445"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717446"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717447"></A><EM CLASS="Grey">
+3</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717449"></A>Standard</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717450"></A>(Sync)</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717451"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717452"></A><EM CLASS="Grey">
+384</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717454"></A>Standard</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717455"></A>(AVPacketized)</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717456"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717457"></A><EM CLASS="Grey">
+4352</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717459"></A>Aggregation</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717460"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717461"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717462"></A><EM CLASS="Grey">
+8192</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717464"></A>Sync</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717465"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717466"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717467"></A><EM CLASS="Grey">
+32</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717469"></A>AVPacketized</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717470"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717471"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717472"></A><EM CLASS="Grey">
+16</EM>
+</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717494"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717495"></A><EM CLASS="Grey">
+372</EM>
+</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717497"></A><EM CLASS="Grey">
+40 - 1 = 39</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717499"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717501"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717503"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717505"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717507"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717509"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717511"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717513"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717515"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717517"></A><EM CLASS="Grey">
+39 - 1 = 38</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717519"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717521"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717523"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717525"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717527"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717529"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717531"></A><EM CLASS="Grey">
+32 - 1 = 31</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717533"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717535"></A><EM CLASS="Grey">
+372 - 4 = 368</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717537"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717539"></A>20 - 1 = 19</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717541"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717543"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717545"></A>384 - 4 = 380</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717547"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717549"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717551"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717553"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717555"></A>&nbsp;</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-717557"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<H6 CLASS="Heading4">
+<A NAME="50495615_pgfId-717691"></A>Summary</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717560"></A>&nbsp;</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717562"></A>&nbsp;</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="4">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717564"></A>Resource Tables</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717572"></A>Routing Memory</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="2">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717578"></A>Routing Channels</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717582"></A>MOST System Resources</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717584"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717585"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717586"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717587"></A><EM CLASS="Grey">
+Feature</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717589"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717590"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717591"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717592"></A><EM CLASS="Grey">
+# of all Resources</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717594"></A>Socket</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717595"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717596"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717597"></A><EM CLASS="Grey">
+40</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717599"></A>Connection</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717600"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717601"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717602"></A><EM CLASS="Grey">
+20</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717604"></A>Splitter</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717605"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717606"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717607"></A><EM CLASS="Grey">
+3</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717609"></A>Combiner</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717610"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717611"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717612"></A><EM CLASS="Grey">
+3</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717614"></A>Standard</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717615"></A>(Sync)</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717616"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717617"></A><EM CLASS="Grey">
+384</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717619"></A>Standard</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717620"></A>(AVPacketized)</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717621"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717622"></A><EM CLASS="Grey">
+4352</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717624"></A>Aggregation</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717625"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717626"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717627"></A><EM CLASS="Grey">
+8192</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717629"></A>Sync</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717630"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717631"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717632"></A><EM CLASS="Grey">
+32</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717634"></A>AVPacketized</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717635"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717636"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717637"></A><EM CLASS="Grey">
+16</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717639"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717640"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717641"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717642"></A><EM CLASS="Grey">
+372</EM>
+</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717644"></A>1 x 16 bit <BR>
+Audio Stereo</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717646"></A><EM CLASS="Grey">
+# of used Resources</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717648"></A>-2</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717650"></A>-1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717652"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717654"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717656"></A>-4</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717658"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717660"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717662"></A>-1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717664"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717666"></A>-4</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717670"></A><EM CLASS="Grey">
+# of left Resources</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717672"></A>38</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717674"></A>19</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717676"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717678"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717680"></A>380</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717682"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717684"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717686"></A>31</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717688"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717690"></A>368</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-717692"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-717693"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-717694"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-717695"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-717696"></A> &nbsp;</P>
+</DIV>
+</DIV>
+<DIV>
+<A NAME="MNSH3-2Groupsof2x16bitAudioStereo" /><H6 CLASS="Heading3">
+<A NAME="50495615_pgfId-717697"></A>2 Groups of 2 x 16 bit Audio Stereo</H6>
+<DIV>
+<H6 CLASS="Heading4">
+<A NAME="50495615_pgfId-717698"></A>Resource Usage</H6>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-717699"></A>In this example we first create two Streaming Port sockets, one on each pin, with the maximum size of 8 bytes allowed by the port configuration. The size of a socket denotes the total number of bytes that will be routed to the Streaming Port pin, each frame. In this example, these are 8 bytes (4 + 4 bytes) for both audio streams. Each of the Streaming Port sockets requires a slot in the socket resource table. See <A HREF="#50495572_29338" CLASS="XRef"><EM CLASS="Link">
+Section 11.2</EM>
+</A> for more information on Streaming Port sockets.</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-717703"></A>Feature: 2 Groups of 2 x 16 bit Audio Stereo</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-717813"></A>Resource object that is created: Two Streaming Port sockets</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="4">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717706"></A>Resource Tables</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717714"></A>Routing Memory</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="2">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717720"></A>Routing Channels</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717724"></A>MOST System Resources</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717726"></A>Socket</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717727"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717728"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717729"></A><EM CLASS="Grey">
+40</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717731"></A>Connection</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717732"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717733"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717734"></A><EM CLASS="Grey">
+20</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717736"></A>Splitter</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717737"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717738"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717739"></A><EM CLASS="Grey">
+3</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717741"></A>Combiner</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717742"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717743"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717744"></A><EM CLASS="Grey">
+3</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717746"></A>Standard</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717747"></A>(Sync)</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717748"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717749"></A><EM CLASS="Grey">
+384</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717751"></A>Standard</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717752"></A>(AVPacketized)</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717753"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717754"></A><EM CLASS="Grey">
+4352</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717756"></A>Aggregation</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717757"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717758"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717759"></A><EM CLASS="Grey">
+8192</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717761"></A>Sync</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717762"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717763"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717764"></A><EM CLASS="Grey">
+32</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717766"></A>AVPacketized</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717767"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717768"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717769"></A><EM CLASS="Grey">
+16</EM>
+</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717791"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717792"></A><EM CLASS="Grey">
+372</EM>
+</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717794"></A>38 - 2 = 36</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717796"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717798"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717800"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717802"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717804"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717806"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717808"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717810"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717812"></A>&nbsp;</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-717814"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-717815"></A>A data stream containing two 16-bit audio stereo streams is presented on the <EM CLASS="Computer">
+Input</EM>
+ pin. Each of the streams needs to be routed to separate network channels. We create a splitter routing object with the Streaming Port socket of direction <EM CLASS="Computer">
+Input</EM>
+. A splitter requires a slot in the splitter resource table, as well as a routing channel and a portion of the standard routing memory. See <A HREF="#50495577_47728" CLASS="XRef"><EM CLASS="Blue">
+Chapter 16</EM>
+</A> for further information.</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-717948"></A>Resource object that is created: A splitter</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="4">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717821"></A>Resource Tables</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717829"></A>Routing Memory</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="2">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717835"></A>Routing Channels</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717839"></A>MOST System Resources</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717841"></A>Socket</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717842"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717843"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717844"></A><EM CLASS="Grey">
+40</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717846"></A>Connection</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717847"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717848"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717849"></A><EM CLASS="Grey">
+20</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717851"></A>Splitter</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717852"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717853"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717854"></A><EM CLASS="Grey">
+3</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717856"></A>Combiner</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717857"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717858"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717859"></A><EM CLASS="Grey">
+3</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717861"></A>Standard</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717862"></A>(Sync)</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717863"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717864"></A><EM CLASS="Grey">
+384</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717866"></A>Standard</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717867"></A>(AVPacketized)</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717868"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717869"></A><EM CLASS="Grey">
+4352</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717871"></A>Aggregation</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717872"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717873"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717874"></A><EM CLASS="Grey">
+8192</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717876"></A>Sync</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717877"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717878"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717879"></A><EM CLASS="Grey">
+32</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717881"></A>AVPacketized</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717882"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717883"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717884"></A><EM CLASS="Grey">
+16</EM>
+</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717906"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717907"></A><EM CLASS="Grey">
+372</EM>
+</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717909"></A><EM CLASS="Grey">
+38 - 2 = 36</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717911"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717913"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717915"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717917"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717919"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717921"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717923"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717925"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717927"></A>&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717929"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717931"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717933"></A>3 - 1 = 2</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717935"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717937"></A>380 - 8 = 372</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717939"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717941"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717943"></A>31 - 1 = 30</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717945"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717947"></A>&nbsp;</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-717949"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-717950"></A> &nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-717951"></A>A data stream containing two 16-bit audio stereo streams needs to be presented on the <EM CLASS="Computer">
+Output</EM>
+ pin. Each of the streams is routed from a separate network channel. We create a combiner routing object with the Streaming Port socket of direction <EM CLASS="Computer">
+Output</EM>
+. A combiner requires a slot in the combiner resource table, as well as a routing channel and a portion of the standard routing memory. See <A HREF="#50495576_47728" CLASS="XRef"><EM CLASS="Blue">
+Chapter 15</EM>
+</A> for further information.</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-718104"></A>Resource object that is created: A combiner</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="4">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717957"></A>Resource Tables</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717965"></A>Routing Memory</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="2">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717971"></A>Routing Channels</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717975"></A>MOST System Resources</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717977"></A>Socket</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717978"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717979"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717980"></A><EM CLASS="Grey">
+40</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717982"></A>Connection</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717983"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717984"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717985"></A><EM CLASS="Grey">
+20</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717987"></A>Splitter</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717988"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717989"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717990"></A><EM CLASS="Grey">
+3</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717992"></A>Combiner</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717993"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717994"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-717995"></A><EM CLASS="Grey">
+3</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717997"></A>Standard</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717998"></A>(Sync)</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-717999"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718000"></A><EM CLASS="Grey">
+384</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718002"></A>Standard</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718003"></A>(AVPacketized)</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718004"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718005"></A><EM CLASS="Grey">
+4352</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718007"></A>Aggregation</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718008"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718009"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718010"></A><EM CLASS="Grey">
+8192</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718012"></A>Sync</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718013"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718014"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718015"></A><EM CLASS="Grey">
+32</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718017"></A>AVPacketized</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718018"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718019"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718020"></A><EM CLASS="Grey">
+16</EM>
+</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718042"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718043"></A><EM CLASS="Grey">
+372</EM>
+</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718045"></A><EM CLASS="Grey">
+38 - 2 = 36</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718047"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718049"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718051"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718053"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718055"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718057"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718059"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718061"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718063"></A>&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718065"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718067"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718069"></A><EM CLASS="Grey">
+3 - 1 = 2</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718071"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718073"></A><EM CLASS="Grey">
+380 - 8 = 372</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718075"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718077"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718079"></A><EM CLASS="Grey">
+31 - 1 = 30</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718081"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718083"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718085"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718087"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718089"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718091"></A>3 - 1 = 2</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718093"></A>372 - 8 = 364</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718095"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718097"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718099"></A>30 - 1 = 29</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718101"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718103"></A>&nbsp;</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-718105"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-718106"></A>In order to route two 16-bit audio stereo streams to the network, two MOST network sockets of direction <EM CLASS="Computer">
+Output</EM>
+ are required. Each socket needs to be 4 bytes in size that are allocated from the MOST system resources. In order to route two 16-bit audio stereo streams from the network, two MOST network sockets of direction <EM CLASS="Computer">
+Input</EM>
+ are required. Each socket needs to be 4 bytes in size. The network channels must already exist on the network. Even though no allocation takes place, we account for the used MOST system resources in our budget. Each of the MOST sockets requires a slot in the socket resource table as well as a routing channel.</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-718276"></A>Resource object that is created: Four MOST network sockets</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="4">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718109"></A>Resource Tables</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718117"></A>Routing Memory</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="2">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718123"></A>Routing Channels</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718127"></A>MOST System Resources</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718129"></A>Socket</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718130"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718131"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718132"></A><EM CLASS="Grey">
+40</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718134"></A>Connection</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718135"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718136"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718137"></A><EM CLASS="Grey">
+20</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718139"></A>Splitter</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718140"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718141"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718142"></A><EM CLASS="Grey">
+3</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718144"></A>Combiner</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718145"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718146"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718147"></A><EM CLASS="Grey">
+3</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718149"></A>Standard</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718150"></A>(Sync)</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718151"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718152"></A><EM CLASS="Grey">
+384</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718154"></A>Standard</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718155"></A>(AVPacketized)</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718156"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718157"></A><EM CLASS="Grey">
+4352</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718159"></A>Aggregation</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718160"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718161"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718162"></A><EM CLASS="Grey">
+8192</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718164"></A>Sync</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718165"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718166"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718167"></A><EM CLASS="Grey">
+32</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718169"></A>AVPacketized</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718170"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718171"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718172"></A><EM CLASS="Grey">
+16</EM>
+</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718194"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718195"></A><EM CLASS="Grey">
+372</EM>
+</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718197"></A><EM CLASS="Grey">
+38 - 2 = 36</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718199"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718201"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718203"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718205"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718207"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718209"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718211"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718213"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718215"></A>&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718217"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718219"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718221"></A><EM CLASS="Grey">
+3 - 1 = 2</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718223"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718225"></A><EM CLASS="Grey">
+380 - 8 = 372</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718227"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718229"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718231"></A><EM CLASS="Grey">
+31 - 1 = 30</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718233"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718235"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718237"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718239"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718241"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718243"></A><EM CLASS="Grey">
+3 - 1 = 2</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718245"></A><EM CLASS="Grey">
+372 - 8 = 364</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718247"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718249"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718251"></A><EM CLASS="Grey">
+30 - 1 = 29</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718253"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718255"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718257"></A>36 - 4 = 32</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718259"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718261"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718263"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718265"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718267"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718269"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718271"></A>29 - 4 = 25</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718273"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718275"></A>368 - 16 = 352</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-718277"></A>For further information on the resource requirements by the sockets used in a synchronous socket connection, see <A HREF="#50495580_76053" CLASS="XRef"><EM CLASS="Link">
+Section 19.4</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-718284"></A><A HREF="#50495580_28617" CLASS="XRef"><EM CLASS="Link">
+Section 19.2.2</EM>
+</A> describes the resource usage when creating a connection between a MOST socket and a combiner, and <A HREF="#50495580_72313" CLASS="XRef"><EM CLASS="Link">
+Section 19.3.2</EM>
+</A> describes the usage requirements when creating a connection between a MOST socket and a splitter. In this example, we connect the combiner with the two MOST sockets of direction <EM CLASS="Computer">
+Input</EM>
+, and the splitter with the two MOST sockets of direction <EM CLASS="Computer">
+Output</EM>
+. Each of the connection variants requires a slot in the connection resource table, but no further routing resources.</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-718477"></A>Resource object that is created: Four <EM CLASS="Computer">
+Sync</EM>
+ connections</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="4">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718290"></A>Resource Tables</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718298"></A>Routing Memory</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="2">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718304"></A>Routing Channels</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718308"></A>MOST System Resources</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718310"></A>Socket</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718311"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718312"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718313"></A><EM CLASS="Grey">
+40</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718315"></A>Connection</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718316"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718317"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718318"></A><EM CLASS="Grey">
+20</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718320"></A>Splitter</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718321"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718322"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718323"></A><EM CLASS="Grey">
+3</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718325"></A>Combiner</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718326"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718327"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718328"></A><EM CLASS="Grey">
+3</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718330"></A>Standard</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718331"></A>(Sync)</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718332"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718333"></A><EM CLASS="Grey">
+384</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718335"></A>Standard</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718336"></A>(AVPacketized)</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718337"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718338"></A><EM CLASS="Grey">
+4352</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718340"></A>Aggregation</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718341"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718342"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718343"></A><EM CLASS="Grey">
+8192</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718345"></A>Sync</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718346"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718347"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718348"></A><EM CLASS="Grey">
+32</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718350"></A>AVPacketized</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718351"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718352"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718353"></A><EM CLASS="Grey">
+16</EM>
+</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718375"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718376"></A><EM CLASS="Grey">
+372</EM>
+</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718378"></A><EM CLASS="Grey">
+38 - 2 = 36</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718380"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718382"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718384"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718386"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718388"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718390"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718392"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718394"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718396"></A>&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718398"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718400"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718402"></A><EM CLASS="Grey">
+3 - 1 = 2</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718404"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718406"></A><EM CLASS="Grey">
+380 - 8 = 372</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718408"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718410"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718412"></A><EM CLASS="Grey">
+31 - 1 = 30</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718414"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718416"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718418"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718420"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718422"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718424"></A><EM CLASS="Grey">
+3 - 1 = 2</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718426"></A><EM CLASS="Grey">
+372 - 8 = 364</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718428"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718430"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718432"></A><EM CLASS="Grey">
+30 - 1 = 29</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718434"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718436"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718438"></A><EM CLASS="Grey">
+36 - 4 = 32</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718440"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718442"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718444"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718446"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718448"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718450"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718452"></A><EM CLASS="Grey">
+29 - 4 = 25</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718454"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718456"></A><EM CLASS="Grey">
+368 - 16 = 352</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718458"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718460"></A>19 - 4 = 15</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718462"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718464"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718466"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718468"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718470"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718472"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718474"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718476"></A>&nbsp;</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-718478"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<H6 CLASS="Heading4">
+<A NAME="50495615_pgfId-718660"></A>Summary</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718481"></A>&nbsp;</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718483"></A>&nbsp;</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="4">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718485"></A>Resource Tables</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718493"></A>Routing Memory</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="2">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718499"></A>Routing Channels</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718503"></A>MOST System Resources</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718505"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718506"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718507"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718508"></A><EM CLASS="Grey">
+Feature</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718510"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718511"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718512"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718513"></A><EM CLASS="Grey">
+# of all Resources</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718515"></A>Socket</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718516"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718517"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718518"></A><EM CLASS="Grey">
+40</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718520"></A>Connection</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718521"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718522"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718523"></A><EM CLASS="Grey">
+20</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718525"></A>Splitter</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718526"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718527"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718528"></A><EM CLASS="Grey">
+3</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718530"></A>Combiner</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718531"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718532"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718533"></A><EM CLASS="Grey">
+3</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718535"></A>Standard</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718536"></A>(Sync)</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718537"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718538"></A><EM CLASS="Grey">
+384</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718540"></A>Standard</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718541"></A>(AVPacketized)</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718542"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718543"></A><EM CLASS="Grey">
+4352</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718545"></A>Aggregation</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718546"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718547"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718548"></A><EM CLASS="Grey">
+8192</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718550"></A>Sync</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718551"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718552"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718553"></A><EM CLASS="Grey">
+32</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718555"></A>AVPacketized</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718556"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718557"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718558"></A><EM CLASS="Grey">
+16</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718560"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718561"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718562"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718563"></A><EM CLASS="Grey">
+372</EM>
+</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718565"></A>1 x 16 bit <BR>
+Audio Stereo</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718567"></A><EM CLASS="Grey">
+# of used Resources</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718569"></A>-2</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718571"></A>-1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718573"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718575"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718577"></A>-4</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718579"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718581"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718583"></A>-1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718585"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718587"></A>-4</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718591"></A><EM CLASS="Grey">
+# of left Resources</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718593"></A>38</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718595"></A>19</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718597"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718599"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718601"></A>380</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718603"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718605"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718607"></A>31</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718609"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718611"></A>368</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718613"></A>2 Groups of<BR>
+2 x 16 bit Audio Stereo</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718615"></A><EM CLASS="Grey">
+# of used Resources</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718617"></A>-6</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718619"></A>-4</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718621"></A>-1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718623"></A>-1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718625"></A>-16</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718627"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718629"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718631"></A>-6</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718633"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718635"></A>-16</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718639"></A><EM CLASS="Grey">
+# of left Resources</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718641"></A>32</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718643"></A>15</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718645"></A>2</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718647"></A>2</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718649"></A>364</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718651"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718653"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718655"></A>25</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718657"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718659"></A>352</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-718661"></A> &nbsp;</P>
+</DIV>
+</DIV>
+</DIV>
+<DIV>
+<A NAME="MNSH2-SynchronousStreamingUsingtheMediaLBPort" /><H6 CLASS="Heading2">
+<A NAME="50495615_pgfId-718662"></A>Synchronous Streaming Using the MediaLB Port</H6>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-718663"></A>In this section we expand our example by adding a multi-channel 5.1 audio stream that shall be transferred from the MediaLB Port to the MOST network. The channel consists of six 24-bit audio stereo channels and has a sample rate synchronized to the MOST network. The stream is transmitted on a single network channel. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<H6 CLASS="AppFigureTitle">
+<A NAME="50495615_pgfId-796038"></A>Synchronous Streaming Using the MediaLB Port</H6>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-796043"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-139.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-718672"></A> &nbsp;</P>
+<DIV>
+<A NAME="MNSH3-PortConfiguration" /><H6 CLASS="Heading3">
+<A NAME="50495615_pgfId-718673"></A>Port Configuration</H6>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-718674"></A>The MediaLB Port is configured as a 3-Pin interface with a clock speed of <EM CLASS="Computer">
+512Fs</EM>
+. This configuration enables the following resources on the MediaLB Port available when creating sockets.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718677"></A>Mode</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718679"></A>ClockConfig</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718681"></A>Maximum Resources (in Quadlets)</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718683"></A>Maximum Resources (in Bytes)</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718685"></A>3-Pin</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718687"></A><EM CLASS="Computer">
+512Fs</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718689"></A>15</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718691"></A>60</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-718695"></A>&nbsp;</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<Note: CLASS="Note">
+<A NAME="50495615_pgfId-718694"></A>Note: MediaLB is quadlet based and therefore it is important to consider the possibility of padding bytes when creating sockets.</Note: >
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-718696"></A> &nbsp;</P>
+</DIV>
+<DIV>
+<A NAME="MNSH3-Multichannel51,24bitAudio" /><H6 CLASS="Heading3">
+<A NAME="50495615_pgfId-718697"></A>Multichannel 5.1, 24 bit Audio</H6>
+<DIV>
+<H6 CLASS="Heading4">
+<A NAME="50495615_pgfId-718698"></A>Resource Usage</H6>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-718702"></A><A HREF="#50495569_74740" CLASS="XRef"><EM CLASS="Link">
+Section 8.2</EM>
+</A> describes the properties of a MediaLB Port socket. In this example the multichannel 5.1 data stream is 18 bytes (6 x 24-bit channels). Parameter <EM CLASS="Code">
+<A HREF="#50495582_INIC/MediaLBSocketCreate/Bandwidth" CLASS="XRef">Bandwidth</A></EM>
+ shall be set to 18 bytes and there must be at least 20 bytes free in total or the socket cannot be created. Hence, 2 bytes are padded on MediaLB since MediaLB is quadlet-aligned. Furthermore, a slot in the socket resource table is required for the MediaLB socket.</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-718706"></A>Feature: Multichannel 5.1, 24 bit Audio</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-718816"></A>Resource object that is created: A MediaLB socket</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="4">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718709"></A>Resource Tables</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718717"></A>Routing Memory</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="2">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718723"></A>Routing Channels</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718727"></A>MOST System Resources</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718729"></A>Socket</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718730"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718731"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718732"></A><EM CLASS="Grey">
+40</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718734"></A>Connection</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718735"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718736"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718737"></A><EM CLASS="Grey">
+20</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718739"></A>Splitter</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718740"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718741"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718742"></A><EM CLASS="Grey">
+3</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718744"></A>Combiner</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718745"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718746"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718747"></A><EM CLASS="Grey">
+3</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718749"></A>Standard</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718750"></A>(Sync)</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718751"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718752"></A><EM CLASS="Grey">
+384</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718754"></A>Standard</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718755"></A>(AVPacketized)</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718756"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718757"></A><EM CLASS="Grey">
+4352</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718759"></A>Aggregation</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718760"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718761"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718762"></A><EM CLASS="Grey">
+8192</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718764"></A>Sync</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718765"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718766"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718767"></A><EM CLASS="Grey">
+32</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718769"></A>AVPacketized</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718770"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718771"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718772"></A><EM CLASS="Grey">
+16</EM>
+</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718794"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718795"></A><EM CLASS="Grey">
+372</EM>
+</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718797"></A>32 - 1 = 31</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718799"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718801"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718803"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718805"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718807"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718809"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718811"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718813"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718815"></A>&nbsp;</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-718817"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-718818"></A>In order to route a multichannel 5.1 data stream to the network, a MOST network socket of direction <EM CLASS="Computer">
+Output</EM>
+ is required. The socket needs to be 18 bytes in size that are allocated from the MOST system resources. A MOST socket requires a slot in the socket resource table as well as a routing channel. For more information on the creation of MOST sockets see <A HREF="#50495568_88992" CLASS="XRef"><EM CLASS="Link">
+Section 7.2</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-718951"></A>Resource object that is created: A MOST socket</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="4">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718824"></A>Resource Tables</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718832"></A>Routing Memory</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="2">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718838"></A>Routing Channels</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718842"></A>MOST System Resources</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718844"></A>Socket</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718845"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718846"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718847"></A><EM CLASS="Grey">
+40</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718849"></A>Connection</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718850"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718851"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718852"></A><EM CLASS="Grey">
+20</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718854"></A>Splitter</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718855"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718856"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718857"></A><EM CLASS="Grey">
+3</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718859"></A>Combiner</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718860"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718861"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718862"></A><EM CLASS="Grey">
+3</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718864"></A>Standard</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718865"></A>(Sync)</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718866"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718867"></A><EM CLASS="Grey">
+384</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718869"></A>Standard</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718870"></A>(AVPacketized)</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718871"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718872"></A><EM CLASS="Grey">
+4352</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718874"></A>Aggregation</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718875"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718876"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718877"></A><EM CLASS="Grey">
+8192</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718879"></A>Sync</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718880"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718881"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718882"></A><EM CLASS="Grey">
+32</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718884"></A>AVPacketized</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718885"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718886"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718887"></A><EM CLASS="Grey">
+16</EM>
+</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718909"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718910"></A><EM CLASS="Grey">
+372</EM>
+</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718912"></A><EM CLASS="Grey">
+32 - 1 = 31</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718914"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718916"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718918"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718920"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718922"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718924"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718926"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718928"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718930"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718932"></A>31 - 1 = 30</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718934"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718936"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718938"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718940"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718942"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718944"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718946"></A>25 - 1 = 24</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718948"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718950"></A>352 - 18 = 334</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-718952"></A>For further information on the resource requirements by the sockets used in a synchronous socket connection, see <A HREF="#50495580_76053" CLASS="XRef"><EM CLASS="Link">
+Section 19.4</EM>
+</A>.</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-718959"></A><A HREF="#50495580_39086" CLASS="XRef"><EM CLASS="Link">
+Section 19.1.2</EM>
+</A> describes the requirements when creating a synchronous connection between a peripheral port socket and a MOST network socket. Standard routing memory is required, where the amount is decided by adjusting the size of the MediaLB socket upwards to the next even number of quadlets. This is required due to the physical size of the MediaLB channel. A socket connection requires a slot in the connection resource table.</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-719109"></A>Resource object that is created: A <EM CLASS="Computer">
+Sync</EM>
+ connection</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="4">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718962"></A>Resource Tables</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718970"></A>Routing Memory</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="2">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718976"></A>Routing Channels</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718980"></A>MOST System Resources</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718982"></A>Socket</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718983"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718984"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718985"></A><EM CLASS="Grey">
+40</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718987"></A>Connection</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718988"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718989"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718990"></A><EM CLASS="Grey">
+20</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718992"></A>Splitter</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718993"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718994"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-718995"></A><EM CLASS="Grey">
+3</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718997"></A>Combiner</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718998"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-718999"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719000"></A><EM CLASS="Grey">
+3</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719002"></A>Standard</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719003"></A>(Sync)</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719004"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719005"></A><EM CLASS="Grey">
+384</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719007"></A>Standard</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719008"></A>(AVPacketized)</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719009"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719010"></A><EM CLASS="Grey">
+4352</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719012"></A>Aggregation</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719013"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719014"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719015"></A><EM CLASS="Grey">
+8192</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719017"></A>Sync</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719018"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719019"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719020"></A><EM CLASS="Grey">
+32</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719022"></A>AVPacketized</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719023"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719024"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719025"></A><EM CLASS="Grey">
+16</EM>
+</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719047"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719048"></A><EM CLASS="Grey">
+372</EM>
+</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719050"></A><EM CLASS="Grey">
+32 - 1 = 31</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719052"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719054"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719056"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719058"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719060"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719062"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719064"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719066"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719068"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719070"></A><EM CLASS="Grey">
+31 - 1 = 30</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719072"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719074"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719076"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719078"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719080"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719082"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719084"></A><EM CLASS="Grey">
+25 - 1 = 24</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719086"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719088"></A><EM CLASS="Grey">
+352 - 18 = 334</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719090"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719092"></A>15 - 1 = 14</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719094"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719096"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719098"></A>364 - 20 = 344</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719100"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719102"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719104"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719106"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719108"></A>&nbsp;</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-719110"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<H6 CLASS="Heading4">
+<A NAME="50495615_pgfId-719340"></A>Summary</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719113"></A>&nbsp;</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719115"></A>&nbsp;</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="4">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719117"></A>Resource Tables</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719125"></A>Routing Memory</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="2">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719131"></A>Routing Channels</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719135"></A>MOST System Resources</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719137"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719138"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719139"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719140"></A><EM CLASS="Grey">
+Feature</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719142"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719143"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719144"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719145"></A><EM CLASS="Grey">
+# of all Resources</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719147"></A>Socket</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719148"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719149"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719150"></A><EM CLASS="Grey">
+40</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719152"></A>Connection</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719153"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719154"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719155"></A><EM CLASS="Grey">
+20</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719157"></A>Splitter</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719158"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719159"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719160"></A><EM CLASS="Grey">
+3</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719162"></A>Combiner</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719163"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719164"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719165"></A><EM CLASS="Grey">
+3</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719167"></A>Standard</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719168"></A>(Sync)</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719169"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719170"></A><EM CLASS="Grey">
+384</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719172"></A>Standard</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719173"></A>(AVPacketized)</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719174"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719175"></A><EM CLASS="Grey">
+4352</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719177"></A>Aggregation</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719178"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719179"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719180"></A><EM CLASS="Grey">
+8192</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719182"></A>Sync</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719183"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719184"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719185"></A><EM CLASS="Grey">
+32</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719187"></A>AVPacketized</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719188"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719189"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719190"></A><EM CLASS="Grey">
+16</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719192"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719193"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719194"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719195"></A><EM CLASS="Grey">
+372</EM>
+</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719197"></A>1 x 16 bit <BR>
+Audio Stereo</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719199"></A><EM CLASS="Grey">
+# of used Resources</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719201"></A>-2</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719203"></A>-1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719205"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719207"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719209"></A>-4</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719211"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719213"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719215"></A>-1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719217"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719219"></A>-4</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719223"></A><EM CLASS="Grey">
+# of left Resources</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719225"></A>38</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719227"></A>19</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719229"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719231"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719233"></A>380</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719235"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719237"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719239"></A>31</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719241"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719243"></A>368</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719245"></A>2 Groups of<BR>
+2 x 16 bit Audio Stereo</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719247"></A><EM CLASS="Grey">
+# of used Resources</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719249"></A>-6</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719251"></A>-4</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719253"></A>-1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719255"></A>-1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719257"></A>-16</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719259"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719261"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719263"></A>-6</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719265"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719267"></A>-16</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719271"></A><EM CLASS="Grey">
+# of left Resources</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719273"></A>32</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719275"></A>15</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719277"></A>2</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719279"></A>2</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719281"></A>364</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719283"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719285"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719287"></A>25</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719289"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719291"></A>352</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719293"></A>Multichannel 5.1, <BR>
+24 bit Audio</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719295"></A><EM CLASS="Grey">
+# of used Resources</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719297"></A>-2</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719299"></A>-1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719301"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719303"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719305"></A>-20</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719307"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719309"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719311"></A>-1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719313"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719315"></A>-18</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719319"></A><EM CLASS="Grey">
+# of left Resources</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719321"></A>30</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719323"></A>14</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719325"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719327"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719329"></A>344</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719331"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719333"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719335"></A>24</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719337"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719339"></A>334</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-719341"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-719342"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-719343"></A> &nbsp;</P>
+</DIV>
+</DIV>
+</DIV>
+<DIV>
+<A NAME="MNSH2-A/VPacketizedStreamingUsingtheUSBPort" /><H6 CLASS="Heading2">
+<A NAME="50495615_pgfId-719344"></A>A/V Packetized Streaming Using the USB Port</H6>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-719345"></A>In this section we expand our example by adding a DVB-T signal stream that shall be transferred from the USB Port to the MOST network. The data stream consists of an MPEG2 Transport stream with packets of size 188 bytes. The maximal burst rate is 15 Mbit/s. The stream is transmitted on a single network channel. </P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<H6 CLASS="AppFigureTitle">
+<A NAME="50495615_pgfId-796051"></A>A/V Packetized Using the USB Port</H6>
+</CAPTION>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-796056"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-140.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-719354"></A> &nbsp;</P>
+<DIV>
+<A NAME="MNSH3-PortConfiguration" /><H6 CLASS="Heading3">
+<A NAME="50495615_pgfId-758386"></A><A NAME="50495615_81658"></A>Port Configuration</H6>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-758423"></A>The USB Port is configured to use the standard USB 2.0 physical layer with a single Endpoint of direction <EM CLASS="Computer">
+Output</EM>
+.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-758947"></A><A HREF="#50495582_INIC/USBPortCreate/PhysicalLayer" CLASS="XRef">PhysicalLayer</A></P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-758952"></A><A HREF="#50495582_INIC/USBPortCreate/DeviceInterfaces" CLASS="XRef">DeviceInterfaces</A></P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-758956"></A><A HREF="#50495582_INIC/USBPortCreate/StreamingIfEpOutCount" CLASS="XRef">StreamingIfEpOutCount</A></P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-758967"></A><A HREF="#50495582_INIC/USBPortCreate/StreamingIfEpInCount" CLASS="XRef">StreamingIfEpInCount</A></P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-758970"></A><EM CLASS="Computer">
+Standard</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-758972"></A>0x08</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-758974"></A>1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-758976"></A>0</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-758427"></A>See <A HREF="#50495571_63989" CLASS="XRef"><EM CLASS="Link">
+Section 10.2</EM>
+</A> for further information on the available configuration options for the USB Port.</P>
+</DIV>
+<DIV>
+<A NAME="MNSH3-DVB-T15Mbit/s" /><H6 CLASS="Heading3">
+<A NAME="50495615_pgfId-719397"></A>DVB-T (15 Mbit/s)</H6>
+<DIV>
+<H6 CLASS="Heading4">
+<A NAME="50495615_pgfId-719398"></A>Resource Usage</H6>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-719405"></A><A HREF="#50495571_83761" CLASS="XRef"><EM CLASS="Link">
+Section 10.3</EM>
+</A> and <A HREF="#50495580_88287" CLASS="XRef"><EM CLASS="Link">
+Section 19.5</EM>
+</A> describe the properties of a USB Port socket while using such a socket for transmitting <EM CLASS="Computer">
+AVPacketized</EM>
+ data. In this example no padding is applied, thus <A HREF="#50495582_INIC/USBSocketCreate/FramesPerTransaction" CLASS="XRef">FramesPerTransaction</A> is set to 0xFFFF. A slot in the socket resource table is required for the USB socket.</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-719409"></A>Feature: DVB-T (15 Mbit/s)</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-719519"></A>Resource object that is created: A USB socket</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="4">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719412"></A>Resource Tables</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719420"></A>Routing Memory</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="2">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719426"></A>Routing Channels</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719430"></A>MOST System Resources</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719432"></A>Socket</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719433"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719434"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719435"></A><EM CLASS="Grey">
+40</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719437"></A>Connection</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719438"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719439"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719440"></A><EM CLASS="Grey">
+20</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719442"></A>Splitter</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719443"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719444"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719445"></A><EM CLASS="Grey">
+3</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719447"></A>Combiner</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719448"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719449"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719450"></A><EM CLASS="Grey">
+3</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719452"></A>Standard</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719453"></A>(Sync)</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719454"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719455"></A><EM CLASS="Grey">
+384</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719457"></A>Standard</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719458"></A>(AVPacketized)</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719459"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719460"></A><EM CLASS="Grey">
+4352</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719462"></A>Aggregation</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719463"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719464"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719465"></A><EM CLASS="Grey">
+8192</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719467"></A>Sync</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719468"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719469"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719470"></A><EM CLASS="Grey">
+32</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719472"></A>AVPacketized</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719473"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719474"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719475"></A><EM CLASS="Grey">
+16</EM>
+</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719497"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719498"></A><EM CLASS="Grey">
+372</EM>
+</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719500"></A>30 - 1 = 29</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719502"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719504"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719506"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719508"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719510"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719512"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719514"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719516"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719518"></A>&nbsp;</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-719520"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-719521"></A>In order to route a DVB-T data stream to the network, a MOST network socket of direction <EM CLASS="Computer">
+Output</EM>
+ is required. <A HREF="#50495580_88287" CLASS="XRef"><EM CLASS="Link">
+Section 19.5</EM>
+</A> describes the requirements regarding MOST system resources. The required size of the MOST socket is calculated using <A HREF="#50495580_20730" CLASS="XRef"></A> as below.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719533"></A>&nbsp;</P>
+<DIV>
+<IMG SRC="OS81118-141.gif" ALT="">
+</DIV>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-719534"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-719535"></A>A MOST socket requires a slot in the socket resource table as well as a routing channel.</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-719665"></A>Resource object that is created: A MOST socket</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="4">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719538"></A>Resource Tables</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719546"></A>Routing Memory</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="2">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719552"></A>Routing Channels</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719556"></A>MOST System Resources</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719558"></A>Socket</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719559"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719560"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719561"></A><EM CLASS="Grey">
+40</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719563"></A>Connection</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719564"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719565"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719566"></A><EM CLASS="Grey">
+20</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719568"></A>Splitter</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719569"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719570"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719571"></A><EM CLASS="Grey">
+3</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719573"></A>Combiner</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719574"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719575"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719576"></A><EM CLASS="Grey">
+3</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719578"></A>Standard</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719579"></A>(Sync)</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719580"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719581"></A><EM CLASS="Grey">
+384</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719583"></A>Standard</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719584"></A>(AVPacketized)</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719585"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719586"></A><EM CLASS="Grey">
+4352</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719588"></A>Aggregation</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719589"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719590"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719591"></A><EM CLASS="Grey">
+8192</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719593"></A>Sync</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719594"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719595"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719596"></A><EM CLASS="Grey">
+32</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719598"></A>AVPacketized</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719599"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719600"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719601"></A><EM CLASS="Grey">
+16</EM>
+</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719623"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719624"></A><EM CLASS="Grey">
+372</EM>
+</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719626"></A><EM CLASS="Grey">
+30 - 1 = 29</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719628"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719630"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719632"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719634"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719636"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719638"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719640"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719642"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719644"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719646"></A>29 - 1 = 28</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719648"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719650"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719652"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719654"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719656"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719658"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719660"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719662"></A>16 - 1 = 15</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719664"></A>334 - 40 = 294</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-719669"></A><A HREF="#50495580_67768" CLASS="XRef"><EM CLASS="Link">
+Section 19.4</EM>
+</A> describes the requirements when creating an <EM CLASS="Computer">
+AVPacketized</EM>
+ connection between a peripheral port socket and a MOST network socket. Standard routing memory is required, where the amount is decided by the used MPEG2 Transport stream packet size. In this example we use a packet size of 188 bytes, which accordingly to <A HREF="#50495580_69112" CLASS="XRef"><EM CLASS="Link">
+Table 19-1</EM>
+</A> means that 564 bytes of standard routing memory are required. Since we use a USB socket, additional space is required from the aggregation routing memory. The amount is decided by indexing <A HREF="#50495580_55549" CLASS="XRef"><EM CLASS="Link">
+Table 19-2</EM>
+</A> with both the size of the MOST socket in combination with the value of parameter <A HREF="#50495582_INIC/USBSocketCreate/FramesPerTransaction" CLASS="XRef">FramesPerTransaction</A> used when creating the USB socket. In this example the size of the MOST socket is 40 bytes, and the <A HREF="#50495582_INIC/USBSocketCreate/FramesPerTransaction" CLASS="XRef">FramesPerTransaction</A> parameter was used with a value 0xFFFF, to disable padding. This gives a required amount of 1024 bytes from the aggregation memory. A socket connection requires a slot in the connection resource table.</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-719831"></A>Resource object that is created: An <EM CLASS="Computer">
+AVPacketized</EM>
+ connection</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="4">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719684"></A>Resource Tables</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719692"></A>Routing Memory</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="2">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719698"></A>Routing Channels</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719702"></A>MOST System Resources</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719704"></A>Socket</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719705"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719706"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719707"></A><EM CLASS="Grey">
+40</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719709"></A>Connection</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719710"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719711"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719712"></A><EM CLASS="Grey">
+20</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719714"></A>Splitter</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719715"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719716"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719717"></A><EM CLASS="Grey">
+3</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719719"></A>Combiner</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719720"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719721"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719722"></A><EM CLASS="Grey">
+3</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719724"></A>Standard</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719725"></A>(Sync)</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719726"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719727"></A><EM CLASS="Grey">
+384</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719729"></A>Standard</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719730"></A>(AVPacketized)</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719731"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719732"></A><EM CLASS="Grey">
+4352</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719734"></A>Aggregation</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719735"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719736"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719737"></A><EM CLASS="Grey">
+8192</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719739"></A>Sync</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719740"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719741"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719742"></A><EM CLASS="Grey">
+32</EM>
+</P>
+</TH>
+<TH ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719744"></A>AVPacketized</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719745"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-719746"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719747"></A><EM CLASS="Grey">
+16</EM>
+</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719769"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719770"></A><EM CLASS="Grey">
+372</EM>
+</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719772"></A><EM CLASS="Grey">
+30 - 1 = 29</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719774"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719776"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719778"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719780"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719782"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719784"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719786"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719788"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719790"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719792"></A><EM CLASS="Grey">
+29 - 1 = 28</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719794"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719796"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719798"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719800"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719802"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719804"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719806"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719808"></A><EM CLASS="Grey">
+16 - 1 = 15</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719810"></A><EM CLASS="Grey">
+334 - 40 = 294</EM>
+</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719812"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719814"></A>14 - 1 = 13</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719816"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719818"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719820"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719822"></A>4352 - 564 = 3788</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719824"></A>8192 - 1024 = 7168</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719826"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719828"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-719830"></A>&nbsp;</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-719832"></A>&nbsp;</P>
+<P CLASS="Body">
+<A NAME="50495615_pgfId-719833"></A>&nbsp;</P>
+</DIV>
+<DIV>
+<H6 CLASS="Heading4">
+<A NAME="50495615_pgfId-720111"></A>Summary</H6>
+<TABLE BORDER="1" CLASS="doxtable">
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-723060"></A>&nbsp;</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-723062"></A>&nbsp;</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="4">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-723064"></A>Resource Tables</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="3">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-723072"></A>Routing Memory</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="2">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-723078"></A>Routing Channels</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-723082"></A>MOST System Resources</P>
+</TH>
+</TR>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-723084"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-723085"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-723086"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723087"></A><EM CLASS="Grey">
+Feature</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-723089"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-723090"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-723091"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723092"></A><EM CLASS="Grey">
+# of all Resources</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-723094"></A>Socket</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-723095"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-723096"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723097"></A><EM CLASS="Grey">
+40</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-723099"></A>Connection</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-723100"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-723101"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723102"></A><EM CLASS="Grey">
+20</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-723104"></A>Splitter</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-723105"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-723106"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723107"></A><EM CLASS="Grey">
+3</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-723109"></A>Combiner</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-723110"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-723111"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723112"></A><EM CLASS="Grey">
+3</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-723114"></A>Standard</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-723115"></A>(Sync)</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-723116"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723117"></A><EM CLASS="Grey">
+384</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-723119"></A>Standard</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-723120"></A>(AVPacketized)</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-723121"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723122"></A><EM CLASS="Grey">
+4352</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-723124"></A>Aggregation</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-723125"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-723126"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723127"></A><EM CLASS="Grey">
+8192</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-723129"></A>Sync</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-723130"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-723131"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723132"></A><EM CLASS="Grey">
+32</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-723134"></A>AVPacketized</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-723135"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-723136"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723137"></A><EM CLASS="Grey">
+16</EM>
+</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-723139"></A><EM CLASS="Grey">
+</EM>
+&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-723140"></A>&nbsp;</P>
+<P CLASS="CellHeading">
+<A NAME="50495615_pgfId-723141"></A>&nbsp;</P>
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723142"></A><EM CLASS="Grey">
+372</EM>
+</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723144"></A>1 x 16 bit <BR>
+Audio Stereo</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723146"></A><EM CLASS="Grey">
+# of used Resources</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723148"></A>-2</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723150"></A>-1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723152"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723154"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723156"></A>-4</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723158"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723160"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723162"></A>-1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723164"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723166"></A>-4</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723170"></A><EM CLASS="Grey">
+# of left Resources</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723172"></A>38</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723174"></A>19</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723176"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723178"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723180"></A>380</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723182"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723184"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723186"></A>31</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723188"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723190"></A>368</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723192"></A>2 Groups of<BR>
+2 x 16 bit Audio Stereo</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723194"></A><EM CLASS="Grey">
+# of used Resources</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723196"></A>-6</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723198"></A>-4</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723200"></A>-1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723202"></A>-1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723204"></A>-16</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723206"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723208"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723210"></A>-6</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723212"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723214"></A>-16</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723218"></A><EM CLASS="Grey">
+# of left Resources</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723220"></A>32</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723222"></A>15</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723224"></A>2</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723226"></A>2</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723228"></A>364</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723230"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723232"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723234"></A>25</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723236"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723238"></A>352</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723240"></A>Multichannel 5.1, <BR>
+24 bit Audio</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723242"></A><EM CLASS="Grey">
+# of used Resources</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723244"></A>-2</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723246"></A>-1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723248"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723250"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723252"></A>-20</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723254"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723256"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723258"></A>-1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723260"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723262"></A>-18</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723266"></A><EM CLASS="Grey">
+# of left Resources</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723268"></A>30</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723270"></A>14</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723272"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723274"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723276"></A>344</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723278"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723280"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723282"></A>24</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723284"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723286"></A>334</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="2" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723288"></A>DVB-T <BR>
+(15 Mbit/s)</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723290"></A><EM CLASS="Grey">
+# of used Resources</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723292"></A>-2</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723294"></A>-1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723296"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723298"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723300"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723302"></A>-564</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723304"></A>-1024</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723306"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723308"></A>-1</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723310"></A>-40</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723314"></A><EM CLASS="Grey">
+# of left Resources</EM>
+</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723316"></A>28</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723318"></A>13</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723320"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723322"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723324"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723326"></A>3788</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723328"></A>7168</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723330"></A>&nbsp;</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723332"></A>15</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBody">
+<A NAME="50495615_pgfId-723334"></A>294</P>
+</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+</DIV>
+</DIV>
+</DIV>
+<h1><a class="anchor" id="SEC_OS81118_28"></a>
+List of Abbreviations</h1>
+<DIV>
+<H1 CLASS="Appendix-noSection">
+<A NAME="50495617_pgfId-656295"></A><DIV>
+<IMG SRC="OS81118-142.gif" ALT="">
+</DIV>
+<A NAME="50495617_47728"></A>List of Abbreviations<DIV>
+<IMG SRC="OS81118-143.gif" ALT="">
+</DIV>
+</H1>
+<P CLASS="Body">
+<A NAME="50495617_pgfId-656306"></A>The table below gives an overview of abbreviations used in this documentation. The entries are listed in alphabetical order.</P>
+<TABLE BORDER="1" CLASS="doxtable">
+<CAPTION>
+<TableTitle CLASS="TableTitle">
+<A NAME="50495617_pgfId-662942"></A>Table D-1: <A NAME="50495617_96058"></A>List of Abbreviations (Continued)</TableTitle>
+</CAPTION>
+<TR>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495617_pgfId-662946"></A>Abbreviation</P>
+</TH>
+<TH ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellHeading">
+<A NAME="50495617_pgfId-662948"></A>Definition</P>
+</TH>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663280"></A>BIST</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663282"></A>Built-in Self-Test</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663292"></A>cPHY</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663294"></A>Coax electrical physical layer</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-665687"></A>DCI</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-665689"></A>Driver Control Interface</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-667103"></A>DUT</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-667105"></A>Device Under Test</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663300"></A>EHC</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663302"></A>External Host Controller</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663304"></A>EHCI</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663306"></A>External Host Controller Interface</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-667134"></A>ET</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-667136"></A>Enhanced Testability</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663308"></A>EUI</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663310"></A>Extended Unique Identifier</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663312"></A>FBlock</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663314"></A>Function Block</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-665274"></A>GPIO</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-665276"></A>General Purpose Input/Output</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663336"></A>HSIC</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663338"></A>High-Speed Inter-Chip</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663340"></A>ICM</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663342"></A>INIC Control Message</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-665359"></A>I<EM CLASS="Superscript">
+2</EM>
+C</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-665361"></A>Inter-Integrated Circuit</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663344"></A>INIC</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663346"></A>Intelligent Network Interface Controller</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-665143"></A>IP</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-665145"></A>Internet Protocol</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663352"></A>LLR</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663354"></A>Low-Level Retry</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-692675"></A>LLRBC</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-692677"></A>Low-Level Retry Block Count</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663356"></A>LSB</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663358"></A>Least Significant Bit</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663360"></A>MAC</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663362"></A>Media Access Control</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663364"></A>MCM</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663366"></A>MOST Control Message</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663372"></A>MDP</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663374"></A>MOST Data Packet (16-bit addressing mode)</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663376"></A>MediaLB</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663378"></A>Media Local Bus</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663380"></A>MEP</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663382"></A>MOST Ethernet Packet (48-bit addressing mode)</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663384"></A>MSB</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663386"></A>Most Significant Bit</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663680"></A>NCE</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663682"></A>Network Change Event</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663688"></A>NWM</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663690"></A>NetworkMaster</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663692"></A>oPHY</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663694"></A>Optical physical layer</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663696"></A>OUI</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663698"></A>Organizationally Unique Identifier</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663700"></A>PD</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663702"></A>Primary Device</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-667037"></A>PhLSTT</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-667039"></A>Physical Layer Stress Test Tool</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663708"></A>PM</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663710"></A>Port Message</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663724"></A>PML</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663726"></A>Port Message Length</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663728"></A>PMP</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663730"></A>Port Message Protocol</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-666568"></A>POR</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-666570"></A>Power-on-Reset</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663732"></A>QoS</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663734"></A>Quality of Service</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663736"></A>RBD</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663738"></A>Ring Break Diagnosis</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-692393"></A>RCM</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-692395"></A>Remote Control Message</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663744"></A>RMCK</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663746"></A>Recovered Master Clock</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663756"></A>SD</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663758"></A>Secondary Device</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663768"></A>SPI</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663770"></A>Serial Peripheral Interface</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Left">
+<A NAME="50495617_pgfId-705312"></A>UNICENS</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="Table-Cell-Left">
+<A NAME="50495617_pgfId-705314"></A>UNIfied CENtralized Softwarestack</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663780"></A>USB</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-663782"></A>Universal Serial Bus</P>
+</TD>
+</TR>
+<TR>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-665645"></A>ZLP</P>
+</TD>
+<TD ROWSPAN="1" COLSPAN="1">
+<P CLASS="CellBodyLeft">
+<A NAME="50495617_pgfId-665647"></A>Zero-length packet</P>
+</TD>
+</TR>
+</TABLE>
+<P CLASS="Body">
+<A NAME="50495617_pgfId-655652"></A>&nbsp;</P>
+</DIV>
+<h1><a class="anchor" id="SEC_OS81118_29"></a>
+API Functions in Numerical Order</h1>
+<DIV>
+<H1 CLASS="Appendix-noSection">
+<A NAME="50495618_pgfId-671960"></A><DIV>
+<IMG SRC="OS81118-144.gif" ALT="">
+</DIV>
+API Functions in Numerical Order<A NAME="50495618_37353"></A><DIV>
+<IMG SRC="OS81118-145.gif" ALT="">
+</DIV>
+</H1>
+<DIV>
+<H6 CLASS="Level1IOM">
+<A NAME="50495618_pgfId-1141248"></A>FBlock DebugMessages</H6>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141249"></A><A HREF="#50495582_marker-1963072" CLASS="Index">FktID = 0x001, NIC_DebugMessage 268</A></P>
+</DIV>
+<DIV>
+<H6 CLASS="Level1IOM">
+<A NAME="50495618_pgfId-1141251"></A>FBlock ExtendedNetworkControl</H6>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141252"></A><A HREF="#50495582_marker-3910854" CLASS="Index">FktID = 0x200, Hello 272</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141254"></A><A HREF="#50495582_marker-3614760" CLASS="Index">FktID = 0x201, Welcome 276</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141256"></A><A HREF="#50495582_marker-4587083" CLASS="Index">FktID = 0x202, Signature 280</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141258"></A><A HREF="#50495582_marker-4590338" CLASS="Index">FktID = 0x203, Init 283</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141260"></A><A HREF="#50495582_marker-3614809" CLASS="Index">FktID = 0x210, EnablePort 284</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141262"></A><A HREF="#50495582_marker-4838329" CLASS="Index">FktID = 0x211, CableLinkDiagnosis 285</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141264"></A><A HREF="#50495582_marker-3624445" CLASS="Index">FktID = 0x220, PhysicalLayerTest 287</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141266"></A><A HREF="#50495582_marker-3624713" CLASS="Index">FktID = 0x221, PhysicalLayerTestResult 289</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141268"></A><A HREF="#50495582_marker-3707350" CLASS="Index">FktID = 0x300, MemorySessionOpen 290</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141270"></A><A HREF="#50495582_marker-3707642" CLASS="Index">FktID = 0x301, MemorySessionClose 292</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141272"></A><A HREF="#50495582_marker-3614983" CLASS="Index">FktID = 0x302, MemoryRead 293</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141274"></A><A HREF="#50495582_marker-3614994" CLASS="Index">FktID = 0x303, MemoryWrite 295</A></P>
+</DIV>
+<DIV>
+<H6 CLASS="Level1IOM">
+<A NAME="50495618_pgfId-1141276"></A>FBlock INIC</H6>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141277"></A><A HREF="#50495582_marker-871348" CLASS="Index">FktID = 0x001, Notification 163</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141279"></A><A HREF="#50495582_marker-3726858" CLASS="Index">FktID = 0x220, DeviceStatus 166</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141281"></A><A HREF="#50495582_marker-959397" CLASS="Index">FktID = 0x221, DeviceVersion 168</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141283"></A><A HREF="#50495582_marker-657176" CLASS="Index">FktID = 0x222, DevicePowerOff 170</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141285"></A><A HREF="#50495582_marker-657301" CLASS="Index">FktID = 0x223, DeviceAttach 171</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141287"></A><A HREF="#50495582_marker-1251189" CLASS="Index">FktID = 0x224, DeviceSync 172</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141289"></A><A HREF="#50495582_marker-657607" CLASS="Index">FktID = 0x520, MOSTNetworkStatus 174</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141291"></A><A HREF="#50495582_marker-658149" CLASS="Index">FktID = 0x521, MOSTNetworkConfiguration 178</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141293"></A><A HREF="#50495582_marker-4835453" CLASS="Index">FktID = 0x523, MOSTNetworkFrameCounter 183</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141295"></A><A HREF="#50495582_marker-658848" CLASS="Index">FktID = 0x524, MOSTNetworkStartup 184</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141297"></A><A HREF="#50495582_marker-3132977" CLASS="Index">FktID = 0x525, MOSTNetworkShutdown 186</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141299"></A><A HREF="#50495582_marker-659167" CLASS="Index">FktID = 0x526, MOSTNetworkRBD 187</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141301"></A><A HREF="#50495582_marker-659384" CLASS="Index">FktID = 0x527, MOSTNetworkRBDResult 188</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141303"></A><A HREF="#50495582_marker-660423" CLASS="Index">FktID = 0x52B, MOSTNetworkForceNotAvailable 189</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141305"></A><A HREF="#50495582_marker-3685981" CLASS="Index">FktID = 0x52C, MOSTNetworkSystemDiagnosis 190</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141307"></A><A HREF="#50495582_marker-3686456" CLASS="Index">FktID = 0x52D, MOSTNetworkSystemDiagnosisEnd 191</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141309"></A><A HREF="#50495582_marker-2115903" CLASS="Index">FktID = 0x602, MOSTPortStatus 193</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141311"></A><A HREF="#50495582_marker-662171" CLASS="Index">FktID = 0x611, MOSTSocketCreate 195</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141313"></A><A HREF="#50495582_marker-662751" CLASS="Index">FktID = 0x621, MediaLBPortCreate 199</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141315"></A><A HREF="#50495582_marker-2840390" CLASS="Index">FktID = 0x631, MediaLBSocketCreate 201</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141317"></A><A HREF="#50495582_marker-3134235" CLASS="Index">FktID = 0x632, MediaLBPacketMuxSocketCreate 203</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141319"></A><A HREF="#50495582_marker-2064745" CLASS="Index">FktID = 0x641, SPIPortCreate 205</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141321"></A><A HREF="#50495582_marker-1667768" CLASS="Index">FktID = 0x651, SPISocketCreate 207</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141323"></A><A HREF="#50495582_marker-3328311" CLASS="Index">FktID = 0x661, USBPortCreate 209</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141325"></A><A HREF="#50495582_marker-3328710" CLASS="Index">FktID = 0x671, USBSocketCreate 211</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141327"></A><A HREF="#50495582_marker-665425" CLASS="Index">FktID = 0x680, StreamPortConfiguration 215</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141329"></A><A HREF="#50495582_marker-2373049" CLASS="Index">FktID = 0x681, StreamPortCreate 218</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141331"></A><A HREF="#50495582_marker-666494" CLASS="Index">FktID = 0x683, StreamPortLoopback 220</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141333"></A><A HREF="#50495582_marker-666726" CLASS="Index">FktID = 0x691, StreamSocketCreate 222</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141335"></A><A HREF="#50495582_marker-2156465" CLASS="Index">FktID = 0x6A1, RMCKPortCreate 225</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141337"></A><A HREF="#50495582_marker-1936051" CLASS="Index">FktID = 0x6C1, I2CPortCreate 228</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141339"></A><A HREF="#50495582_marker-1660698" CLASS="Index">FktID = 0x6C3, I2CPortRead 230</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141341"></A><A HREF="#50495582_marker-1662420" CLASS="Index">FktID = 0x6C4, I2CPortWrite 232</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141343"></A><A HREF="#50495582_marker-2156658" CLASS="Index">FktID = 0x701, GPIOPortCreate 235</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141345"></A><A HREF="#50495582_marker-1816069" CLASS="Index">FktID = 0x703, GPIOPortPinMode 236</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141347"></A><A HREF="#50495582_marker-1647134" CLASS="Index">FktID = 0x704, GPIOPortPinState 239</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141349"></A><A HREF="#50495582_marker-2234183" CLASS="Index">FktID = 0x705, GPIOPortTriggerEvent 241</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141351"></A><A HREF="#50495582_marker-668040" CLASS="Index">FktID = 0x800, ResourceDestroy 244</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141353"></A><A HREF="#50495582_marker-668262" CLASS="Index">FktID = 0x801, ResourceInvalidList 246</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141355"></A><A HREF="#50495582_marker-668361" CLASS="Index">FktID = 0x802, ResourceMonitor 247</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141357"></A><A HREF="#50495582_marker-668986" CLASS="Index">FktID = 0x843, PacketAttachSockets 249</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141359"></A><A HREF="#50495582_marker-669197" CLASS="Index">FktID = 0x844, PacketDetachSockets 251</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141361"></A><A HREF="#50495582_marker-1597323" CLASS="Index">FktID = 0x851, QoSPacketCreate 252</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141363"></A><A HREF="#50495582_marker-669463" CLASS="Index">FktID = 0x861, AVPacketizedCreate 255</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141365"></A><A HREF="#50495582_marker-669793" CLASS="Index">FktID = 0x871, SyncCreate 257</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141367"></A><A HREF="#50495582_marker-1173893" CLASS="Index">FktID = 0x873, SyncMute 260</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141369"></A><A HREF="#50495582_marker-1818422" CLASS="Index">FktID = 0x874, SyncDemute 261</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141371"></A><A HREF="#50495582_marker-2116059" CLASS="Index">FktID = 0x881, DiscFramePhaseCreate 262</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141373"></A><A HREF="#50495582_marker-1237744" CLASS="Index">FktID = 0x901, CombinerCreate 264</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141375"></A><A HREF="#50495582_marker-1241742" CLASS="Index">FktID = 0x911, SplitterCreate 266</A></P>
+</DIV>
+<DIV>
+<H6 CLASS="Level1IOM">
+<A NAME="50495618_pgfId-1141377"></A>FBlock NetBlock</H6>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141378"></A><A HREF="#50495582_marker-3631118" CLASS="Index">FktID = 0x000, FBlockIDs 154</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141380"></A><A HREF="#50495582_marker-3631271" CLASS="Index">FktID = 0x002, NodePositionAddress 155</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141382"></A><A HREF="#50495582_marker-3631417" CLASS="Index">FktID = 0x003, NodeAddress 156</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141384"></A><A HREF="#50495582_marker-3631581" CLASS="Index">FktID = 0x004, GroupAddress 157</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141386"></A><A HREF="#50495582_marker-3631736" CLASS="Index">FktID = 0x006, ShutDown 158</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141388"></A><A HREF="#50495582_marker-3631917" CLASS="Index">FktID = 0x007, RetryParameters 159</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141390"></A><A HREF="#50495582_marker-3782350" CLASS="Index">FktID = 0x013, EUI48 160</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141392"></A><A HREF="#50495582_marker-3632519" CLASS="Index">FktID = 0x014, MOSTVersionInfo 161</A></P>
+<P CLASS="Level2IOM">
+<A NAME="50495618_pgfId-1141394"></A><A HREF="#50495582_marker-3632230" CLASS="Index">FktID = 0x405, RBDResult 162</A></P>
+</DIV>
+</DIV>
+<h1><a class="anchor" id="SEC_OS81118_30"></a>
+API Functions in Alphabetical Order</h1>
+<DIV>
+<H1 CLASS="Appendix-noSection">
+<A NAME="50495619_pgfId-702845"></A><DIV>
+<IMG SRC="OS81118-146.gif" ALT="">
+</DIV>
+<A NAME="50495619_Symbols"></A><A NAME="50495619_Numerics"></A><A NAME="50495619_A"></A><A NAME="50495619_B"></A><A NAME="50495619_C"></A><A NAME="50495619_D"></A><A NAME="50495619_E"></A><A NAME="50495619_F"></A><A NAME="50495619_40878"></A>API Functions in Alphabetical Order<DIV>
+<IMG SRC="OS81118-147.gif" ALT="">
+</DIV>
+</H1>
+<DIV>
+<H6 CLASS="Level1SIX">
+<A NAME="50495619_pgfId-1140999"></A>FBlock DebugMessages</H6>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141000"></A><A HREF="#50495582_marker-1963029" CLASS="Index">NIC_DebugMessage, FktID = 0x001 268</A></P>
+</DIV>
+<DIV>
+<H6 CLASS="Level1SIX">
+<A NAME="50495619_pgfId-1141002"></A>FBlock ExtendedNetworkControl</H6>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141003"></A><A HREF="#50495582_marker-4838330" CLASS="Index">CableLinkDiagnosis, FktID = 0x211 285</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141005"></A><A HREF="#50495582_marker-3614810" CLASS="Index">EnablePort, FktID = 0x210 284</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141007"></A><A HREF="#50495582_marker-3910855" CLASS="Index">Hello, FktID = 0x200 272</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141009"></A><A HREF="#50495582_marker-4590339" CLASS="Index">Init, FktID = 0x203 283</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141011"></A><A HREF="#50495582_marker-3614984" CLASS="Index">MemoryRead, FktID = 0x302 293</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141013"></A><A HREF="#50495582_marker-3707643" CLASS="Index">MemorySessionClose, FktID = 0x301 292</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141015"></A><A HREF="#50495582_marker-3707351" CLASS="Index">MemorySessionOpen, FktID = 0x302 290</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141017"></A><A HREF="#50495582_marker-3614995" CLASS="Index">MemoryWrite, FktID = 0x303 295</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141019"></A><A HREF="#50495582_marker-3624444" CLASS="Index">PhysicalLayerTest, FktID = 0x220 287</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141021"></A><A HREF="#50495582_marker-3624712" CLASS="Index">PhysicalLayerTestResult, FktID = 0x221 289</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141023"></A><A HREF="#50495582_marker-4587084" CLASS="Index">Signature, FktID = 0x202 280</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141025"></A><A HREF="#50495582_marker-3614761" CLASS="Index">Welcome, FktID = 0x201 276</A></P>
+</DIV>
+<DIV>
+<H6 CLASS="Level1SIX">
+<A NAME="50495619_pgfId-1141027"></A>FBlock INIC</H6>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141028"></A><A HREF="#50495582_marker-669462" CLASS="Index">AVPacketizedCreate, FktID = 0x861 255</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141030"></A><A HREF="#50495582_marker-1237743" CLASS="Index">CombinerCreate, FktID = 0x901 264</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141032"></A><A HREF="#50495582_marker-657300" CLASS="Index">DeviceAttach, FktID = 0x223 171</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141034"></A><A HREF="#50495582_marker-657175" CLASS="Index">DevicePowerOff, FktID = 0x222 170</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141036"></A><A HREF="#50495582_marker-3726857" CLASS="Index">DeviceStatus, FktID = 0x220 166</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141038"></A><A HREF="#50495582_marker-1251188" CLASS="Index">DeviceSync, FktID = 0x224 172</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141040"></A><A HREF="#50495582_marker-959396" CLASS="Index">DeviceVersion, FktID = 0x221 168</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141042"></A><A HREF="#50495582_marker-2116058" CLASS="Index">DiscFramePhaseCreate, FktID = 0x881 262</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141044"></A><A HREF="#50495582_marker-2156657" CLASS="Index">GPIOPortCreate, FktID = 0x701 235</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141046"></A><A HREF="#50495582_marker-1816068" CLASS="Index">GPIOPortPinMode, FktID = 0x703 236</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141048"></A><A HREF="#50495582_marker-1647133" CLASS="Index">GPIOPortPinState, FktID = 0x704 239</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141050"></A><A HREF="#50495582_marker-2234182" CLASS="Index">GPIOPortTriggerEvent, FktID = 0x705 241</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141052"></A><A HREF="#50495582_marker-1936050" CLASS="Index">I2CPortCreate, FktID = 0x6C1 228</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141054"></A><A HREF="#50495582_marker-1659527" CLASS="Index">I2CPortRead, FktID = 0x6C3 230</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141056"></A><A HREF="#50495582_marker-1662419" CLASS="Index">I2CPortWrite, FktID = 0x6C4 232</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141058"></A><A HREF="#50495582_marker-3134234" CLASS="Index">MediaLBPacketMuxSocketCreate, FktID = 0x632 203</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141060"></A><A HREF="#50495582_marker-662750" CLASS="Index">MediaLBPortCreate, FktID = 0x621 199</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141062"></A><A HREF="#50495582_marker-2840389" CLASS="Index">MediaLBSocketCreate, FktID = 0x631 201</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141064"></A><A HREF="#50495582_marker-658148" CLASS="Index">MOSTNetworkConfiguration, FktID = 0x521 178</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141066"></A><A HREF="#50495582_marker-660422" CLASS="Index">MOSTNetworkForceNotAvailable, FktID = 0x52B 189</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141068"></A><A HREF="#50495582_marker-4835452" CLASS="Index">MOSTNetworkFrameCounter, FktID = 0x523 183</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141070"></A><A HREF="#50495582_marker-659166" CLASS="Index">MOSTNetworkRBD, FktID = 0x526 187</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141072"></A><A HREF="#50495582_marker-659383" CLASS="Index">MOSTNetworkRBDResult, FktID = 0x527 188</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141074"></A><A HREF="#50495582_marker-3132976" CLASS="Index">MOSTNetworkShutdown, FktID = 0x525 186</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141076"></A><A HREF="#50495582_marker-658847" CLASS="Index">MOSTNetworkStartup, FktID = 0x524 184</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141078"></A><A HREF="#50495582_marker-657606" CLASS="Index">MOSTNetworkStatus, FktID = 0x520 174</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141080"></A><A HREF="#50495582_marker-3685980" CLASS="Index">MOSTNetworkSystemDiagnosis, FktID = 0x52C 190</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141082"></A><A HREF="#50495582_marker-3686455" CLASS="Index">MOSTNetworkSystemDiagnosisEnd, FktID = 0x52D 191</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141084"></A><A HREF="#50495582_marker-2115902" CLASS="Index">MOSTPortStatus, FktID = 0x602 193</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141086"></A><A HREF="#50495582_marker-662170" CLASS="Index">MOSTSocketCreate, FktID = 0x611 195</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141088"></A><A HREF="#50495582_marker-871347" CLASS="Index">Notification, FktID = 0x001 163</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141090"></A><A HREF="#50495582_marker-668985" CLASS="Index">PacketAttachSockets, FktID = 0x843 249</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141092"></A><A HREF="#50495582_marker-669196" CLASS="Index">PacketDetachSockets, FktID = 0x844 251</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141094"></A><A HREF="#50495582_marker-1597322" CLASS="Index">QoSPacketCreate, FktID = 0x851 252</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141096"></A><A HREF="#50495582_marker-668039" CLASS="Index">ResourceDestroy, FktID = 0x800 244</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141098"></A><A HREF="#50495582_marker-668261" CLASS="Index">ResourceInvalidList, FktID = 0x801 246</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141100"></A><A HREF="#50495582_marker-668360" CLASS="Index">ResourceMonitor, FktID = 0x802 247</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141102"></A><A HREF="#50495582_marker-2156464" CLASS="Index">RMCKPortCreate, FktID = 0x6A1 225</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141104"></A><A HREF="#50495582_marker-2064744" CLASS="Index">SPIPortCreate, FktID = 0x641 205</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141106"></A><A HREF="#50495582_marker-1667767" CLASS="Index">SPISocketCreate, FktID = 0x651 207</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141108"></A><A HREF="#50495582_marker-1241741" CLASS="Index">SplitterCreate, FktID = 0x911 266</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141110"></A><A HREF="#50495582_marker-665424" CLASS="Index">StreamPortConfiguration, FktID = 0x680 215</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141112"></A><A HREF="#50495582_marker-2373048" CLASS="Index">StreamPortCreate, FktID = 0x681 218</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141114"></A><A HREF="#50495582_marker-666493" CLASS="Index">StreamPortLoopback, FktID = 0x683 220</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141116"></A><A HREF="#50495582_marker-666725" CLASS="Index">StreamSocketCreate, FktID = 0x691 222</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141118"></A><A HREF="#50495582_marker-669792" CLASS="Index">SyncCreate, FktID = 0x871 257</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141120"></A><A HREF="#50495582_marker-1818421" CLASS="Index">SyncDemute, FktID = 0x874 261</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141122"></A><A HREF="#50495582_marker-1173892" CLASS="Index">SyncMute, FktID = 0x873 260</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141124"></A><A HREF="#50495582_marker-3328310" CLASS="Index">USBPortCreate, FktID = 0x661 209</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141126"></A><A HREF="#50495582_marker-3328709" CLASS="Index">USBSocketCreate, FktID = 0x671 211</A></P>
+</DIV>
+<DIV>
+<H6 CLASS="Level1SIX">
+<A NAME="50495619_pgfId-1141128"></A>FBlock NetBlock</H6>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141129"></A><A HREF="#50495582_marker-3782351" CLASS="Index">EUI48, FktID = 0x013 160</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141131"></A><A HREF="#50495582_marker-3631119" CLASS="Index">FBlockIDs, FktID = 0x000 154</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141133"></A><A HREF="#50495582_marker-3631582" CLASS="Index">GroupAddress, FktID = 0x004 157</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141135"></A><A HREF="#50495582_marker-3632520" CLASS="Index">MOSTVersionInfo, FktID = 0x014 161</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141137"></A><A HREF="#50495582_marker-3631418" CLASS="Index">NodeAddress, FktID = 0x003 156</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141139"></A><A HREF="#50495582_marker-3631272" CLASS="Index">NodePositionAddress, FktID = 0x002 155</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141141"></A><A HREF="#50495582_marker-3632231" CLASS="Index">RBDResult, FktID = 0x405 162</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141143"></A><A HREF="#50495582_marker-3631918" CLASS="Index">RetryParameters, FktID = 0x007 159</A></P>
+<P CLASS="Level2SIX">
+<A NAME="50495619_pgfId-1141145"></A><A HREF="#50495582_marker-3631737" CLASS="Index">ShutDown, FktID = 0x006 158</A></P>
+</DIV>
+</DIV>
+<h1><a class="anchor" id="SEC_OS81118_31"></a>
+List of Figures</h1>
+<DIV>
+<H1 CLASS="Title">
+<A NAME="50495525_pgfId-40357"></A><DIV>
+<IMG SRC="OS81118-148.gif" ALT="">
+</DIV>
+<A NAME="50495525_60680"></A>List of Figures<DIV>
+<IMG SRC="OS81118-149.gif" ALT="">
+</DIV>
+</H1>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-234965"></A><A HREF="#50495533_pgfId-739478" CLASS="Index">Figure 2-1: Control Message Format 28</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-234967"></A><A HREF="#50495533_pgfId-739497" CLASS="Index">Figure 2-2: PMP Payload 28</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-234969"></A><A HREF="#50495533_pgfId-832737" CLASS="Index">Figure 2-3: Configuration Interface &#8211; EHC Controlled 31</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-234971"></A><A HREF="#50495533_pgfId-833216" CLASS="Index">Figure 2-4: Configuration Interface &#8211; Remote Controlled 33</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-234973"></A><A HREF="#50495533_pgfId-749780" CLASS="Index">Figure 2-5: Configuration Interface Modes 34</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-234975"></A><A HREF="#50495533_pgfId-769545" CLASS="Index">Figure 2-6: Steps to Reach Attached Mode 36</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-234977"></A><A HREF="#50495533_pgfId-750194" CLASS="Index">Figure 2-7: Remote Control Command Sequence 37</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-234979"></A><A HREF="#50495533_pgfId-832775" CLASS="Index">Figure 2-8: Application Interface 39</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-234981"></A><A HREF="#50495533_pgfId-751374" CLASS="Index">Figure 2-9: Application Interface Modes 41</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-234983"></A><A HREF="#50495566_pgfId-655876" CLASS="Index">Figure 3-1: Power States 46</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-234985"></A><A HREF="#50495566_pgfId-656113" CLASS="Index">Figure 3-2: Power State is U</A><EM CLASS="Subscript">
+Normal</EM>
+ 47</P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-234987"></A><A HREF="#50495566_pgfId-656919" CLASS="Index">Figure 3-3: Power State is U</A><EM CLASS="Subscript">
+Low</EM>
+ 48</P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-234989"></A><A HREF="#50495566_pgfId-776772" CLASS="Index">Figure 3-4: Power State is STP 49</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-234991"></A><A HREF="#50495566_pgfId-656192" CLASS="Index">Figure 3-5: Power State is U</A><EM CLASS="Subscript">
+Critical</EM>
+ 50</P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-234993"></A><A HREF="#50495565_pgfId-655817" CLASS="Index">Figure 4-1: NetInterface State Diagram 51</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-234995"></A><A HREF="#50495565_pgfId-681121" CLASS="Index">Figure 4-2: Physical Layer Test Flow 57</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-234997"></A><A HREF="#50495567_pgfId-655669" CLASS="Index">Figure 6-1: State Diagram of a Monitored Connection 66</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-234999"></A><A HREF="#50495567_pgfId-790609" CLASS="Index">Figure 6-2: EHC Implementation Proposal for Resource Handling without Muting 69</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-235001"></A><A HREF="#50495567_pgfId-732756" CLASS="Index">Figure 6-3: EHC Implementation Proposal for Resource Handling with Muting 70</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-235003"></A><A HREF="#50495567_pgfId-657742" CLASS="Index">Figure 6-4: Unlock with Temporarily Invalid Connection 71</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-235005"></A><A HREF="#50495567_pgfId-742011" CLASS="Index">Figure 6-5: Permanently Invalidated Connection 72</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-235007"></A><A HREF="#50495569_pgfId-716040" CLASS="Index">Figure 8-1: Packet Multiplexing 79</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-235009"></A><A HREF="#50495571_pgfId-702662" CLASS="Index">Figure 10-1: Synchronous Bulk Transaction with Padding 86</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-235011"></A><A HREF="#50495571_pgfId-702677" CLASS="Index">Figure 10-2: A/V Packetized Bulk Transaction with Padding 87</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-235013"></A><A HREF="#50495571_pgfId-702582" CLASS="Index">Figure 10-3: A/V Packetized Bulk Transaction without Padding 87</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-235015"></A><A HREF="#50495574_pgfId-771639" CLASS="Index">Figure 13-1: I&#178;C Port Pin Connection 102</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-235017"></A><A HREF="#50495574_pgfId-673462" CLASS="Index">Figure 13-2: I&#178;C Write Transaction 103</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-235019"></A><A HREF="#50495574_pgfId-676825" CLASS="Index">Figure 13-3: I&#178;C Read Transaction 103</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-235021"></A><A HREF="#50495574_pgfId-673418" CLASS="Index">Figure 13-4: Single Read Transaction 104</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-235023"></A><A HREF="#50495574_pgfId-676949" CLASS="Index">Figure 13-5: Two-Staged Read Transaction 104</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-235025"></A><A HREF="#50495574_pgfId-661230" CLASS="Index">Figure 13-6: 7-bit Address Write 106</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-235027"></A><A HREF="#50495574_pgfId-662130" CLASS="Index">Figure 13-7: 7-bit Address Read 106</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-235029"></A><A HREF="#50495574_pgfId-662155" CLASS="Index">Figure 13-8: 10-bit Address Write 107</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-235031"></A><A HREF="#50495574_pgfId-662178" CLASS="Index">Figure 13-9: 10-bit Address Read 107</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-235033"></A><A HREF="#50495574_pgfId-662765" CLASS="Index">Figure 13-10: Repeated Start 108</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-235035"></A><A HREF="#50495574_pgfId-663868" CLASS="Index">Figure 13-11: I&#178;C Read/Write 109</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-235037"></A><A HREF="#50495574_pgfId-665269" CLASS="Index">Figure 13-12: I&#178;C Write Burst Mode 109</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-235039"></A><A HREF="#50495574_pgfId-665284" CLASS="Index">Figure 13-13: I&#178;C Repeated Start 110</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-235041"></A><A HREF="#50495575_pgfId-663460" CLASS="Index">Figure 14-1: Edge Sensitive Input 113</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-235043"></A><A HREF="#50495575_pgfId-664385" CLASS="Index">Figure 14-2: Level Sensitive Input 113</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-235045"></A><A HREF="#50495575_pgfId-668241" CLASS="Index">Figure 14-3: Sticky Input 114</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-235047"></A><A HREF="#50495576_pgfId-700970" CLASS="Index">Figure 15-1: Bulk Transaction with a Combiner 116</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-235049"></A><A HREF="#50495578_pgfId-690448" CLASS="Index">Figure 17-1: Control Connection 119</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-235051"></A><A HREF="#50495578_pgfId-722053" CLASS="Index">Figure 17-2: Control Low-Level Retries 120</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-235053"></A><A HREF="#50495579_pgfId-689663" CLASS="Index">Figure 18-1: MOST Data Packet Message Format 121</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-235055"></A><A HREF="#50495579_pgfId-689674" CLASS="Index">Figure 18-2: MOST Ethernet Packet Message Format 121</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-235057"></A><A HREF="#50495579_pgfId-755957" CLASS="Index">Figure 18-3: Packet Connection 123</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-235059"></A><A HREF="#50495579_pgfId-692793" CLASS="Index">Figure 18-4: Read Register Command 126</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-235061"></A><A HREF="#50495579_pgfId-692423" CLASS="Index">Figure 18-5: DCI Trigger Message Format 126</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-235063"></A><A HREF="#50495579_pgfId-758979" CLASS="Index">Figure 18-6: QoS Connection 127</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-235065"></A><A HREF="#50495580_pgfId-779260" CLASS="Index">Figure 19-1: Synchronous Connections 134</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-235067"></A><A HREF="#50495580_pgfId-787848" CLASS="Index">Figure 19-2: Combiner Connections 137</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-235069"></A><A HREF="#50495580_pgfId-793997" CLASS="Index">Figure 19-3: Splitter Connections 138</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-235071"></A><A HREF="#50495580_pgfId-710227" CLASS="Index">Figure 19-4: A/V Packetized Connections 141</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-235073"></A><A HREF="#50495580_pgfId-697870" CLASS="Index">Figure 19-5: DiscreteFrame Isochronous Streaming Phase Connections 146</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-235075"></A><A HREF="#50495581_pgfId-671243" CLASS="Index">Figure 20-1: Driver Control Interface 149</A></P>
+<P CLASS="FigureDSLOF">
+<A NAME="50495525_pgfId-235077"></A><A HREF="#50495581_pgfId-679702" CLASS="Index">Figure 20-2: Polling Mechanism 152</A></P>
+<P CLASS="AppFigureTitleLOF">
+<A NAME="50495525_pgfId-235079"></A><A HREF="#50495608_pgfId-683455" CLASS="Index">Figure A-1: EHC to INIC Connection Diagram 314</A></P>
+<P CLASS="AppFigureTitleLOF">
+<A NAME="50495525_pgfId-235081"></A><A HREF="#50495608_pgfId-682280" CLASS="Index">Figure A-2: I&#178;C Command/Response Sequence 314</A></P>
+<P CLASS="AppFigureTitleLOF">
+<A NAME="50495525_pgfId-235083"></A><A HREF="#50495608_pgfId-862667" CLASS="Index">Figure A-3: Programming Sequence 316</A></P>
+<P CLASS="AppFigureTitleLOF">
+<A NAME="50495525_pgfId-235085"></A><A HREF="#50495608_pgfId-696816" CLASS="Index">Figure A-4: Sequence to Enter and Leave the Program Mode 317</A></P>
+<P CLASS="AppFigureTitleLOF">
+<A NAME="50495525_pgfId-235087"></A><A HREF="#50495608_pgfId-862686" CLASS="Index">Figure A-5: Firmware Memory 318</A></P>
+<P CLASS="AppFigureTitleLOF">
+<A NAME="50495525_pgfId-235089"></A><A HREF="#50495608_pgfId-872932" CLASS="Index">Figure A-6: Firmware Version Read Sequence 319</A></P>
+<P CLASS="AppFigureTitleLOF">
+<A NAME="50495525_pgfId-235091"></A><A HREF="#50495608_pgfId-862713" CLASS="Index">Figure A-7: Firmware Programming Sequence 320</A></P>
+<P CLASS="AppFigureTitleLOF">
+<A NAME="50495525_pgfId-235093"></A><A HREF="#50495608_pgfId-862731" CLASS="Index">Figure A-8: Configuration Memory Section 321</A></P>
+<P CLASS="AppFigureTitleLOF">
+<A NAME="50495525_pgfId-235095"></A><A HREF="#50495608_pgfId-940944" CLASS="Index">Figure A-9: Configuration Verification Sequence 321</A></P>
+<P CLASS="AppFigureTitleLOF">
+<A NAME="50495525_pgfId-235097"></A><A HREF="#50495608_pgfId-856162" CLASS="Index">Figure A-10: Configuration String Version Read Sequence 322</A></P>
+<P CLASS="AppFigureTitleLOF">
+<A NAME="50495525_pgfId-235099"></A><A HREF="#50495608_pgfId-862752" CLASS="Index">Figure A-11: Configuration Memory Programming Sequence 323</A></P>
+<P CLASS="AppFigureTitleLOF">
+<A NAME="50495525_pgfId-235101"></A><A HREF="#50495615_pgfId-796003" CLASS="Index">Figure C-1: Streaming Applications and Peripheral Ports 336</A></P>
+<P CLASS="AppFigureTitleLOF">
+<A NAME="50495525_pgfId-235103"></A><A HREF="#50495615_pgfId-796025" CLASS="Index">Figure C-2: Synchronous Streaming Using Streaming Port A and Streaming Port B 337</A></P>
+<P CLASS="AppFigureTitleLOF">
+<A NAME="50495525_pgfId-235105"></A><A HREF="#50495615_pgfId-796038" CLASS="Index">Figure C-3: Synchronous Streaming Using the MediaLB Port 344</A></P>
+<P CLASS="AppFigureTitleLOF">
+<A NAME="50495525_pgfId-235107"></A><A HREF="#50495615_pgfId-796051" CLASS="Index">Figure C-4: A/V Packetized Using the USB Port 347</A></P>
+</DIV>
+<h1><a class="anchor" id="SEC_OS81118_32"></a>
+List of Tables</h1>
+<DIV>
+<H1 CLASS="Title">
+<A NAME="50495623_pgfId-960011"></A><DIV>
+<IMG SRC="OS81118-150.gif" ALT="">
+</DIV>
+<A NAME="50495623_92957"></A>List of Tables<DIV>
+<IMG SRC="OS81118-151.gif" ALT="">
+</DIV>
+</H1>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126293"></A><A HREF="#50495533_pgfId-739424" CLASS="Index">Table 2-1: PMP Channel Assignment 28</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126295"></A><A HREF="#50495533_pgfId-739506" CLASS="Index">Table 2-2: PMP Payload Format Field Description 29</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126297"></A><A HREF="#50495533_pgfId-739649" CLASS="Index">Table 2-3: Message Transmission Status 30</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126299"></A><A HREF="#50495533_pgfId-767693" CLASS="Index">Table 2-4: Limited Write Operations 38</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126301"></A><A HREF="#50495566_pgfId-668582" CLASS="Index">Table 3-1: Power States Signaled by PS0 and PS1 Pins 43</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126303"></A><A HREF="#50495567_pgfId-1000077" CLASS="Index">Table 6-1: Object Type, Resource Identifier and Index 65</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126305"></A><A HREF="#50495567_pgfId-845960" CLASS="Index">Table 6-2: Mute Modes 67</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126307"></A><A HREF="#50495567_pgfId-759604" CLASS="Index">Table 6-3: Data Type, Routing Memory Resource Budget 74</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126309"></A><A HREF="#50495567_pgfId-846000" CLASS="Index">Table 6-4: Data Type, Routing Channel Resource Budget 74</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126311"></A><A HREF="#50495569_pgfId-716284" CLASS="Index">Table 8-1: Packet Multiplexing - Physical Channel Allocation 79</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126313"></A><A HREF="#50495571_pgfId-705188" CLASS="Index">Table 10-1: Endpoint Directions and Addresses 85</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126315"></A><A HREF="#50495571_pgfId-703374" CLASS="Index">Table 10-2: Device Descriptor 88</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126317"></A><A HREF="#50495571_pgfId-703475" CLASS="Index">Table 10-3: String Descriptor #0 89</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126319"></A><A HREF="#50495571_pgfId-703509" CLASS="Index">Table 10-4: String Descriptor #1 89</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126321"></A><A HREF="#50495571_pgfId-703542" CLASS="Index">Table 10-5: String Descriptor #2 89</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126323"></A><A HREF="#50495571_pgfId-703577" CLASS="Index">Table 10-6: String Descriptor #3 89</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126325"></A><A HREF="#50495571_pgfId-703618" CLASS="Index">Table 10-7: Configuration Descriptor 90</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126327"></A><A HREF="#50495571_pgfId-704265" CLASS="Index">Table 10-8: Other-Speed Configuration Descriptor 92</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126329"></A><A HREF="#50495571_pgfId-704397" CLASS="Index">Table 10-9: Device Qualifier Descriptor 92</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126331"></A><A HREF="#50495575_pgfId-739115" CLASS="Index">Table 14-1: GPIO Pin Configuration and Limitations 111</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126333"></A><A HREF="#50495579_pgfId-759092" CLASS="Index">Table 18-1: Allocated Bandwidth and Standard Routing Memory 128</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126335"></A><A HREF="#50495580_pgfId-800808" CLASS="Index">Table 19-1: IsocPacketSize and Standard Routing Memory 142</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126337"></A><A HREF="#50495580_pgfId-800845" CLASS="Index">Table 19-2: IsocPacketSize and Aggregation Routing Memory 142</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126339"></A><A HREF="#50495581_pgfId-731071" CLASS="Index">Table 20-1: Common Register 150</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126341"></A><A HREF="#50495581_pgfId-722677" CLASS="Index">Table 20-2: USB Register 150</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126343"></A><A HREF="#50495582_pgfId-3278536" CLASS="Index">Table 21-1: NetBlock Functions 153</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126345"></A><A HREF="#50495582_pgfId-656584" CLASS="Index">Table 21-2: Device Management Functions 165</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126347"></A><A HREF="#50495582_pgfId-657597" CLASS="Index">Table 21-3: MOST Network Functions 173</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126349"></A><A HREF="#50495582_pgfId-3097540" CLASS="Index">Table 21-4: Bandwidth Configurations 184</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126351"></A><A HREF="#50495582_pgfId-2399681" CLASS="Index">Table 21-5: MOST Port Functions 192</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126353"></A><A HREF="#50495582_pgfId-662741" CLASS="Index">Table 21-6: MediaLB Port Functions 198</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126355"></A><A HREF="#50495582_pgfId-2064706" CLASS="Index">Table 21-7: SPI Port Functions 204</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126357"></A><A HREF="#50495582_pgfId-3328270" CLASS="Index">Table 21-8: USB Port Functions 208</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126359"></A><A HREF="#50495582_pgfId-2064958" CLASS="Index">Table 21-9: Streaming Port Functions 214</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126361"></A><A HREF="#50495582_pgfId-1659384" CLASS="Index">Table 21-10: I&#178;C Port Functions 227</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126363"></A><A HREF="#50495582_pgfId-1643336" CLASS="Index">Table 21-11: GPIO Port Functions 234</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126365"></A><A HREF="#50495582_pgfId-668030" CLASS="Index">Table 21-12: Resource Management Functions 243</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126367"></A><A HREF="#50495582_pgfId-668976" CLASS="Index">Table 21-13: Packet Connection Functions 248</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126369"></A><A HREF="#50495582_pgfId-2065525" CLASS="Index">Table 21-14: Streaming Connection Functions 254</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126371"></A><A HREF="#50495582_pgfId-3614079" CLASS="Index">Table 21-15: ExtendedNetworkControl Functions 271</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126373"></A><A HREF="#50495582_pgfId-914495" CLASS="Index">Table 21-16: Standard ErrorCodes and ErrorInfo 297</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126375"></A><A HREF="#50495582_pgfId-1076534" CLASS="Index">Table 21-17: List of ErrorClasses 298</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126377"></A><A HREF="#50495606_pgfId-880995" CLASS="Index">Table 22-1: Configuration String &#8211; Properties and Default Values 309</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126379"></A><A HREF="#50495606_pgfId-900315" CLASS="Index">Table 22-2: Identification String &#8211; Properties and Default Values 311</A></P>
+<P CLASS="TableTitleLOT">
+<A NAME="50495623_pgfId-1126381"></A><A HREF="#50495617_pgfId-662942" CLASS="Index">Table D-1: List of Abbreviations 351</A></P>
+</DIV>
+ </div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/_p__u_m__o_s81118__i_m_g.html b/ucs2-lib/doc/html/_p__u_m__o_s81118__i_m_g.html
new file mode 100644
index 0000000..3afaece
--- /dev/null
+++ b/ucs2-lib/doc/html/_p__u_m__o_s81118__i_m_g.html
@@ -0,0 +1,572 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: List of Images</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_p__u_m__o_s81118__i_m_g.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">List of Images </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><div class="image">
+<img src="OS81118-1.gif" alt="OS81118-1.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-10.gif" alt="OS81118-10.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-100.gif" alt="OS81118-100.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-101.gif" alt="OS81118-101.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-102.gif" alt="OS81118-102.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-103.gif" alt="OS81118-103.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-104.gif" alt="OS81118-104.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-105.gif" alt="OS81118-105.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-106.gif" alt="OS81118-106.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-107.gif" alt="OS81118-107.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-108.gif" alt="OS81118-108.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-109.gif" alt="OS81118-109.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-11.gif" alt="OS81118-11.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-110.gif" alt="OS81118-110.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-111.gif" alt="OS81118-111.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-112.gif" alt="OS81118-112.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-113.gif" alt="OS81118-113.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-114.gif" alt="OS81118-114.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-115.gif" alt="OS81118-115.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-116.gif" alt="OS81118-116.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-117.gif" alt="OS81118-117.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-118.gif" alt="OS81118-118.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-119.gif" alt="OS81118-119.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-12.gif" alt="OS81118-12.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-120.gif" alt="OS81118-120.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-121.gif" alt="OS81118-121.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-122.gif" alt="OS81118-122.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-123.gif" alt="OS81118-123.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-124.gif" alt="OS81118-124.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-125.gif" alt="OS81118-125.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-126.gif" alt="OS81118-126.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-127.gif" alt="OS81118-127.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-128.gif" alt="OS81118-128.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-129.gif" alt="OS81118-129.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-13.gif" alt="OS81118-13.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-130.gif" alt="OS81118-130.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-131.gif" alt="OS81118-131.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-132.gif" alt="OS81118-132.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-133.gif" alt="OS81118-133.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-134.gif" alt="OS81118-134.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-135.gif" alt="OS81118-135.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-136.gif" alt="OS81118-136.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-137.gif" alt="OS81118-137.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-138.gif" alt="OS81118-138.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-139.gif" alt="OS81118-139.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-14.gif" alt="OS81118-14.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-140.gif" alt="OS81118-140.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-141.gif" alt="OS81118-141.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-142.gif" alt="OS81118-142.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-143.gif" alt="OS81118-143.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-144.gif" alt="OS81118-144.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-145.gif" alt="OS81118-145.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-146.gif" alt="OS81118-146.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-147.gif" alt="OS81118-147.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-148.gif" alt="OS81118-148.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-149.gif" alt="OS81118-149.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-15.gif" alt="OS81118-15.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-150.gif" alt="OS81118-150.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-151.gif" alt="OS81118-151.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-152.gif" alt="OS81118-152.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-153.gif" alt="OS81118-153.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-16.gif" alt="OS81118-16.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-17.gif" alt="OS81118-17.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-18.gif" alt="OS81118-18.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-19.gif" alt="OS81118-19.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-2.gif" alt="OS81118-2.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-20.gif" alt="OS81118-20.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-21.gif" alt="OS81118-21.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-22.gif" alt="OS81118-22.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-23.gif" alt="OS81118-23.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-24.gif" alt="OS81118-24.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-25.gif" alt="OS81118-25.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-26.gif" alt="OS81118-26.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-27.gif" alt="OS81118-27.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-28.gif" alt="OS81118-28.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-29.gif" alt="OS81118-29.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-3.gif" alt="OS81118-3.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-30.gif" alt="OS81118-30.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-31.gif" alt="OS81118-31.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-32.gif" alt="OS81118-32.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-33.gif" alt="OS81118-33.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-34.gif" alt="OS81118-34.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-35.gif" alt="OS81118-35.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-36.gif" alt="OS81118-36.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-37.gif" alt="OS81118-37.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-38.gif" alt="OS81118-38.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-39.gif" alt="OS81118-39.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-4.gif" alt="OS81118-4.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-40.gif" alt="OS81118-40.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-41.gif" alt="OS81118-41.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-42.gif" alt="OS81118-42.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-43.gif" alt="OS81118-43.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-44.gif" alt="OS81118-44.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-45.gif" alt="OS81118-45.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-46.gif" alt="OS81118-46.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-47.gif" alt="OS81118-47.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-48.gif" alt="OS81118-48.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-49.gif" alt="OS81118-49.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-5.gif" alt="OS81118-5.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-50.gif" alt="OS81118-50.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-51.gif" alt="OS81118-51.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-52.gif" alt="OS81118-52.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-53.gif" alt="OS81118-53.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-54.gif" alt="OS81118-54.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-55.gif" alt="OS81118-55.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-56.gif" alt="OS81118-56.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-57.gif" alt="OS81118-57.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-58.gif" alt="OS81118-58.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-59.gif" alt="OS81118-59.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-6.gif" alt="OS81118-6.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-60.gif" alt="OS81118-60.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-61.gif" alt="OS81118-61.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-62.gif" alt="OS81118-62.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-63.gif" alt="OS81118-63.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-64.gif" alt="OS81118-64.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-65.gif" alt="OS81118-65.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-66.gif" alt="OS81118-66.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-67.gif" alt="OS81118-67.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-68.gif" alt="OS81118-68.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-69.gif" alt="OS81118-69.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-7.gif" alt="OS81118-7.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-70.gif" alt="OS81118-70.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-71.gif" alt="OS81118-71.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-72.gif" alt="OS81118-72.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-73.gif" alt="OS81118-73.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-74.gif" alt="OS81118-74.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-75.gif" alt="OS81118-75.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-76.gif" alt="OS81118-76.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-77.gif" alt="OS81118-77.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-78.gif" alt="OS81118-78.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-79.gif" alt="OS81118-79.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-8.gif" alt="OS81118-8.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-80.gif" alt="OS81118-80.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-81.gif" alt="OS81118-81.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-82.gif" alt="OS81118-82.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-83.gif" alt="OS81118-83.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-84.gif" alt="OS81118-84.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-85.gif" alt="OS81118-85.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-86.gif" alt="OS81118-86.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-87.gif" alt="OS81118-87.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-88.gif" alt="OS81118-88.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-89.gif" alt="OS81118-89.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-9.gif" alt="OS81118-9.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-90.gif" alt="OS81118-90.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-91.gif" alt="OS81118-91.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-92.gif" alt="OS81118-92.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-93.gif" alt="OS81118-93.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-94.gif" alt="OS81118-94.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-95.gif" alt="OS81118-95.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-96.gif" alt="OS81118-96.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-97.gif" alt="OS81118-97.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-98.gif" alt="OS81118-98.gif"/>
+</div>
+ <div class="image">
+<img src="OS81118-99.gif" alt="OS81118-99.gif"/>
+</div>
+ </div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__a_m_s.html b/ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__a_m_s.html
new file mode 100644
index 0000000..f85d46c
--- /dev/null
+++ b/ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__a_m_s.html
@@ -0,0 +1,316 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Application Message Service</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_p__u_m__s_t_a_r_t_e_d__a_m_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Application Message Service </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><h1>Introduction</h1>
+<p>The Application Message Service (AMS) provides a central interface to transmit and receive application messages via the Control Channel of the MOST network. The so called application messages can have a payload size of up to 65535 bytes. Since the payload size of a single MOST control message is limited to 45 bytes (MOST150), an application messages with larger payload is transmitted via segmented transfer. The Application Message Service provides a common interface for single and segmented transfer and automatically performs segmentation.</p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_api">&#160;</td><td>See also <em>API Reference</em>, section <a class="el" href="group___g___u_c_s___a_m_s.html">Application Message Service</a>. </td></tr>
+</table>
+<h1>Configuration</h1>
+<p>Any message which is received or transmitted via the Application Message Service requires a certain amount of memory. The UNICENS Library reserves an amount of memory which can be adjusted by defining the number und payload of AMS Tx and Rx messages. The configuration file ucs_cfg.h can be modified to your specific needs. A possible configuration might be:</p>
+<ul>
+<li>20 Rx Message Objects, each object has a reserved payload size of 400 bytes</li>
+<li>20 Tx Message Objects, each object has a reserved payload size of 100 bytes</li>
+</ul>
+<p>The corresponding configuration will look like this: </p>
+<div class="fragment"><div class="line"><span class="comment">/* File: ucs_cfg.h */</span></div>
+<div class="line"><span class="preprocessor">#define UCS_AMS_NUM_RX_MSGS 20U</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define UCS_AMS_SIZE_RX_MSG 400U</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define UCS_AMS_NUM_TX_MSGS 20U</span></div>
+<div class="line"><span class="preprocessor">#define UCS_AMS_SIZE_TX_MSG 100U</span></div>
+</div><!-- fragment --><h1>Initialization</h1>
+<p>Prior to the call of <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_gaea8d7735d41853167a2befdc06febe43.html#gaea8d7735d41853167a2befdc06febe43" title="UNICENS initialization function.">Ucs_Init()</a>, the application is able to configure the AMS-related <a class="el" href="struct_ucs___ams___init_data__t.html">part</a> of the initialization structure. The following table provides a brief overview of all parameters. </p>
+<table class="doxtable">
+<tr>
+<th>Parameter </th><th align="center">Default </th><th align="center">Mandatory </th><th>Description</th></tr>
+<tr>
+<td>rx.message_received_fptr </td><td align="center">NULL </td><td align="center">No </td><td>Callback function that is invoked on message reception </td></tr>
+<tr>
+<td>tx.message_freed_fptr </td><td align="center">NULL </td><td align="center">No </td><td>Callback function that is invoked if memory dedicated to a Tx message is freed after a prior allocation has failed </td></tr>
+<tr>
+<td>tx.default_llrbc </td><td align="center">10 </td><td align="center">No </td><td>Default low-level retry block count for Tx messages </td></tr>
+</table>
+<p>The code below shows a possible initialization sequence of the Application Message Service.</p>
+<div class="fragment"><div class="line"><span class="keywordtype">void</span> App_Initialize(<span class="keywordtype">void</span>)</div>
+<div class="line">{</div>
+<div class="line"> <a class="code" href="struct_ucs___init_data__t.html" title="UNICENS initialization structure used by function Ucs_Init().">Ucs_InitData_t</a> init_data;</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga64b50780725a0dc8693b5b73f8345ad6.html#ga64b50780725a0dc8693b5b73f8345ad6" title="Assigns default values to a provided UNICENS init structure.">Ucs_SetDefaultConfig</a>(&amp;init_data);</div>
+<div class="line"></div>
+<div class="line"> init_data.<a class="code" href="struct_ucs___init_data__t_afc4097eb34fb5c24bb13e02b6f506b3c.html#afc4097eb34fb5c24bb13e02b6f506b3c" title="The initialization data of the Application Message Service.">ams</a>.<a class="code" href="struct_ucs___ams___init_data__t_a8e01298906b1fbe44765c6e9e4bbc888.html#a8e01298906b1fbe44765c6e9e4bbc888" title="Tx related initialization parameters.">tx</a>.<a class="code" href="struct_ucs___ams_tx___init_data__t_a804bd7e626fd73b27d18af9a036d7ad4.html#a804bd7e626fd73b27d18af9a036d7ad4" title="Specifies the low-level retry block count which is pre-selected in an allocated Tx message object...">default_llrbc</a> = 4U;</div>
+<div class="line"> init_data.<a class="code" href="struct_ucs___init_data__t_afc4097eb34fb5c24bb13e02b6f506b3c.html#afc4097eb34fb5c24bb13e02b6f506b3c" title="The initialization data of the Application Message Service.">ams</a>.<a class="code" href="struct_ucs___ams___init_data__t_a8e01298906b1fbe44765c6e9e4bbc888.html#a8e01298906b1fbe44765c6e9e4bbc888" title="Tx related initialization parameters.">tx</a>.<a class="code" href="struct_ucs___ams_tx___init_data__t_a9217a093b6d7e68b7cd9d759c5cef192.html#a9217a093b6d7e68b7cd9d759c5cef192" title="Callback function which is invoked by the UNICENS library to notify that memory of a Tx message objec...">message_freed_fptr</a> = &amp;App_OnAmsTxMessageFreed;</div>
+<div class="line"> init_data.<a class="code" href="struct_ucs___init_data__t_afc4097eb34fb5c24bb13e02b6f506b3c.html#afc4097eb34fb5c24bb13e02b6f506b3c" title="The initialization data of the Application Message Service.">ams</a>.<a class="code" href="struct_ucs___ams___init_data__t_a976344e02b80d33e167c34d3c6ae9cab.html#a976344e02b80d33e167c34d3c6ae9cab" title="Rx related initialization parameters.">rx</a>.<a class="code" href="struct_ucs___ams_rx___init_data__t_a94cec5846cb407141e9c1e1a2ea205d3.html#a94cec5846cb407141e9c1e1a2ea205d3" title="Callback function that is invoked if the UNICENS library has received a message completely and append...">message_received_fptr</a> = &amp;App_OnAmsRxComplete;</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/* ... further initialization ... */</span></div>
+<div class="line"></div>
+<div class="line"> <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_gaea8d7735d41853167a2befdc06febe43.html#gaea8d7735d41853167a2befdc06febe43" title="UNICENS initialization function.">Ucs_Init</a>(&amp;init_data, &amp;App_OnInitResult);</div>
+<div class="line">}</div>
+</div><!-- fragment --><table class="mns_ic_table">
+<tr>
+<td id="mns_ic_started">&#160;</td><td>See also <em>Getting Started</em>, section <a class="el" href="_p__u_m__s_t_a_r_t_e_d__i_n_i_t.html">Initialization</a>. </td></tr>
+</table>
+<h1>Transmission of Messages</h1>
+<p>In order to transmit an application message you haves to process the following steps.</p>
+<ol type="1">
+<li>Retrieve a message object by calling <a class="el" href="group___g___u_c_s___a_m_s_gafbcfeaaa6ff3d255609e404b16dbdf0f.html#gafbcfeaaa6ff3d255609e404b16dbdf0f" title="Allocates an application message object for transmission.">Ucs_AmsTx_AllocMsg()</a> and specifying the needed amount of payload.</li>
+<li>Modify the attributes of the given message object.</li>
+<li>Take care not to modify <code>data_ptr</code>[] beyond the specified amount of payload.</li>
+<li>Transmit the message object by calling <a class="el" href="group___g___u_c_s___a_m_s_ga6486fc060d0aa8b1bb34851d2e63b755.html#ga6486fc060d0aa8b1bb34851d2e63b755" title="Transmits an application message.">Ucs_AmsTx_SendMsg()</a>.</li>
+<li>Optionally check the transmission result after the transmission has finished.</li>
+</ol>
+<p>The following example explains how to retrieve a message object with a payload size of 3 bytes. Be aware of the function <a class="el" href="group___g___u_c_s___a_m_s_gafbcfeaaa6ff3d255609e404b16dbdf0f.html#gafbcfeaaa6ff3d255609e404b16dbdf0f" title="Allocates an application message object for transmission.">Ucs_AmsTx_AllocMsg()</a> might return <code>NULL</code> if it is not possible to allocate the required amount of memory for the message.</p>
+<div class="fragment"><div class="line"><span class="keywordtype">void</span> App_SendMessage(<span class="keywordtype">void</span>)</div>
+<div class="line">{</div>
+<div class="line"> <a class="code" href="struct_ucs___ams_tx___msg__t.html" title="Application message Tx type.">Ucs_AmsTx_Msg_t</a> *tx_ptr = <a class="code" href="group___g___u_c_s___a_m_s_gafbcfeaaa6ff3d255609e404b16dbdf0f.html#gafbcfeaaa6ff3d255609e404b16dbdf0f" title="Allocates an application message object for transmission.">Ucs_AmsTx_AllocMsg</a>(20U);</div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">if</span> (tx_ptr != NULL)</div>
+<div class="line"> {</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd" title="Standard return codes used for synchronous response.">Ucs_Return_t</a> ret;</div>
+<div class="line"> tx_ptr-&gt;<a class="code" href="struct_ucs___ams_tx___msg__t_a9a199f6a8a711b94ff827e6807980cb3.html#a9a199f6a8a711b94ff827e6807980cb3" title="Destination address. Find some predefined addresses here.">destination_address</a> = 0x202U;</div>
+<div class="line"> tx_ptr-&gt;<a class="code" href="struct_ucs___ams_tx___msg__t_a689014fc11d4f26d264ddae2eaebc9d8.html#a689014fc11d4f26d264ddae2eaebc9d8" title="16bit message descriptor">msg_id</a> = 0x1234U;</div>
+<div class="line"> <span class="comment">/* it is possible to set a smaller data_size than */</span></div>
+<div class="line"> tx_ptr-&gt;<a class="code" href="struct_ucs___ams_tx___msg__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html#aae6bdbdf6ea1ad3da5af37f0a91d3ea0" title="The size of payload data in bytes.">data_size</a> = 3U; <span class="comment">/* earlier defined when calling Ucs_AmsTx_AllocMsg() */</span></div>
+<div class="line"> tx_ptr-&gt;<a class="code" href="struct_ucs___ams_tx___msg__t_a6166cef59cbe432be35512925debeae6.html#a6166cef59cbe432be35512925debeae6" title="Payload data.">data_ptr</a>[0] = 0xAAU;</div>
+<div class="line"> tx_ptr-&gt;<a class="code" href="struct_ucs___ams_tx___msg__t_a6166cef59cbe432be35512925debeae6.html#a6166cef59cbe432be35512925debeae6" title="Payload data.">data_ptr</a>[1] = 0xBBU;</div>
+<div class="line"> tx_ptr-&gt;<a class="code" href="struct_ucs___ams_tx___msg__t_a6166cef59cbe432be35512925debeae6.html#a6166cef59cbe432be35512925debeae6" title="Payload data.">data_ptr</a>[2] = 0xCCU;</div>
+<div class="line"></div>
+<div class="line"> ret = <a class="code" href="group___g___u_c_s___a_m_s_ga6486fc060d0aa8b1bb34851d2e63b755.html#ga6486fc060d0aa8b1bb34851d2e63b755" title="Transmits an application message.">Ucs_AmsTx_SendMsg</a>(tx_ptr, &amp;App_OnTxMessageComplete);</div>
+<div class="line"> (void)printf(<span class="stringliteral">&quot;App_SendMessage(): called, tx_ptr=0x%04p, ret=%02X\n&quot;</span>, tx_ptr, ret);</div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">if</span> (ret != <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda3fb51656e17ee4802f23706f35e349bc" title="Operation successfully completed.">UCS_RET_SUCCESS</a>)</div>
+<div class="line"> {</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___a_m_s_ga9e03946330dcc4ed4111b1d43714308d.html#ga9e03946330dcc4ed4111b1d43714308d" title="Frees an unused Tx message object.">Ucs_AmsTx_FreeUnusedMsg</a>(running_inst_ptr, tx_ptr);</div>
+<div class="line"> }</div>
+<div class="line"> }</div>
+<div class="line"> <span class="keywordflow">else</span></div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">/* not able to allocate enough memory for the message - wait until App_OnAmsTxMessageFreed() */</span></div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment --><p>As soon as the transmission has been completed, the Application Message Service will invoke the callback function that was passed to <a class="el" href="group___g___u_c_s___a_m_s_ga6486fc060d0aa8b1bb34851d2e63b755.html#ga6486fc060d0aa8b1bb34851d2e63b755" title="Transmits an application message.">Ucs_AmsTx_SendMsg()</a>. The application's callback function must have the function signature of <a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga60acfdd5b93a99906d751ac2f14623a9.html#ga60acfdd5b93a99906d751ac2f14623a9">Ucs_AmsTx_CompleteCb_t</a>. Within the callback function, the application is allowed to access the message object (read only). After the callback function has returned, the application is no longer allowed to access the message object.</p>
+<p>An example implementation of such a callback function is shown below.</p>
+<div class="fragment"><div class="line"><span class="keywordtype">void</span> App_OnTxMessageComplete(<a class="code" href="struct_ucs___ams_tx___msg__t.html" title="Application message Tx type.">Ucs_AmsTx_Msg_t</a>* msg_ptr, <a class="code" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#ga36b630c866dc0c03134f60e98be39f0b" title="Transmission result of an application message.">Ucs_AmsTx_Result_t</a> result, <a class="code" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#ga667b741121fdfbda2fe19fa23ffc7479" title="Detailed INIC transmission information which might be useful for debugging purposes.">Ucs_AmsTx_Info_t</a> info)</div>
+<div class="line">{</div>
+<div class="line"> <span class="keywordflow">if</span> (result == <a class="code" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0ba3213fda6aaa6f3b8caafcf08b75e4e65" title="The transmission succeeded.">UCS_AMSTX_RES_SUCCESS</a>)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">/* the transmission was finished successfully */</span></div>
+<div class="line"> }</div>
+<div class="line"> <span class="keywordflow">else</span></div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">/* the application has to retry later ... */</span></div>
+<div class="line"> }</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/* the application is not allowed to reuse this message object */</span></div>
+<div class="line">}</div>
+</div><!-- fragment --><h1>Transmission of External Payload</h1>
+<p>An application may also transmit an application message with "external" payload. This might be useful to avoid copy operations if the message payload is already available in a continuous memory chunk. Process the following steps in order to transmit an application message with external payload.</p>
+<ol type="1">
+<li>Prepare the external payload and take care that it is not modified during the transmission.</li>
+<li>Retrieve a message object by calling <a class="el" href="group___g___u_c_s___a_m_s_gafbcfeaaa6ff3d255609e404b16dbdf0f.html#gafbcfeaaa6ff3d255609e404b16dbdf0f" title="Allocates an application message object for transmission.">Ucs_AmsTx_AllocMsg()</a>. It is sufficient to pass "0" as <code>data_size</code>. So the Application Message Service will not allocate a separate memory chunk for the payload.</li>
+<li>Modify the attributes of the given message object.</li>
+<li>Set <code>data_ptr</code> to the external payload reference. Set <code>data_size</code> to define the desired amount of payload to transmit.</li>
+<li>Transmit the message object by calling <a class="el" href="group___g___u_c_s___a_m_s_ga6486fc060d0aa8b1bb34851d2e63b755.html#ga6486fc060d0aa8b1bb34851d2e63b755" title="Transmits an application message.">Ucs_AmsTx_SendMsg()</a>.</li>
+<li>Check the transmission result after the transmission has finished. The external payload is no longer used by the Application Message Service. I.e., the external payload may now be freed or reused for further transmission.</li>
+</ol>
+<p>The following example explains how to retrieve a message object and assign a predefined string as external payload. It is important to pass a callback function to <a class="el" href="group___g___u_c_s___a_m_s_ga6486fc060d0aa8b1bb34851d2e63b755.html#ga6486fc060d0aa8b1bb34851d2e63b755" title="Transmits an application message.">Ucs_AmsTx_SendMsg()</a>. The Application Message Service calls this function after the transmission is finished.</p>
+<div class="fragment"><div class="line"> <span class="comment">/* provide fixed string &quot;Hello&quot; */</span></div>
+<div class="line"><span class="keyword">static</span> uint8_t my_string[14] = {0x01,<span class="charliteral">&#39;H&#39;</span>,<span class="charliteral">&#39;e&#39;</span>,<span class="charliteral">&#39;l&#39;</span>,<span class="charliteral">&#39;l&#39;</span>,<span class="charliteral">&#39;o&#39;</span>,<span class="charliteral">&#39; &#39;</span>,<span class="charliteral">&#39;W&#39;</span>,<span class="charliteral">&#39;o&#39;</span>,<span class="charliteral">&#39;r&#39;</span>,<span class="charliteral">&#39;l&#39;</span>,<span class="charliteral">&#39;d&#39;</span>,<span class="charliteral">&#39;!&#39;</span>,0x00};</div>
+<div class="line"><span class="keyword">static</span> <span class="keywordtype">bool</span> string_in_use = <span class="keyword">false</span>; <span class="comment">/* avoid concurrent access */</span></div>
+<div class="line"></div>
+<div class="line"><span class="keywordtype">void</span> App_SendMessageExt(<span class="keywordtype">void</span>)</div>
+<div class="line">{</div>
+<div class="line"> <span class="keywordflow">if</span> (!string_in_use)</div>
+<div class="line"> {</div>
+<div class="line"> <a class="code" href="struct_ucs___ams_tx___msg__t.html" title="Application message Tx type.">Ucs_AmsTx_Msg_t</a> *tx_ptr = <a class="code" href="group___g___u_c_s___a_m_s_gafbcfeaaa6ff3d255609e404b16dbdf0f.html#gafbcfeaaa6ff3d255609e404b16dbdf0f" title="Allocates an application message object for transmission.">Ucs_AmsTx_AllocMsg</a>(0U); <span class="comment">/* define data_size &quot;0&quot; */</span></div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">if</span> (tx_ptr != NULL)</div>
+<div class="line"> {</div>
+<div class="line"> string_in_use = <span class="keyword">true</span>; <span class="comment">/* lock string against concurrent access */</span></div>
+<div class="line"> tx_ptr-&gt;<a class="code" href="struct_ucs___ams_tx___msg__t_a9a199f6a8a711b94ff827e6807980cb3.html#a9a199f6a8a711b94ff827e6807980cb3" title="Destination address. Find some predefined addresses here.">destination_address</a> = 0x202U;</div>
+<div class="line"> tx_ptr-&gt;<a class="code" href="struct_ucs___ams_tx___msg__t_a689014fc11d4f26d264ddae2eaebc9d8.html#a689014fc11d4f26d264ddae2eaebc9d8" title="16bit message descriptor">msg_id</a> = 0x1234U;</div>
+<div class="line"> tx_ptr-&gt;<a class="code" href="struct_ucs___ams_tx___msg__t_a6166cef59cbe432be35512925debeae6.html#a6166cef59cbe432be35512925debeae6" title="Payload data.">data_ptr</a> = my_string; <span class="comment">/* now set external data and size */</span></div>
+<div class="line"> tx_ptr-&gt;<a class="code" href="struct_ucs___ams_tx___msg__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html#aae6bdbdf6ea1ad3da5af37f0a91d3ea0" title="The size of payload data in bytes.">data_size</a> = 14U;</div>
+<div class="line"></div>
+<div class="line"> ret = <a class="code" href="group___g___u_c_s___a_m_s_ga6486fc060d0aa8b1bb34851d2e63b755.html#ga6486fc060d0aa8b1bb34851d2e63b755" title="Transmits an application message.">Ucs_AmsTx_SendMsg</a>(tx_ptr, &amp;App_OnTxStringComplete);</div>
+<div class="line"> (void)printf(<span class="stringliteral">&quot;App_SendMessage(): called, tx_ptr=0x%04p, ret=%02X\n&quot;</span>, tx_ptr, ret);</div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">if</span> (ret != <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda3fb51656e17ee4802f23706f35e349bc" title="Operation successfully completed.">UCS_RET_SUCCESS</a>)</div>
+<div class="line"> { <span class="comment">/* free memory if transmission is not possible */</span></div>
+<div class="line"> <a class="code" href="group___g___u_c_s___a_m_s_ga9e03946330dcc4ed4111b1d43714308d.html#ga9e03946330dcc4ed4111b1d43714308d" title="Frees an unused Tx message object.">Ucs_AmsTx_FreeUnusedMsg</a>(running_inst_ptr, tx_ptr);</div>
+<div class="line"> string_in_use = <span class="keyword">false</span>;</div>
+<div class="line"> }</div>
+<div class="line"> }</div>
+<div class="line"> <span class="keywordflow">else</span></div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">/* not able to allocate enough memory for the message - wait until App_OnAmsTxMessageFreed() */</span></div>
+<div class="line"> }</div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment --><p>After completed transmission, the Application Message Service will invoke the callback function that was passed to <a class="el" href="group___g___u_c_s___a_m_s_ga6486fc060d0aa8b1bb34851d2e63b755.html#ga6486fc060d0aa8b1bb34851d2e63b755" title="Transmits an application message.">Ucs_AmsTx_SendMsg()</a>. The application is responsible to free or reuse the external payload. The Application Message Service will no longer access it.</p>
+<div class="fragment"><div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> App_OnTxStringComplete(<a class="code" href="struct_ucs___ams_tx___msg__t.html" title="Application message Tx type.">Ucs_AmsTx_Msg_t</a>* msg_ptr, <a class="code" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#ga36b630c866dc0c03134f60e98be39f0b" title="Transmission result of an application message.">Ucs_AmsTx_Result_t</a> result, <a class="code" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#ga667b741121fdfbda2fe19fa23ffc7479" title="Detailed INIC transmission information which might be useful for debugging purposes.">Ucs_AmsTx_Info_t</a> info)</div>
+<div class="line">{</div>
+<div class="line"> uint8_t* payload_ptr;</div>
+<div class="line"> </div>
+<div class="line"> <span class="comment">/* ... handle transmission result ... */</span></div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">if</span> (msg_ptr-&gt;<a class="code" href="struct_ucs___ams_tx___msg__t_a6166cef59cbe432be35512925debeae6.html#a6166cef59cbe432be35512925debeae6" title="Payload data.">data_ptr</a> == my_string) <span class="comment">/* message object has shared string resource ? */</span></div>
+<div class="line"> {</div>
+<div class="line"> string_in_use = <span class="keyword">false</span>; <span class="comment">/* unlock string usage */</span></div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment --><h1>Reception of Messages</h1>
+<p>By calling <a class="el" href="struct_ucs___ams_rx___init_data__t_a94cec5846cb407141e9c1e1a2ea205d3.html#a94cec5846cb407141e9c1e1a2ea205d3">ams.rx.message_received_fptr()</a> the AMS notifies that a new Rx message was received and has been added to the Rx queue. It is recommended that the application processes the Rx queue asynchronously, i.e., not within the <a class="el" href="struct_ucs___ams_rx___init_data__t_a94cec5846cb407141e9c1e1a2ea205d3.html#a94cec5846cb407141e9c1e1a2ea205d3">ams.rx.message_received_fptr()</a>. Therefore, the AMS provides the functions <a class="el" href="group___g___u_c_s___a_m_s_gab096e481474195cc57d4d801f1d295f2.html#gab096e481474195cc57d4d801f1d295f2" title="Retrieves a reference to the front-most message in the Rx queue.">Ucs_AmsRx_PeekMsg()</a>, <a class="el" href="group___g___u_c_s___a_m_s_ga6f571e2e15fac1e4be068cdf0ccac44d.html#ga6f571e2e15fac1e4be068cdf0ccac44d" title="Removes and frees the front-most message from the Rx queue.">Ucs_AmsRx_ReleaseMsg()</a> and <a class="el" href="group___g___u_c_s___a_m_s_ga9fe2ca761b3856b5e7c3446cc49e90ad.html#ga9fe2ca761b3856b5e7c3446cc49e90ad" title="Retrieves the number of messages that are located in the Rx queue.">Ucs_AmsRx_GetMsgCnt()</a>. The example shows that the callback function is implemented to set the variable <code>_process_rx</code> to <code>true</code>. The following main loop will process Rx messages if the variable is set. Instead of implementing the callback function it is also possible to use <a class="el" href="group___g___u_c_s___a_m_s_ga9fe2ca761b3856b5e7c3446cc49e90ad.html#ga9fe2ca761b3856b5e7c3446cc49e90ad" title="Retrieves the number of messages that are located in the Rx queue.">Ucs_AmsRx_GetMsgCnt()</a> to retrieve the number of available messages in the Rx queue.</p>
+<div class="fragment"><div class="line"><span class="keywordtype">void</span> App_OnAmsRxComplete(<span class="keywordtype">void</span>)</div>
+<div class="line">{</div>
+<div class="line"> <span class="comment">/* A new application message was received. */</span></div>
+<div class="line"> <span class="comment">/* Trigger an event to process the Rx queue asynchronously. */</span></div>
+<div class="line">} </div>
+<div class="line"></div>
+<div class="line"><span class="keywordtype">int</span> main(<span class="keywordtype">void</span>)</div>
+<div class="line">{</div>
+<div class="line"> <span class="comment">/* initialization */</span></div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">while</span> (_running)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">/* ... */</span> <span class="comment">/* driving UNICENS and low-level driver */</span></div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">if</span> (<a class="code" href="group___g___u_c_s___a_m_s_ga9fe2ca761b3856b5e7c3446cc49e90ad.html#ga9fe2ca761b3856b5e7c3446cc49e90ad" title="Retrieves the number of messages that are located in the Rx queue.">Ucs_AmsRx_GetMsgCnt</a>() &gt; 0U) <span class="comment">/* process all Rx messages in AMS queue */</span></div>
+<div class="line"> {</div>
+<div class="line"> <a class="code" href="struct_ucs___ams_rx___msg__t.html" title="Application message Rx type.">Ucs_AmsRx_Msg_t</a> *msg_ptr;</div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">for</span> (msg_ptr = <a class="code" href="group___g___u_c_s___a_m_s_gab096e481474195cc57d4d801f1d295f2.html#gab096e481474195cc57d4d801f1d295f2" title="Retrieves a reference to the front-most message in the Rx queue.">Ucs_AmsRx_PeekMsg</a>(); msg_ptr != NULL; msg_ptr = <a class="code" href="group___g___u_c_s___a_m_s_gab096e481474195cc57d4d801f1d295f2.html#gab096e481474195cc57d4d801f1d295f2" title="Retrieves a reference to the front-most message in the Rx queue.">Ucs_AmsRx_PeekMsg</a>())</div>
+<div class="line"> {</div>
+<div class="line"> uint16_t cnt;</div>
+<div class="line"></div>
+<div class="line"> (void)printf(<span class="stringliteral">&quot;AMS RX: from %04X -&gt; ID-%04X [ &quot;</span>, msg_ptr-&gt;<a class="code" href="struct_ucs___ams_rx___msg__t_abb27f24f389ff3575a5ee33e74e66eb6.html#abb27f24f389ff3575a5ee33e74e66eb6" title="Source address.">source_address</a>, msg_ptr-&gt;<a class="code" href="struct_ucs___ams_rx___msg__t_a689014fc11d4f26d264ddae2eaebc9d8.html#a689014fc11d4f26d264ddae2eaebc9d8" title="16bit message descriptor">msg_id</a>);</div>
+<div class="line"> <span class="keywordflow">for</span> (cnt = 0U; cnt &lt; msg_ptr-&gt;<a class="code" href="struct_ucs___ams_rx___msg__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html#aae6bdbdf6ea1ad3da5af37f0a91d3ea0" title="Payload size in bytes.">data_size</a>; cnt++)</div>
+<div class="line"> {</div>
+<div class="line"> (void)printf(<span class="stringliteral">&quot;%02X &quot;</span>, msg_ptr-&gt;<a class="code" href="struct_ucs___ams_rx___msg__t_a6166cef59cbe432be35512925debeae6.html#a6166cef59cbe432be35512925debeae6" title="Reference to payload.">data_ptr</a>[cnt]);</div>
+<div class="line"> }</div>
+<div class="line"> (void)printf(<span class="stringliteral">&quot;]\n&quot;</span>);</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/* ... */</span> <span class="comment">/* process message now */</span></div>
+<div class="line"></div>
+<div class="line"> <a class="code" href="group___g___u_c_s___a_m_s_ga6f571e2e15fac1e4be068cdf0ccac44d.html#ga6f571e2e15fac1e4be068cdf0ccac44d" title="Removes and frees the front-most message from the Rx queue.">Ucs_AmsRx_ReleaseMsg</a>(); <span class="comment">/* free message and remove it from the queue */</span> </div>
+<div class="line"> }</div>
+<div class="line"> }</div>
+<div class="line"> }</div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">return</span> 0;</div>
+<div class="line">}</div>
+</div><!-- fragment --><p>The asynchronous processing of the AMS Rx queue provides a comfortable way to process messages at the best moment for the application. During high message load it is possible that the application is not able to respond to a message immediately. In that case the application shall not call <a class="el" href="group___g___u_c_s___a_m_s_ga6f571e2e15fac1e4be068cdf0ccac44d.html#ga6f571e2e15fac1e4be068cdf0ccac44d" title="Removes and frees the front-most message from the Rx queue.">Ucs_AmsRx_ReleaseMsg()</a>. Later, when it is able to process the message it can retrieve the same Rx message object by calling <a class="el" href="group___g___u_c_s___a_m_s_gab096e481474195cc57d4d801f1d295f2.html#gab096e481474195cc57d4d801f1d295f2" title="Retrieves a reference to the front-most message in the Rx queue.">Ucs_AmsRx_PeekMsg()</a>.</p>
+<dl class="section note"><dt>Note</dt><dd>It is possible that <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga649fb9128df6f634fc86aa03b374d822.html#ga649fb9128df6f634fc86aa03b374d822" title="The application must call this function cyclically to drive UNICENS.">Ucs_Service()</a> flushes the AMS Rx queue. Hence, a reference returned by <a class="el" href="group___g___u_c_s___a_m_s_gab096e481474195cc57d4d801f1d295f2.html#gab096e481474195cc57d4d801f1d295f2" title="Retrieves a reference to the front-most message in the Rx queue.">Ucs_AmsRx_PeekMsg()</a> may become invalid during the call of <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga649fb9128df6f634fc86aa03b374d822.html#ga649fb9128df6f634fc86aa03b374d822" title="The application must call this function cyclically to drive UNICENS.">Ucs_Service()</a>. It is recommended to call <a class="el" href="group___g___u_c_s___a_m_s_gab096e481474195cc57d4d801f1d295f2.html#gab096e481474195cc57d4d801f1d295f2" title="Retrieves a reference to the front-most message in the Rx queue.">Ucs_AmsRx_PeekMsg()</a>, do the Rx message processing and call <a class="el" href="group___g___u_c_s___a_m_s_ga6f571e2e15fac1e4be068cdf0ccac44d.html#ga6f571e2e15fac1e4be068cdf0ccac44d" title="Removes and frees the front-most message from the Rx queue.">Ucs_AmsRx_ReleaseMsg()</a> in one go. If the application does not call <a class="el" href="group___g___u_c_s___a_m_s_ga6f571e2e15fac1e4be068cdf0ccac44d.html#ga6f571e2e15fac1e4be068cdf0ccac44d" title="Removes and frees the front-most message from the Rx queue.">Ucs_AmsRx_ReleaseMsg()</a> because it cannot finish the message processing, it is recommended to retry <a class="el" href="group___g___u_c_s___a_m_s_gab096e481474195cc57d4d801f1d295f2.html#gab096e481474195cc57d4d801f1d295f2" title="Retrieves a reference to the front-most message in the Rx queue.">Ucs_AmsRx_PeekMsg()</a> when message processing is possible again.</dd></dl>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_api">&#160;</td><td>See also <em>API Reference</em>, section <a class="el" href="group___g___u_c_s___a_m_s.html">Application Message Service</a>. </td></tr>
+</table>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__c_m_d.html b/ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__c_m_d.html
new file mode 100644
index 0000000..ce4d6ae
--- /dev/null
+++ b/ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__c_m_d.html
@@ -0,0 +1,207 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Command Interpreter</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_p__u_m__s_t_a_r_t_e_d__c_m_d.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Command Interpreter </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><h1>Introduction</h1>
+<p>The Command Interpreter provides structures and functions for parsing incoming messages.</p>
+<p><b>Features:</b></p>
+<ul>
+<li>allows dynamic adding and removing of MessageId Table</li>
+<li>calls the belonging handler function</li>
+</ul>
+<p>The application provides a MessageId Table which contains all supported MessageIds together with their belonging handler functions. The MessageId Table is an array of <a class="el" href="struct_ucs___cmd___msg_id__t.html" title="Structure of a single element of the MessageId Table.">Ucs_Cmd_MsgId_t</a> elements. Each element contains a MessageId (0x0000 .. 0xFFFE) and a pointer to the belonging handler function. The table ends with the termination entry {<a class="el" href="group___g___u_c_s___c_m_d___t_y_p_e_s_ga5a43bcb8d64270611848455343857bc8.html#ga5a43bcb8d64270611848455343857bc8">UCS_CMD_MSGID_TERMINATION</a>, NULL}.</p>
+<h1>Usage</h1>
+<p>The application announces the MessageId Table with the function <a class="el" href="group___g___u_c_s___c_m_d_ga70c8351102177badff83fe412c4962b7.html#ga70c8351102177badff83fe412c4962b7" title="Add a MessageId Table to the Command Interpreter.">Ucs_Cmd_AddMsgIdTable()</a>. The connection to the MessageId Table can be removed with the function <a class="el" href="group___g___u_c_s___c_m_d_gafe38ecf4cd5bc81074af03affa2374a4.html#gafe38ecf4cd5bc81074af03affa2374a4" title="Remove a MessageId Table from the Command Interpreter.">Ucs_Cmd_RemoveMsgIdTable()</a>.</p>
+<p>A received message is given to <a class="el" href="group___g___u_c_s___c_m_d_gaaad9e557acfca6cc8c125c7b191515f1.html#gaaad9e557acfca6cc8c125c7b191515f1" title="Decode an MCM message.">Ucs_Cmd_DecodeMsg()</a>. This function retrieves the MessageId from the message and calls the belonging handler function. The handler function can return three values:</p>
+<table class="doxtable">
+<tr>
+<th>Value </th><th>Description</th></tr>
+<tr>
+<td>UCS_CMD_RET_SUCCESS </td><td>The handler function succeeded. </td></tr>
+<tr>
+<td>UCS_CMD_RET_ERR_TX_BUSY </td><td>The handler function could not send an answer because no free Tx Buffer was available. </td></tr>
+<tr>
+<td>UCS_CMD_RET_ERR_APPL </td><td>An error happened in handler function. </td></tr>
+</table>
+<h1>Example</h1>
+<p>The following code example shows how the Command Interpreter API function can be used:</p>
+<div class="fragment"><div class="line"><a class="code" href="struct_ucs___cmd___msg_id__t.html" title="Structure of a single element of the MessageId Table.">Ucs_Cmd_MsgId_t</a> App_MsgIdTable[] = </div>
+<div class="line">{</div>
+<div class="line"> { 0x1234U, App_Handler_1234},</div>
+<div class="line"> { 0x1238U, App_Handler_1238},</div>
+<div class="line"> { <a class="code" href="group___g___u_c_s___c_m_d___t_y_p_e_s_ga5a43bcb8d64270611848455343857bc8.html#ga5a43bcb8d64270611848455343857bc8" title="Denotes the end of an MessageId Table.">UCS_CMD_MSGID_TERMINATION</a>, NULL } </div>
+<div class="line">};</div>
+<div class="line"></div>
+<div class="line"></div>
+<div class="line"><span class="keywordtype">void</span> main(uint8_t argc, <span class="keywordtype">char</span> *argv[])</div>
+<div class="line">{</div>
+<div class="line"> ...</div>
+<div class="line"> </div>
+<div class="line"> <a class="code" href="group___g___u_c_s___c_m_d_ga70c8351102177badff83fe412c4962b7.html#ga70c8351102177badff83fe412c4962b7" title="Add a MessageId Table to the Command Interpreter.">Ucs_Cmd_AddMsgIdTable</a>(ucs_inst_ptr, &amp;App_MsgIdTable[0]);</div>
+<div class="line"> </div>
+<div class="line"> ...</div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">while</span>(1)</div>
+<div class="line"> {</div>
+<div class="line"> <a class="code" href="struct_ucs___ams_rx___msg__t.html" title="Application message Rx type.">Ucs_AmsRx_Msg_t</a> *msg_rx_ptr = <a class="code" href="group___g___u_c_s___a_m_s_gab096e481474195cc57d4d801f1d295f2.html#gab096e481474195cc57d4d801f1d295f2" title="Retrieves a reference to the front-most message in the Rx queue.">Ucs_AmsRx_PeekMsg</a>(ucs_inst_ptr);</div>
+<div class="line"> <span class="keywordflow">if</span> (msg_rx_ptr != NULL)</div>
+<div class="line"> {</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#ga91f6db002b6fe98cdeb2969b19131cbb" title="Result codes used for Command Interpreter API functions.">Ucs_Cmd_Return_t</a> cmd_ret;</div>
+<div class="line"></div>
+<div class="line"> cmd_ret = <a class="code" href="group___g___u_c_s___c_m_d_gaaad9e557acfca6cc8c125c7b191515f1.html#gaaad9e557acfca6cc8c125c7b191515f1" title="Decode an MCM message.">Ucs_Cmd_DecodeMsg</a>(ucs_inst_ptr, msg_rx_ptr);</div>
+<div class="line"> <span class="keywordflow">if</span> (cmd_ret == <a class="code" href="group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#gga91f6db002b6fe98cdeb2969b19131cbba30cf8ec25015b74f098bb0e1e501d7c6">UCS_CMD_RET_SUCCESS</a>)</div>
+<div class="line"> {</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___a_m_s_ga6f571e2e15fac1e4be068cdf0ccac44d.html#ga6f571e2e15fac1e4be068cdf0ccac44d" title="Removes and frees the front-most message from the Rx queue.">Ucs_AmsRx_ReleaseMsg</a>(ucs_inst_ptr);</div>
+<div class="line"> }</div>
+<div class="line"> <span class="keywordflow">else</span></div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">/* appropriate error handling */</span> </div>
+<div class="line"> }</div>
+<div class="line"> }</div>
+<div class="line"> }</div>
+<div class="line"> }</div>
+<div class="line"></div>
+<div class="line"><a class="code" href="group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#ga91f6db002b6fe98cdeb2969b19131cbb" title="Result codes used for Command Interpreter API functions.">Ucs_Cmd_Return_t</a> App_Handler_1234(<a class="code" href="struct_ucs___ams_rx___msg__t.html" title="Application message Rx type.">Ucs_AmsRx_Msg_t</a> *msg_rx_ptr, <span class="keywordtype">void</span> *user_ptr) </div>
+<div class="line">{</div>
+<div class="line"> uint16_t cnt;</div>
+<div class="line"> </div>
+<div class="line"> <span class="comment">/* print source address */</span></div>
+<div class="line"> (void)printf(<span class="stringliteral">&quot;App_Handler_1234() called from 0x%04X.\n&quot;</span>, msg_rx_ptr-&gt;<a class="code" href="struct_ucs___ams_rx___msg__t_abb27f24f389ff3575a5ee33e74e66eb6.html#abb27f24f389ff3575a5ee33e74e66eb6" title="Source address.">source_address</a>);</div>
+<div class="line"> </div>
+<div class="line"> <span class="comment">/* print payload */</span></div>
+<div class="line"> (void)printf(<span class="stringliteral">&quot; Payload: &quot;</span>);</div>
+<div class="line"> <span class="keywordflow">for</span> (cnt = 0U; cnt &lt; msg_rx_ptr-&gt;<a class="code" href="struct_ucs___ams_rx___msg__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html#aae6bdbdf6ea1ad3da5af37f0a91d3ea0" title="Payload size in bytes.">data_size</a>; cnt++)</div>
+<div class="line"> {</div>
+<div class="line"> (void)printf(<span class="stringliteral">&quot;%02X &quot;</span>, msg_rx_ptr-&gt;<a class="code" href="struct_ucs___ams_rx___msg__t_a6166cef59cbe432be35512925debeae6.html#a6166cef59cbe432be35512925debeae6" title="Reference to payload.">data_ptr</a>[cnt]);</div>
+<div class="line"> }</div>
+<div class="line"> (void)printf(<span class="stringliteral">&quot;\n&quot;</span>);</div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">return</span> <a class="code" href="group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#gga91f6db002b6fe98cdeb2969b19131cbba30cf8ec25015b74f098bb0e1e501d7c6">UCS_CMD_RET_SUCCESS</a>;</div>
+<div class="line">}</div>
+<div class="line"></div>
+<div class="line"><a class="code" href="group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#ga91f6db002b6fe98cdeb2969b19131cbb" title="Result codes used for Command Interpreter API functions.">Ucs_Cmd_Return_t</a> App_Handler_1238(<a class="code" href="struct_ucs___ams_rx___msg__t.html" title="Application message Rx type.">Ucs_AmsRx_Msg_t</a> *msg_rx_ptr, <span class="keywordtype">void</span> *user_ptr) </div>
+<div class="line">{</div>
+<div class="line"> uint16_t cnt;</div>
+<div class="line"> </div>
+<div class="line"> <span class="comment">/* print source address */</span></div>
+<div class="line"> (void)printf(<span class="stringliteral">&quot;App_Handler_1238() called from 0x%04X.\n&quot;</span>, msg_rx_ptr-&gt;<a class="code" href="struct_ucs___ams_rx___msg__t_abb27f24f389ff3575a5ee33e74e66eb6.html#abb27f24f389ff3575a5ee33e74e66eb6" title="Source address.">source_address</a>);</div>
+<div class="line"> </div>
+<div class="line"> <span class="comment">/* print payload */</span></div>
+<div class="line"> (void)printf(<span class="stringliteral">&quot; Payload: &quot;</span>);</div>
+<div class="line"> <span class="keywordflow">for</span> (cnt = 0U; cnt &lt; msg_rx_ptr-&gt;<a class="code" href="struct_ucs___ams_rx___msg__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html#aae6bdbdf6ea1ad3da5af37f0a91d3ea0" title="Payload size in bytes.">data_size</a>; cnt++)</div>
+<div class="line"> {</div>
+<div class="line"> (void)printf(<span class="stringliteral">&quot;%02X &quot;</span>, msg_rx_ptr-&gt;<a class="code" href="struct_ucs___ams_rx___msg__t_a6166cef59cbe432be35512925debeae6.html#a6166cef59cbe432be35512925debeae6" title="Reference to payload.">data_ptr</a>[cnt]);</div>
+<div class="line"> }</div>
+<div class="line"> (void)printf(<span class="stringliteral">&quot;\n&quot;</span>);</div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">return</span> <a class="code" href="group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#gga91f6db002b6fe98cdeb2969b19131cbba30cf8ec25015b74f098bb0e1e501d7c6">UCS_CMD_RET_SUCCESS</a>;</div>
+<div class="line">}</div>
+</div><!-- fragment --> </div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__i_n_i_t.html b/ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__i_n_i_t.html
new file mode 100644
index 0000000..838cb1e
--- /dev/null
+++ b/ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__i_n_i_t.html
@@ -0,0 +1,195 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Initialization</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_p__u_m__s_t_a_r_t_e_d__i_n_i_t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Initialization </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><h1>Retrieving an API Instance</h1>
+<p>UNICENS supports to access multiple instances within one process space. One UNICENS API instance is dedicated to one INIC the associated network. Hence, it is possible to deal with multiple networks within one process space. The maximum number of UNICENS API instances must be configured in <code>ucs_cfg.h</code>.</p>
+<p>The following definition configures UNICENS to be used with 2 INICs. </p>
+<div class="fragment"><div class="line"><span class="comment">/* Number of API instances which can be created by function Ucs_CreateInstance().</span></div>
+<div class="line"><span class="comment"> Valid range: 1..10. Default value: 1.</span></div>
+<div class="line"><span class="comment"> */</span></div>
+<div class="line"><span class="preprocessor">#define UCS_NUM_INSTANCES 2</span></div>
+</div><!-- fragment --><p>Accordingly UNICENS can provide 2 API instances that can be retrieved by calling <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga85a99b5d236b29e2d598bef51edad638.html#ga85a99b5d236b29e2d598bef51edad638" title="Retrieves a UNICENS API instance.">Ucs_CreateInstance()</a>. The retrieved instance remains valid until the process ends. There is no need to return or re-create an already retrieved instance. The following code shows how to retrieve one API instance.</p>
+<div class="fragment"><div class="line"><span class="comment">/* create UNICENS API instance */</span></div>
+<div class="line"><a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda" title="UNICENS instance.">Ucs_Inst_t</a>* inst_ptr = NULL;</div>
+<div class="line">inst_ptr = <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga85a99b5d236b29e2d598bef51edad638.html#ga85a99b5d236b29e2d598bef51edad638" title="Retrieves a UNICENS API instance.">Ucs_CreateInstance</a>();</div>
+<div class="line"></div>
+<div class="line"><span class="keywordflow">if</span> (inst_ptr == NULL)</div>
+<div class="line">{</div>
+<div class="line"> <span class="comment">/* UNICENS cannot any further API instance.</span></div>
+<div class="line"><span class="comment"> Check configuration MACRO UCS_NUM_INSTANCES.</span></div>
+<div class="line"><span class="comment"> */</span></div>
+<div class="line"> <span class="keywordflow">return</span>; </div>
+<div class="line">}</div>
+</div><!-- fragment --><h1>Configuration Structure</h1>
+<p>The application has to prepare a configuration structure in order to initialize UNICENS. Therefore, it has to provide a <a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t</a> variable. It is recommended to set the variable to default values by calling <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga64b50780725a0dc8693b5b73f8345ad6.html#ga64b50780725a0dc8693b5b73f8345ad6" title="Assigns default values to a provided UNICENS init structure.">Ucs_SetDefaultConfig()</a>. After that the application shall set specific attributes of the variable. The function <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga64b50780725a0dc8693b5b73f8345ad6.html#ga64b50780725a0dc8693b5b73f8345ad6" title="Assigns default values to a provided UNICENS init structure.">Ucs_SetDefaultConfig()</a> can be called at any time and is not bound up with a certain API instance.</p>
+<div class="fragment"><div class="line"><a class="code" href="struct_ucs___init_data__t.html" title="UNICENS initialization structure used by function Ucs_Init().">Ucs_InitData_t</a> init_data;</div>
+<div class="line"><a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga64b50780725a0dc8693b5b73f8345ad6.html#ga64b50780725a0dc8693b5b73f8345ad6" title="Assigns default values to a provided UNICENS init structure.">Ucs_SetDefaultConfig</a>(&amp;init_data);</div>
+</div><!-- fragment --><p>After the function returns, the application has to setup the configuration settings. The following section shows an example configuration.</p>
+<div class="fragment"><div class="line">init_data.<a class="code" href="struct_ucs___init_data__t_a41f828ebbe67a574ee39abd6c054bb6c.html#a41f828ebbe67a574ee39abd6c054bb6c" title="Optional reference to a user context which is provided within API callback functions.">user_ptr</a> = &amp;my_class;</div>
+<div class="line"></div>
+<div class="line"><span class="comment">/* General Section */</span></div>
+<div class="line">init_data.<a class="code" href="struct_ucs___init_data__t_a43e7559dfe1bc2860cb0d2749fa66071.html#a43e7559dfe1bc2860cb0d2749fa66071" title="General initialization data.">general</a>.<a class="code" href="struct_ucs___general___init_data__t_aa197d5a04c7eee7b95eb9e1de232d161.html#aa197d5a04c7eee7b95eb9e1de232d161" title="Mandatory callback function notifying an error that terminates the API.">error_fptr</a> = &amp;App_OnGeneralError;</div>
+<div class="line">init_data.<a class="code" href="struct_ucs___init_data__t_a43e7559dfe1bc2860cb0d2749fa66071.html#a43e7559dfe1bc2860cb0d2749fa66071" title="General initialization data.">general</a>.<a class="code" href="struct_ucs___general___init_data__t_a4e1140be3951f0e14d4071840f4ebc8e.html#a4e1140be3951f0e14d4071840f4ebc8e" title="Mandatory callback function querying the actual system tick count.">get_tick_count_fptr</a> = &amp;App_OnGetTickCount;</div>
+<div class="line"></div>
+<div class="line"><span class="comment">/* LLD Section */</span> </div>
+<div class="line">init_data.<a class="code" href="struct_ucs___init_data__t_ac0b0a4478bafe6e81ed3c3e2c72f4fc9.html#ac0b0a4478bafe6e81ed3c3e2c72f4fc9" title="Comprises assignment to low-level driver communication interfaces.">lld</a>.<a class="code" href="struct_ucs___lld___callbacks__t_a44afa0156353f9fba156ff0c91873968.html#a44afa0156353f9fba156ff0c91873968" title="Optional pointer that is passed when invoking a callback function which is assigned in Ucs_Lld_Callba...">lld_user_ptr</a> = &amp;my_lld_class;</div>
+<div class="line">init_data.<a class="code" href="struct_ucs___init_data__t_ac0b0a4478bafe6e81ed3c3e2c72f4fc9.html#ac0b0a4478bafe6e81ed3c3e2c72f4fc9" title="Comprises assignment to low-level driver communication interfaces.">lld</a>.<a class="code" href="struct_ucs___lld___callbacks__t_a96bad24b6b49ffacfd9136230447cb22.html#a96bad24b6b49ffacfd9136230447cb22" title="Callback function to initialize the low-level driver and start the transmission and reception of mess...">start_fptr</a> = &amp;Lld_Start;</div>
+<div class="line">init_data.<a class="code" href="struct_ucs___init_data__t_ac0b0a4478bafe6e81ed3c3e2c72f4fc9.html#ac0b0a4478bafe6e81ed3c3e2c72f4fc9" title="Comprises assignment to low-level driver communication interfaces.">lld</a>.<a class="code" href="struct_ucs___lld___callbacks__t_ab0f955ca90942fda14ac12500422a437.html#ab0f955ca90942fda14ac12500422a437" title="Callback function to stop/abort the transmission and reception of messages.">stop_fptr</a> = &amp;Lld_Stop;</div>
+<div class="line">init_data.<a class="code" href="struct_ucs___init_data__t_ac0b0a4478bafe6e81ed3c3e2c72f4fc9.html#ac0b0a4478bafe6e81ed3c3e2c72f4fc9" title="Comprises assignment to low-level driver communication interfaces.">lld</a>.<a class="code" href="struct_ucs___lld___callbacks__t_ad8f7d021075e06672a999eb02da1d2e4.html#ad8f7d021075e06672a999eb02da1d2e4" title="Callback function to transmit one or multiple messages to the INIC.">tx_transmit_fptr</a> = &amp;Lld_TxTransmit;</div>
+<div class="line">init_data.<a class="code" href="struct_ucs___init_data__t_ac0b0a4478bafe6e81ed3c3e2c72f4fc9.html#ac0b0a4478bafe6e81ed3c3e2c72f4fc9" title="Comprises assignment to low-level driver communication interfaces.">lld</a>.<a class="code" href="struct_ucs___lld___callbacks__t_a90fa6db664734c2446327b71c51f5b52.html#a90fa6db664734c2446327b71c51f5b52" title="Callback function which is invoked as soon as Rx message objects are available again.">rx_available_fptr</a> = &amp;Lld_RxMsgAvailable;</div>
+<div class="line"></div>
+<div class="line"><span class="comment">/* Node Discovery Section */</span> </div>
+<div class="line">init_data.<a class="code" href="struct_ucs___init_data__t_a97b13c03602cc54884ae1765c518bd7b.html#a97b13c03602cc54884ae1765c518bd7b" title="The initialization data of the Node Discovery.">nd</a>.<a class="code" href="struct_ucs___nd___init_data__t_a98b9ccad2c6c5fa2edaf472151ee853c.html#a98b9ccad2c6c5fa2edaf472151ee853c" title="Callback function reporting the results of the Node Discovery service.">report_fptr</a> = &amp;App_OnNodeDiscoveryResult;</div>
+<div class="line">init_data.<a class="code" href="struct_ucs___init_data__t_a97b13c03602cc54884ae1765c518bd7b.html#a97b13c03602cc54884ae1765c518bd7b" title="The initialization data of the Node Discovery.">nd</a>.<a class="code" href="struct_ucs___nd___init_data__t_ab9bc02a84c7daeff234344541d41be62.html#ab9bc02a84c7daeff234344541d41be62" title="Callback function asking for evaluation of the found signature.">eval_fptr</a> = &amp;App_OnNodeDiscoveryEval;</div>
+</div><!-- fragment --><h2>User References</h2>
+<p>By assigning <a class="el" href="struct_ucs___init_data__t.html">init_data.user_ptr</a> and <a class="el" href="struct_ucs___lld___callbacks__t.html">init_data.lld.lld_user_ptr</a> the application is able assign references of own objects to a certain UNICENS API instance. E.g., when driving 2 API instances the application can assign 2 different LLD objects. When UNICENS invokes LLD callback functions then one argument will provide the assigned lld_user_ptr. The application can simply forward the call to the actual LLD object.</p>
+<div class="fragment"><div class="line"><span class="keywordtype">void</span> Lld_TxTransmit(<a class="code" href="struct_ucs___lld___tx_msg__t.html" title="Tx message object providing the raw port message byte stream.">Ucs_Lld_TxMsg_t</a> *msg_ptr, <span class="keywordtype">void</span> *lld_user_ptr)</div>
+<div class="line">{</div>
+<div class="line"> CMyLldClass *my_lld = (CMyLldClass*)lld_user_ptr;</div>
+<div class="line"> my_lld-&gt;Transmit(msg_ptr);</div>
+<div class="line">}</div>
+</div><!-- fragment --><h2>General Configuration</h2>
+<p>The callback <code>general.error_fptr()</code> is called if a general error occurs. The callback must adhere to function signature <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga64926a6a194cfb06703835e3d06475c6.html#ga64926a6a194cfb06703835e3d06475c6">Ucs_ErrorCb_t</a>. If a general error occurs the application must trigger a re-initialization of UNICENS. A simple example implementation is shown below.</p>
+<dl class="section note"><dt>Note</dt><dd><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_gaea8d7735d41853167a2befdc06febe43.html#gaea8d7735d41853167a2befdc06febe43" title="UNICENS initialization function.">Ucs_Init()</a> must not be called within <code>general.error_fptr()</code>!</dd></dl>
+<div class="fragment"><div class="line"><span class="keywordtype">void</span> App_OnGeneralError(<a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga9551cd80ce8a13fa6cce717cbc13e499.html#ga9551cd80ce8a13fa6cce717cbc13e499" title="UNICENS general error codes.">Ucs_Error_t</a> error_code, <span class="keywordtype">void</span> *user_ptr)</div>
+<div class="line">{</div>
+<div class="line"> printf(<span class="stringliteral">&quot;General Error Occurred (Code: %u).\n\r&quot;</span>, error_code);</div>
+<div class="line"> App_TriggerReInit(); <span class="comment">/* cleanup and re-initialize when leaving Ucs_Service() */</span></div>
+<div class="line">}</div>
+</div><!-- fragment --><h2>Timer Configuration</h2>
+<p>The UNICENS timer management requires a timer tick in <b>milliseconds</b> that is gathered via the callback <code>general.get_tick_count_fptr()</code>. The callback must adhere to function signature <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga981854177aa9ebd554ab522199193bd3.html#ga981854177aa9ebd554ab522199193bd3">Ucs_GetTickCountCb_t</a>. An example implementation for a <em>Windows</em> platform is shown below.</p>
+<div class="fragment"><div class="line">uint16_t App_OnGetTickCount(<span class="keywordtype">void</span> *user_ptr)</div>
+<div class="line">{</div>
+<div class="line"> DWORD tc = GetTickCount(); <span class="comment">/* Get current tick count in milliseconds */</span></div>
+<div class="line"> <span class="keywordflow">return</span> (uint16_t)tc;</div>
+<div class="line">}</div>
+</div><!-- fragment --><h1>Initialization</h1>
+<p>The function <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_gaea8d7735d41853167a2befdc06febe43.html#gaea8d7735d41853167a2befdc06febe43" title="UNICENS initialization function.">Ucs_Init()</a> must be called by the application to initialize one UNICENS API instance. library. The first argument is the reference to the API instance. The second argument is the reference to the initialization structure. The third argument is optional and can provide the reference to a result callback function. It is highly recommended to use the result callback to be able to handle possible errors during the initialization.</p>
+<div class="fragment"><div class="line"><span class="keywordtype">void</span> App_Init(<span class="keywordtype">void</span>)</div>
+<div class="line">{</div>
+<div class="line"> ...</div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">if</span>(<a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_gaea8d7735d41853167a2befdc06febe43.html#gaea8d7735d41853167a2befdc06febe43" title="UNICENS initialization function.">Ucs_Init</a>(inst_ptr, init_data, &amp;App_OnInitResult) != <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda3fb51656e17ee4802f23706f35e349bc" title="Operation successfully completed.">UCS_RET_SUCCESS</a>)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">/* Handle synchronous initialization errors here... */</span></div>
+<div class="line"> }</div>
+<div class="line"> ...</div>
+<div class="line">}</div>
+<div class="line"></div>
+<div class="line"><span class="keywordtype">void</span> App_OnInitResult(<a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#ga0a933f34b9acbf21dc68f426c324e78c" title="Result values of initialization result callback function.">Ucs_InitResult_t</a> result, <span class="keywordtype">void</span> *user_ptr)</div>
+<div class="line">{</div>
+<div class="line"> <span class="keywordflow">if</span>(result != <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78cac4d2785b5c79a9b38389e08d30494714" title="Initialization succeeded.">UCS_INIT_RES_SUCCESS</a>)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">/* Handle asynchronous initialization errors here... */</span></div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment --> </div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__l_l_d.html b/ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__l_l_d.html
new file mode 100644
index 0000000..9794993
--- /dev/null
+++ b/ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__l_l_d.html
@@ -0,0 +1,288 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Low-Level Driver</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_p__u_m__s_t_a_r_t_e_d__l_l_d.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Low-Level Driver </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><h1>Introduction</h1>
+<p>The low-level driver (LLD) is responsible to forward Tx messages from the UNICENS library to the INIC and Rx messages from the INIC to the UNICENS library. The UNICENS library currently provides one interface to exchange control messages with the INIC. Therefore, the control messages will be wrapped in a so called Port Message. The low-level driver is responsible to transmit and receive the Port Messages over the interface that is adjusted in the INIC Configuration String.</p>
+<p><a class="anchor" id="A_GS_LLD_CONFIG"></a> </p>
+<h1>Initialization</h1>
+<p>The following example shows how to assign low-level driver functions which are invoked by the UNICENS library.</p>
+<div class="fragment"><div class="line"><span class="keywordtype">bool</span> Initialize(<span class="keywordtype">void</span>)</div>
+<div class="line">{</div>
+<div class="line"> <a class="code" href="struct_ucs___init_data__t.html" title="UNICENS initialization structure used by function Ucs_Init().">Ucs_InitData_t</a> init_data;</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/* platform specific initialization of the low-level driver */</span></div>
+<div class="line"> Lld_SysInitialize(<span class="comment">/*system specific parameters*/</span>);</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/* assign init data */</span></div>
+<div class="line"> <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga64b50780725a0dc8693b5b73f8345ad6.html#ga64b50780725a0dc8693b5b73f8345ad6" title="Assigns default values to a provided UNICENS init structure.">Ucs_SetDefaultConfig</a>(&amp;init_data);</div>
+<div class="line"> init_data.<a class="code" href="struct_ucs___init_data__t_ac0b0a4478bafe6e81ed3c3e2c72f4fc9.html#ac0b0a4478bafe6e81ed3c3e2c72f4fc9" title="Comprises assignment to low-level driver communication interfaces.">lld</a>.<a class="code" href="struct_ucs___lld___callbacks__t_a96bad24b6b49ffacfd9136230447cb22.html#a96bad24b6b49ffacfd9136230447cb22" title="Callback function to initialize the low-level driver and start the transmission and reception of mess...">start_fptr</a> = &amp;Lld_Start;</div>
+<div class="line"> init_data.<a class="code" href="struct_ucs___init_data__t_ac0b0a4478bafe6e81ed3c3e2c72f4fc9.html#ac0b0a4478bafe6e81ed3c3e2c72f4fc9" title="Comprises assignment to low-level driver communication interfaces.">lld</a>.<a class="code" href="struct_ucs___lld___callbacks__t_ab0f955ca90942fda14ac12500422a437.html#ab0f955ca90942fda14ac12500422a437" title="Callback function to stop/abort the transmission and reception of messages.">stop_fptr</a> = &amp;Lld_Stop;</div>
+<div class="line"> init_data.<a class="code" href="struct_ucs___init_data__t_ac0b0a4478bafe6e81ed3c3e2c72f4fc9.html#ac0b0a4478bafe6e81ed3c3e2c72f4fc9" title="Comprises assignment to low-level driver communication interfaces.">lld</a>.<a class="code" href="struct_ucs___lld___callbacks__t_ad8f7d021075e06672a999eb02da1d2e4.html#ad8f7d021075e06672a999eb02da1d2e4" title="Callback function to transmit one or multiple messages to the INIC.">tx_transmit_fptr</a> = &amp;Lld_TxTransmit;</div>
+<div class="line"> init_data.<a class="code" href="struct_ucs___init_data__t_ac0b0a4478bafe6e81ed3c3e2c72f4fc9.html#ac0b0a4478bafe6e81ed3c3e2c72f4fc9" title="Comprises assignment to low-level driver communication interfaces.">lld</a>.<a class="code" href="struct_ucs___lld___callbacks__t_a90fa6db664734c2446327b71c51f5b52.html#a90fa6db664734c2446327b71c51f5b52" title="Callback function which is invoked as soon as Rx message objects are available again.">rx_available_fptr</a> = &amp;Lld_RxMsgAvailable;</div>
+<div class="line"> <span class="comment">/* ... further assignment and initialization ... */</span></div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/* create one instance of UCS */</span></div>
+<div class="line"> inst_ptr = <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga85a99b5d236b29e2d598bef51edad638.html#ga85a99b5d236b29e2d598bef51edad638" title="Retrieves a UNICENS API instance.">Ucs_CreateInstance</a>();</div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">if</span> (inst_ptr != NULL)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="keywordflow">if</span> (<a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_gaea8d7735d41853167a2befdc06febe43.html#gaea8d7735d41853167a2befdc06febe43" title="UNICENS initialization function.">Ucs_Init</a>(inst_ptr, &amp;init_data, &amp;App_OnInitResult) == <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda3fb51656e17ee4802f23706f35e349bc" title="Operation successfully completed.">UCS_RET_SUCCESS</a>)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"> }</div>
+<div class="line"> }</div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line">}</div>
+</div><!-- fragment --><table class="mns_ic_table">
+<tr>
+<td id="mns_ic_started">&#160;</td><td>See also <em>Getting Started</em>, section <a class="el" href="_p__u_m__s_t_a_r_t_e_d__i_n_i_t.html">Initialization</a>. </td></tr>
+</table>
+<h1>Local Data</h1>
+<p>The exemplary implementation of callback functions refers the following local data. In order to call UNICENS API functions the low-level driver has to store a set of callback functions and an internal handle which is required to invoke a callback function.</p>
+<div class="fragment"><div class="line"><span class="preprocessor">#define MAX_DATA_LEN 72 </span><span class="comment">/* messages can be up to 72 bytes */</span><span class="preprocessor"></span></div>
+<div class="line"><span class="preprocessor"></span><a class="code" href="struct_ucs___lld___api__t.html" title="Initialization required for one communication channel (control or packet)">Ucs_Lld_Api_t</a> *_cb_ptr; <span class="comment">/* reference to UCS callback functions */</span></div>
+<div class="line"><span class="keywordtype">void</span> *_h_ptr; <span class="comment">/* reference to nun-public handler, which */</span></div>
+<div class="line"> <span class="comment">/* is necessary to invoke callback functions */</span></div>
+<div class="line"><span class="keywordtype">bool</span> _rx_event; <span class="comment">/* labels if the driver may read an available Rx message */</span></div>
+<div class="line"></div>
+<div class="line">uint8_t _tx_buffer[MAX_DATA_LEN];</div>
+<div class="line">uint8_t _rx_buffer[MAX_DATA_LEN];</div>
+</div><!-- fragment --><h1>Start and Stop</h1>
+<p>The UNICENS library invokes the mandatory callback functions <code>start_fptr()</code> and <code>stop_fptr()</code> to signal when internal data is valid and the LLD may access UNICENS callback functions and message objects for transmission and reception.</p>
+<p>The function <code>Lld_SysInitialize()</code> is not called by the UNICENS library. This example function is system specific and might be necessary to set local data to definite values and to initialize the device driver before UNICENS library will start to transmit and receive.</p>
+<p>The low-level driver is allowed to initialize and run the communication with the INIC before the UNICENS Library calls <code>Lld_Start()</code>. While the UNICENS callback functions are invalid, it is recommended to discard incoming Rx messages.</p>
+<p>Before leaving the function <code>Lld_Stop()</code> the LLD must ensure not accessing UCS memory and callback functions any longer.</p>
+<div class="fragment"><div class="line"><span class="keywordtype">void</span> Lld_SysInitialize(<span class="keywordtype">void</span>)</div>
+<div class="line">{</div>
+<div class="line"> <span class="comment">/* Initialization: system specific setup of the device driver, trace, queues, interrupts, etc.</span></div>
+<div class="line"><span class="comment"> Initialize local data, discard incoming messages from the INIC until Lld_Start() is called.</span></div>
+<div class="line"><span class="comment"> */</span></div>
+<div class="line"> _rx_event = <span class="keyword">false</span>;</div>
+<div class="line"> _api_ptr = NULL;</div>
+<div class="line"> _h_ptr = NULL;</div>
+<div class="line">}</div>
+<div class="line"></div>
+<div class="line"><span class="keywordtype">void</span> Lld_Start(<a class="code" href="struct_ucs___lld___api__t.html" title="Initialization required for one communication channel (control or packet)">Ucs_Lld_Api_t</a>* api_ptr, <span class="keywordtype">void</span> *h_ptr, <span class="keywordtype">void</span> *lld_user_ptr)</div>
+<div class="line">{</div>
+<div class="line"> <span class="comment">/* UNICENS is ready to transmit and receive.</span></div>
+<div class="line"><span class="comment"> Now, remember the callbacks and the handle which is</span></div>
+<div class="line"><span class="comment"> required to invoke a callback function.</span></div>
+<div class="line"><span class="comment"> */</span></div>
+<div class="line"> _api_ptr = api_ptr;</div>
+<div class="line"> _h_ptr = inst_ptr;</div>
+<div class="line">}</div>
+<div class="line"></div>
+<div class="line"><span class="keywordtype">void</span> Lld_Stop(<span class="keywordtype">void</span> *lld_user_ptr)</div>
+<div class="line">{</div>
+<div class="line"> <span class="comment">/* IMPORTANT: Do no longer invoke any UNICENS callback function and</span></div>
+<div class="line"><span class="comment"> immediately stop accessing UNICENS message objects.</span></div>
+<div class="line"><span class="comment"> I.e., ensure stopping asynchronous transmission and reception using UNICENS memory</span></div>
+<div class="line"><span class="comment"> before leaving this function (e.g., stop/wait DMA copy operations to/from UNICENS memory). </span></div>
+<div class="line"><span class="comment"> Incoming messages from the INIC should be discarded until Lld_Start() is called again.</span></div>
+<div class="line"><span class="comment"> */</span></div>
+<div class="line"> _api_ptr = NULL;</div>
+<div class="line"> _h_ptr = NULL;</div>
+<div class="line">}</div>
+</div><!-- fragment --><h1>Message Transmission</h1>
+<p>The low-level driver must implement a transmit function which requires a reference to <a class="el" href="struct_ucs___lld___tx_msg__t.html" title="Tx message object providing the raw port message byte stream.">Ucs_Lld_TxMsg_t</a>. The code section below shows the declaration of the <a class="el" href="struct_ucs___lld___tx_msg__t.html" title="Tx message object providing the raw port message byte stream.">Ucs_Lld_TxMsg_t</a> and the referred <a class="el" href="struct_ucs___mem___buffer__t.html">Ucs_Mem_Buffer_t</a> type. The <a class="el" href="struct_ucs___mem___buffer__t.html">Ucs_Mem_Buffer_t</a> structure contains values to describe the pointer and the size of the buffer. Furthermore it is possible that one buffer refers a second buffer if next_buffer_ptr is set. This means that it is possible to concatenate multiple buffers. Furthermore, one message structure refers a buffer structure. The <code>custom_next_msg_ptr</code> is not set by UNICENS library. It can be used by the Low Level Driver to concatenate messages, e.g. for asynchronous transmission.</p>
+<div class="fragment"><div class="line"><span class="keyword">typedef</span> <span class="keyword">struct </span>Ucs_Mem_Buffer_</div>
+<div class="line">{</div>
+<div class="line"> <span class="keyword">struct </span>Ucs_Mem_Buffer_ *next_buffer_ptr;</div>
+<div class="line"> uint8_t *data_ptr; </div>
+<div class="line"> uint16_t data_size; </div>
+<div class="line"> uint16_t total_size;</div>
+<div class="line"> </div>
+<div class="line">} <a class="code" href="struct_ucs___mem___buffer__t.html" title="Memory chunk representing a message or part of a message.">Ucs_Mem_Buffer_t</a>;</div>
+<div class="line"></div>
+<div class="line"><span class="keyword">typedef</span> <span class="keyword">struct </span>Ucs_Lld_TxMsg_</div>
+<div class="line">{</div>
+<div class="line"> <span class="keyword">struct </span>Ucs_Lld_TxMsg_ *custom_next_msg_ptr; </div>
+<div class="line"> <a class="code" href="struct_ucs___mem___buffer__t.html" title="Memory chunk representing a message or part of a message.">Ucs_Mem_Buffer_t</a> *memory_ptr;</div>
+<div class="line"></div>
+<div class="line">} <a class="code" href="struct_ucs___lld___tx_msg__t.html" title="Tx message object providing the raw port message byte stream.">Ucs_Lld_TxMsg_t</a>;</div>
+</div><!-- fragment --><p>The transmit function shall copy the data from the memory buffers to the target buffer. Therefore, the low-level driver has to iterate over all buffers. After the low-level driver does no longer refer the message object, it has to call <code>tx_release_fptr</code>. It is important to call <code>tx_release_fptr</code> in the same order as the messages are passed to the transmit function.</p>
+<div class="fragment"><div class="line"><span class="keywordtype">void</span> Lld_TxTransmit(<a class="code" href="struct_ucs___lld___tx_msg__t.html" title="Tx message object providing the raw port message byte stream.">Ucs_Lld_TxMsg_t</a> *msg_ptr, <span class="keywordtype">void</span> *lld_user_ptr)</div>
+<div class="line">{</div>
+<div class="line"> <a class="code" href="struct_ucs___mem___buffer__t.html" title="Memory chunk representing a message or part of a message.">Ucs_Mem_Buffer_t</a> * buf_ptr;</div>
+<div class="line"> uint16_t i = 0U; <span class="comment">/* index of target buffer*/</span> </div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">if</span> ((msg_ptr != NULL) &amp;&amp; _api_ptr)</div>
+<div class="line"> { </div>
+<div class="line"> <span class="keywordflow">for</span> (buf_ptr = msg_ptr-&gt;<a class="code" href="struct_ucs___lld___tx_msg__t_a0fae6a3f19d8a9bbdad3c3b1ead3e868.html#a0fae6a3f19d8a9bbdad3c3b1ead3e868" title="Points to the data buffer.">memory_ptr</a>; buf_ptr != NULL; buf_ptr = buf_ptr-&gt;<a class="code" href="struct_ucs___mem___buffer__t_a5245ce4ea7d022a357642b645e7ac645.html#a5245ce4ea7d022a357642b645e7ac645" title="Points to an additional memory buffer that belongs to the same message.">next_buffer_ptr</a>)</div>
+<div class="line"> {</div>
+<div class="line"> memcpy(&amp;_tx_buffer[i], buf_ptr-&gt;<a class="code" href="struct_ucs___mem___buffer__t_a6166cef59cbe432be35512925debeae6.html#a6166cef59cbe432be35512925debeae6" title="Points to the data buffer.">data_ptr</a>, buf_ptr-&gt;<a class="code" href="struct_ucs___mem___buffer__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html#aae6bdbdf6ea1ad3da5af37f0a91d3ea0" title="Size of the data buffer.">data_size</a>);</div>
+<div class="line"> i += buf_ptr-&gt;<a class="code" href="struct_ucs___mem___buffer__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html#aae6bdbdf6ea1ad3da5af37f0a91d3ea0" title="Size of the data buffer.">data_size</a>;</div>
+<div class="line"> }</div>
+<div class="line"> <span class="comment">/* call synchronous transmit function of driver */</span></div>
+<div class="line"> MY_TX(&amp;_tx_buffer[0], msg_ptr-&gt;<a class="code" href="struct_ucs___lld___tx_msg__t_a0fae6a3f19d8a9bbdad3c3b1ead3e868.html#a0fae6a3f19d8a9bbdad3c3b1ead3e868" title="Points to the data buffer.">memory_ptr</a>-&gt;<a class="code" href="struct_ucs___mem___buffer__t_af0c4b4b26e805f939299b203943976b2.html#af0c4b4b26e805f939299b203943976b2" title="Reserved for future use. Size of this and all concatenated data buffers.">total_size</a>);</div>
+<div class="line"> <span class="comment">/* release the message object */</span></div>
+<div class="line"> _api_ptr-&gt;tx_release_fptr(_h_ptr, msg_ptr);</div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment --><dl class="section note"><dt>Note</dt><dd>The transmit function has no return value. This means that the low-level driver itself has to handle asynchronous re-transmission if the interface is busy. Therefore, the Low Level Driver is able to enqueue multiple message objects by using <code>custom_next_msg_ptr</code>. If the LLD detects an unrecoverable transmission error the LLD shall abort the transmission and call <code>tx_release_fptr()</code>.</dd></dl>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_api">&#160;</td><td>See also <em>API Reference</em>, sections <a class="el" href="group___g___u_c_s___l_l_d.html">Low-Level Driver</a> and <a class="el" href="struct_ucs___lld___api__t.html" title="Initialization required for one communication channel (control or packet)">Ucs_Lld_Api_t</a>. </td></tr>
+</table>
+<h1>Message Reception</h1>
+<p>The low-level driver has to forward messages to the UNICENS library by calling <code>rx_allocate_fptr()</code> and <code>rx_receive_fptr()</code>. The structure of the provided Rx message object is shown in the code section below.</p>
+<div class="fragment"><div class="line"><span class="keyword">typedef</span> <span class="keyword">struct</span></div>
+<div class="line">{</div>
+<div class="line"> uint8_t* data_ptr;</div>
+<div class="line"> uint16_t data_size;</div>
+<div class="line"></div>
+<div class="line">} <a class="code" href="struct_ucs___lld___rx_msg__t.html" title="Rx message object pointing to the raw port message byte stream.">Ucs_Lld_RxMsg_t</a>;</div>
+</div><!-- fragment --><p>If <code>rx_allocate_fptr()</code> returns a valid reference to a <a class="el" href="struct_ucs___lld___rx_msg__t.html" title="Rx message object pointing to the raw port message byte stream.">Ucs_Lld_RxMsg_t</a> structure, the low-level driver has to copy the received message to the <code>data_ptr</code> attribute. The value of <code>data_size</code> is already set to the same value as initially stated to <code>rx_allocate_fptr()</code>. After the copy operation, the low-level driver shall call <code>rx_receive_fptr()</code> which hands the Rx message over to the UNICENS library.</p>
+<div class="fragment"><div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> My_RxHandler(<span class="keywordtype">void</span>)</div>
+<div class="line">{</div>
+<div class="line"> <span class="keywordflow">if</span> (_rx_event != <span class="keyword">false</span>)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="keywordtype">bool</span> success = <span class="keyword">false</span>;</div>
+<div class="line"> uint16_t size = 0;</div>
+<div class="line"> <span class="comment">/* receive to LLD provided buffer */</span></div>
+<div class="line"> success = MY_RX(&amp;_rx_buffer[0], &amp;size);</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/* check if UNICENS is running and message is ok */</span></div>
+<div class="line"> <span class="keywordflow">if</span> ((_api_ptr != NULL) &amp;&amp; (success != <span class="keyword">false</span>) &amp;&amp; (size &lt; MAX_DATA_LEN))</div>
+<div class="line"> {</div>
+<div class="line"> <a class="code" href="struct_ucs___lld___rx_msg__t.html" title="Rx message object pointing to the raw port message byte stream.">Ucs_Lld_RxMsg_t</a> *msg_ptr;</div>
+<div class="line"> <span class="comment">/* allocate message object from UCS */</span></div>
+<div class="line"> msg_ptr = _api_ptr-&gt;rx_allocate_fptr(_h_ptr, size);</div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">if</span> (msg_ptr != NULL)</div>
+<div class="line"> {</div>
+<div class="line"> uint16_t i;</div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">for</span> (i=0; i&lt;size; i++)</div>
+<div class="line"> { <span class="comment">/* copy data to UCS message object */</span></div>
+<div class="line"> msg_ptr-&gt;<a class="code" href="struct_ucs___lld___rx_msg__t_a6166cef59cbe432be35512925debeae6.html#a6166cef59cbe432be35512925debeae6" title="Points to a UNICENS allocated memory chunk.">data_ptr</a>[i] = _rx_buffer[i]; </div>
+<div class="line"> }</div>
+<div class="line"> <span class="comment">/* pass message object to UCS */</span></div>
+<div class="line"> _api_ptr-&gt;rx_receive_fptr(_h_ptr, msg_ptr);</div>
+<div class="line"> }</div>
+<div class="line"> <span class="keywordflow">else</span></div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">/* wait until Lld_RxMsgAvailable() is invoked */</span></div>
+<div class="line"> }</div>
+<div class="line"> }</div>
+<div class="line"> <span class="keywordflow">else</span></div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">/* discard Rx message - since UCS is not running */</span> </div>
+<div class="line"> }</div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment --><table class="mns_ic_table">
+<tr>
+<td id="mns_ic_api">&#160;</td><td>See also <em>API Reference</em>, sections <a class="el" href="group___g___u_c_s___l_l_d.html">Low-Level Driver</a> and <a class="el" href="struct_ucs___lld___api__t.html" title="Initialization required for one communication channel (control or packet)">Ucs_Lld_Api_t</a>. </td></tr>
+</table>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__m_g_r.html b/ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__m_g_r.html
new file mode 100644
index 0000000..045ec09
--- /dev/null
+++ b/ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__m_g_r.html
@@ -0,0 +1,223 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Manager</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_p__u_m__s_t_a_r_t_e_d__m_g_r.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Manager </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><h1>Introduction</h1>
+<p>The Manager is an optional component that automatically handles the following tasks:</p>
+<ul>
+<li>Force the network to available state</li>
+<li>Re-initialization of nodes if necessary</li>
+<li>Automatically starts the NodeDiscovery and the RoutingManagement</li>
+<li>Automatically handles the NodeDiscovery tasks according to a preset list of nodes</li>
+<li>Automatically announces nodes as available/not available to the RoutingManagement</li>
+</ul>
+<p>If the application uses a dynamic approach for the RoutingManagement it is recommended to use the function <a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g_gabb9185254132bb29ee0af137c36f50b8.html#gabb9185254132bb29ee0af137c36f50b8" title="Sets the given route to active respectively inactive and triggers the routing process to handle the r...">Ucs_Rm_SetRouteActive()</a> together with Manager component.</p>
+<p>Enable the Manager in the initialization structure. </p>
+<div class="fragment"><div class="line">init_data.<a class="code" href="struct_ucs___init_data__t_a517c2ec800639c8a91183e70189b1875.html#a517c2ec800639c8a91183e70189b1875" title="The initialization data of the Manager.">mgr</a>.<a class="code" href="struct_ucs___mgr___init_data__t_a8740ba80e30dd75e71d09fa1dcf04f3d.html#a8740ba80e30dd75e71d09fa1dcf04f3d" title="If set to false the application must handle network startup, node discovery and rooting by hand...">enabled</a> = <span class="keyword">true</span>;</div>
+</div><!-- fragment --><dl class="section note"><dt>Note</dt><dd>Since the manager already handles a set of tasks that may also be done by hand it is necessary to <em>enable</em> the Manager and to not access the API which as handles by the Manager.</dd></dl>
+<p>Do not access the following functions if the Manager is enabled:</p>
+<ul>
+<li><a class="el" href="group___g___u_c_s___n_e_t_ga83c2e74a4cc216aa10d7c6a1a517d459.html#ga83c2e74a4cc216aa10d7c6a1a517d459" title="Starts up the MOST Network.">Ucs_Network_Startup()</a></li>
+<li><a class="el" href="group___g___u_c_s___n_e_t_ga1e49ce81a42f09bcecc2202edc2b93fc.html#ga1e49ce81a42f09bcecc2202edc2b93fc" title="Switches of the MOST Network.">Ucs_Network_Shutdown()</a></li>
+<li><a class="el" href="group___g___u_c_s___n_e_t_ga3a71b7772ce265a77eefa7ad069c4819.html#ga3a71b7772ce265a77eefa7ad069c4819" title="Triggers the INIC to force the NotAvailable state.">Ucs_Network_ForceNotAvailable()</a></li>
+<li><a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_ga50a5b00d5bbd1ad324478509dc524eec.html#ga50a5b00d5bbd1ad324478509dc524eec" title="Starts the Node Discovery service.">Ucs_Nd_Start()</a></li>
+<li><a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_ga637e441520f7b203e551274f17febfb6.html#ga637e441520f7b203e551274f17febfb6" title="Stops the Node Discovery service.">Ucs_Nd_Stop()</a></li>
+<li><a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_gabab6c431e235fe0211f5f1525f9cff2e.html#gabab6c431e235fe0211f5f1525f9cff2e" title="Initializes all nodes.">Ucs_Nd_InitAll()</a></li>
+<li><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g_gaaa23aca8279da197192210fe11889452.html#gaaa23aca8279da197192210fe11889452" title="Initializes the routing process with the given routes list information and starts the process to hand...">Ucs_Rm_Start()</a></li>
+<li><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g_ga57ca34a488f06d57f2219be23fa0259f.html#ga57ca34a488f06d57f2219be23fa0259f" title="Sets the availability attribute (available or not available) of the given node and triggers the routi...">Ucs_Rm_SetNodeAvailable()</a></li>
+</ul>
+<p>The following callback functions will not work if the Manager is enabled:</p>
+<ul>
+<li><a class="el" href="struct_ucs___nd___init_data__t.html">init_data.nd.eval_fptr</a></li>
+<li><a class="el" href="struct_ucs___nd___init_data__t.html">init_data.nd.report_fptr</a></li>
+</ul>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_api">&#160;</td><td>See also <em>API Reference</em>, section <a class="el" href="group___g___u_c_s___m_g_r.html">Manager</a>. </td></tr>
+</table>
+<h1>Declaration of Nodes and Routes</h1>
+<p>The application must define a set of structures that are required as input for the Manager. Basically the application must provide a list of nodes and a list of routes.</p>
+<dl class="section note"><dt>Note</dt><dd>It is important that each node in the "list of nodes" has a valid pointer to a node signature. Within the node signature the <code>node_address</code> attribute must be set to the value as set in the "identification string" of the respective node (INIC). Each node must be configured with a unique <code>node_address</code>. Other values inside the identification string are not evaluated by the Manager.</dd></dl>
+<p>The code below shows a setup of two nodes and one route for synchronous streaming. Since the route is initialized as "active" it is automatically created as soon as both nodes are available. The application does not need to activate this route at a certain time.</p>
+<div class="fragment"><div class="line"><span class="comment">/*------------------------------------------------------------------------------------------------*/</span></div>
+<div class="line"><span class="comment">/* Nodes */</span></div>
+<div class="line"><span class="comment">/*------------------------------------------------------------------------------------------------*/</span></div>
+<div class="line"><span class="preprocessor">#define APP_NODES_NUM 2U</span></div>
+<div class="line"><span class="preprocessor"></span><span class="keyword">static</span> <a class="code" href="struct_ucs___signature__t.html" title="This structure holds the signature of the Hello, Welcome and Signature messages. It supports the sign...">Ucs_Signature_t</a> signature201 = {0x201U <span class="comment">/*node_address*/</span>}; </div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___signature__t.html" title="This structure holds the signature of the Hello, Welcome and Signature messages. It supports the sign...">Ucs_Signature_t</a> signature205 = {0x205U <span class="comment">/*node_address*/</span>};</div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___rm___node__t.html" title="Configuration structure of a Node.">Ucs_Rm_Node_t</a> app_nodes[APP_NODES_NUM] = {{&amp;signature201, NULL, 0U}, {&amp;signature205, NULL, 0U}};</div>
+<div class="line"></div>
+<div class="line"><span class="comment">/*------------------------------------------------------------------------------------------------*/</span></div>
+<div class="line"><span class="comment">/* Routes */</span></div>
+<div class="line"><span class="comment">/*------------------------------------------------------------------------------------------------*/</span></div>
+<div class="line"><span class="comment">/* Specification of XRM JOB OUT */</span></div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___xrm___most_socket__t.html" title="Configuration structure of a MOST socket.">Ucs_Xrm_MostSocket_t</a> Xrm_Most_Sckt_Out = {<a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36cccaeebb673b9abc5172f688f8e9e692441c" title="MOST socket.">UCS_XRM_RC_TYPE_MOST_SOCKET</a>, 0x0D00U, <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_ga28477f727fe10f9d6fd21cfc98a9c115.html#gga28477f727fe10f9d6fd21cfc98a9c115aa14fc95a1f8c5f54aa6d601614a887fe" title="Socket transfers data out of INIC.">UCS_SOCKET_DIR_OUTPUT</a>, </div>
+<div class="line"> <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_gab29e10223e27331045485facbe4102ee.html#ggab29e10223e27331045485facbe4102eea345ad57d9919545fa5e5bf8393b0224f" title="Specifies the synchronous streaming data type.">UCS_MOST_SCKT_SYNC_DATA</a>, 2U };</div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___xrm___default_created_port__t.html" title="Configuration structure of a default created port. This structure is used for ports that are configur...">Ucs_Xrm_DefaultCreatedPort_t</a> Xrm_Usb_Port_1 = {<a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36cccacf416b59b369504088ef6810b4c545e1" title="Default created port.">UCS_XRM_RC_TYPE_DC_PORT</a>, <a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga50384bb32b088e9cfd50c889ef562015.html#gga50384bb32b088e9cfd50c889ef562015a7b31f75e1806723739f4d7fd2bc483d3" title="USB Port.">UCS_XRM_PORT_TYPE_USB</a>, 0U};</div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___xrm___usb_socket__t.html" title="Configuration structure of a USB socket.">Ucs_Xrm_UsbSocket_t</a> Xrm_Usb_Socket_In = {<a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca5e2f20f818f67af2502a600f06b9ab11" title="USB socket.">UCS_XRM_RC_TYPE_USB_SOCKET</a>, &amp;Xrm_Usb_Port_1, </div>
+<div class="line"> <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_ga28477f727fe10f9d6fd21cfc98a9c115.html#gga28477f727fe10f9d6fd21cfc98a9c115a02fdd605a809a4a660e25cfd888347c7" title="Socket transfers data into INIC.">UCS_SOCKET_DIR_INPUT</a>, <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_gafd56377a5a1f782e64260d18caf17dc9.html#ggafd56377a5a1f782e64260d18caf17dc9a4df4e4d4848358e18a3ef6386db80acf" title="Specifies the synchronous streaming data type.">UCS_USB_SCKT_SYNC_DATA</a> , </div>
+<div class="line"> 0x01U<span class="comment">/*endpoint*/</span>, 0x0007U <span class="comment">/*frames*/</span> };</div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___xrm___sync_con__t.html" title="Configuration structure of a synchronous data connection.">Ucs_Xrm_SyncCon_t</a> Xrm_Sync_Conn_Src = {<a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca47342ee294555a9b7e738c9fc34b5265" title="Synchronous data connection.">UCS_XRM_RC_TYPE_SYNC_CON</a>, &amp;Xrm_Usb_Socket_In, </div>
+<div class="line"> &amp;Xrm_Most_Sckt_Out, <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_gaef12892b897a1cd1013357cfe63f2434.html#ggaef12892b897a1cd1013357cfe63f2434a6e21656de3fa891d522f272307fca772" title="No mute monitoring.">UCS_SYNC_MUTE_MODE_NO_MUTING</a>, 0U };</div>
+<div class="line"></div>
+<div class="line"><span class="comment">/* Specification of XRM JOB IN */</span></div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___xrm___most_socket__t.html" title="Configuration structure of a MOST socket.">Ucs_Xrm_MostSocket_t</a> Xrm_Most_Sckt_In = {<a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36cccaeebb673b9abc5172f688f8e9e692441c" title="MOST socket.">UCS_XRM_RC_TYPE_MOST_SOCKET</a>, 0x0D00U, <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_ga28477f727fe10f9d6fd21cfc98a9c115.html#gga28477f727fe10f9d6fd21cfc98a9c115a02fdd605a809a4a660e25cfd888347c7" title="Socket transfers data into INIC.">UCS_SOCKET_DIR_INPUT</a>,</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_gab29e10223e27331045485facbe4102ee.html#ggab29e10223e27331045485facbe4102eea345ad57d9919545fa5e5bf8393b0224f" title="Specifies the synchronous streaming data type.">UCS_MOST_SCKT_SYNC_DATA</a>, 2U };</div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___xrm___default_created_port__t.html" title="Configuration structure of a default created port. This structure is used for ports that are configur...">Ucs_Xrm_DefaultCreatedPort_t</a> Xrm_Usb_Port_2 = {<a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36cccacf416b59b369504088ef6810b4c545e1" title="Default created port.">UCS_XRM_RC_TYPE_DC_PORT</a>, <a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga50384bb32b088e9cfd50c889ef562015.html#gga50384bb32b088e9cfd50c889ef562015a7b31f75e1806723739f4d7fd2bc483d3" title="USB Port.">UCS_XRM_PORT_TYPE_USB</a>, 0U};</div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___xrm___usb_socket__t.html" title="Configuration structure of a USB socket.">Ucs_Xrm_UsbSocket_t</a> Xrm_Usb_Socket_Out = {<a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca5e2f20f818f67af2502a600f06b9ab11" title="USB socket.">UCS_XRM_RC_TYPE_USB_SOCKET</a>, &amp;Xrm_Usb_Port_2, </div>
+<div class="line"> <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_ga28477f727fe10f9d6fd21cfc98a9c115.html#gga28477f727fe10f9d6fd21cfc98a9c115aa14fc95a1f8c5f54aa6d601614a887fe" title="Socket transfers data out of INIC.">UCS_SOCKET_DIR_OUTPUT</a>, <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_gafd56377a5a1f782e64260d18caf17dc9.html#ggafd56377a5a1f782e64260d18caf17dc9a4df4e4d4848358e18a3ef6386db80acf" title="Specifies the synchronous streaming data type.">UCS_USB_SCKT_SYNC_DATA</a> ,</div>
+<div class="line"> 0x81U<span class="comment">/*endpoint*/</span>, 0x0007U <span class="comment">/*frames*/</span> };</div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___xrm___sync_con__t.html" title="Configuration structure of a synchronous data connection.">Ucs_Xrm_SyncCon_t</a> Xrm_Sync_Conn_Sink = {<a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca47342ee294555a9b7e738c9fc34b5265" title="Synchronous data connection.">UCS_XRM_RC_TYPE_SYNC_CON</a>, &amp;Xrm_Most_Sckt_In, </div>
+<div class="line"> &amp;Xrm_Usb_Socket_Out, <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_gaef12892b897a1cd1013357cfe63f2434.html#ggaef12892b897a1cd1013357cfe63f2434a6e21656de3fa891d522f272307fca772" title="No mute monitoring.">UCS_SYNC_MUTE_MODE_NO_MUTING</a>, 0U };</div>
+<div class="line"></div>
+<div class="line"><span class="comment">/* Specification of the XRM jobs lists */</span></div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173" title="INIC Resource Object used for Extended Resource Manager jobs.">Ucs_Xrm_ResObject_t</a> * xrm_job_out[] = { &amp;Xrm_Most_Sckt_Out, &amp;Xrm_Usb_Port_1, &amp;Xrm_Usb_Socket_In, </div>
+<div class="line"> &amp;Xrm_Sync_Conn_Src, NULL };</div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173" title="INIC Resource Object used for Extended Resource Manager jobs.">Ucs_Xrm_ResObject_t</a> * xrm_job_in [] = { &amp;Xrm_Most_Sckt_In, &amp;Xrm_Usb_Port_2, &amp;Xrm_Usb_Socket_Out, </div>
+<div class="line"> &amp;Xrm_Sync_Conn_Sink, NULL };</div>
+<div class="line"></div>
+<div class="line"><span class="comment">/* Source and Sink Endpoints */</span></div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___rm___end_point__t.html" title="Configuration structure of a Connection EndPoint.">Ucs_Rm_EndPoint_t</a> endpoint_src = { <a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga127a72f023d3c0289ab74b001f6edc25.html#gga127a72f023d3c0289ab74b001f6edc25ac1244d5bc6a569137f6f9132b8b0a3da" title="Specifies the source endpoint.">UCS_RM_EP_SOURCE</a>, &amp;xrm_job_out[0], &amp;app_nodes[0] };</div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___rm___end_point__t.html" title="Configuration structure of a Connection EndPoint.">Ucs_Rm_EndPoint_t</a> endpoint_sink = { <a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga127a72f023d3c0289ab74b001f6edc25.html#gga127a72f023d3c0289ab74b001f6edc25a63c4dfa3683ce8122d760c4e2d580138" title="Specifies the sink endpoint.">UCS_RM_EP_SINK</a>, &amp;xrm_job_in[0], &amp;app_nodes[1] };</div>
+<div class="line"></div>
+<div class="line"><span class="comment">/* Routes Specification */</span></div>
+<div class="line"><span class="preprocessor">#define APP_ROUTES_NUM 1U</span></div>
+<div class="line"><span class="preprocessor">static Ucs_Rm_Route_t app_routes[APP_ROUTES_NUM] = { {&amp;endpoint_src, &amp;endpoint_sink, true </span><span class="comment">/*is_active*/</span><span class="preprocessor">, 66U} };</span></div>
+</div><!-- fragment --><h1>Initialization</h1>
+<p>The code below shows a possible initialization sequence of the Application Message Service.</p>
+<div class="fragment"><div class="line"><span class="keywordtype">void</span> App_Initialize(<span class="keywordtype">void</span>)</div>
+<div class="line">{</div>
+<div class="line"> <a class="code" href="struct_ucs___init_data__t.html" title="UNICENS initialization structure used by function Ucs_Init().">Ucs_InitData_t</a> init_data;</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga64b50780725a0dc8693b5b73f8345ad6.html#ga64b50780725a0dc8693b5b73f8345ad6" title="Assigns default values to a provided UNICENS init structure.">Ucs_SetDefaultConfig</a>(&amp;init_data);</div>
+<div class="line"></div>
+<div class="line"> init_data.<a class="code" href="struct_ucs___init_data__t_a517c2ec800639c8a91183e70189b1875.html#a517c2ec800639c8a91183e70189b1875" title="The initialization data of the Manager.">mgr</a>.<a class="code" href="struct_ucs___mgr___init_data__t_a8740ba80e30dd75e71d09fa1dcf04f3d.html#a8740ba80e30dd75e71d09fa1dcf04f3d" title="If set to false the application must handle network startup, node discovery and rooting by hand...">enabled</a> = <span class="keyword">true</span>;</div>
+<div class="line"> init_data.<a class="code" href="struct_ucs___init_data__t_a517c2ec800639c8a91183e70189b1875.html#a517c2ec800639c8a91183e70189b1875" title="The initialization data of the Manager.">mgr</a>.<a class="code" href="struct_ucs___mgr___init_data__t_ac5131dba874debb5bb76b7f3b5a31818.html#ac5131dba874debb5bb76b7f3b5a31818" title="Optional callback function notifying node events.">report_fptr</a> = &amp;App_OnMgrReport;</div>
+<div class="line"> init_data.<a class="code" href="struct_ucs___init_data__t_a517c2ec800639c8a91183e70189b1875.html#a517c2ec800639c8a91183e70189b1875" title="The initialization data of the Manager.">mgr</a>.<a class="code" href="struct_ucs___mgr___init_data__t_a980d5ec2fe728b8ca99de235be7858d2.html#a980d5ec2fe728b8ca99de235be7858d2" title="The desired packet bandwidth.">packet_bw</a> = 52U;</div>
+<div class="line"> init_data.<a class="code" href="struct_ucs___init_data__t_a517c2ec800639c8a91183e70189b1875.html#a517c2ec800639c8a91183e70189b1875" title="The initialization data of the Manager.">mgr</a>.<a class="code" href="struct_ucs___mgr___init_data__t_ae261d2df7a2be21b4e8e4a582113643c.html#ae261d2df7a2be21b4e8e4a582113643c" title="Reference to the list of nodes.">nodes_list_ptr</a> = &amp;app_nodes[0];</div>
+<div class="line"> init_data.<a class="code" href="struct_ucs___init_data__t_a517c2ec800639c8a91183e70189b1875.html#a517c2ec800639c8a91183e70189b1875" title="The initialization data of the Manager.">mgr</a>.<a class="code" href="struct_ucs___mgr___init_data__t_ab0ad9592908a66a29460d67bf3146114.html#ab0ad9592908a66a29460d67bf3146114" title="Number of nodes in the list.">nodes_list_size</a> = APP_NODES_NUM;</div>
+<div class="line"> init_data.<a class="code" href="struct_ucs___init_data__t_a517c2ec800639c8a91183e70189b1875.html#a517c2ec800639c8a91183e70189b1875" title="The initialization data of the Manager.">mgr</a>.<a class="code" href="struct_ucs___mgr___init_data__t_a4bda15e771fef671a47cd88a09707030.html#a4bda15e771fef671a47cd88a09707030" title="Reference to a list of routes.">routes_list_ptr</a> = &amp;app_routes[0];</div>
+<div class="line"> init_data.<a class="code" href="struct_ucs___init_data__t_a517c2ec800639c8a91183e70189b1875.html#a517c2ec800639c8a91183e70189b1875" title="The initialization data of the Manager.">mgr</a>.<a class="code" href="struct_ucs___mgr___init_data__t_a30588f13e23cf04757b91e979e55c369.html#a30588f13e23cf04757b91e979e55c369" title="Number of routes in the list.">routes_list_size</a> = APP_ROUTES_NUM;</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/* ... further initialization ... */</span></div>
+<div class="line"></div>
+<div class="line"> <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_gaea8d7735d41853167a2befdc06febe43.html#gaea8d7735d41853167a2befdc06febe43" title="UNICENS initialization function.">Ucs_Init</a>(&amp;init_data, &amp;App_OnInitResult);</div>
+<div class="line">}</div>
+</div><!-- fragment --><table class="mns_ic_table">
+<tr>
+<td id="mns_ic_started">&#160;</td><td>See also <em>Getting Started</em>, section <a class="el" href="_p__u_m__s_t_a_r_t_e_d__i_n_i_t.html">Initialization</a>. </td></tr>
+</table>
+<h1>Status Reports</h1>
+<p>If the application logic requires information about the availability of nodes, it is possible to register an optional callback function <a class="el" href="group___g___u_c_s___m_g_r_gad54678ad2a4671ec224422a8647b20f6.html#gad54678ad2a4671ec224422a8647b20f6">mgr.report_fptr</a>. See also the initialization code above. The following code shows an implementation of this function. </p>
+<div class="fragment"><div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> App_OnMgrReport(<a class="code" href="group___g___u_c_s___m_g_r_gab85aa9ce377050505124af5e9549e445.html#gab85aa9ce377050505124af5e9549e445" title="Manager report codes.">Ucs_MgrReport_t</a> code, uint16_t node_address, <a class="code" href="struct_ucs___rm___node__t.html" title="Configuration structure of a Node.">Ucs_Rm_Node_t</a> *node_ptr, <span class="keywordtype">void</span> *user_ptr)</div>
+<div class="line">{</div>
+<div class="line"> (void)printf(<span class="stringliteral">&quot;App_OnMgrReport(): code=%d, node_addr=0x%04X, node_ptr=%p\n&quot;</span>, code, node_address, node_ptr);</div>
+<div class="line">}</div>
+</div><!-- fragment --> </div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__n_e_t.html b/ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__n_e_t.html
new file mode 100644
index 0000000..ce6a62f
--- /dev/null
+++ b/ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__n_e_t.html
@@ -0,0 +1,202 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Networking Management</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_p__u_m__s_t_a_r_t_e_d__n_e_t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Networking Management </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>The UNICENS API provides functions that are used to startup and to shutdown the network. It also provides callback functions to observe MOST network parameters.</p>
+<h1>Starting Up the Network</h1>
+<p>For starting up the MOST network out of the off state, function <a class="el" href="group___g___u_c_s___n_e_t_ga83c2e74a4cc216aa10d7c6a1a517d459.html#ga83c2e74a4cc216aa10d7c6a1a517d459" title="Starts up the MOST Network.">Ucs_Network_Startup()</a> must be called. An optional callback function can be used, to monitor the result of the startup command. The callback must adhere to function signature <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gaa573fbe79f76f263a17e51d6de99036d.html#gaa573fbe79f76f263a17e51d6de99036d">Ucs_StdResultCb_t</a>. In the following example, the result callback is not used.</p>
+<div class="fragment"><div class="line"><span class="keywordflow">if</span> (<a class="code" href="group___g___u_c_s___n_e_t_ga83c2e74a4cc216aa10d7c6a1a517d459.html#ga83c2e74a4cc216aa10d7c6a1a517d459" title="Starts up the MOST Network.">Ucs_Network_Startup</a>(ucs_inst_ptr, 52U, 0xFFFFU, NULL) != <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda3fb51656e17ee4802f23706f35e349bc" title="Operation successfully completed.">UCS_RET_SUCCESS</a>)</div>
+<div class="line">{</div>
+<div class="line"> <span class="comment">/* Handle synchronous error here... */</span></div>
+<div class="line">}</div>
+</div><!-- fragment --><h1>Shutting Down the Network</h1>
+<p>For shutting down the MOST network, function <a class="el" href="group___g___u_c_s___n_e_t_ga1e49ce81a42f09bcecc2202edc2b93fc.html#ga1e49ce81a42f09bcecc2202edc2b93fc" title="Switches of the MOST Network.">Ucs_Network_Shutdown()</a> must be called. It also provides an optional callback function to monitor the result of the shutdown command. The callback must adhere to function signature <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gaa573fbe79f76f263a17e51d6de99036d.html#gaa573fbe79f76f263a17e51d6de99036d">Ucs_StdResultCb_t</a>. The following example uses <a class="el" href="group___g___u_c_s___n_e_t_ga1e49ce81a42f09bcecc2202edc2b93fc.html#ga1e49ce81a42f09bcecc2202edc2b93fc" title="Switches of the MOST Network.">Ucs_Network_Shutdown()</a> in combination with the optional result callback.</p>
+<div class="fragment"><div class="line"><span class="keywordtype">void</span> foo(<span class="keywordtype">void</span>)</div>
+<div class="line">{</div>
+<div class="line"> ...</div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">if</span>(<a class="code" href="group___g___u_c_s___n_e_t_ga1e49ce81a42f09bcecc2202edc2b93fc.html#ga1e49ce81a42f09bcecc2202edc2b93fc" title="Switches of the MOST Network.">Ucs_Network_Shutdown</a>(ucs_inst_ptr, &amp;App_OnNwShutdownResult) != <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda3fb51656e17ee4802f23706f35e349bc" title="Operation successfully completed.">UCS_RET_SUCCESS</a>)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">/* Handle synchronous error here... */</span></div>
+<div class="line"> }</div>
+<div class="line"> </div>
+<div class="line"> ...</div>
+<div class="line">}</div>
+<div class="line"></div>
+<div class="line"><span class="keywordtype">void</span> App_OnNwShutdownResult(<a class="code" href="struct_ucs___std_result__t.html" title="Standard result structure which provides fields for detailed status and error information.">Ucs_StdResult_t</a> result, <span class="keywordtype">void</span> *user_ptr)</div>
+<div class="line">{</div>
+<div class="line"> <span class="keywordflow">if</span>(result.<a class="code" href="struct_ucs___std_result__t_a02d8eefc721a797ac87f5030774972ef.html#a02d8eefc721a797ac87f5030774972ef" title="Result/Error code.">code</a> != <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540cae19d5a51de78bbf903a108a4e36a0fdf" title="Operation successfully completed.">UCS_RES_SUCCESS</a>)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">/* Handle asynchronous error here... */</span></div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment --><h1>Observe Network Information</h1>
+<p>The UNICENS API provides further information about the <em>Network Status</em>. For this purpose the application has the possibility to register the following callback function during initialization time.</p>
+<h2>Network Status</h2>
+<p>Callback function <code>net.cb_fptr()</code> reports information about the <em>Network Status</em>. The function must adhere to signature <a class="el" href="group___g___u_c_s___n_e_t_gaf195e8ae396bc1fc358666fe50bf3f51.html#gaf195e8ae396bc1fc358666fe50bf3f51">Ucs_Network_StatusCb_t</a>. The following parameters are reported.</p>
+<ul>
+<li>Events</li>
+<li>Availability</li>
+<li>Availability Information</li>
+<li>Availability Transition Cause</li>
+<li>Node Address</li>
+<li>Node Position</li>
+<li>Max Position</li>
+<li>Packet Bandwidth</li>
+</ul>
+<div class="fragment"><div class="line"><a class="code" href="struct_ucs___init_data__t.html" title="UNICENS initialization structure used by function Ucs_Init().">Ucs_InitData_t</a> init_data;</div>
+<div class="line"></div>
+<div class="line"><span class="comment">/* Register callback function for Network Status */</span></div>
+<div class="line">init_data.<a class="code" href="struct_ucs___init_data__t_aa220785601aa16c0e0aff52f44380719.html#aa220785601aa16c0e0aff52f44380719" title="Network initialization data.">network</a>.<a class="code" href="struct_ucs___network___init_data__t_ae9d2b9f86bdd3a9667a348eb2b75da12.html#ae9d2b9f86bdd3a9667a348eb2b75da12" title="Network Status.">status</a>.<a class="code" href="struct_ucs___network___status__t_a08f6acd8566e419c7017fc1874720223.html#a08f6acd8566e419c7017fc1874720223" title="Network Status callback function. This function reports information on the whole network.">cb_fptr</a> = &amp;App_OnUcsNetworkStatus;</div>
+</div><!-- fragment --><p>If at least one of the <em>Network Status</em> parameters has been changed, this function is invoked. The first argument of the function is a bitmask. This mask indicates which parameters have been changed since the last function call. If a bit is set the corresponding parameter has been changed since the last update. A simple example implementation is shown below.</p>
+<div class="fragment"><div class="line"><span class="keywordtype">void</span> App_OnUcsNetworkStatus(uint16_t change_mask,</div>
+<div class="line"> uint16_t events,</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___n_e_t___t_y_p_e_s_ga6b0bec2ae9e4d0fb93eefd65752f0c74.html#ga6b0bec2ae9e4d0fb93eefd65752f0c74" title="MOST Network Availability.">Ucs_Network_Availability_t</a> availability,</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___n_e_t___t_y_p_e_s_gad5ed0387c3c156602826d50ce94c9df7.html#gad5ed0387c3c156602826d50ce94c9df7" title="MOST Network Availability Information.">Ucs_Network_AvailInfo_t</a> avail_info,</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#gab4ec40bf01de998abc4f2ae34c26ac46" title="MOST Network Availability Transition Cause.">Ucs_Network_AvailTransCause_t</a> avail_trans_cause,</div>
+<div class="line"> uint16_t node_address,</div>
+<div class="line"> uint8_t node_position,</div>
+<div class="line"> uint8_t max_position,</div>
+<div class="line"> uint16_t packet_bw)</div>
+<div class="line">{</div>
+<div class="line"> <span class="comment">/* Check update of third parameter &quot;availability&quot; */</span></div>
+<div class="line"> <span class="keywordflow">if</span>((change_mask &amp; <a class="code" href="group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8a707f78e3b7a58f4ce21f31da38e00573" title="Flag for notification of availability changes.">UCS_NW_M_AVAIL</a>) != 0U)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="keywordflow">switch</span>(availability)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="group___g___u_c_s___n_e_t___t_y_p_e_s_ga6b0bec2ae9e4d0fb93eefd65752f0c74.html#gga6b0bec2ae9e4d0fb93eefd65752f0c74afb1201dc3a998b9d4f9c48d5978d9ffc" title="MOST network is not available.">UCS_NW_NOT_AVAILABLE</a>:</div>
+<div class="line"> (void)printf(<span class="stringliteral">&quot;\n\rNetwork Not Available\n\r&quot;</span>);</div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="group___g___u_c_s___n_e_t___t_y_p_e_s_ga6b0bec2ae9e4d0fb93eefd65752f0c74.html#gga6b0bec2ae9e4d0fb93eefd65752f0c74a37fb322b410de335478f6bed31cd33f1" title="MOST network is available.">UCS_NW_AVAILABLE</a>:</div>
+<div class="line"> (void)printf(<span class="stringliteral">&quot;\n\rNetwork Available\n\r&quot;</span>);</div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> <span class="keywordflow">default</span>:</div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> }</div>
+<div class="line"> }</div>
+<div class="line"> </div>
+<div class="line"> <span class="comment">/* Handle other Network Status parameters here! */</span></div>
+<div class="line">}</div>
+</div><!-- fragment --><h2>Notification Bitmasks</h2>
+<p>Furthermore, it is possible to configure the notifications for <em>Network Status</em>. When initializing the corresponding callback function pointer, the user has the possibility to specify a <em>notification bitmask</em>. This mask indicates for which parameters the notification shall be enabled. If such a bit is set and the corresponding parameter has been changed the notification callback function is invoked.</p>
+<p>This is an optional parameter. If the mask is not modified, notifications for all of the parameters are enabled.</p>
+<p>The following example shows the usage of the notification bitmask.</p>
+<div class="fragment"><div class="line"><a class="code" href="struct_ucs___init_data__t.html" title="UNICENS initialization structure used by function Ucs_Init().">Ucs_InitData_t</a> init_data;</div>
+<div class="line"></div>
+<div class="line"><span class="comment">/* Register callback function for Network Status */</span></div>
+<div class="line">init_data.<a class="code" href="struct_ucs___init_data__t_aa220785601aa16c0e0aff52f44380719.html#aa220785601aa16c0e0aff52f44380719" title="Network initialization data.">network</a>.<a class="code" href="struct_ucs___network___init_data__t_ae9d2b9f86bdd3a9667a348eb2b75da12.html#ae9d2b9f86bdd3a9667a348eb2b75da12" title="Network Status.">status</a>.<a class="code" href="struct_ucs___network___status__t_a08f6acd8566e419c7017fc1874720223.html#a08f6acd8566e419c7017fc1874720223" title="Network Status callback function. This function reports information on the whole network.">cb_fptr</a> = &amp;App_OnUcsNetworkStatus;</div>
+<div class="line"><span class="comment">/* Notifications are enabled for parameters &quot;availability&quot; and &quot;node_position&quot; */</span></div>
+<div class="line">init_data.<a class="code" href="struct_ucs___init_data__t_aa220785601aa16c0e0aff52f44380719.html#aa220785601aa16c0e0aff52f44380719" title="Network initialization data.">network</a>.<a class="code" href="struct_ucs___network___init_data__t_ae9d2b9f86bdd3a9667a348eb2b75da12.html#ae9d2b9f86bdd3a9667a348eb2b75da12" title="Network Status.">status</a>.<a class="code" href="struct_ucs___network___status__t_ae7a618bc7852c52001d0756913c545c8.html#ae7a618bc7852c52001d0756913c545c8" title="Notification mask (optional parameter; default value: 0xFFFF) Indicates for which parameters the noti...">notification_mask</a> = (<a class="code" href="group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8a707f78e3b7a58f4ce21f31da38e00573" title="Flag for notification of availability changes.">UCS_NW_M_AVAIL</a>) | (<a class="code" href="group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8a89bb7ec3c55087159a8a19b5e9cc7fa0" title="Flag for notification of node position changes.">UCS_NW_M_NODE_POS</a>);</div>
+</div><!-- fragment --><table class="mns_ic_table">
+<tr>
+<td id="mns_ic_api">&#160;</td><td>See also <em>API Reference</em>, section <a class="el" href="struct_ucs___network___status__t.html" title="Structure holds parameters for the notification of the Network Status.">Ucs_Network_Status_t</a>. </td></tr>
+</table>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__n_o_d_e__d_i_s.html b/ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__n_o_d_e__d_i_s.html
new file mode 100644
index 0000000..239c315
--- /dev/null
+++ b/ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__n_o_d_e__d_i_s.html
@@ -0,0 +1,158 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Node Discovery</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_p__u_m__s_t_a_r_t_e_d__n_o_d_e__d_i_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Node Discovery </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><h1>Introduction</h1>
+<p>The idea behind the Node Discovery service is that nodes are allowed to use the bus only if they meet certain requirements. A central instance detects all nodes and checks if they fit to the intended system. Nodes passing the check get an explicit "invitation" to join the system.</p>
+<h1>Initialization</h1>
+<p>The application provides the two callback functions of the Node Discovery service.</p>
+<div class="fragment"><div class="line"><a class="code" href="struct_ucs___init_data__t.html" title="UNICENS initialization structure used by function Ucs_Init().">Ucs_InitData_t</a> init_data;</div>
+<div class="line"></div>
+<div class="line"><span class="comment">/* Node Discovery Section */</span> </div>
+<div class="line">init_data.<a class="code" href="struct_ucs___init_data__t_a97b13c03602cc54884ae1765c518bd7b.html#a97b13c03602cc54884ae1765c518bd7b" title="The initialization data of the Node Discovery.">nd</a>.<a class="code" href="struct_ucs___nd___init_data__t_a98b9ccad2c6c5fa2edaf472151ee853c.html#a98b9ccad2c6c5fa2edaf472151ee853c" title="Callback function reporting the results of the Node Discovery service.">report_fptr</a> = &amp;App_OnNodeDiscoveryResult;</div>
+<div class="line">init_data.<a class="code" href="struct_ucs___init_data__t_a97b13c03602cc54884ae1765c518bd7b.html#a97b13c03602cc54884ae1765c518bd7b" title="The initialization data of the Node Discovery.">nd</a>.<a class="code" href="struct_ucs___nd___init_data__t_ab9bc02a84c7daeff234344541d41be62.html#ab9bc02a84c7daeff234344541d41be62" title="Callback function asking for evaluation of the found signature.">eval_fptr</a> = &amp;App_OnNodeDiscoveryEval;</div>
+</div><!-- fragment --><table class="mns_ic_table">
+<tr>
+<td id="mns_ic_started">&#160;</td><td>See also <em>Getting Started</em>, section <a class="el" href="_p__u_m__s_t_a_r_t_e_d__i_n_i_t.html">Initialization</a>. </td></tr>
+</table>
+<dl class="section note"><dt>Note</dt><dd>The function names App_OnNodeDiscoveryResult() and App_OnNodeDiscoveryEval() are just example names. Nevertheless they will be used in the description below to designate the respective functions.</dd></dl>
+<h1>Operation</h1>
+<p>The application maintains at least two lists:</p>
+<dl>
+<dt><em>set_list</em> </dt>
+<dd><p class="startdd">Contains the signatures of the nodes the system shall contain.</p>
+<p class="enddd"></p>
+</dd>
+<dt><em>device_list</em> </dt>
+<dd>Contains the signatures of the nodes detected in the system. </dd>
+</dl>
+<p>For debuggting purposes it may be useful to have a third list:</p>
+<dl>
+<dt><em>unknown_list</em> </dt>
+<dd><p class="startdd">Signatures of the nodes which are detected but are not part of the <em>set_list</em>.</p>
+<p class="enddd"></p>
+</dd>
+</dl>
+<p>After startup all nodes are initialized and not part of the system. The application starts the Node Discovery service by calling <a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_ga50a5b00d5bbd1ad324478509dc524eec.html#ga50a5b00d5bbd1ad324478509dc524eec" title="Starts the Node Discovery service.">Ucs_Nd_Start()</a>. It asks every node for its signature (<a class="el" href="struct_ucs___signature__t.html" title="This structure holds the signature of the Hello, Welcome and Signature messages. It supports the sign...">Ucs_Signature_t</a>). Each detected node will be presented to the application via the callback function App_OnNodeDiscoveryEval(). In this function the application decides how the Node Discovery service shall proceed with the node.</p>
+<p>The evaluation has to follow these rules:</p>
+<ul>
+<li>If the node is not part of the <em>set_list</em>, it is regarded as unknown (<a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_gae1f89dbd75e3d76917273450df37ff66.html#ggae1f89dbd75e3d76917273450df37ff66a4ed7307250366668604925bf3650be4c">UCS_ND_CHK_UNKNOWN</a>) and will be ignored.</li>
+<li>If the node is part of the <em>set_list</em> and is not yet in the <em>device_list</em>, the Node Discovery Service shall try to add the node to network (<a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_gae1f89dbd75e3d76917273450df37ff66.html#ggae1f89dbd75e3d76917273450df37ff66a0c15fbb8aa9ee8dbf0362b9e9a8b6942">UCS_ND_CHK_WELCOME</a>).</li>
+<li>If the node is already part of the <em>device_list</em>, there are two possibilities: the node in the <em>device_list</em> experienced a reset or there are two nodes with the same signature. Evaluation result is <a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_gae1f89dbd75e3d76917273450df37ff66.html#ggae1f89dbd75e3d76917273450df37ff66acdbc82cdd701e67cdd7520172767ba75">UCS_ND_CHK_UNIQUE</a>. The Node Discovery service will perform further tests.</li>
+</ul>
+<p>The result of the evaluation is passed as the return value of App_OnNodeDiscoveryEval() (for possible values see <a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_gae1f89dbd75e3d76917273450df37ff66.html#gae1f89dbd75e3d76917273450df37ff66">Ucs_Nd_CheckResult_t</a>).</p>
+<p>When the Node Discovery process for a certain node is finished, the callback function App_OnNodeDiscoveryResult() is called. Its parameter <b>code</b> informs the application about the result of the node (for possible values see <a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#ga6736f9abd905dafe99d1337ac672f94e">Ucs_Nd_ResCode_t</a>).</p>
+<p>The Node Discovery service asks periodically for new nodes. So it will detect nodes which start up slowly and nodes which experienced a reset.</p>
+<p>App_OnNodeDiscoveryResult() informs also about general events like NetOff, unexpected error and stop of the Node Discovery service by application command. In these cases the parameter <b>signature</b> will be NULL.</p>
+<p>If a Netoff event happens, the Node Discovery service stops. It restarts automatically if it detects a NetOn event.</p>
+<p>The application can stop the Node Discovery service via <a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_ga637e441520f7b203e551274f17febfb6.html#ga637e441520f7b203e551274f17febfb6" title="Stops the Node Discovery service.">Ucs_Nd_Stop()</a>.</p>
+<p>It is possible to reset all nodes to the initial state they had after startup by calling <a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_gabab6c431e235fe0211f5f1525f9cff2e.html#gabab6c431e235fe0211f5f1525f9cff2e" title="Initializes all nodes.">Ucs_Nd_InitAll()</a>. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__n_o_d_e__s_c_r_i_p_t.html b/ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__n_o_d_e__s_c_r_i_p_t.html
new file mode 100644
index 0000000..86570b0
--- /dev/null
+++ b/ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__n_o_d_e__s_c_r_i_p_t.html
@@ -0,0 +1,236 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Node Scripting</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_p__u_m__s_t_a_r_t_e_d__n_o_d_e__s_c_r_i_p_t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Node Scripting </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><h1>Introduction</h1>
+<p>The idea behind the Node Scripting is to allow execution of custom scripts in remote Nodes. That is, user can specify scripts based on FBlock command syntax and run these on remote nodes by the use of Node Scripting module. <br/>
+ The module is designed and intended for the use of <b>I2C</b> and <b>GPIO</b> commands only. This means that using the Scripting module for any other FBlock INIC commands (MOST, MediaLB, USB, Streaming or Connection for example) is expressly <b>prohibited</b>.</p>
+<p>A script is a structure data (see below) composed of:</p>
+<ul>
+<li>The command based on INIC FBlock-Syntax to be transmitted</li>
+<li>The expected result also based on INIC FBlock-Syntax.</li>
+<li>The amount time [in milliseconds] to pause before sending the Tx command.</li>
+</ul>
+<div class="fragment"><div class="line"><span class="comment">/*! \brief Structure of a node-script */</span></div>
+<div class="line"><span class="keyword">typedef</span> <span class="keyword">struct </span>Ucs_Ns_Script_</div>
+<div class="line">{<span class="comment"></span></div>
+<div class="line"><span class="comment"> /*! \brief Specifies the pause which shall be set before sending</span></div>
+<div class="line"><span class="comment"> the Tx configuration message. </span></div>
+<div class="line"><span class="comment"> */</span></div>
+<div class="line"> uint16_t pause;<span class="comment"></span></div>
+<div class="line"><span class="comment"> /*! \brief Send command to be transmitted. */</span></div>
+<div class="line"> <a class="code" href="struct_ucs___ns___config_msg__t.html" title="Structure of a ConfigMsg used in Node-Script.">Ucs_Ns_ConfigMsg_t</a> * send_cmd;<span class="comment"></span></div>
+<div class="line"><span class="comment"> /*! \brief Expected result. */</span></div>
+<div class="line"> <a class="code" href="struct_ucs___ns___config_msg__t.html" title="Structure of a ConfigMsg used in Node-Script.">Ucs_Ns_ConfigMsg_t</a> * exp_result;</div>
+<div class="line"></div>
+<div class="line">} <a class="code" href="struct_ucs___ns___script__t.html" title="Structure of a node-script used to configure a remote node.">Ucs_Ns_Script_t</a>;</div>
+</div><!-- fragment --><p>A <a class="el" href="struct_ucs___ns___config_msg__t.html" title="Structure of a ConfigMsg used in Node-Script.">Ucs_Ns_ConfigMsg_t</a> message is based on INIC FBlock-Syntax and looks like this: </p>
+<div class="fragment"><div class="line"><span class="comment">/*! \brief Structure of a ConfigMsg */</span></div>
+<div class="line"><span class="keyword">typedef</span> <span class="keyword">struct </span>Ucs_Ns_ConfigMsg_</div>
+<div class="line">{<span class="comment"></span></div>
+<div class="line"><span class="comment"> /*! \brief FBlockId. */</span></div>
+<div class="line"> uint8_t FBlockId;<span class="comment"></span></div>
+<div class="line"><span class="comment"> /*! \brief InstId. */</span></div>
+<div class="line"> uint8_t InstId;<span class="comment"></span></div>
+<div class="line"><span class="comment"> /*! \brief FunktId. */</span></div>
+<div class="line"> uint16_t FunktId;<span class="comment"></span></div>
+<div class="line"><span class="comment"> /*! \brief OpCode. */</span></div>
+<div class="line"> uint8_t OpCode;<span class="comment"></span></div>
+<div class="line"><span class="comment"> /*! \brief Data length. */</span></div>
+<div class="line"> uint8_t DataLen;<span class="comment"></span></div>
+<div class="line"><span class="comment"> /*! \brief Reference to the Data */</span></div>
+<div class="line"> uint8_t * DataPtr;</div>
+<div class="line"></div>
+<div class="line">} <a class="code" href="struct_ucs___ns___config_msg__t.html" title="Structure of a ConfigMsg used in Node-Script.">Ucs_Ns_ConfigMsg_t</a>;</div>
+</div><!-- fragment --><h1>Operation</h1>
+<p>The user specifies the desired scripts, binds them to the target nodes and then call the function <a class="el" href="group___g___u_c_s___s_c_r_i_p_t_i_n_g_ga2f2737e4d507b9c15e165918db3f1456.html#ga2f2737e4d507b9c15e165918db3f1456" title="Runs the script(s) contained in the given node.">Ucs_Ns_Run()</a> for processing. The result of the operation is reported via the result callback function <a class="el" href="group___g___u_c_s___s_c_r_i_p_t_i_n_g_gab0f1bc424462b8bbe0b2155d504025a5.html#gab0f1bc424462b8bbe0b2155d504025a5">Ucs_Ns_ResultCb_t</a>, which is passed by user in the arguments list of <a class="el" href="group___g___u_c_s___s_c_r_i_p_t_i_n_g_ga2f2737e4d507b9c15e165918db3f1456.html#ga2f2737e4d507b9c15e165918db3f1456" title="Runs the script(s) contained in the given node.">Ucs_Ns_Run()</a>. In addition to this callback function and the referred UCS instance the function requires a reference to the Node that contains the script(s).</p>
+<div class="fragment"><div class="line"><a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd" title="Standard return codes used for synchronous response.">Ucs_Return_t</a> <a class="code" href="group___g___u_c_s___s_c_r_i_p_t_i_n_g_ga2f2737e4d507b9c15e165918db3f1456.html#ga2f2737e4d507b9c15e165918db3f1456" title="Runs the script(s) contained in the given node.">Ucs_Ns_Run</a>(<a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda" title="UNICENS instance.">Ucs_Inst_t</a> *<span class="keyword">self</span>, <a class="code" href="struct_ucs___rm___node__t.html" title="Configuration structure of a Node.">Ucs_Rm_Node_t</a> * node_ptr, <a class="code" href="group___g___u_c_s___s_c_r_i_p_t_i_n_g_gab0f1bc424462b8bbe0b2155d504025a5.html#gab0f1bc424462b8bbe0b2155d504025a5" title="Function signature used for the results of the Scripting Manager.">Ucs_Ns_ResultCb_t</a> result_fptr);</div>
+</div><!-- fragment --><p>The <a class="el" href="group___g___u_c_s___s_c_r_i_p_t_i_n_g_ga2f2737e4d507b9c15e165918db3f1456.html#ga2f2737e4d507b9c15e165918db3f1456" title="Runs the script(s) contained in the given node.">Ucs_Ns_Run()</a> function starts the process to transmit the script(s) contained in the provided node and then checks for the expected results (specified by customer). The Node Scripting module will start a timer of 2600ms before sending the Tx command of each script. That is, if no incoming messages match the expected result of the script during this time the result code <a class="el" href="group___g___u_c_s___s_c_r_i_p_t_i_n_g_gabd3ecc8ab539f3b9de3fc8045c083b60.html#ggabd3ecc8ab539f3b9de3fc8045c083b60ad0ba0f8f6ba494e7685980d490e48b72">UCS_NS_RES_ERROR</a> is returned via the <a class="el" href="group___g___u_c_s___s_c_r_i_p_t_i_n_g_gab0f1bc424462b8bbe0b2155d504025a5.html#gab0f1bc424462b8bbe0b2155d504025a5">Ucs_Ns_ResultCb_t</a> user callback function. This error code is also get when the script module couldn't perform the device synchronization of the remote device (this can be read in the detailed error messages, if enabled. See below). Otherwise, if an incoming message matches the expected result, <a class="el" href="group___g___u_c_s___s_c_r_i_p_t_i_n_g_gabd3ecc8ab539f3b9de3fc8045c083b60.html#ggabd3ecc8ab539f3b9de3fc8045c083b60af22bd910a1d7e2271b5b3cddf5892962">UCS_NS_RES_SUCCESS</a> is returned.</p>
+<p>The <a class="el" href="group___g___u_c_s___s_c_r_i_p_t_i_n_g_ga2f2737e4d507b9c15e165918db3f1456.html#ga2f2737e4d507b9c15e165918db3f1456" title="Runs the script(s) contained in the given node.">Ucs_Ns_Run()</a> function will return <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cdad4a30091202638c890abbdb682ca4fe5">UCS_RET_ERR_API_LOCKED</a> when attempting to execute a script in a node that is currently busy with other(s) previous script(s). The <a class="el" href="group___g___u_c_s___s_c_r_i_p_t_i_n_g_ga2f2737e4d507b9c15e165918db3f1456.html#ga2f2737e4d507b9c15e165918db3f1456" title="Runs the script(s) contained in the given node.">Ucs_Ns_Run()</a> function is namely locked for a Node when handling script(s) on this node and unlocked after reporting the result of the operation. However processing scripts can be executed on different nodes in parallel.</p>
+<p>The detailed error messages can be read when enabling the error trace output in <code>ucs_cfg.h</code> file as shown below.</p>
+<div class="fragment"><div class="line"><span class="comment">/* File: ucs_cfg.h */</span></div>
+<div class="line"><span class="comment">/*------------------------------------------------------------------------------------------------*/</span></div>
+<div class="line"><span class="comment">/* Tracing &amp; Debugging */</span></div>
+<div class="line"><span class="comment">/*------------------------------------------------------------------------------------------------*/</span></div>
+<div class="line"><span class="preprocessor"># define UCS_TR_ERROR App_TraceError</span></div>
+<div class="line"><span class="preprocessor"></span></div>
+<div class="line"><span class="keyword">extern</span> <span class="keywordtype">void</span> App_TraceError(<span class="keywordtype">void</span> *ucs_user_ptr, <span class="keyword">const</span> <span class="keywordtype">char</span> module_str[], <span class="keyword">const</span> <span class="keywordtype">char</span> entry_str[], </div>
+<div class="line"> uint16_t vargs_cnt, ...); </div>
+</div><!-- fragment --><div class="fragment"><div class="line"><span class="comment">/* File: app_trace.c */</span></div>
+<div class="line"><span class="keywordtype">void</span> App_TraceError(<span class="keywordtype">void</span> *ucs_user_ptr, <span class="keyword">const</span> <span class="keywordtype">char</span> module_str[], <span class="keyword">const</span> <span class="keywordtype">char</span> entry_str[], </div>
+<div class="line"> uint16_t vargs_cnt, ...)</div>
+<div class="line">{</div>
+<div class="line"> <span class="keywordflow">if</span> (file_ != NULL)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="keywordtype">char</span> outbuf[256];</div>
+<div class="line"> va_list argptr;</div>
+<div class="line"> uint16_t timestamp = (uint16_t)timeGetTime() - startup_time;</div>
+<div class="line"> va_start(argptr, vargs_cnt);</div>
+<div class="line"> (void)vsprintf(outbuf, entry_str, argptr);</div>
+<div class="line"> va_end(argptr);</div>
+<div class="line"> (void)fprintf(file_, <span class="stringliteral">&quot;%5u | [%u] | Error | %s | %s\n&quot;</span>, timestamp, ucs_user_ptr, module_str, outbuf);</div>
+<div class="line"> (void)fflush(file_);</div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment --><h1>Example</h1>
+<p>The example below outlines the execution of a script within a node with address 0x200. This example is inserted as a guide and may not contain all of the necessary details and information.</p>
+<div class="fragment"><div class="line"><span class="comment">/* Flag that checks whether node with address 0x200 is discovered by Node Discovering */</span></div>
+<div class="line"><span class="keyword">static</span> <span class="keywordtype">bool</span> node200_discovered = <span class="keyword">false</span>;</div>
+<div class="line"></div>
+<div class="line"><span class="comment">/* Forward declaration of result callback function */</span></div>
+<div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> App_OnScriptingResult(uint16_t node_address, <a class="code" href="group___g___u_c_s___s_c_r_i_p_t_i_n_g_gabd3ecc8ab539f3b9de3fc8045c083b60.html#gabd3ecc8ab539f3b9de3fc8045c083b60" title="Result codes of the Node Script Management.">Ucs_Ns_ResultCode_t</a> result, <span class="keywordtype">void</span> *user_ptr);</div>
+<div class="line"></div>
+<div class="line"><span class="comment">/* Configuration Msg specification */</span></div>
+<div class="line"><span class="keyword">static</span> uint8_t tx_data [] = { 0x00, 0x40, 0x01, 0x01 };</div>
+<div class="line"><span class="keyword">static</span> uint8_t rx_data [] = { 0x0F, 0x00 };</div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___ns___config_msg__t.html" title="Structure of a ConfigMsg used in Node-Script.">Ucs_Ns_ConfigMsg_t</a> tx_msg = { 0x00, 0x00, 0x6C1, 0x2, 4U, &amp;tx_data };</div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___ns___config_msg__t.html" title="Structure of a ConfigMsg used in Node-Script.">Ucs_Ns_ConfigMsg_t</a> rx_msg = { 0x00, 0x01, 0x6C1, 0xC, 2U, &amp;rx_data };</div>
+<div class="line"></div>
+<div class="line"><span class="comment">/* Scripts specification */</span></div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___ns___script__t.html" title="Structure of a node-script used to configure a remote node.">Ucs_Ns_Script_t</a> script_x = { 100U, &amp;tx_msg, &amp;rx_msg };</div>
+<div class="line"></div>
+<div class="line"><span class="comment">/* Signature specification */</span></div>
+<div class="line"><a class="code" href="struct_ucs___signature__t.html" title="This structure holds the signature of the Hello, Welcome and Signature messages. It supports the sign...">Ucs_Signature_t</a> sig_200 = { 200U };</div>
+<div class="line"></div>
+<div class="line"><span class="comment">/* Nodes objects Specification */</span></div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___rm___node__t.html" title="Configuration structure of a Node.">Ucs_Rm_Node_t</a> node_200 = { &amp;sig_200, &amp;script_x, 1U, 0U };</div>
+<div class="line"></div>
+<div class="line"><span class="comment">/* Main function */</span></div>
+<div class="line"><span class="keywordtype">void</span> main(uint8_t argc, <span class="keywordtype">char</span> *argv[])</div>
+<div class="line">{</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/* ... */</span></div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">if</span> (node200_discovered)</div>
+<div class="line"> {</div>
+<div class="line"> (void)<a class="code" href="group___g___u_c_s___s_c_r_i_p_t_i_n_g_ga2f2737e4d507b9c15e165918db3f1456.html#ga2f2737e4d507b9c15e165918db3f1456" title="Runs the script(s) contained in the given node.">Ucs_Ns_Run</a>(ucs_inst_ptr, &amp;node_200, &amp;App_OnScriptingResult);</div>
+<div class="line"> }</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/* ... */</span></div>
+<div class="line">}</div>
+<div class="line"></div>
+<div class="line"><span class="comment">/* The result callback function */</span></div>
+<div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> App_OnScriptingResult(<a class="code" href="struct_ucs___rm___node__t.html" title="Configuration structure of a Node.">Ucs_Rm_Node_t</a> * node_ptr, <a class="code" href="group___g___u_c_s___s_c_r_i_p_t_i_n_g_gabd3ecc8ab539f3b9de3fc8045c083b60.html#gabd3ecc8ab539f3b9de3fc8045c083b60" title="Result codes of the Node Script Management.">Ucs_Ns_ResultCode_t</a> result, <span class="keywordtype">void</span> *user_ptr)</div>
+<div class="line">{</div>
+<div class="line"> <span class="keywordflow">switch</span> (result)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="group___g___u_c_s___s_c_r_i_p_t_i_n_g_gabd3ecc8ab539f3b9de3fc8045c083b60.html#ggabd3ecc8ab539f3b9de3fc8045c083b60af22bd910a1d7e2271b5b3cddf5892962" title="Transmission of script(s) was successful.">UCS_NS_RES_SUCCESS</a>:</div>
+<div class="line"> <span class="comment">/* Node can be set to &quot;Available&quot; for example */</span></div>
+<div class="line"> <a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g_ga57ca34a488f06d57f2219be23fa0259f.html#ga57ca34a488f06d57f2219be23fa0259f" title="Sets the availability attribute (available or not available) of the given node and triggers the routi...">Ucs_Rm_SetNodeAvailable</a>(ucs_inst_ptr, node_ptr, <span class="keyword">true</span>);</div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="group___g___u_c_s___s_c_r_i_p_t_i_n_g_gabd3ecc8ab539f3b9de3fc8045c083b60.html#ggabd3ecc8ab539f3b9de3fc8045c083b60ad0ba0f8f6ba494e7685980d490e48b72" title="Transmission of script(s) failed.">UCS_NS_RES_ERROR</a>:</div>
+<div class="line"> <span class="keywordflow">default</span>:</div>
+<div class="line"> <span class="comment">/* Do whatever is necessary here */</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment --> </div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__p_r_e_p.html b/ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__p_r_e_p.html
new file mode 100644
index 0000000..68ffd0b
--- /dev/null
+++ b/ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__p_r_e_p.html
@@ -0,0 +1,202 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Preparations</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_p__u_m__s_t_a_r_t_e_d__p_r_e_p.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Preparations </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>The following figure shows the directory structure of the extracted source package. It is recommended to keep the folder structure as is. This will simplify version updates in future.</p>
+<table style="border:0px">
+<tr>
+<td><div class="image">
+<img src="release_package_directory.png" alt="release_package_directory.png"/>
+</div>
+ </td></tr>
+</table>
+<p><br/>
+</p>
+<table class="doxtable">
+<tr>
+<th>Folder </th><th>Description</th></tr>
+<tr>
+<td><code>cfg</code> </td><td>Contains configuration files that can be customized by the user. </td></tr>
+<tr>
+<td><code>doc</code> </td><td>Contains the online documentation. </td></tr>
+<tr>
+<td><code>inc</code> </td><td>Contains the C header files. </td></tr>
+<tr>
+<td><code>src</code> </td><td>Contains the C source files. </td></tr>
+</table>
+<h1>Data Types</h1>
+<p>Data types must be defined within the header file <code>cfg/ucs_types_cfg.h</code>. The easiest way to make the data types available is to include the standard library <code>&lt;stdint.h&gt;</code>. If the compiler does not provide this library the following data types must be defined by the application.</p>
+<table class="doxtable">
+<tr>
+<th>Data Type </th><th>Definition</th></tr>
+<tr>
+<td><code>int8_t</code> </td><td>Signed integer, 8 bit </td></tr>
+<tr>
+<td><code>int16_t</code> </td><td>Signed integer, 16 bit </td></tr>
+<tr>
+<td><code>int32_t</code> </td><td>Signed integer, 32 bit </td></tr>
+<tr>
+<td><code>uint8_t</code> </td><td>Unsigned integer, 8 bit </td></tr>
+<tr>
+<td><code>uint16_t</code> </td><td>Unsigned integer, 16 bit </td></tr>
+<tr>
+<td><code>uint32_t</code> </td><td>Unsigned integer, 32 bit </td></tr>
+</table>
+<p>The data type <code>size_t</code> is required for results of <code>sizeof()</code> operations. Typically <code>size_t</code> is define in &lt;stddef.h&gt;.</p>
+<table class="doxtable">
+<tr>
+<th>Data Type </th><th>Definition</th></tr>
+<tr>
+<td><code>size_t</code> </td><td>Result of <code>sizeof()</code> operator </td></tr>
+</table>
+<p>For boolean types the definition of <code>bool</code> has to be taken from <code>&lt;stdbool.h&gt;</code>. If this library is not available, the application has to define its own boolean data type based on an unsigned, 8-bit integer.</p>
+<table class="doxtable">
+<tr>
+<th>Data Type </th><th>Definition</th></tr>
+<tr>
+<td><code>bool</code> </td><td>Unsigned integer, 8 bit </td></tr>
+</table>
+<p>In conjunction with boolean variables and constants the constants <code>true</code> and <code>false</code> must be used exclusively. These constants are also defined in <code>&lt;stdbool.h&gt;</code>. If the library is not available, the following macros must be defined by the application.</p>
+<div class="fragment"><div class="line"><span class="preprocessor">#define true ((bool)1)</span></div>
+<div class="line"><span class="preprocessor">#define false ((bool)0)</span></div>
+</div><!-- fragment --><dl class="section note"><dt>Note</dt><dd>If the library is compiled under C++ the definition of <code>bool</code>, <code>true</code> and <code>false</code> must be adapted to the boolean data type used by that compiler.</dd></dl>
+<h1>Thread Safety</h1>
+<p>The library is not thread-safe. I.e., the configuration does not support the definition of mutexes and cannot handle calls from different thread contexts. Hence, the application has to ensure that the library is invoked correctly. This can be reached by the following approaches:</p>
+<ul>
+<li>The application must call the UNICENS API always from the same thread (recommended).</li>
+<li>The application must protect every UNICENS API call by mutexes or semaphores to avoid that concurrent threads access the API at the same time. Please note: API callback functions are invoked by ongoing API call. It is recommended to use context sensitive mutexes or to avoid further API calls from within an API callback function.</li>
+</ul>
+<h1>Static Configurations</h1>
+<p>The library provides some static configuration settings that must be specified at compile time. These settings are part of the file <code>cfg/ucs_cfg.h</code> and are pre-defined to default values. Hence, adjustment may be done when needed. The following settings are examples for the static configuration.</p>
+<ul>
+<li>Define the maximum number of API instances that are available within one process.</li>
+<li>Define the maximum number of remote nodes to be configured.</li>
+<li>Define the number of Tx and Rx application messages that can be processed at a moment and the according payload size per message.</li>
+<li>Enable/disable the library trace output.</li>
+</ul>
+<h1>Include Header File</h1>
+<p>To access the UNICENS API, the application must solely include the header file <code>ucs_api.h</code>.</p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;ucs_api.h&quot;</span> <span class="comment">/* include the UNICENS header file */</span></div>
+<div class="line"></div>
+<div class="line"><span class="keywordtype">int</span> main(<span class="keywordtype">void</span>)</div>
+<div class="line">{</div>
+<div class="line"> <span class="comment">/* ... */</span></div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">return</span> 0;</div>
+<div class="line">}</div>
+</div><!-- fragment --><h1>64-bit Support</h1>
+<p>The UNICENS library is designed portable and thus supports also 64-bit systems. Platform dependent settings can be modified in the configuration files. Please check the following settings to ensure that the configuration files are well adopted for a 64-bit system:</p>
+<ul>
+<li>Check if data type definitions in <code>cfg/ucs_types_cfg.h</code> are correct.</li>
+<li>Check if <code>size_t</code> is defined correctly.</li>
+<li>If available, please include <code>&lt;stdint.h&gt;</code> and <code>&lt;stddef.h&gt;</code> for the target system.</li>
+</ul>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__p_r_o_g_r_a_m_m_i_n_g.html b/ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__p_r_o_g_r_a_m_m_i_n_g.html
new file mode 100644
index 0000000..13937c2
--- /dev/null
+++ b/ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__p_r_o_g_r_a_m_m_i_n_g.html
@@ -0,0 +1,190 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Programming</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_p__u_m__s_t_a_r_t_e_d__p_r_o_g_r_a_m_m_i_n_g.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Programming </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><h1>Introduction</h1>
+<p>The Programming API allows to program the ConfigString and/or the IdentString of a single node in the system.</p>
+<h1>Initialization</h1>
+<p>The Programming API has no initialization parameters.</p>
+<h1>Operation</h1>
+<h2>Start</h2>
+<p>The Programming service assumes that the target node has received a Hello.Get command. Programming is started by calling <a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e_ga12071385b86ab6375472db80c00b80c7.html#ga12071385b86ab6375472db80c00b80c7">Ucs_Prog_Start()</a>. It requires the following parameters:</p>
+<dl>
+<dt><em>self</em> </dt>
+<dd><p class="startdd">Reference to the UNICENS instance (<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a>). </p>
+<p class="enddd"></p>
+</dd>
+<dt><em>node_id</em> </dt>
+<dd><p class="startdd">The node position address of the the node to be programmed. </p>
+<p class="enddd"></p>
+</dd>
+<dt><em>signature</em> </dt>
+<dd><p class="startdd">Signature of the the node to be programmed as it was reported by Hello.Status during the Node Discovery (<a class="el" href="struct_ucs___signature__t.html">Ucs_Signature_t</a>). </p>
+<p class="enddd"></p>
+</dd>
+<dt><em>session_type</em> </dt>
+<dd><p class="startdd">Defines the set of MemIDs (see command_list) (<a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gab29d4eadce18cb68209671a44c1eaa3a.html#gab29d4eadce18cb68209671a44c1eaa3a">Ucs_Prg_SessionType_t</a>).</p>
+<p class="enddd"></p>
+</dd>
+<dt><em>command_list</em> </dt>
+<dd><p class="startdd">Array of programming tasks of type <a class="el" href="struct_ucs___prg___command__t.html">Ucs_Prg_Command_t</a>. Currently each entry corresponds to one ExtendedNetworkControl.MemoryWrite command. The array ends with an entry whose <a class="el" href="struct_ucs___prg___command__t_ad97c802f66f41e937c3f8b33337b8c6d.html#ad97c802f66f41e937c3f8b33337b8c6d">data_length</a> is 0 or <a class="el" href="struct_ucs___prg___command__t_abe222f6d3581e7920dcad5306cc906a8.html#abe222f6d3581e7920dcad5306cc906a8">data</a> is NULL . </p>
+<dl>
+<dt><em>mem_id</em> </dt>
+<dd><p class="startdd">Represents the memory resource to be written. </p>
+<p class="enddd"></p>
+</dd>
+<dt><em>address</em> </dt>
+<dd><p class="startdd">Defines the memory location at which the writing operation starts. </p>
+<p class="enddd"></p>
+</dd>
+<dt><em>unit_length</em> </dt>
+<dd><p class="startdd">Sets the number of memory units to be written. Memory units can be unsigned bytes, unsigned words or unsigned masked data depending on the memory type. </p>
+<p class="enddd"></p>
+</dd>
+<dt><em>data_length</em> </dt>
+<dd><p class="startdd">Total length of data. </p>
+<p class="enddd"></p>
+</dd>
+<dt><em>data</em> </dt>
+<dd>Contains the actual data written to the memory resource and formatted as memory units. </dd>
+</dl>
+<p class="enddd"></p>
+</dd>
+<dt><em>result_fptr</em> </dt>
+<dd><p class="startdd">Callback providing the result of the Programming task (<a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e_ga15045bde4d6a35f1b1e20eb6e3c688ab.html#ga15045bde4d6a35f1b1e20eb6e3c688ab">Ucs_Prg_ReportCb_t</a>). </p>
+<p class="enddd"></p>
+</dd>
+</dl>
+<h2>Result</h2>
+<p>When the Programming service finishes, it provides its result via the <a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e_ga15045bde4d6a35f1b1e20eb6e3c688ab.html#ga15045bde4d6a35f1b1e20eb6e3c688ab">result_fptr</a> callback function.</p>
+<dl>
+<dt><em>code</em> </dt>
+<dd><p class="startdd">Result values of the Programming service (<a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html#gaa998005dc2e710169a39af0c3739ade2">Ucs_Prg_ResCode_t</a>). </p>
+<p class="enddd"></p>
+</dd>
+<dt><em>function</em> </dt>
+<dd><p class="startdd">Describes the function where an error occurred (<a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#ga25cd4c3a9113e0a25b65136fec561c83">Ucs_Prg_Func_t</a>). </p>
+<p class="enddd"></p>
+</dd>
+<dt><em>ret_len</em> </dt>
+<dd><p class="startdd">Length of the following error parameter field <em>parm</em>. It is 0 if no error occurred. </p>
+<p class="enddd"></p>
+</dd>
+<dt><em>parm</em> </dt>
+<dd><p class="startdd">Pointer to the parameters of a potential error message. The meaning of these parameters can be derived from <em>function</em> and the respective EXC functions. </p>
+<p class="enddd"></p>
+</dd>
+<dt><em>user_ptr</em> </dt>
+<dd><p class="startdd">User reference as provided in <a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t::user_ptr</a> </p>
+<p class="enddd"></p>
+</dd>
+</dl>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__r_m.html b/ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__r_m.html
new file mode 100644
index 0000000..8f0ce5a
--- /dev/null
+++ b/ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__r_m.html
@@ -0,0 +1,436 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Routing Management</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_p__u_m__s_t_a_r_t_e_d__r_m.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Routing Management </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><h1>Introduction</h1>
+<p>The routing management is an aspect of the INIC Resources Management that implements the connectivity between sources and sinks endpoints respectively sockets from a device perspective (see picture below).</p>
+<div class="image">
+<img src="routing_physical_pov.png" alt="routing_physical_pov.png"/>
+</div>
+<p> A (virtual) route is a logical unidirectional connection between two endpoints. An endpoint acts as a MOST connection in INIC plus the internal linked resources. <br/>
+ The routing management consists of following features:</p>
+<ul>
+<li>Create a route</li>
+<li>Destroy a route</li>
+<li>Monitor created routes and XRM resources</li>
+<li>Report each route state to the user application callback functions.</li>
+</ul>
+<p>The UNICENS library provides therefore a set of functions to fulfill the above features. These will be depicted in the next sections.</p>
+<h1>Configuration</h1>
+<p>Since the routing management is based on XRM (refer to MNS V3.2.x), the user has to change the default values of the following macros to suit his specific system needs.</p>
+<ul>
+<li><a class="el" href="group___g___u_c_s___x_r_m___c_f_g_ga70720ac0fdcbbbc7f4742654c8f8abc1.html#ga70720ac0fdcbbbc7f4742654c8f8abc1">UCS_NUM_REMOTE_DEVICES</a> in <code>ucs_cfg.h</code> </li>
+<li><a class="el" href="group___g___u_c_s___x_r_m___c_f_g_gaddc205bcdb37b435fddb292c416f605b.html#gaddc205bcdb37b435fddb292c416f605b">UCS_XRM_NUM_JOBS</a> in <code>ucs_xrm_cfg.h</code> </li>
+<li><a class="el" href="group___g___u_c_s___x_r_m___c_f_g_ga9bbd7e20bff0c7ea54699df5969e933a.html#ga9bbd7e20bff0c7ea54699df5969e933a">UCS_XRM_NUM_RESOURCES</a> in <code>ucs_xrm_cfg.h</code> </li>
+</ul>
+<div class="fragment"><div class="line"><span class="comment">/* File: ucs_cfg.h */</span></div>
+<div class="line"><span class="preprocessor">#define UCS_NUM_REMOTE_DEVICES 10U</span></div>
+</div><!-- fragment --><div class="fragment"><div class="line"><span class="comment">/* File: ucs_xrm_cfg.h */</span></div>
+<div class="line"><span class="preprocessor">#define UCS_XRM_NUM_JOBS 40U</span></div>
+<div class="line"><span class="preprocessor">#define UCS_XRM_NUM_RESOURCES 200U</span></div>
+</div><!-- fragment --><h1>Initialization</h1>
+<p>The application shall provide following report callback functions in the UNICENS Init-Structure in order to receive any routing events. These are:</p>
+<ul>
+<li><b>rm.report_fptr:</b> Optional callback function that reports status information for all routes.</li>
+<li><b>rm.debug_resource_status_fptr:</b> Optional callback function that acts as a debug interface for XRM resources. User application can monitor the specified XRM resources via this interface.</li>
+<li><b>rm.xrm.most_port_status_fptr</b>: Optional callback function that reports streaming-related information for the MOST Network Port</li>
+<li><b>rm.xrm.check_unmute_fptr</b>: Optional callback function that signals the EHC to check the mute pin state of devices before attempting an unmute.</li>
+</ul>
+<p>The example below illustrates how to initialize these callback functions: </p>
+<div class="fragment"><div class="line"><a class="code" href="struct_ucs___init_data__t.html" title="UNICENS initialization structure used by function Ucs_Init().">Ucs_InitData_t</a> ucs_init_data;</div>
+<div class="line">(void)<a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga64b50780725a0dc8693b5b73f8345ad6.html#ga64b50780725a0dc8693b5b73f8345ad6" title="Assigns default values to a provided UNICENS init structure.">Ucs_SetDefaultConfig</a>(&amp;ucs_init_data);</div>
+<div class="line"></div>
+<div class="line"><span class="comment">/* Routing Management init section. */</span></div>
+<div class="line">ucs_init_data.<a class="code" href="struct_ucs___init_data__t_a8619aaf795810b7508046fbfef6d6907.html#a8619aaf795810b7508046fbfef6d6907" title="The initialization data of the Routing Management.">rm</a>.<a class="code" href="struct_ucs___rm___init_data__t_a2420c468d89e6f991f68189ba2f61d15.html#a2420c468d89e6f991f68189ba2f61d15" title="Optional report callback function pointer for all routes.">report_fptr</a> = &amp;App_OnRoutingResult;</div>
+<div class="line">ucs_init_data.<a class="code" href="struct_ucs___init_data__t_a8619aaf795810b7508046fbfef6d6907.html#a8619aaf795810b7508046fbfef6d6907" title="The initialization data of the Routing Management.">rm</a>.<a class="code" href="struct_ucs___rm___init_data__t_a68590d8712353f94f2e9ccec1e21baa5.html#a68590d8712353f94f2e9ccec1e21baa5" title="Callback function that acts as a debug interface for XRM resources. The user application has the poss...">debug_resource_status_fptr</a> = &amp;App_OnDebuggingXrmResources;</div>
+<div class="line">ucs_init_data.<a class="code" href="struct_ucs___init_data__t_a8619aaf795810b7508046fbfef6d6907.html#a8619aaf795810b7508046fbfef6d6907" title="The initialization data of the Routing Management.">rm</a>.<a class="code" href="struct_ucs___rm___init_data__t_ab3de88c423837727c463947f57895e49.html#ab3de88c423837727c463947f57895e49" title="Initialization structure of the Extended Resource Manager.">xrm</a>.<a class="code" href="struct_ucs___xrm___init_data__t_a9497e039c582e7d2804ee470d6812e91.html#a9497e039c582e7d2804ee470d6812e91" title="Callback function that reports streaming-related information for the MOST Network Port...">most_port_status_fptr</a> = &amp;App_MostPortStatusCb;</div>
+<div class="line">ucs_init_data.<a class="code" href="struct_ucs___init_data__t_a8619aaf795810b7508046fbfef6d6907.html#a8619aaf795810b7508046fbfef6d6907" title="The initialization data of the Routing Management.">rm</a>.<a class="code" href="struct_ucs___rm___init_data__t_ab3de88c423837727c463947f57895e49.html#ab3de88c423837727c463947f57895e49" title="Initialization structure of the Extended Resource Manager.">xrm</a>.<a class="code" href="struct_ucs___xrm___init_data__t_a7ad953f5414061df43df073ece15e25b.html#a7ad953f5414061df43df073ece15e25b" title="Callback function that signals the EHC to check the mute pin state of devices before attempting unmut...">check_unmute_fptr</a> = &amp;App_CheckUnmuteStatusCb;</div>
+<div class="line"></div>
+<div class="line"><span class="comment">/* The report callback function for all routes */</span></div>
+<div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> App_OnRoutingResult(uint16_t route_id, <a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#ga75ffbf28e4afc99a6abdbff0887baf9b" title="This enumerator specifies the possible route information returned via User callback function of Ucs_R...">Ucs_Rm_RouteInfos_t</a> route_infos, <span class="keywordtype">void</span> *user_ptr)</div>
+<div class="line">{</div>
+<div class="line"> <span class="comment">/* Do whatever is necessary here */</span></div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">switch</span> (route_infos)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#gga75ffbf28e4afc99a6abdbff0887baf9ba5778af29569eb74e7546749e93ed9c1e" title="Specifies that the route has been built.">UCS_RM_ROUTE_INFOS_BUILT</a>:</div>
+<div class="line"> <span class="comment">/* Route has been built */</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#gga75ffbf28e4afc99a6abdbff0887baf9ba5458da57325825b8922710a90a9ea4d5" title="Specifies that the route has been destroyed.">UCS_RM_ROUTE_INFOS_DESTROYED</a>:</div>
+<div class="line"> <span class="comment">/* Route has been destroyed */</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#gga75ffbf28e4afc99a6abdbff0887baf9bace1ac2f05b198d3d223baa33ca71493a" title="Specifies that the route cannot be processed anymore because of UNICENS Termination.">UCS_RM_ROUTE_INFOS_PROCESS_STOP</a>:</div>
+<div class="line"> <span class="comment">/* Route cannot be processed anymore due to Unicens Termination */</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> <span class="keywordflow">default</span>:</div>
+<div class="line"> <span class="comment">/* Route has been suspended */</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> }</div>
+<div class="line">}</div>
+<div class="line"></div>
+<div class="line"><span class="comment">/* Handle MOST Port Status event here */</span></div>
+<div class="line"><span class="keywordtype">void</span> App_MostPortStatusCb(uint16_t most_port_handle,</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_ga902951b9083ff58a88e19e151b57106a.html#ga902951b9083ff58a88e19e151b57106a" title="Indicates if the MOST Network Port is available and ready for streaming data connections.">Ucs_Most_PortAvail_t</a> availability,</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_ga24bf81b4e52fc1fb01deba9165d7c79e.html#ga24bf81b4e52fc1fb01deba9165d7c79e" title="Indicates the sub state to parameter Available.">Ucs_Most_PortAvailInfo_t</a> avail_info,</div>
+<div class="line"> uint16_t free_streaming_bw)</div>
+<div class="line">{</div>
+<div class="line"> <span class="comment">/* Do what needs to be.. */</span></div>
+<div class="line">}</div>
+<div class="line"></div>
+<div class="line"><span class="comment">/* Handle the Mute Pin check here */</span></div>
+<div class="line"><span class="keywordtype">void</span> App_CheckUnmuteStatusCb (uint16_t node_address)</div>
+<div class="line">{</div>
+<div class="line"> <span class="comment">/* Check the state of the mute pin here before unmuting */</span></div>
+<div class="line">}</div>
+<div class="line"></div>
+<div class="line"><span class="comment">/* Debug interface for the XRM resources */</span></div>
+<div class="line"><span class="keywordtype">void</span> App_OnDebuggingXrmResources (<a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc" title="INIC resource types used by the Extended Resource Manager.">Ucs_Xrm_ResourceType_t</a> resource_type, <a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173" title="INIC Resource Object used for Extended Resource Manager jobs.">Ucs_Xrm_ResObject_t</a> *resource_ptr, <a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#ga5299ac232aaeba37eb6fceb53e32b2ea" title="This enumerator specifies the type of resources information.">Ucs_Xrm_ResourceInfos_t</a> resource_infos, </div>
+<div class="line"> <a class="code" href="struct_ucs___rm___end_point__t.html" title="Configuration structure of a Connection EndPoint.">Ucs_Rm_EndPoint_t</a> *endpoint_inst_ptr, <span class="keywordtype">void</span> *user_ptr)</div>
+<div class="line">{</div>
+<div class="line"> <span class="keywordflow">switch</span> (resource_infos)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#gga5299ac232aaeba37eb6fceb53e32b2eaaf17abdbe8fab65a069b6a8af1079066a" title="Signals that the resource is built.">UCS_XRM_INFOS_BUILT</a>:</div>
+<div class="line"> <span class="comment">/* Resource has been built */</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#gga5299ac232aaeba37eb6fceb53e32b2eaa6e7faa32a0cb82c3fdf4450d80188262" title="Signals that the resource is destroyed.">UCS_XRM_INFOS_DESTROYED</a>:</div>
+<div class="line"> <span class="comment">/* resource has been destroyed */</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#gga5299ac232aaeba37eb6fceb53e32b2eaac57d4f29bbfd2f62eefddc4e31a7ad81" title="Signals that XRM fails to build the resource.">UCS_XRM_INFOS_ERR_BUILT</a>:</div>
+<div class="line"> <span class="comment">/* Resource cannot be built */</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> <span class="keywordflow">default</span>:</div>
+<div class="line"> <span class="comment">/* Resource cannot be destroyed */</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment --><h1>Operation</h1>
+<p>After initialization the application specifies the routes, endpoints, nodes as well as the XRM jobs and calls the <a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g_gaaa23aca8279da197192210fe11889452.html#gaaa23aca8279da197192210fe11889452" title="Initializes the routing process with the given routes list information and starts the process to hand...">Ucs_Rm_Start()</a> function to initialize and start the routing process. This function must be called once and can only be called once. At this point, it is important to mention that there are some <b>preconditions</b> for the routes to be handled properly:</p>
+<ul>
+<li>UNICENS is initialized</li>
+<li>XRM macros have been set correctly (See above)</li>
+<li>The network is available</li>
+<li>The nodes, where the corresponding routes shall be built on, are <code>available</code>. That is, the user application has to call the function <a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g_ga57ca34a488f06d57f2219be23fa0259f.html#ga57ca34a488f06d57f2219be23fa0259f" title="Sets the availability attribute (available or not available) of the given node and triggers the routi...">Ucs_Rm_SetNodeAvailable()</a> whenever the node is available or the node is unavailable. In case the node is unavailable all created resources related to the node will be internally released and the user will receive a notification via the given callback functions <a class="el" href="struct_ucs___rm___init_data__t_a2420c468d89e6f991f68189ba2f61d15.html#a2420c468d89e6f991f68189ba2f61d15">report_fptr</a> and <a class="el" href="struct_ucs___rm___init_data__t_a68590d8712353f94f2e9ccec1e21baa5.html#a68590d8712353f94f2e9ccec1e21baa5">debug_resource_status_fptr</a> in <a class="el" href="struct_ucs___rm___init_data__t.html" title="The initialization structure of the Routing Management.">Ucs_Rm_InitData_t</a>.</li>
+</ul>
+<p>In short the user application can anytime call the function <a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g_gaaa23aca8279da197192210fe11889452.html#gaaa23aca8279da197192210fe11889452" title="Initializes the routing process with the given routes list information and starts the process to hand...">Ucs_Rm_Start()</a> with the specified list of routes but these routes will have been processing only when the above conditions are met.</p>
+<p>It is important to note that, The build up of routes can take some times in case the routing process may need to perform retries when uncritical errors occur (e.g.: transmission errors, processing errors, etc) or when certain conditions are not met yet (e.g. network not available, node not available, etc.). By the way, the maximum number of retries is <b>0xFF</b> and the minimum time between the retries is <b>50ms</b>.</p>
+<p>Also note that enabling the error and event trace output in <code>ucs_cfg.h</code> file (see below) will help user get detailed information on routes during processing. </p>
+<div class="fragment"><div class="line"><span class="comment">/* File: ucs_cfg.h */</span></div>
+<div class="line"><span class="comment">/*------------------------------------------------------------------------------------------------*/</span></div>
+<div class="line"><span class="comment">/* Tracing &amp; Debugging */</span></div>
+<div class="line"><span class="comment">/*------------------------------------------------------------------------------------------------*/</span></div>
+<div class="line"><span class="preprocessor"># define UCS_TR_ERROR App_TraceError</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor"># define UCS_TR_INFO App_TraceInfo</span></div>
+<div class="line"><span class="preprocessor"></span></div>
+<div class="line"><span class="keyword">extern</span> <span class="keywordtype">void</span> App_TraceError(<span class="keywordtype">void</span> *ucs_user_ptr, <span class="keyword">const</span> <span class="keywordtype">char</span> module_str[], <span class="keyword">const</span> <span class="keywordtype">char</span> entry_str[], </div>
+<div class="line"> uint16_t vargs_cnt, ...); </div>
+<div class="line"><span class="keyword">extern</span> <span class="keywordtype">void</span> App_TraceInfo(<span class="keywordtype">void</span> *ucs_user_ptr, <span class="keyword">const</span> <span class="keywordtype">char</span> module_str[], <span class="keyword">const</span> <span class="keywordtype">char</span> entry_str[], </div>
+<div class="line"> uint16_t vargs_cnt, ...);</div>
+</div><!-- fragment --><h1>Example</h1>
+<p>The following example outlines the construction of a route between a local (Master) and a remote device incl. the settings of the above preconditions. In this example the <a class="el" href="group___g___u_c_s___i_r_m_ga17bc521c78b99dc17f16161199cd4c1a.html#ga17bc521c78b99dc17f16161199cd4c1a">UCS_ADDR_LOCAL_DEV</a> macro is used to address the local device and <b>should</b> <b>only</b> <b>be</b> <b>used</b> for the local device. <br/>
+ This example is inserted as a guide and may not contain all of the necessary details and information. </p>
+<div class="fragment"><div class="line"><span class="comment">/***************************************************************************************************</span></div>
+<div class="line"><span class="comment"> DESCRIPTION OF THE SPECIFIED ROUTE_66 (Refer to the above picture)</span></div>
+<div class="line"><span class="comment"> </span></div>
+<div class="line"><span class="comment"> </span></div>
+<div class="line"><span class="comment"> Source Endpoint [Synchronous Data Connection &quot;Application -&gt; Streaming Port -&gt; MOST&quot;]:</span></div>
+<div class="line"><span class="comment"> - Configuration Port A:</span></div>
+<div class="line"><span class="comment"> - Operation Mode: Generic</span></div>
+<div class="line"><span class="comment"> - Port Option: InOut</span></div>
+<div class="line"><span class="comment"> - Clock Mode: Output</span></div>
+<div class="line"><span class="comment"> - Clock Data Delay: NonDelayed</span></div>
+<div class="line"><span class="comment"> - Configuration Port B:</span></div>
+<div class="line"><span class="comment"> - Operation Mode: Generic</span></div>
+<div class="line"><span class="comment"> - Port Option: InOut</span></div>
+<div class="line"><span class="comment"> - Clock Mode: Output</span></div>
+<div class="line"><span class="comment"> - Clock Data Delay: NonDelayed</span></div>
+<div class="line"><span class="comment"> - Streaming Port A:</span></div>
+<div class="line"><span class="comment"> - Clock Config: 64 Fs</span></div>
+<div class="line"><span class="comment"> - Data Alignment: Left16Bit</span></div>
+<div class="line"><span class="comment"> - Streaming Socket:</span></div>
+<div class="line"><span class="comment"> - Direction: Input</span></div>
+<div class="line"><span class="comment"> - Data Type: Sync</span></div>
+<div class="line"><span class="comment"> - Bandwidth: 2</span></div>
+<div class="line"><span class="comment"> - Streaming Pin ID: SRXA0</span></div>
+<div class="line"><span class="comment"> - MOST Socket:</span></div>
+<div class="line"><span class="comment"> - Direction: Output</span></div>
+<div class="line"><span class="comment"> - Data type: Sync Data</span></div>
+<div class="line"><span class="comment"> - MOST Port Handle: 0x0D00</span></div>
+<div class="line"><span class="comment"> - Bandwidth: 2 bytes</span></div>
+<div class="line"><span class="comment"> </span></div>
+<div class="line"><span class="comment"> Sink Endpoint [Synchronous Data Connection &quot;MOST -&gt; MediaLB -&gt; Application (INIC on I/O-Board)&quot;]:</span></div>
+<div class="line"><span class="comment"> - No Muting</span></div>
+<div class="line"><span class="comment"> - MediaLB Port:</span></div>
+<div class="line"><span class="comment"> - Clock Config: 512Fs</span></div>
+<div class="line"><span class="comment"> - MediaLB Socket:</span></div>
+<div class="line"><span class="comment"> - Direction: Output</span></div>
+<div class="line"><span class="comment"> - Data type: Sync Data</span></div>
+<div class="line"><span class="comment"> - Bandwidth: 2 bytes</span></div>
+<div class="line"><span class="comment"> - Channel address: 0x000A</span></div>
+<div class="line"><span class="comment"> - MOST Socket:</span></div>
+<div class="line"><span class="comment"> - Direction: Input</span></div>
+<div class="line"><span class="comment"> - Data type: Sync Data</span></div>
+<div class="line"><span class="comment"> - MOST Port Handle: 0x0D00</span></div>
+<div class="line"><span class="comment"> - Bandwidth: 2 bytes</span></div>
+<div class="line"><span class="comment"> </span></div>
+<div class="line"><span class="comment"> *--------------------------------------------------------------------------------------------------</span></div>
+<div class="line"><span class="comment"> */</span></div>
+<div class="line"></div>
+<div class="line"><span class="comment">/* Forward declaration of results callback function */</span></div>
+<div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> App_OnRoutingResult(uint16_t route_id, <a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#ga75ffbf28e4afc99a6abdbff0887baf9b" title="This enumerator specifies the possible route information returned via User callback function of Ucs_R...">Ucs_Rm_RouteInfos_t</a> route_infos, <span class="keywordtype">void</span> *user_ptr);</div>
+<div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> App_OnInitResult(<a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#ga0a933f34b9acbf21dc68f426c324e78c" title="Result values of initialization result callback function.">Ucs_InitResult_t</a> result, <span class="keywordtype">void</span> *user_ptr);</div>
+<div class="line"></div>
+<div class="line"><span class="comment">/* Set app flags */</span></div>
+<div class="line"><span class="keyword">static</span> <span class="keywordtype">bool</span> app_is_running = <span class="keyword">true</span>;</div>
+<div class="line"><span class="keyword">static</span> <span class="keywordtype">bool</span> ucs_is_running = <span class="keyword">false</span>;</div>
+<div class="line"><span class="keyword">static</span> <span class="keywordtype">bool</span> ampl_is_discovered = <span class="keyword">false</span>;</div>
+<div class="line"><span class="keyword">static</span> <span class="keywordtype">bool</span> set_ampl_to_available = <span class="keyword">false</span>;</div>
+<div class="line"><span class="keyword">static</span> <span class="keywordtype">bool</span> rtm_is_started = <span class="keyword">false</span>;</div>
+<div class="line"></div>
+<div class="line"><span class="comment">/* Set route Activity Flag */</span></div>
+<div class="line"><span class="keyword">static</span> uint8_t is_active = 0x01U; </div>
+<div class="line"></div>
+<div class="line"><span class="comment">/* Specification of XRM JOB OUT */</span></div>
+<div class="line"> <span class="keyword">static</span> <a class="code" href="struct_ucs___xrm___most_socket__t.html" title="Configuration structure of a MOST socket.">Ucs_Xrm_MostSocket_t</a> Xrm_Most_Sckt_Out = { <a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36cccaeebb673b9abc5172f688f8e9e692441c" title="MOST socket.">UCS_XRM_RC_TYPE_MOST_SOCKET</a>, 0x0D00U, <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_ga28477f727fe10f9d6fd21cfc98a9c115.html#gga28477f727fe10f9d6fd21cfc98a9c115aa14fc95a1f8c5f54aa6d601614a887fe" title="Socket transfers data out of INIC.">UCS_SOCKET_DIR_OUTPUT</a>, <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_gab29e10223e27331045485facbe4102ee.html#ggab29e10223e27331045485facbe4102eea345ad57d9919545fa5e5bf8393b0224f" title="Specifies the synchronous streaming data type.">UCS_MOST_SCKT_SYNC_DATA</a>, 2U };</div>
+<div class="line"> <span class="keyword">static</span> <a class="code" href="struct_ucs___xrm___strm_port__t.html" title="Configuration structure of a streaming port.">Ucs_Xrm_StrmPort_t</a> Xrm_Str_Port_A = { <a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca1956e37c3cfebc66ed6f5da75f67d589" title="Streaming port.">UCS_XRM_RC_TYPE_STRM_PORT</a>, 0x00U, <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#gga0e856884fa1c7908c59718da0f396484a6ecefb4d6d534dfc6225644bf6cb9823" title="64 x Fs">UCS_STREAM_PORT_CLK_CFG_64FS</a>, <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_ga02741bef1059621aaf6cf4fa956cfccf.html#gga02741bef1059621aaf6cf4fa956cfccfa7505ae359df8d66ec68bacb78c049f52" title="Left-justified, 16 bit, legacy.">UCS_STREAM_PORT_ALGN_LEFT16BIT</a> };</div>
+<div class="line"> <span class="keyword">static</span> <a class="code" href="struct_ucs___xrm___strm_socket__t.html" title="Configuration structure of a streaming data socket.">Ucs_Xrm_StrmSocket_t</a> Xrm_Str_Socket_In = { <a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca42a35dfe6f0054952406aeb6cdcf5119" title="Streaming socket.">UCS_XRM_RC_TYPE_STRM_SOCKET</a>, &amp;Xrm_Str_Port_A, <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_ga28477f727fe10f9d6fd21cfc98a9c115.html#gga28477f727fe10f9d6fd21cfc98a9c115a02fdd605a809a4a660e25cfd888347c7" title="Socket transfers data into INIC.">UCS_SOCKET_DIR_INPUT</a>, <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_gae12684f1b74844d622e59da79f1a23f8.html#ggae12684f1b74844d622e59da79f1a23f8a547bb39c45cc5788c3e5352f2b7fa76f" title="Specifies the synchronous streaming data type.">UCS_STREAM_PORT_SCKT_SYNC_DATA</a>, 2U, <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_gaadbd9007127f39c3c257040adf063d07.html#ggaadbd9007127f39c3c257040adf063d07a16eeeaad94f4398034b16f32832b2b52" title="PortA, pin 5.">UCS_STREAM_PORT_PIN_ID_SRXA0</a> };</div>
+<div class="line"> <span class="keyword">static</span> <a class="code" href="struct_ucs___xrm___sync_con__t.html" title="Configuration structure of a synchronous data connection.">Ucs_Xrm_SyncCon_t</a> Xrm_Sync_Conn_Src = { <a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca47342ee294555a9b7e738c9fc34b5265" title="Synchronous data connection.">UCS_XRM_RC_TYPE_SYNC_CON</a>, &amp;Xrm_Str_Socket_In, &amp;Xrm_Most_Sckt_Out, <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_gaef12892b897a1cd1013357cfe63f2434.html#ggaef12892b897a1cd1013357cfe63f2434a6e21656de3fa891d522f272307fca772" title="No mute monitoring.">UCS_SYNC_MUTE_MODE_NO_MUTING</a>, 0U };</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/* Specification of XRM JOB IN */</span></div>
+<div class="line"> <span class="keyword">static</span> <a class="code" href="struct_ucs___xrm___most_socket__t.html" title="Configuration structure of a MOST socket.">Ucs_Xrm_MostSocket_t</a> Xrm_Most_Sckt_In = { <a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36cccaeebb673b9abc5172f688f8e9e692441c" title="MOST socket.">UCS_XRM_RC_TYPE_MOST_SOCKET</a>, 0x0D00U, <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_ga28477f727fe10f9d6fd21cfc98a9c115.html#gga28477f727fe10f9d6fd21cfc98a9c115a02fdd605a809a4a660e25cfd888347c7" title="Socket transfers data into INIC.">UCS_SOCKET_DIR_INPUT</a>, <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_gab29e10223e27331045485facbe4102ee.html#ggab29e10223e27331045485facbe4102eea345ad57d9919545fa5e5bf8393b0224f" title="Specifies the synchronous streaming data type.">UCS_MOST_SCKT_SYNC_DATA</a>, 2U };</div>
+<div class="line"> <span class="keyword">static</span> <a class="code" href="struct_ucs___xrm___mlb_port__t.html" title="Configuration structure of a MediaLB port.">Ucs_Xrm_MlbPort_t</a> Xrm_Mlb_Port = { <a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca2c31643fe2ccea0ecb44424ef0ba0472" title="MediaLB port.">UCS_XRM_RC_TYPE_MLB_PORT</a>, 0x00U, <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63a13645115ff4864a09293ef5cdaaaf963" title="512 Fs">UCS_MLB_CLK_CFG_512_FS</a> };</div>
+<div class="line"> <span class="keyword">static</span> <a class="code" href="struct_ucs___xrm___mlb_socket__t.html" title="Configuration structure of a MediaLB socket.">Ucs_Xrm_MlbSocket_t</a> Xrm_Mlb_Socket_Out = { <a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca51a0ec5a470cb37f90a79a73f0f83be4" title="MediaLB socket.">UCS_XRM_RC_TYPE_MLB_SOCKET</a>, &amp;Xrm_Mlb_Port, <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_ga28477f727fe10f9d6fd21cfc98a9c115.html#gga28477f727fe10f9d6fd21cfc98a9c115aa14fc95a1f8c5f54aa6d601614a887fe" title="Socket transfers data out of INIC.">UCS_SOCKET_DIR_OUTPUT</a>, <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html#ggaf3facaf3378409c31465c68380990b53a09527a2a481a353e06071b0d83a97fd9" title="Specifies the synchronous streaming data type.">UCS_MLB_SCKT_SYNC_DATA</a>, 2U, 0x000AU };</div>
+<div class="line"> <span class="keyword">static</span> <a class="code" href="struct_ucs___xrm___sync_con__t.html" title="Configuration structure of a synchronous data connection.">Ucs_Xrm_SyncCon_t</a> Xrm_Sync_Conn_Sink = { <a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca47342ee294555a9b7e738c9fc34b5265" title="Synchronous data connection.">UCS_XRM_RC_TYPE_SYNC_CON</a>, &amp;Xrm_Most_Sckt_In, &amp;Xrm_Mlb_Socket_Out, <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_gaef12892b897a1cd1013357cfe63f2434.html#ggaef12892b897a1cd1013357cfe63f2434a6e21656de3fa891d522f272307fca772" title="No mute monitoring.">UCS_SYNC_MUTE_MODE_NO_MUTING</a>, 0U };</div>
+<div class="line"></div>
+<div class="line"><span class="comment">/* Specification of the XRM jobs lists */</span></div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173" title="INIC Resource Object used for Extended Resource Manager jobs.">Ucs_Xrm_ResObject_t</a> * xrm_job_out[] = { &amp;Xrm_Most_Sckt_Out, &amp;Xrm_Str_Port_A, &amp;Xrm_Str_Socket_In, &amp;Xrm_Sync_Conn_Src, NULL };</div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173" title="INIC Resource Object used for Extended Resource Manager jobs.">Ucs_Xrm_ResObject_t</a> * xrm_job_in [] = { &amp;Xrm_Most_Sckt_In, &amp;Xrm_Mlb_Port, &amp;Xrm_Mlb_Socket_Out, &amp;Xrm_Sync_Conn_Sink, NULL };</div>
+<div class="line"></div>
+<div class="line"><span class="comment">/* Specification of signatures objects */</span></div>
+<div class="line"><a class="code" href="struct_ucs___signature__t.html" title="This structure holds the signature of the Hello, Welcome and Signature messages. It supports the sign...">Ucs_Signature_t</a> src_sig = { <a class="code" href="group___g___u_c_s___i_r_m_ga17bc521c78b99dc17f16161199cd4c1a.html#ga17bc521c78b99dc17f16161199cd4c1a" title="Defines the address of the local device.">UCS_ADDR_LOCAL_DEV</a> };</div>
+<div class="line"><a class="code" href="struct_ucs___signature__t.html" title="This structure holds the signature of the Hello, Welcome and Signature messages. It supports the sign...">Ucs_Signature_t</a> sink_sig = { 0x555U };</div>
+<div class="line"></div>
+<div class="line"><span class="comment">/* Specification of Nodes objects */</span></div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___rm___node__t.html" title="Configuration structure of a Node.">Ucs_Rm_Node_t</a> hmi_node = { &amp;src_sig };</div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___rm___node__t.html" title="Configuration structure of a Node.">Ucs_Rm_Node_t</a> ampl_node = { &amp;sink_sig };</div>
+<div class="line"></div>
+<div class="line"><span class="comment">/* Source and Sink Endpoints */</span></div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___rm___end_point__t.html" title="Configuration structure of a Connection EndPoint.">Ucs_Rm_EndPoint_t</a> endpoint_src = { <a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga127a72f023d3c0289ab74b001f6edc25.html#gga127a72f023d3c0289ab74b001f6edc25ac1244d5bc6a569137f6f9132b8b0a3da" title="Specifies the source endpoint.">UCS_RM_EP_SOURCE</a>, &amp;xrm_job_out[0], &amp;hmi_node };</div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___rm___end_point__t.html" title="Configuration structure of a Connection EndPoint.">Ucs_Rm_EndPoint_t</a> endpoint_sink = { <a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga127a72f023d3c0289ab74b001f6edc25.html#gga127a72f023d3c0289ab74b001f6edc25a63c4dfa3683ce8122d760c4e2d580138" title="Specifies the sink endpoint.">UCS_RM_EP_SINK</a>, &amp;xrm_job_in[0], &amp;ampl_node };</div>
+<div class="line"></div>
+<div class="line"><span class="comment">/* Routes Specification */</span></div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___rm___route__t.html" title="Configuration structure of a Route.">Ucs_Rm_Route_t</a> route_66[] = { {&amp;endpoint_src, &amp;endpoint_sink, is_active, 66U} };</div>
+<div class="line"></div>
+<div class="line"><span class="comment">/* Main function */</span></div>
+<div class="line"><span class="keywordtype">void</span> main ()</div>
+<div class="line">{</div>
+<div class="line"> <a class="code" href="struct_ucs___init_data__t.html" title="UNICENS initialization structure used by function Ucs_Init().">Ucs_InitData_t</a> ucs_init_data;</div>
+<div class="line"> <span class="comment">/* create instance and prepare init structure */</span></div>
+<div class="line"> ucs_inst_ptr = <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga85a99b5d236b29e2d598bef51edad638.html#ga85a99b5d236b29e2d598bef51edad638" title="Retrieves a UNICENS API instance.">Ucs_CreateInstance</a>();</div>
+<div class="line"> (void)<a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga64b50780725a0dc8693b5b73f8345ad6.html#ga64b50780725a0dc8693b5b73f8345ad6" title="Assigns default values to a provided UNICENS init structure.">Ucs_SetDefaultConfig</a>(&amp;ucs_init_data);</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/* Routing Management init section. */</span></div>
+<div class="line"> ucs_init_data.<a class="code" href="struct_ucs___init_data__t_a8619aaf795810b7508046fbfef6d6907.html#a8619aaf795810b7508046fbfef6d6907" title="The initialization data of the Routing Management.">rm</a>.<a class="code" href="struct_ucs___rm___init_data__t_a2420c468d89e6f991f68189ba2f61d15.html#a2420c468d89e6f991f68189ba2f61d15" title="Optional report callback function pointer for all routes.">report_fptr</a> = &amp;App_OnRoutingResult;</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/* Library initialization */</span></div>
+<div class="line"> (void)<a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_gaea8d7735d41853167a2befdc06febe43.html#gaea8d7735d41853167a2befdc06febe43" title="UNICENS initialization function.">Ucs_Init</a>(inst_ptr, &amp;init_data, &amp;App_OnInitResult);</div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">while</span> (app_is_running)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="keywordflow">if</span> (ucs_is_running)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="keywordflow">if</span> (!rtm_is_started)</div>
+<div class="line"> {</div>
+<div class="line"> rtm_is_started = <span class="keyword">true</span>;</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/* Network start-up */</span></div>
+<div class="line"> <a class="code" href="group___g___u_c_s___n_e_t_ga83c2e74a4cc216aa10d7c6a1a517d459.html#ga83c2e74a4cc216aa10d7c6a1a517d459" title="Starts up the MOST Network.">Ucs_Network_Startup</a>(ucs_inst_ptr, 52U, 0xFFFFU, NULL);</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/* Starts routes processing */</span></div>
+<div class="line"> <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd" title="Standard return codes used for synchronous response.">Ucs_Return_t</a> ret_value = <a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g_gaaa23aca8279da197192210fe11889452.html#gaaa23aca8279da197192210fe11889452" title="Initializes the routing process with the given routes list information and starts the process to hand...">Ucs_Rm_Start</a>(ucs_inst_ptr, &amp;route_66[0], 1U);</div>
+<div class="line"> <span class="keywordflow">if</span> (ret_value != <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda3fb51656e17ee4802f23706f35e349bc" title="Operation successfully completed.">UCS_RET_SUCCESS</a>)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">/* Do whatever is necessary here */</span></div>
+<div class="line"> }</div>
+<div class="line"> }</div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">if</span> (set_ampl_to_available)</div>
+<div class="line"> {</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g_ga57ca34a488f06d57f2219be23fa0259f.html#ga57ca34a488f06d57f2219be23fa0259f" title="Sets the availability attribute (available or not available) of the given node and triggers the routi...">Ucs_Rm_SetNodeAvailable</a>(ucs_inst_ptr, &amp;ampl_node, <span class="keyword">true</span>);</div>
+<div class="line"> }</div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">if</span> (ampl_is_discovered)</div>
+<div class="line"> {</div>
+<div class="line"> (void)<a class="code" href="group___g___u_c_s___x_r_m___s_t_r_e_a_m_ga481fb8455d6165c5913ead778765d46e.html#ga481fb8455d6165c5913ead778765d46e" title="This function is used to configure a Streaming Port.">Ucs_Xrm_Stream_SetPortConfig</a>(ampl_node.<a class="code" href="struct_ucs___rm___node__t_ae619e45bed87dee01aaf280635cf3911.html#ae619e45bed87dee01aaf280635cf3911" title="node signature.">signature_ptr</a>-&gt;<a class="code" href="struct_ucs___signature__t_a550e0ded0fb13bc58b087d3a162d43c7.html#a550e0ded0fb13bc58b087d3a162d43c7" title="NodeAddress.">node_address</a>, </div>
+<div class="line"> 0x00U,</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_ga6ea92012ace1c507dab36b727698a08e.html#gga6ea92012ace1c507dab36b727698a08ea10bf424b1ddb5c25b7659991fa761946" title="If Index = PortB, data pins are linked to PortA clock configuration.">UCS_STREAM_PORT_OP_MODE_GENERIC</a>,</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_ga83e210aa76632ea2191bd59ef7894432.html#gga83e210aa76632ea2191bd59ef7894432a5953e1aaabaaa5ae4a74fe0ec5842246" title="Two serial interface pins are available; one for direction IN and one for direction OUT...">UCS_STREAM_PORT_OPT_IN_OUT</a>,</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_ga3139c2b4d435622104235bd9fd9f478c.html#gga3139c2b4d435622104235bd9fd9f478ca3c768bceb59f2b4ef488e285a9d11b20" title="INIC drives the FSY/SCK signals as outputs, frequency locked to the network clock.">UCS_STREAM_PORT_CLK_MODE_OUTPUT</a>,</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_ga16d6cd08e925676dfade13e980f460b0.html#gga16d6cd08e925676dfade13e980f460b0a4a03b7fe83667b4e5f2a355e2810ed6f" title="Data is not delayed by a single SCK clock delay.">UCS_STREAM_PORT_CLK_DLY_NONE</a>,</div>
+<div class="line"> &amp;App_XrmStreamPortCfgResCb);</div>
+<div class="line"> }</div>
+<div class="line"> }</div>
+<div class="line"> }</div>
+<div class="line">}</div>
+<div class="line"></div>
+<div class="line"><span class="comment">/* Notifies initialization result */</span></div>
+<div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> App_OnInitResult(<a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#ga0a933f34b9acbf21dc68f426c324e78c" title="Result values of initialization result callback function.">Ucs_InitResult_t</a> result, <span class="keywordtype">void</span> *user_ptr)</div>
+<div class="line">{</div>
+<div class="line"> <span class="keywordflow">if</span> (result == <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78cac4d2785b5c79a9b38389e08d30494714" title="Initialization succeeded.">UCS_INIT_RES_SUCCESS</a>)</div>
+<div class="line"> {</div>
+<div class="line"> ucs_is_running = <span class="keyword">true</span>;</div>
+<div class="line"> }</div>
+<div class="line">}</div>
+<div class="line"> </div>
+<div class="line"><span class="comment">/* The report callback function for all routes */</span></div>
+<div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> App_OnRoutingResult(<a class="code" href="struct_ucs___rm___route__t.html" title="Configuration structure of a Route.">Ucs_Rm_Route_t</a>* route_ptr, <a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#ga75ffbf28e4afc99a6abdbff0887baf9b" title="This enumerator specifies the possible route information returned via User callback function of Ucs_R...">Ucs_Rm_RouteInfos_t</a> route_infos, <span class="keywordtype">void</span> *user_ptr)</div>
+<div class="line">{</div>
+<div class="line"> <span class="keywordflow">switch</span> (route_infos)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#gga75ffbf28e4afc99a6abdbff0887baf9ba5778af29569eb74e7546749e93ed9c1e" title="Specifies that the route has been built.">UCS_RM_ROUTE_INFOS_BUILT</a>:</div>
+<div class="line"> <span class="comment">/* Route has been built */</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#gga75ffbf28e4afc99a6abdbff0887baf9ba5458da57325825b8922710a90a9ea4d5" title="Specifies that the route has been destroyed.">UCS_RM_ROUTE_INFOS_DESTROYED</a>:</div>
+<div class="line"> <span class="comment">/* Route has been destroyed */</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#gga75ffbf28e4afc99a6abdbff0887baf9bace1ac2f05b198d3d223baa33ca71493a" title="Specifies that the route cannot be processed anymore because of UNICENS Termination.">UCS_RM_ROUTE_INFOS_PROCESS_STOP</a>:</div>
+<div class="line"> <span class="comment">/* Route cannot be processed anymore due to Unicens Termination */</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> <span class="keywordflow">default</span>:</div>
+<div class="line"> <span class="comment">/* Route has been suspended */</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> }</div>
+<div class="line">}</div>
+<div class="line"></div>
+<div class="line"><span class="comment">/* The result callback function for Streaming ports */</span></div>
+<div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> App_XrmStreamPortCfgResCb(uint16_t node_address,</div>
+<div class="line"> uint8_t index,</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_ga6ea92012ace1c507dab36b727698a08e.html#ga6ea92012ace1c507dab36b727698a08e" title="Operation mode of the Streaming Port.">Ucs_Stream_PortOpMode_t</a> op_mode,</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_ga83e210aa76632ea2191bd59ef7894432.html#ga83e210aa76632ea2191bd59ef7894432" title="Direction of the physical pins of the indexed Streaming Port.">Ucs_Stream_PortOption_t</a> port_option,</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_ga3139c2b4d435622104235bd9fd9f478c.html#ga3139c2b4d435622104235bd9fd9f478c" title="Indicates if FSY/SCK signals are configured as outputs or inputs.">Ucs_Stream_PortClockMode_t</a> clock_mode,</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_ga16d6cd08e925676dfade13e980f460b0.html#ga16d6cd08e925676dfade13e980f460b0" title="This setting is only applicable to data pins used for Generic Streaming including any linked pins to ...">Ucs_Stream_PortClockDataDelay_t</a> clock_data_delay,</div>
+<div class="line"> <a class="code" href="struct_ucs___std_result__t.html" title="Standard result structure which provides fields for detailed status and error information.">Ucs_StdResult_t</a> result,</div>
+<div class="line"> <span class="keywordtype">void</span> *user_ptr)</div>
+<div class="line">{</div>
+<div class="line"> <span class="keywordflow">if</span> (result.<a class="code" href="struct_ucs___std_result__t_a02d8eefc721a797ac87f5030774972ef.html#a02d8eefc721a797ac87f5030774972ef" title="Result/Error code.">code</a> == <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540cae19d5a51de78bbf903a108a4e36a0fdf" title="Operation successfully completed.">UCS_RES_SUCCESS</a>)</div>
+<div class="line"> {</div>
+<div class="line"> set_ampl_to_available = <span class="keyword">true</span>;</div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment --><h1>Additional Routing API</h1>
+<p>The Routing provides additional API functions to handle some runtime tasks. These functions are:</p>
+<ul>
+<li><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g_gabb9185254132bb29ee0af137c36f50b8.html#gabb9185254132bb29ee0af137c36f50b8" title="Sets the given route to active respectively inactive and triggers the routing process to handle the r...">Ucs_Rm_SetRouteActive()</a> : This functions sets a specific route to <code>"active"</code> or <code>"inactive"</code> at runtime.</li>
+<li><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g_ga57ca34a488f06d57f2219be23fa0259f.html#ga57ca34a488f06d57f2219be23fa0259f" title="Sets the availability attribute (available or not available) of the given node and triggers the routi...">Ucs_Rm_SetNodeAvailable()</a> : This function sets the availability attribute (<code>available</code> or <code>not</code> <code>available</code>) of the given node and triggers the routing process to handle attached route(s).</li>
+<li><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g_ga32d004eb96f434f379614b29fe2a486a.html#ga32d004eb96f434f379614b29fe2a486a" title="Retrieves the &quot;available&quot; flag information of the given node.">Ucs_Rm_GetNodeAvailable()</a> : This function retrieves the <code>"available"</code> flag information of a given node.</li>
+<li><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g_gaf34398118f6a683a7e295f2fb89c5940.html#gaf34398118f6a683a7e295f2fb89c5940" title="Retrieves the reference(s) of the route(s) currently attached to the given endpoint and stores It int...">Ucs_Rm_GetAttachedRoutes()</a> : This function retrieves the references of the routes attached to the given endpoint.</li>
+<li><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g_ga87a46a3aa0657e13f5884e5a04d16e17.html#ga87a46a3aa0657e13f5884e5a04d16e17" title="Retrieves the ConnectionLabel of the given route.">Ucs_Rm_GetConnectionLabel()</a>: This function retrieves the <code>ConnectionLabel</code> of the given route. </li>
+</ul>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__s_r_v.html b/ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__s_r_v.html
new file mode 100644
index 0000000..7c1d6ee
--- /dev/null
+++ b/ucs2-lib/doc/html/_p__u_m__s_t_a_r_t_e_d__s_r_v.html
@@ -0,0 +1,250 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Service</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_p__u_m__s_t_a_r_t_e_d__s_r_v.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Service </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><h1>Initialization and Service</h1>
+<p>In order to initialize the UNICENS library the application shall call <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga64b50780725a0dc8693b5b73f8345ad6.html#ga64b50780725a0dc8693b5b73f8345ad6" title="Assigns default values to a provided UNICENS init structure.">Ucs_SetDefaultConfig()</a>, modify the initialization structure and call <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_gaea8d7735d41853167a2befdc06febe43.html#gaea8d7735d41853167a2befdc06febe43" title="UNICENS initialization function.">Ucs_Init()</a>.<br/>
+</p>
+<p>After calling <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_gaea8d7735d41853167a2befdc06febe43.html#gaea8d7735d41853167a2befdc06febe43" title="UNICENS initialization function.">Ucs_Init()</a> the application is allowed to call the Basic API functions of the UNICENS library. The Basic API functions are required to drive the API. It is responsible to update timers and process internal events. The following functions are Basic API functions:</p>
+<ul>
+<li><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga649fb9128df6f634fc86aa03b374d822.html#ga649fb9128df6f634fc86aa03b374d822" title="The application must call this function cyclically to drive UNICENS.">Ucs_Service()</a></li>
+<li><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga369c86a27ffee30a3af3423f6b3f3e59.html#ga369c86a27ffee30a3af3423f6b3f3e59" title="The application must call this function if the application timer expires.">Ucs_ReportTimeout()</a></li>
+</ul>
+<p>When the <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_gaea8d7735d41853167a2befdc06febe43.html#gaea8d7735d41853167a2befdc06febe43" title="UNICENS initialization function.">Ucs_Init()</a> result callback notifies <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78cac4d2785b5c79a9b38389e08d30494714">UCS_INIT_RES_SUCCESS</a>, then the application is allowed to call the Basic API and all other API functions. After the UNICENS API notifies termination the application shall not call any API function but restart from scratch if required.</p>
+<p>The following events will terminate the UNICENS API:</p>
+<ul>
+<li><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_gaea8d7735d41853167a2befdc06febe43.html#gaea8d7735d41853167a2befdc06febe43" title="UNICENS initialization function.">Ucs_Init()</a> returns an error code</li>
+<li><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_gaea8d7735d41853167a2befdc06febe43.html#gaea8d7735d41853167a2befdc06febe43" title="UNICENS initialization function.">Ucs_Init()</a> callback result is not <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78cac4d2785b5c79a9b38389e08d30494714">UCS_INIT_RES_SUCCESS</a></li>
+<li>The <a class="el" href="struct_ucs___general___init_data__t.html">general.error_fptr()</a> is invoked</li>
+<li><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga61381bd30fb6630b6c5d6ecc8968e983.html#ga61381bd30fb6630b6c5d6ecc8968e983" title="Terminates the execution of UNICENS.">Ucs_Stop()</a> callback is invoked</li>
+</ul>
+<h1>Main Loop Service</h1>
+<p>The most easiest and robust way of driving the UNICENS library is to call <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_gaea8d7735d41853167a2befdc06febe43.html#gaea8d7735d41853167a2befdc06febe43" title="UNICENS initialization function.">Ucs_Init()</a> to initialize the API and call <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga649fb9128df6f634fc86aa03b374d822.html#ga649fb9128df6f634fc86aa03b374d822" title="The application must call this function cyclically to drive UNICENS.">Ucs_Service()</a> as long as the UNICENS library is running. If <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga649fb9128df6f634fc86aa03b374d822.html#ga649fb9128df6f634fc86aa03b374d822" title="The application must call this function cyclically to drive UNICENS.">Ucs_Service()</a> does not require to process internal events it returns and will consume few CPU load.</p>
+<div class="fragment"><div class="line"><span class="keywordtype">int</span> main(<span class="keywordtype">void</span>)</div>
+<div class="line">{</div>
+<div class="line"> <span class="keywordtype">bool</span> running = <span class="keyword">true</span>;</div>
+<div class="line"></div>
+<div class="line"> <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga64b50780725a0dc8693b5b73f8345ad6.html#ga64b50780725a0dc8693b5b73f8345ad6" title="Assigns default values to a provided UNICENS init structure.">Ucs_SetDefaultConfig</a>(<span class="comment">/*...*/</span>);</div>
+<div class="line"> <span class="comment">/* ... &lt;- modify initialization structure here */</span></div>
+<div class="line"> <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_gaea8d7735d41853167a2befdc06febe43.html#gaea8d7735d41853167a2befdc06febe43" title="UNICENS initialization function.">Ucs_Init</a>(<span class="comment">/*...*/</span>);</div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">while</span> (running)</div>
+<div class="line"> {</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga649fb9128df6f634fc86aa03b374d822.html#ga649fb9128df6f634fc86aa03b374d822" title="The application must call this function cyclically to drive UNICENS.">Ucs_Service</a>();</div>
+<div class="line"> }</div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">return</span> 0;</div>
+<div class="line">}</div>
+</div><!-- fragment --><dl class="section attention"><dt>Attention</dt><dd>The initialization function <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_gaea8d7735d41853167a2befdc06febe43.html#gaea8d7735d41853167a2befdc06febe43" title="UNICENS initialization function.">Ucs_Init()</a> must be called before the first execution of <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga649fb9128df6f634fc86aa03b374d822.html#ga649fb9128df6f634fc86aa03b374d822" title="The application must call this function cyclically to drive UNICENS.">Ucs_Service()</a>.</dd></dl>
+<p>The UNICENS library can deal also with delays of 10 milliseconds or more between two calls of <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga649fb9128df6f634fc86aa03b374d822.html#ga649fb9128df6f634fc86aa03b374d822" title="The application must call this function cyclically to drive UNICENS.">Ucs_Service()</a>. Although, the UNICENS library can reach high performance results (for delays &lt;= 10ms). However, depending on the LLD and system design the use of delays between two <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga649fb9128df6f634fc86aa03b374d822.html#ga649fb9128df6f634fc86aa03b374d822" title="The application must call this function cyclically to drive UNICENS.">Ucs_Service()</a> calls will mean that an application may also increase the number of LLD Tx and Rx buffer for the communication with the INIC. It is recommended to run individual tests with high and low message load to find a balanced setup.<br/>
+<br/>
+ A good compromise to balance a system can be the following approach:</p>
+<ul>
+<li>Call <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga649fb9128df6f634fc86aa03b374d822.html#ga649fb9128df6f634fc86aa03b374d822" title="The application must call this function cyclically to drive UNICENS.">Ucs_Service()</a> every 10ms</li>
+<li>Call <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga649fb9128df6f634fc86aa03b374d822.html#ga649fb9128df6f634fc86aa03b374d822" title="The application must call this function cyclically to drive UNICENS.">Ucs_Service()</a> after the LLD has forwarded Rx messages to UNICENS library</li>
+<li>Call <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga649fb9128df6f634fc86aa03b374d822.html#ga649fb9128df6f634fc86aa03b374d822" title="The application must call this function cyclically to drive UNICENS.">Ucs_Service()</a> after calling an API function (excluding Basic API functions)</li>
+</ul>
+<p><a class="anchor" id="P_UM_ADVANCED_SERVICE"></a> </p>
+<h1>Event Driven Service</h1>
+<p>A more efficient way of driving the UNICENS library is the <em>Event Driven Service</em>. In this mode the UNICENS library signals to the application when the next Service or Timer must be processed. Hence, the application can invoke the UNICENS API only if required. This decreases the CPU usage of UNICENS library to a minimum.</p>
+<p>In order to run the <em>Event Driven Service</em> mode of the UNICENS library, the application must assign the following two callback functions in the initialization structure: <a class="el" href="struct_ucs___general___init_data__t.html">general.request_service_fptr()</a> and <a class="el" href="struct_ucs___general___init_data__t.html">general.set_application_timer_fptr()</a>. It is required that the application assigns both events callback functions. Otherwise, <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_gaea8d7735d41853167a2befdc06febe43.html#gaea8d7735d41853167a2befdc06febe43" title="UNICENS initialization function.">Ucs_Init()</a> will return <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cdab98b74c51324859f3138fed96afd1573">UCS_RET_ERR_PARAM</a>.</p>
+<p>A small example for <em>Event Driven Service</em> is printed below.</p>
+<div class="fragment"><div class="line"><span class="keyword">static</span> <span class="keywordtype">bool</span> event_timeout = <span class="keyword">false</span>;</div>
+<div class="line"><span class="keyword">static</span> <span class="keywordtype">bool</span> event_service = <span class="keyword">false</span>;</div>
+<div class="line"></div>
+<div class="line"><span class="keywordtype">int</span> main(<span class="keywordtype">void</span>)</div>
+<div class="line">{</div>
+<div class="line"> <span class="keywordtype">bool</span> running = <span class="keyword">false</span>;</div>
+<div class="line"> <a class="code" href="struct_ucs___init_data__t.html" title="UNICENS initialization structure used by function Ucs_Init().">Ucs_InitData_t</a> init_data;</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga64b50780725a0dc8693b5b73f8345ad6.html#ga64b50780725a0dc8693b5b73f8345ad6" title="Assigns default values to a provided UNICENS init structure.">Ucs_SetDefaultConfig</a>(&amp;init_data); <span class="comment">/* assign default configuration */</span></div>
+<div class="line"></div>
+<div class="line"> init_data.<a class="code" href="struct_ucs___init_data__t_a43e7559dfe1bc2860cb0d2749fa66071.html#a43e7559dfe1bc2860cb0d2749fa66071" title="General initialization data.">general</a>.<a class="code" href="struct_ucs___general___init_data__t_a7d2541cf63dfcea750c0d0ec2ef563c0.html#a7d2541cf63dfcea750c0d0ec2ef563c0" title="Callback function requesting the application to call Ucs_Service(). Mandatory callback function in ev...">request_service_fptr</a> = &amp;App_OnServiceRequest; <span class="comment">/* assign SERVICE event callback functions */</span></div>
+<div class="line"> init_data.<a class="code" href="struct_ucs___init_data__t_a43e7559dfe1bc2860cb0d2749fa66071.html#a43e7559dfe1bc2860cb0d2749fa66071" title="General initialization data.">general</a>.<a class="code" href="struct_ucs___general___init_data__t_a9de73ec82699e45173702e9b0ccc917a.html#a9de73ec82699e45173702e9b0ccc917a" title="Callback function requesting the application to call Ucs_ReportTimeout() after a certain time...">set_application_timer_fptr</a> = &amp;App_OnSetAppTimer; <span class="comment">/* assign TIMER event callback function */</span></div>
+<div class="line"> init_data.<a class="code" href="struct_ucs___init_data__t_a43e7559dfe1bc2860cb0d2749fa66071.html#a43e7559dfe1bc2860cb0d2749fa66071" title="General initialization data.">general</a>.<a class="code" href="struct_ucs___general___init_data__t_a4e1140be3951f0e14d4071840f4ebc8e.html#a4e1140be3951f0e14d4071840f4ebc8e" title="Mandatory callback function querying the actual system tick count.">get_tick_count_fptr</a> = App_OnGetTickCount; <span class="comment">/* tick count requires the same timer </span></div>
+<div class="line"><span class="comment"> reference/resolution as the application timer</span></div>
+<div class="line"><span class="comment"> */</span></div>
+<div class="line"> <span class="comment">/* .. further initialization .. */</span></div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">if</span> (Ucs_init(&amp;init_data) == UCS_RET_ERR_SUCCESS)</div>
+<div class="line"> {</div>
+<div class="line"> running = <span class="keyword">true</span>;</div>
+<div class="line"> }</div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">while</span> (running)</div>
+<div class="line"> {</div>
+<div class="line"> Os_WaitForEvent(); <span class="comment">/* stop until event occurs */</span></div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">if</span> (event_timeout != <span class="keyword">false</span>)</div>
+<div class="line"> {</div>
+<div class="line"> event_timeout = <span class="keyword">false</span>;</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga369c86a27ffee30a3af3423f6b3f3e59.html#ga369c86a27ffee30a3af3423f6b3f3e59" title="The application must call this function if the application timer expires.">Ucs_ReportTimeout</a>();</div>
+<div class="line"> }</div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">if</span>(event_service != <span class="keyword">false</span>)</div>
+<div class="line"> {</div>
+<div class="line"> event_service = <span class="keyword">false</span>;</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga649fb9128df6f634fc86aa03b374d822.html#ga649fb9128df6f634fc86aa03b374d822" title="The application must call this function cyclically to drive UNICENS.">Ucs_Service</a>();</div>
+<div class="line"> }</div>
+<div class="line"> }</div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">return</span> 0;</div>
+<div class="line">}</div>
+</div><!-- fragment --><p>The implementation of the callback function <code>App_OnServiceRequest()</code> should be rather simply. It must wakeup the process and signal that <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga649fb9128df6f634fc86aa03b374d822.html#ga649fb9128df6f634fc86aa03b374d822" title="The application must call this function cyclically to drive UNICENS.">Ucs_Service()</a> must be called.</p>
+<div class="fragment"><div class="line"><span class="keywordtype">void</span> App_OnServiceRequest(<span class="keywordtype">void</span>)</div>
+<div class="line">{</div>
+<div class="line"> event_service = <span class="keyword">true</span>;</div>
+<div class="line"> Os_SignalEvent(); <span class="comment">/* wakeup process */</span></div>
+<div class="line">}</div>
+</div><!-- fragment --><dl class="section note"><dt>Note</dt><dd>During high message load the UNICENS library might also fire a high number of <em>service request</em> events in a short term. Consider that processing UNICENS library events might be at other processes expense. Therefore, balance your system also for high load scenario. During high message load it is acceptable to call <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga649fb9128df6f634fc86aa03b374d822.html#ga649fb9128df6f634fc86aa03b374d822" title="The application must call this function cyclically to drive UNICENS.">Ucs_Service()</a> in lower frequency than the <em>service request</em> event is fired by the UNICENS library.</dd></dl>
+<p>The implementation of the callback function <code>App_OnSetAppTimer()</code> must consider some particularities.</p>
+<ul>
+<li>The function is called to <b>start</b> or <b>stop</b> exactly <b>one</b> reference timer. This timer is the smallest timeout value handled by the UNICENS library. During runtime it is possible that internal timers are started or stopped. Hence, it is possible that the UNICENS library stops or restarts the reference timer with a new value before a previously started timer expires.</li>
+<li>When the function is called and parameter <code>timeout</code> is "0", the application has to stop the reference timer.</li>
+<li>When the function is called and parameter <code>timeout</code> is "&gt;0", the application has to stop the reference timer and restart it with the new value.</li>
+<li>It is important that <a class="el" href="struct_ucs___general___init_data__t.html">general.set_application_timer_fptr()</a> and <a class="el" href="struct_ucs___general___init_data__t.html">general.get_tick_count_fptr()</a> are using the <b>same time reference and precision</b>. Otherwise, a tick count with another precision might induce the UNICENS library to start again a timer with a small difference in timeout.</li>
+</ul>
+<div class="fragment"><div class="line">UINT timer_id = 0U;</div>
+<div class="line"></div>
+<div class="line"><span class="keywordtype">void</span> CALLBACK App_TimerCb (UINT uTimerID,</div>
+<div class="line"> UINT uMsg,</div>
+<div class="line"> DWORD_PTR dwUser,</div>
+<div class="line"> DWORD_PTR dw1,</div>
+<div class="line"> DWORD_PTR dw2)</div>
+<div class="line">{</div>
+<div class="line"> timer_id = 0U; <span class="comment">/* mark timer as stopped */</span></div>
+<div class="line"> event_timeout = <span class="keyword">true</span>;</div>
+<div class="line"> Os_SignalEvent(); <span class="comment">/* wakeup process */</span></div>
+<div class="line">}</div>
+<div class="line"></div>
+<div class="line"><span class="keywordtype">void</span> App_OnSetAppTimer(uint16_t timeout)</div>
+<div class="line">{</div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">if</span> (timer_id != 0U) <span class="comment">/* stop reference timer if it is still running */</span></div>
+<div class="line"> {</div>
+<div class="line"> (void)timeKillEvent(timer_id);</div>
+<div class="line"> timer_id = 0U;</div>
+<div class="line"> }</div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">if</span> (timeout != 0U) <span class="comment">/* start reference timer with the given timeout value */</span></div>
+<div class="line"> {</div>
+<div class="line"> timer_id = timeSetEvent((UINT)timeout,</div>
+<div class="line"> (UINT)1,</div>
+<div class="line"> &amp;App_TimerCb,</div>
+<div class="line"> (DWORD_PTR)0,</div>
+<div class="line"> (UINT)TIME_ONESHOT);</div>
+<div class="line"> }</div>
+<div class="line">}</div>
+<div class="line"></div>
+<div class="line">uint16_t App_OnGetTickCount(<span class="keywordtype">void</span>)</div>
+<div class="line">{</div>
+<div class="line"> <span class="keywordflow">return</span> (uint16_t)timeGetTime(); <span class="comment">/* retrieve current tick count */</span></div>
+<div class="line">}</div>
+</div><!-- fragment --> </div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/_p__u_m__s_y_n_c__a_n_d__a_s_y_n_c__r_e_s_u_l_t_s.html b/ucs2-lib/doc/html/_p__u_m__s_y_n_c__a_n_d__a_s_y_n_c__r_e_s_u_l_t_s.html
new file mode 100644
index 0000000..eadd092
--- /dev/null
+++ b/ucs2-lib/doc/html/_p__u_m__s_y_n_c__a_n_d__a_s_y_n_c__r_e_s_u_l_t_s.html
@@ -0,0 +1,186 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Synchronous vs. Asynchronous Results</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_p__u_m__s_y_n_c__a_n_d__a_s_y_n_c__r_e_s_u_l_t_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Synchronous vs. Asynchronous Results </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>The UNICENS library distinguishes between <em>synchronous</em> and <em>asynchronous</em> returned results.</p>
+<h1>Synchronous Results</h1>
+<p>If a UNICENS API function detects an error the error is returned synchronously. For this purpose enumeration <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a> is used. If no error has occurred <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda3fb51656e17ee4802f23706f35e349bc">UCS_RET_SUCCESS</a> is returned.</p>
+<p><b>Example:</b> </p>
+<div class="fragment"><div class="line"><a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd" title="Standard return codes used for synchronous response.">Ucs_Return_t</a> ret = <a class="code" href="group___g___u_c_s___n_e_t_ga83c2e74a4cc216aa10d7c6a1a517d459.html#ga83c2e74a4cc216aa10d7c6a1a517d459" title="Starts up the MOST Network.">Ucs_Network_Startup</a>(ucs_inst_ptr, 52U, 0xFFFFU, my_result_fptr);</div>
+</div><!-- fragment --><h1>Asynchronous Results</h1>
+<p>The communication between the EHC and the INIC is an asynchronous process. If the EHC calls an INIC function the returned result is received asynchronously. Thus, most of the UNICENS API functions provide callback function pointers to receive INIC results/errors.</p>
+<h2>INIC Errors</h2>
+<p>If the INIC returns an error, this information is mapped to a UNICENS standard result structure <a class="el" href="struct_ucs___std_result__t.html">Ucs_StdResult_t</a>.</p>
+<div class="fragment"><div class="line"><span class="keyword">typedef</span> <span class="keyword">struct</span></div>
+<div class="line">{</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#gac844b77cf41aef663782bc0b43d3540c" title="Result codes used for asynchronous response.">Ucs_Result_t</a> code; <span class="comment">/* Result/Error code */</span></div>
+<div class="line"> uint8_t *info_ptr; <span class="comment">/* INIC error data */</span></div>
+<div class="line"> uint8_t size; <span class="comment">/* Size of the INIC error data in bytes */</span></div>
+<div class="line"></div>
+<div class="line">} <a class="code" href="struct_ucs___std_result__t.html" title="Standard result structure which provides fields for detailed status and error information.">Ucs_StdResult_t</a>;</div>
+</div><!-- fragment --><p>The result codes are based on the INIC error codes and UNICENS specific result codes. The mapping of the INIC and the UNICENS codes are shown in the table below.</p>
+<table class="doxtable">
+<tr>
+<th>UNICENS Result Code </th><th style="text-align:center;">INIC Error Code </th><th>Description </th></tr>
+<tr>
+<td><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540cae19d5a51de78bbf903a108a4e36a0fdf">UCS_RES_SUCCESS</a> </td><td style="text-align:center;">- </td><td>Operation succeed, no error occurred </td></tr>
+<tr>
+<td rowspan="7"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540ca4f4226f6e507caf5a9e044759c6409cf">UCS_RES_ERR_MOST_STANDARD</a> </td><td style="text-align:center;">0x01 </td><td>FBlock ID not available </td></tr>
+<tr>
+<td style="text-align:center;">0x02 </td><td>Instance ID not available </td></tr>
+<tr>
+<td style="text-align:center;">0x03 </td><td>Function ID not available </td></tr>
+<tr>
+<td style="text-align:center;">0x04 </td><td>OP-Type not available </td></tr>
+<tr>
+<td style="text-align:center;">0x05 </td><td>Invalid length </td></tr>
+<tr>
+<td style="text-align:center;">0x06 </td><td>Parameter wrong/out of range </td></tr>
+<tr>
+<td style="text-align:center;">0x0C </td><td>Segmentation error </td></tr>
+<tr>
+<td><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540ca8ff50e770356e4fca8d36a308e323d83">UCS_RES_ERR_BUSY</a> </td><td rowspan="4" style="text-align:center;">0x20 </td><td>INIC function specific error with error class "Busy (0x01)".<br/>
+ Process in INIC is currently busy. Retries are possible in a reasonable time. </td></tr>
+<tr>
+<td><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540caa7f09aea37cedd8dfbe3665781aae6aa">UCS_RES_ERR_PROCESSING</a> </td><td>INIC function specific error with error class "Processing (0x02)".<br/>
+ Process could not be finished. Retries are possible. </td></tr>
+<tr>
+<td><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540caa142d5f1f196cbf759f2cbd6d8a7468a">UCS_RES_ERR_CONFIGURATION</a> </td><td>INIC function specific error with error class "Configuration (0x03)".<br/>
+ Wrong configuration (values are temporarily out of range). Retries are not useful. </td></tr>
+<tr>
+<td><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540cae64970c5c3ad3d0dc6996b77cd528dbb">UCS_RES_ERR_SYSTEM</a> </td><td>INIC function specific error with error class "System (0x04)".<br/>
+ Current state of INIC or network prevents a successful execution of the process and retries are not possible. Retries are only possible when the state changes, but it is not clear when or if this happens (dynamic error). </td></tr>
+<tr>
+<td><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540ca3099d31f6d533972cf96c86dca0b0cc7">UCS_RES_ERR_TIMEOUT</a> </td><td style="text-align:center;">- </td><td>Timeout during operation </td></tr>
+<tr>
+<td><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540ca4e2229e49fe1197dd9df919719fcd38a">UCS_RES_ERR_TRANSMISSION</a> </td><td style="text-align:center;">- </td><td>Transmission error occurred on the MOST network </td></tr>
+</table>
+<h3>Detailed Error Information</h3>
+<p>If one of the errors above occurs, the raw INIC error data is stored in a byte stream referenced by pointer <code>info_ptr</code>. Parameter <code>size</code> represents the size of the INIC error data in bytes.</p>
+<p><b>Example:</b><br/>
+ The INIC returns the following error:</p>
+<ul>
+<li>Error Code: 0x20</li>
+<li>Error Class: 0x03</li>
+<li>Error ID: 0x32</li>
+<li>Addition Parameter: 0x4711</li>
+</ul>
+<p>The information is stored in variable <code>my_result</code> which is from type <a class="el" href="struct_ucs___std_result__t.html" title="Standard result structure which provides fields for detailed status and error information.">Ucs_StdResult_t</a>:</p>
+<ul>
+<li><code>my_result.code: UCS_RES_ERR_CONFIGURATION</code></li>
+<li><code>my_result.info_ptr[0]: 0x20</code></li>
+<li><code>my_result.info_ptr[1]: 0x03</code></li>
+<li><code>my_result.info_ptr[2]: 0x32</code></li>
+<li><code>my_result.info_ptr[3]: 0x47</code></li>
+<li><code>my_result.info_ptr[4]: 0x11</code></li>
+<li><code>my_result.size: 5</code> </li>
+</ul>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/bc_s.png b/ucs2-lib/doc/html/bc_s.png
new file mode 100644
index 0000000..d35a866
--- /dev/null
+++ b/ucs2-lib/doc/html/bc_s.png
Binary files differ
diff --git a/ucs2-lib/doc/html/bdwn.png b/ucs2-lib/doc/html/bdwn.png
new file mode 100644
index 0000000..bd0f0e8
--- /dev/null
+++ b/ucs2-lib/doc/html/bdwn.png
Binary files differ
diff --git a/ucs2-lib/doc/html/bullet.gif b/ucs2-lib/doc/html/bullet.gif
new file mode 100644
index 0000000..ecb0338
--- /dev/null
+++ b/ucs2-lib/doc/html/bullet.gif
Binary files differ
diff --git a/ucs2-lib/doc/html/closed.png b/ucs2-lib/doc/html/closed.png
new file mode 100644
index 0000000..91d37cf
--- /dev/null
+++ b/ucs2-lib/doc/html/closed.png
Binary files differ
diff --git a/ucs2-lib/doc/html/dir_1e869ebbc6cce176ee0dbb76743ac339.html b/ucs2-lib/doc/html/dir_1e869ebbc6cce176ee0dbb76743ac339.html
new file mode 100644
index 0000000..5aac68a
--- /dev/null
+++ b/ucs2-lib/doc/html/dir_1e869ebbc6cce176ee0dbb76743ac339.html
@@ -0,0 +1,126 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: C:/cibuild/tools/jenkins/workspace/unicens_v2_candidates/the_tag/src/cfg Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_1e869ebbc6cce176ee0dbb76743ac339.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">cfg Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:ucs__cfg_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_cfg.h</b></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__types__cfg_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_types_cfg.h</b></td></tr>
+<tr class="memdesc:ucs__types__cfg_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">UNICENS data types definitions. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__xrm__cfg_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_xrm_cfg.h</b></td></tr>
+<tr class="memdesc:ucs__xrm__cfg_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configuration header file of the Extended Resource Manager (XRM). <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_1e869ebbc6cce176ee0dbb76743ac339.html">cfg</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/dir_23d9d109a5b2f4ba089ae8b34b88462d.html b/ucs2-lib/doc/html/dir_23d9d109a5b2f4ba089ae8b34b88462d.html
new file mode 100644
index 0000000..7e9d252
--- /dev/null
+++ b/ucs2-lib/doc/html/dir_23d9d109a5b2f4ba089ae8b34b88462d.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: C:/cibuild/tools/jenkins/workspace/unicens_v2_candidates/the_tag/src/core/ams Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_23d9d109a5b2f4ba089ae8b34b88462d.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">ams Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:ucs__amd_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_amd.c</b></td></tr>
+<tr class="memdesc:ucs__amd_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of Application Message Distributor. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__amd_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_amd.h</b></td></tr>
+<tr class="memdesc:ucs__amd_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of Application Message Distributor. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__ams_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_ams.c</b></td></tr>
+<tr class="memdesc:ucs__ams_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of Application Message Service. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__ams_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_ams.h</b></td></tr>
+<tr class="memdesc:ucs__ams_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of Application Message Service. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__ams__pb_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_ams_pb.h</b></td></tr>
+<tr class="memdesc:ucs__ams__pb_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Public header file of Application Message Service. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__amsallocator_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_amsallocator.h</b></td></tr>
+<tr class="memdesc:ucs__amsallocator_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of AMS Allocator Interface. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__amsmessage_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_amsmessage.c</b></td></tr>
+<tr class="memdesc:ucs__amsmessage_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of Application Message Classes. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__amsmessage_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_amsmessage.h</b></td></tr>
+<tr class="memdesc:ucs__amsmessage_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of Application Message Classes. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__amspool_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_amspool.c</b></td></tr>
+<tr class="memdesc:ucs__amspool_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of Application Message Pool. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__amspool_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_amspool.h</b></td></tr>
+<tr class="memdesc:ucs__amspool_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of Application Message Pools. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__amtp_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_amtp.c</b></td></tr>
+<tr class="memdesc:ucs__amtp_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of Application Message Tx Pool. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__amtp_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_amtp.h</b></td></tr>
+<tr class="memdesc:ucs__amtp_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of Application Message Tx Pool. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__segmentation_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_segmentation.c</b></td></tr>
+<tr class="memdesc:ucs__segmentation_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of AMS Segmentation Class. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__segmentation_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_segmentation.h</b></td></tr>
+<tr class="memdesc:ucs__segmentation_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of AMS Segmentation Class. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_aebb8dcc11953d78e620bbef0b9e2183.html">core</a></li><li class="navelem"><a class="el" href="dir_23d9d109a5b2f4ba089ae8b34b88462d.html">ams</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/dir_29fd9872dd2074e872f144206a9fa4ae.html b/ucs2-lib/doc/html/dir_29fd9872dd2074e872f144206a9fa4ae.html
new file mode 100644
index 0000000..0ba12b3
--- /dev/null
+++ b/ucs2-lib/doc/html/dir_29fd9872dd2074e872f144206a9fa4ae.html
@@ -0,0 +1,127 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: C:/cibuild/tools/jenkins/workspace/unicens_v2_candidates/the_tag/src/core/smm Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_29fd9872dd2074e872f144206a9fa4ae.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">smm Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:ucs__smm_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_smm.c</b></td></tr>
+<tr class="memdesc:ucs__smm_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of the class CStaticMemoryManager. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__smm_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_smm.h</b></td></tr>
+<tr class="memdesc:ucs__smm_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Header file of the class CStaticMemoryManager. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__smm__pb_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_smm_pb.h</b></td></tr>
+<tr class="memdesc:ucs__smm__pb_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Header file of the static memory manager plug-in. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_aebb8dcc11953d78e620bbef0b9e2183.html">core</a></li><li class="navelem"><a class="el" href="dir_29fd9872dd2074e872f144206a9fa4ae.html">smm</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/dir_43e3e9ff88bb74457ac2677f9d724a71.html b/ucs2-lib/doc/html/dir_43e3e9ff88bb74457ac2677f9d724a71.html
new file mode 100644
index 0000000..d988305
--- /dev/null
+++ b/ucs2-lib/doc/html/dir_43e3e9ff88bb74457ac2677f9d724a71.html
@@ -0,0 +1,171 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: C:/cibuild/tools/jenkins/workspace/unicens_v2_candidates/the_tag/src/core/inic Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_43e3e9ff88bb74457ac2677f9d724a71.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">inic Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:ucs__attach_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_attach.c</b></td></tr>
+<tr class="memdesc:ucs__attach_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of CAttachService class. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__attach_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_attach.h</b></td></tr>
+<tr class="memdesc:ucs__attach_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declaration of CAttachService class. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__bc__diag_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_bc_diag.c</b></td></tr>
+<tr class="memdesc:ucs__bc__diag_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of the BackChannel Diagnosis. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__bc__diag_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_bc_diag.h</b></td></tr>
+<tr class="memdesc:ucs__bc__diag_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of class CBackChannelDiag. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__dec_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_dec.c</b></td></tr>
+<tr class="memdesc:ucs__dec_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of the Command Interpreter Module. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__dec_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_dec.h</b></td></tr>
+<tr class="memdesc:ucs__dec_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of the Command Decoder Module. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__exc_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_exc.c</b></td></tr>
+<tr class="memdesc:ucs__exc_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of FBlock ExtendedNetworkControl. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__exc_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_exc.h</b></td></tr>
+<tr class="memdesc:ucs__exc_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of class CExc. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__inic_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_inic.c</b></td></tr>
+<tr class="memdesc:ucs__inic_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of FBlock INIC. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__inic_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_inic.h</b></td></tr>
+<tr class="memdesc:ucs__inic_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of class CInic. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__inic__pb_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_inic_pb.h</b></td></tr>
+<tr class="memdesc:ucs__inic__pb_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Public header file of class CInic. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__inic__res_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_inic_res.c</b></td></tr>
+<tr class="memdesc:ucs__inic__res_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of FBlock INIC (resource management parts of INIC management) <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__nodedis_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_nodedis.c</b></td></tr>
+<tr class="memdesc:ucs__nodedis_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of the Node Discovery. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__nodedis_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_nodedis.h</b></td></tr>
+<tr class="memdesc:ucs__nodedis_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of class CNodeDiscovery. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__prog_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_prog.c</b></td></tr>
+<tr class="memdesc:ucs__prog_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of the Programming Service. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__prog_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_prog.h</b></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__sys__diag_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_sys_diag.c</b></td></tr>
+<tr class="memdesc:ucs__sys__diag_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of the System Diagnosis class. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__sys__diag_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_sys_diag.h</b></td></tr>
+<tr class="memdesc:ucs__sys__diag_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of class CSysDiag. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_aebb8dcc11953d78e620bbef0b9e2183.html">core</a></li><li class="navelem"><a class="el" href="dir_43e3e9ff88bb74457ac2677f9d724a71.html">inic</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/ucs2-lib/doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html
new file mode 100644
index 0000000..10439b7
--- /dev/null
+++ b/ucs2-lib/doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: C:/cibuild/tools/jenkins/workspace/unicens_v2_candidates/the_tag/src Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_68267d1309a1af8e8297ef4c3efbcdba.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">src Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:dir_da61e3e9a357748887e3ca8d7c5a0c16"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_da61e3e9a357748887e3ca8d7c5a0c16.html">api</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:dir_1e869ebbc6cce176ee0dbb76743ac339"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_1e869ebbc6cce176ee0dbb76743ac339.html">cfg</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:dir_aebb8dcc11953d78e620bbef0b9e2183"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_aebb8dcc11953d78e620bbef0b9e2183.html">core</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/dir_73cb4d11b06c10448caf49ed02a351c4.html b/ucs2-lib/doc/html/dir_73cb4d11b06c10448caf49ed02a351c4.html
new file mode 100644
index 0000000..d3688ac
--- /dev/null
+++ b/ucs2-lib/doc/html/dir_73cb4d11b06c10448caf49ed02a351c4.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: C:/cibuild/tools/jenkins/workspace/unicens_v2_candidates/the_tag/src/core/net Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_73cb4d11b06c10448caf49ed02a351c4.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">net Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:ucs__net_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_net.c</b></td></tr>
+<tr class="memdesc:ucs__net_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of the Network Management. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__net_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_net.h</b></td></tr>
+<tr class="memdesc:ucs__net_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of the Network Management. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_aebb8dcc11953d78e620bbef0b9e2183.html">core</a></li><li class="navelem"><a class="el" href="dir_73cb4d11b06c10448caf49ed02a351c4.html">net</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/dir_8f3a2693e968589ea19c320890ad56e9.html b/ucs2-lib/doc/html/dir_8f3a2693e968589ea19c320890ad56e9.html
new file mode 100644
index 0000000..e689015
--- /dev/null
+++ b/ucs2-lib/doc/html/dir_8f3a2693e968589ea19c320890ad56e9.html
@@ -0,0 +1,199 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: C:/cibuild/tools/jenkins/workspace/unicens_v2_candidates/the_tag/src/core/irm Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_8f3a2693e968589ea19c320890ad56e9.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">irm Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:ucs__epm_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_epm.c</b></td></tr>
+<tr class="memdesc:ucs__epm_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of the EndPoint Management. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__epm_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_epm.h</b></td></tr>
+<tr class="memdesc:ucs__epm_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of the EndPoint Manager. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__epm__pv_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_epm_pv.h</b></td></tr>
+<tr class="memdesc:ucs__epm__pv_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Public header file of the Extended Resource Manager. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__gpio_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_gpio.c</b></td></tr>
+<tr class="memdesc:ucs__gpio_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of the GPIO module. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__gpio_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_gpio.h</b></td></tr>
+<tr class="memdesc:ucs__gpio_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of the GPIO module. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__gpio__pb_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_gpio_pb.h</b></td></tr>
+<tr class="memdesc:ucs__gpio__pb_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Public header file of the Gpio module. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__i2c_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_i2c.c</b></td></tr>
+<tr class="memdesc:ucs__i2c_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of the I2C Module. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__i2c_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_i2c.h</b></td></tr>
+<tr class="memdesc:ucs__i2c_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of the I2C module. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__i2c__pb_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_i2c_pb.h</b></td></tr>
+<tr class="memdesc:ucs__i2c__pb_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Public header file of the I2c module. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__nsm_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_nsm.c</b></td></tr>
+<tr class="memdesc:ucs__nsm_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of the Node Scripting Management. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__nsm_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_nsm.h</b></td></tr>
+<tr class="memdesc:ucs__nsm_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of the Node Scripting Management. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__nsm__pb_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_nsm_pb.h</b></td></tr>
+<tr class="memdesc:ucs__nsm__pb_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Public header file of the Node Script Management. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__rm__pb_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_rm_pb.h</b></td></tr>
+<tr class="memdesc:ucs__rm__pb_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Public header file of the Routing Management. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__rm__pv_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_rm_pv.h</b></td></tr>
+<tr class="memdesc:ucs__rm__pv_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Private header file of the Routing Management. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__rsm_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_rsm.c</b></td></tr>
+<tr class="memdesc:ucs__rsm_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of the Sync Management. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__rsm_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_rsm.h</b></td></tr>
+<tr class="memdesc:ucs__rsm_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of the Remote Sync Manager. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__rsm__pv_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_rsm_pv.h</b></td></tr>
+<tr class="memdesc:ucs__rsm__pv_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Public header file of the Extended Resource Manager. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__rtm_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_rtm.c</b></td></tr>
+<tr class="memdesc:ucs__rtm_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of the Route Management. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__rtm_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_rtm.h</b></td></tr>
+<tr class="memdesc:ucs__rtm_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of the Route Manager. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__rtm__pv_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_rtm_pv.h</b></td></tr>
+<tr class="memdesc:ucs__rtm__pv_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Public header file of the Extended Resource Manager. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__xrm_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_xrm.c</b></td></tr>
+<tr class="memdesc:ucs__xrm_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of the Extended Resource Manager. This file contains the implementation of the basic functions of the class CExtendedResourceManager. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__xrm_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_xrm.h</b></td></tr>
+<tr class="memdesc:ucs__xrm_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Include file of the Extended Resource Manager. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__xrm__pb_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_xrm_pb.h</b></td></tr>
+<tr class="memdesc:ucs__xrm__pb_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Public header file of the Extended Resource Manager. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__xrm__pv_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_xrm_pv.h</b></td></tr>
+<tr class="memdesc:ucs__xrm__pv_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Private header file of the Extended Resource Manager. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__xrm__res_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_xrm_res.c</b></td></tr>
+<tr class="memdesc:ucs__xrm__res_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of the Extended Resource Manager. This file contains the implementation of the INIC Resource Management functions and result/error handlers. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__xrmpool_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_xrmpool.c</b></td></tr>
+<tr class="memdesc:ucs__xrmpool_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of the Connection Storage Pool. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__xrmpool_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_xrmpool.h</b></td></tr>
+<tr class="memdesc:ucs__xrmpool_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of the Connection Storage Pool. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_aebb8dcc11953d78e620bbef0b9e2183.html">core</a></li><li class="navelem"><a class="el" href="dir_8f3a2693e968589ea19c320890ad56e9.html">irm</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/dir_9ace0bdff5d34e41ad08105dc041a781.html b/ucs2-lib/doc/html/dir_9ace0bdff5d34e41ad08105dc041a781.html
new file mode 100644
index 0000000..cb33b93
--- /dev/null
+++ b/ucs2-lib/doc/html/dir_9ace0bdff5d34e41ad08105dc041a781.html
@@ -0,0 +1,145 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: C:/cibuild/tools/jenkins/workspace/unicens_v2_candidates/the_tag/src/core/lib Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_9ace0bdff5d34e41ad08105dc041a781.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">lib Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:ucs__dl_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_dl.c</b></td></tr>
+<tr class="memdesc:ucs__dl_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of the doubly linked list. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__dl_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_dl.h</b></td></tr>
+<tr class="memdesc:ucs__dl_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of the doubly linked list. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__fsm_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_fsm.c</b></td></tr>
+<tr class="memdesc:ucs__fsm_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of the Finite State Machine. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__fsm_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_fsm.h</b></td></tr>
+<tr class="memdesc:ucs__fsm_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of the Finite State Machine. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__misc_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_misc.c</b></td></tr>
+<tr class="memdesc:ucs__misc_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of the library module which contains miscellaneous helper functions. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__misc_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_misc.h</b></td></tr>
+<tr class="memdesc:ucs__misc_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of the library module which contains miscellaneous helper functions. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__obs_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_obs.c</b></td></tr>
+<tr class="memdesc:ucs__obs_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of the observer library module. The module consists of the two classes CSubject and CObserver. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__obs_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_obs.h</b></td></tr>
+<tr class="memdesc:ucs__obs_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of the observer library module. The module consists of the two classes CSubject and CObserver. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__ret__pb_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_ret_pb.h</b></td></tr>
+<tr class="memdesc:ucs__ret__pb_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">This header file contains standard return values used by UNICENS functions and methods. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_aebb8dcc11953d78e620bbef0b9e2183.html">core</a></li><li class="navelem"><a class="el" href="dir_9ace0bdff5d34e41ad08105dc041a781.html">lib</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/dir_a74bb488207285314d55b30438bec1a4.html b/ucs2-lib/doc/html/dir_a74bb488207285314d55b30438bec1a4.html
new file mode 100644
index 0000000..f193ede
--- /dev/null
+++ b/ucs2-lib/doc/html/dir_a74bb488207285314d55b30438bec1a4.html
@@ -0,0 +1,157 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: C:/cibuild/tools/jenkins/workspace/unicens_v2_candidates/the_tag/src/core/base Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_a74bb488207285314d55b30438bec1a4.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">base Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:ucs__alm_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_alm.c</b></td></tr>
+<tr class="memdesc:ucs__alm_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of the API locking manager. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__alm_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_alm.h</b></td></tr>
+<tr class="memdesc:ucs__alm_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of the API locking module. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__base_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_base.c</b></td></tr>
+<tr class="memdesc:ucs__base_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of the Base class. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__base_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_base.h</b></td></tr>
+<tr class="memdesc:ucs__base_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of the Base class. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__eh_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_eh.c</b></td></tr>
+<tr class="memdesc:ucs__eh_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of the event handler. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__eh_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_eh.h</b></td></tr>
+<tr class="memdesc:ucs__eh_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of the event handler. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__eh__pb_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_eh_pb.h</b></td></tr>
+<tr class="memdesc:ucs__eh__pb_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Public header file of the event handler. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__scheduler_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_scheduler.c</b></td></tr>
+<tr class="memdesc:ucs__scheduler_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of the scheduler module. The module consists of the two classes CScheduler and CService. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__scheduler_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_scheduler.h</b></td></tr>
+<tr class="memdesc:ucs__scheduler_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of the scheduler module. The module consists of the two classes CScheduler and CService. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__timer_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_timer.c</b></td></tr>
+<tr class="memdesc:ucs__timer_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of the timer management module. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__timer_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_timer.h</b></td></tr>
+<tr class="memdesc:ucs__timer_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of the timer management module. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__trace_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_trace.h</b></td></tr>
+<tr class="memdesc:ucs__trace_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of the trace interface. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__trace__pb_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_trace_pb.h</b></td></tr>
+<tr class="memdesc:ucs__trace__pb_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Public header file of the trace interface. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_aebb8dcc11953d78e620bbef0b9e2183.html">core</a></li><li class="navelem"><a class="el" href="dir_a74bb488207285314d55b30438bec1a4.html">base</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/dir_aebb8dcc11953d78e620bbef0b9e2183.html b/ucs2-lib/doc/html/dir_aebb8dcc11953d78e620bbef0b9e2183.html
new file mode 100644
index 0000000..0565fb8
--- /dev/null
+++ b/ucs2-lib/doc/html/dir_aebb8dcc11953d78e620bbef0b9e2183.html
@@ -0,0 +1,138 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: C:/cibuild/tools/jenkins/workspace/unicens_v2_candidates/the_tag/src/core Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_aebb8dcc11953d78e620bbef0b9e2183.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">core Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:dir_23d9d109a5b2f4ba089ae8b34b88462d"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_23d9d109a5b2f4ba089ae8b34b88462d.html">ams</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:dir_a74bb488207285314d55b30438bec1a4"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_a74bb488207285314d55b30438bec1a4.html">base</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:dir_f76ab352f358acad35889210ecc2b5d7"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_f76ab352f358acad35889210ecc2b5d7.html">cmd</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:dir_43e3e9ff88bb74457ac2677f9d724a71"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_43e3e9ff88bb74457ac2677f9d724a71.html">inic</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:dir_8f3a2693e968589ea19c320890ad56e9"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_8f3a2693e968589ea19c320890ad56e9.html">irm</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:dir_9ace0bdff5d34e41ad08105dc041a781"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_9ace0bdff5d34e41ad08105dc041a781.html">lib</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:dir_bcbceec62d66502e9836c05663251230"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_bcbceec62d66502e9836c05663251230.html">mgr</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:dir_73cb4d11b06c10448caf49ed02a351c4"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_73cb4d11b06c10448caf49ed02a351c4.html">net</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:dir_ed6a9d7cb43517060d7c75c2b818a822"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_ed6a9d7cb43517060d7c75c2b818a822.html">pms</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:dir_29fd9872dd2074e872f144206a9fa4ae"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_29fd9872dd2074e872f144206a9fa4ae.html">smm</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_aebb8dcc11953d78e620bbef0b9e2183.html">core</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/dir_bcbceec62d66502e9836c05663251230.html b/ucs2-lib/doc/html/dir_bcbceec62d66502e9836c05663251230.html
new file mode 100644
index 0000000..866e8cd
--- /dev/null
+++ b/ucs2-lib/doc/html/dir_bcbceec62d66502e9836c05663251230.html
@@ -0,0 +1,139 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: C:/cibuild/tools/jenkins/workspace/unicens_v2_candidates/the_tag/src/core/mgr Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_bcbceec62d66502e9836c05663251230.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">mgr Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:ucs__jobs_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_jobs.c</b></td></tr>
+<tr class="memdesc:ucs__jobs_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of Job classes. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__jobs_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_jobs.h</b></td></tr>
+<tr class="memdesc:ucs__jobs_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of Job classes. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__mgr_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_mgr.c</b></td></tr>
+<tr class="memdesc:ucs__mgr_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of CManager class. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__mgr_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_mgr.h</b></td></tr>
+<tr class="memdesc:ucs__mgr_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of the CManager class. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__nodeobserver_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_nodeobserver.c</b></td></tr>
+<tr class="memdesc:ucs__nodeobserver_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of CNodeObserver class. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__nodeobserver_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_nodeobserver.h</b></td></tr>
+<tr class="memdesc:ucs__nodeobserver_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of the CNodeObserver class. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__nodeobserver__pb_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_nodeobserver_pb.h</b></td></tr>
+<tr class="memdesc:ucs__nodeobserver__pb_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Public header file of the CNodeObserver class. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_aebb8dcc11953d78e620bbef0b9e2183.html">core</a></li><li class="navelem"><a class="el" href="dir_bcbceec62d66502e9836c05663251230.html">mgr</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/dir_da61e3e9a357748887e3ca8d7c5a0c16.html b/ucs2-lib/doc/html/dir_da61e3e9a357748887e3ca8d7c5a0c16.html
new file mode 100644
index 0000000..e57f62f
--- /dev/null
+++ b/ucs2-lib/doc/html/dir_da61e3e9a357748887e3ca8d7c5a0c16.html
@@ -0,0 +1,139 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: C:/cibuild/tools/jenkins/workspace/unicens_v2_candidates/the_tag/src/api Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_da61e3e9a357748887e3ca8d7c5a0c16.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">api Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:ucs__api_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_api.h</b></td></tr>
+<tr class="memdesc:ucs__api_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">UNICENSV2 API include file. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__class_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_class.c</b></td></tr>
+<tr class="memdesc:ucs__class_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of the UNICENS API. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__class_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_class.h</b></td></tr>
+<tr class="memdesc:ucs__class_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of UNICENS API class. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__class__pb_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_class_pb.h</b></td></tr>
+<tr class="memdesc:ucs__class__pb_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Public header file of UNICENS API class. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__factory_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_factory.c</b></td></tr>
+<tr class="memdesc:ucs__factory_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of the MNS Factory. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__factory_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_factory.h</b></td></tr>
+<tr class="memdesc:ucs__factory_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of the MNS Factory. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__rules_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_rules.h</b></td></tr>
+<tr class="memdesc:ucs__rules_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">UNICENSV2 API include file. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_da61e3e9a357748887e3ca8d7c5a0c16.html">api</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/dir_ed6a9d7cb43517060d7c75c2b818a822.html b/ucs2-lib/doc/html/dir_ed6a9d7cb43517060d7c75c2b818a822.html
new file mode 100644
index 0000000..3705b0b
--- /dev/null
+++ b/ucs2-lib/doc/html/dir_ed6a9d7cb43517060d7c75c2b818a822.html
@@ -0,0 +1,202 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: C:/cibuild/tools/jenkins/workspace/unicens_v2_candidates/the_tag/src/core/pms Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_ed6a9d7cb43517060d7c75c2b818a822.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">pms Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:ucs__encoder_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_encoder.c</b></td></tr>
+<tr class="memdesc:ucs__encoder_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of message encoder. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__encoder_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_encoder.h</b></td></tr>
+<tr class="memdesc:ucs__encoder_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declaration of message encoder. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__lld__pb_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_lld_pb.h</b></td></tr>
+<tr class="memdesc:ucs__lld__pb_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declaration of the low-level driver interface. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__lldpool_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_lldpool.c</b></td></tr>
+<tr class="memdesc:ucs__lldpool_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of LLD Message Pool. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__lldpool_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_lldpool.h</b></td></tr>
+<tr class="memdesc:ucs__lldpool_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of LLD Message Pool. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__memory_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_memory.h</b></td></tr>
+<tr class="memdesc:ucs__memory_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declaration of internal memory buffer. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__memory__pb_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_memory_pb.h</b></td></tr>
+<tr class="memdesc:ucs__memory__pb_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declaration of memory buffer and memory allocator. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__message_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_message.c</b></td></tr>
+<tr class="memdesc:ucs__message_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of class message. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__message_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_message.h</b></td></tr>
+<tr class="memdesc:ucs__message_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declaration of class message. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__message__pb_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_message_pb.h</b></td></tr>
+<tr class="memdesc:ucs__message__pb_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declaration of public message types. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__pmchannel_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_pmchannel.c</b></td></tr>
+<tr class="memdesc:ucs__pmchannel_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of Port Message Channel. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__pmchannel_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_pmchannel.h</b></td></tr>
+<tr class="memdesc:ucs__pmchannel_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of Port Message Channel. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__pmcmd_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_pmcmd.c</b></td></tr>
+<tr class="memdesc:ucs__pmcmd_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of class CPmCommand. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__pmcmd_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_pmcmd.h</b></td></tr>
+<tr class="memdesc:ucs__pmcmd_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declaration of class CPmCommand. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__pmevent_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_pmevent.c</b></td></tr>
+<tr class="memdesc:ucs__pmevent_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of Port Message Event Handler. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__pmevent_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_pmevent.h</b></td></tr>
+<tr class="memdesc:ucs__pmevent_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of Port Message Event Handler. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__pmfifo_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_pmfifo.c</b></td></tr>
+<tr class="memdesc:ucs__pmfifo_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of Port Message FIFO. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__pmfifo_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_pmfifo.h</b></td></tr>
+<tr class="memdesc:ucs__pmfifo_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of Port Message FIFO. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__pmfifos_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_pmfifos.c</b></td></tr>
+<tr class="memdesc:ucs__pmfifos_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of class CPmFifos. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__pmfifos_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_pmfifos.h</b></td></tr>
+<tr class="memdesc:ucs__pmfifos_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of class CPmFifos. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__pmp_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_pmp.c</b></td></tr>
+<tr class="memdesc:ucs__pmp_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of Port Message Protocol. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__pmp_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_pmp.h</b></td></tr>
+<tr class="memdesc:ucs__pmp_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of Port Message Protocol. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__pool_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_pool.c</b></td></tr>
+<tr class="memdesc:ucs__pool_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of message pool class. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__pool_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_pool.h</b></td></tr>
+<tr class="memdesc:ucs__pool_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declaration of message pool class. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__telqueue_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_telqueue.c</b></td></tr>
+<tr class="memdesc:ucs__telqueue_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of class CTelQueue. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__telqueue_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_telqueue.h</b></td></tr>
+<tr class="memdesc:ucs__telqueue_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declaration of class CTelQueue. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__transceiver_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_transceiver.c</b></td></tr>
+<tr class="memdesc:ucs__transceiver_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of class CTransceiver. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__transceiver_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_transceiver.h</b></td></tr>
+<tr class="memdesc:ucs__transceiver_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declaration of class CTransceiver. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_aebb8dcc11953d78e620bbef0b9e2183.html">core</a></li><li class="navelem"><a class="el" href="dir_ed6a9d7cb43517060d7c75c2b818a822.html">pms</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/dir_f76ab352f358acad35889210ecc2b5d7.html b/ucs2-lib/doc/html/dir_f76ab352f358acad35889210ecc2b5d7.html
new file mode 100644
index 0000000..b162afe
--- /dev/null
+++ b/ucs2-lib/doc/html/dir_f76ab352f358acad35889210ecc2b5d7.html
@@ -0,0 +1,127 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: C:/cibuild/tools/jenkins/workspace/unicens_v2_candidates/the_tag/src/core/cmd Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_f76ab352f358acad35889210ecc2b5d7.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">cmd Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:ucs__cmd_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_cmd.c</b></td></tr>
+<tr class="memdesc:ucs__cmd_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of the Command Interpreter. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__cmd_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_cmd.h</b></td></tr>
+<tr class="memdesc:ucs__cmd_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal header file of the Command Interpreter Add-On. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ucs__cmd__pb_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ucs_cmd_pb.h</b></td></tr>
+<tr class="memdesc:ucs__cmd__pb_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Header file of the Command Interpreter. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_aebb8dcc11953d78e620bbef0b9e2183.html">core</a></li><li class="navelem"><a class="el" href="dir_f76ab352f358acad35889210ecc2b5d7.html">cmd</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/doxygen.png b/ucs2-lib/doc/html/doxygen.png
new file mode 100644
index 0000000..eea74bf
--- /dev/null
+++ b/ucs2-lib/doc/html/doxygen.png
Binary files differ
diff --git a/ucs2-lib/doc/html/dynsections.js b/ucs2-lib/doc/html/dynsections.js
new file mode 100644
index 0000000..116542f
--- /dev/null
+++ b/ucs2-lib/doc/html/dynsections.js
@@ -0,0 +1,78 @@
+function toggleVisibility(linkObj)
+{
+ var base = $(linkObj).attr('id');
+ var summary = $('#'+base+'-summary');
+ var content = $('#'+base+'-content');
+ var trigger = $('#'+base+'-trigger');
+ var src=$(trigger).attr('src');
+ if (content.is(':visible')===true) {
+ content.hide();
+ summary.show();
+ $(linkObj).addClass('closed').removeClass('opened');
+ $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
+ } else {
+ content.show();
+ summary.hide();
+ $(linkObj).removeClass('closed').addClass('opened');
+ $(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
+ }
+ return false;
+}
+
+function updateStripes()
+{
+ $('table.directory tr').
+ removeClass('even').filter(':visible:even').addClass('even');
+}
+function toggleLevel(level)
+{
+ $('table.directory tr').each(function(){
+ var l = this.id.split('_').length-1;
+ var i = $('#img'+this.id.substring(3));
+ var a = $('#arr'+this.id.substring(3));
+ if (l<level+1) {
+ i.attr('src','ftv2folderopen.png');
+ a.attr('src','ftv2mnode.png');
+ $(this).show();
+ } else if (l==level+1) {
+ i.attr('src','ftv2folderclosed.png');
+ a.attr('src','ftv2pnode.png');
+ $(this).show();
+ } else {
+ $(this).hide();
+ }
+ });
+ updateStripes();
+}
+function toggleFolder(id)
+{
+ var n = $('[id^=row_'+id+']');
+ var i = $('[id^=img_'+id+']');
+ var a = $('[id^=arr_'+id+']');
+ var c = n.slice(1);
+ if (c.filter(':first').is(':visible')===true) {
+ i.attr('src','ftv2folderclosed.png');
+ a.attr('src','ftv2pnode.png');
+ c.hide();
+ } else {
+ i.attr('src','ftv2folderopen.png');
+ a.attr('src','ftv2mnode.png');
+ c.show();
+ }
+ updateStripes();
+}
+
+function toggleInherit(id)
+{
+ var rows = $('tr.inherit.'+id);
+ var img = $('tr.inherit_header.'+id+' img');
+ var src = $(img).attr('src');
+ if (rows.filter(':first').is(':visible')===true) {
+ rows.css('display','none');
+ $(img).attr('src',src.substring(0,src.length-8)+'closed.png');
+ } else {
+ rows.css('display','table-row'); // using show() causes jump in firefox
+ $(img).attr('src',src.substring(0,src.length-10)+'open.png');
+ }
+}
+
diff --git a/ucs2-lib/doc/html/favicon.ico b/ucs2-lib/doc/html/favicon.ico
new file mode 100644
index 0000000..baccca4
--- /dev/null
+++ b/ucs2-lib/doc/html/favicon.ico
Binary files differ
diff --git a/ucs2-lib/doc/html/ftv2blank.png b/ucs2-lib/doc/html/ftv2blank.png
new file mode 100644
index 0000000..63c605b
--- /dev/null
+++ b/ucs2-lib/doc/html/ftv2blank.png
Binary files differ
diff --git a/ucs2-lib/doc/html/ftv2cl.png b/ucs2-lib/doc/html/ftv2cl.png
new file mode 100644
index 0000000..a0c409c
--- /dev/null
+++ b/ucs2-lib/doc/html/ftv2cl.png
Binary files differ
diff --git a/ucs2-lib/doc/html/ftv2doc.png b/ucs2-lib/doc/html/ftv2doc.png
new file mode 100644
index 0000000..05dc842
--- /dev/null
+++ b/ucs2-lib/doc/html/ftv2doc.png
Binary files differ
diff --git a/ucs2-lib/doc/html/ftv2folderclosed.png b/ucs2-lib/doc/html/ftv2folderclosed.png
new file mode 100644
index 0000000..a43fcd6
--- /dev/null
+++ b/ucs2-lib/doc/html/ftv2folderclosed.png
Binary files differ
diff --git a/ucs2-lib/doc/html/ftv2folderopen.png b/ucs2-lib/doc/html/ftv2folderopen.png
new file mode 100644
index 0000000..8858898
--- /dev/null
+++ b/ucs2-lib/doc/html/ftv2folderopen.png
Binary files differ
diff --git a/ucs2-lib/doc/html/ftv2lastnode.png b/ucs2-lib/doc/html/ftv2lastnode.png
new file mode 100644
index 0000000..63c605b
--- /dev/null
+++ b/ucs2-lib/doc/html/ftv2lastnode.png
Binary files differ
diff --git a/ucs2-lib/doc/html/ftv2link.png b/ucs2-lib/doc/html/ftv2link.png
new file mode 100644
index 0000000..05dc842
--- /dev/null
+++ b/ucs2-lib/doc/html/ftv2link.png
Binary files differ
diff --git a/ucs2-lib/doc/html/ftv2mlastnode.png b/ucs2-lib/doc/html/ftv2mlastnode.png
new file mode 100644
index 0000000..899ccef
--- /dev/null
+++ b/ucs2-lib/doc/html/ftv2mlastnode.png
Binary files differ
diff --git a/ucs2-lib/doc/html/ftv2mnode.png b/ucs2-lib/doc/html/ftv2mnode.png
new file mode 100644
index 0000000..899ccef
--- /dev/null
+++ b/ucs2-lib/doc/html/ftv2mnode.png
Binary files differ
diff --git a/ucs2-lib/doc/html/ftv2mo.png b/ucs2-lib/doc/html/ftv2mo.png
new file mode 100644
index 0000000..b828950
--- /dev/null
+++ b/ucs2-lib/doc/html/ftv2mo.png
Binary files differ
diff --git a/ucs2-lib/doc/html/ftv2node.png b/ucs2-lib/doc/html/ftv2node.png
new file mode 100644
index 0000000..63c605b
--- /dev/null
+++ b/ucs2-lib/doc/html/ftv2node.png
Binary files differ
diff --git a/ucs2-lib/doc/html/ftv2ns.png b/ucs2-lib/doc/html/ftv2ns.png
new file mode 100644
index 0000000..1b5dfe7
--- /dev/null
+++ b/ucs2-lib/doc/html/ftv2ns.png
Binary files differ
diff --git a/ucs2-lib/doc/html/ftv2plastnode.png b/ucs2-lib/doc/html/ftv2plastnode.png
new file mode 100644
index 0000000..374661e
--- /dev/null
+++ b/ucs2-lib/doc/html/ftv2plastnode.png
Binary files differ
diff --git a/ucs2-lib/doc/html/ftv2pnode.png b/ucs2-lib/doc/html/ftv2pnode.png
new file mode 100644
index 0000000..374661e
--- /dev/null
+++ b/ucs2-lib/doc/html/ftv2pnode.png
Binary files differ
diff --git a/ucs2-lib/doc/html/ftv2splitbar.png b/ucs2-lib/doc/html/ftv2splitbar.png
new file mode 100644
index 0000000..a50de59
--- /dev/null
+++ b/ucs2-lib/doc/html/ftv2splitbar.png
Binary files differ
diff --git a/ucs2-lib/doc/html/ftv2vertline.png b/ucs2-lib/doc/html/ftv2vertline.png
new file mode 100644
index 0000000..63c605b
--- /dev/null
+++ b/ucs2-lib/doc/html/ftv2vertline.png
Binary files differ
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___a_m_s.html b/ucs2-lib/doc/html/group___g___u_c_s___a_m_s.html
new file mode 100644
index 0000000..a96baa8
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___a_m_s.html
@@ -0,0 +1,182 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Application Message Service</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___a_m_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#groups">Topics</a> &#124;
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#define-members">Macros</a> &#124;
+<a href="#typedef-members">Callback Functions</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">Application Message Service</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Application Message Service.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+Topics</h2></td></tr>
+<tr class="memitem:group___g___u_c_s___a_m_s___t_y_p_e_s"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s.html">Referred Types</a></td></tr>
+<tr class="memdesc:group___g___u_c_s___a_m_s___t_y_p_e_s"><td class="mdescLeft">&#160;</td><td class="mdescRight">Referred types used by Application Message Service. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___ams___init_data__t.html">Ucs_Ams_InitData_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The initialization data of the Application Message Service. <a href="struct_ucs___ams___init_data__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:gae2eb8a7435144add2627537c6372ce69"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___a_m_s_gae2eb8a7435144add2627537c6372ce69.html#gae2eb8a7435144add2627537c6372ce69">UCS_AMS_NUM_RX_MSGS</a>&#160;&#160;&#160;20</td></tr>
+<tr class="memdesc:gae2eb8a7435144add2627537c6372ce69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the number of reserved Rx message objects. Valid values: 5..255. Default value: 20. <a href="#gae2eb8a7435144add2627537c6372ce69"></a><br/></td></tr>
+<tr class="separator:gae2eb8a7435144add2627537c6372ce69"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gade9da5d6f847265fc4a8613d5ba6da60"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___a_m_s_gade9da5d6f847265fc4a8613d5ba6da60.html#gade9da5d6f847265fc4a8613d5ba6da60">UCS_AMS_SIZE_RX_MSG</a>&#160;&#160;&#160;45</td></tr>
+<tr class="memdesc:gade9da5d6f847265fc4a8613d5ba6da60"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the payload size in bytes which is available for every Rx message object. Valid values: 45..65535. Default value: 45. <a href="#gade9da5d6f847265fc4a8613d5ba6da60"></a><br/></td></tr>
+<tr class="separator:gade9da5d6f847265fc4a8613d5ba6da60"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1305a1c706ece4772010c17734ab2f66"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___a_m_s_ga1305a1c706ece4772010c17734ab2f66.html#ga1305a1c706ece4772010c17734ab2f66">UCS_AMS_NUM_TX_MSGS</a>&#160;&#160;&#160;20</td></tr>
+<tr class="memdesc:ga1305a1c706ece4772010c17734ab2f66"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the number of reserved Tx message objects. Valid values: 5..255. Default value: 20. <a href="#ga1305a1c706ece4772010c17734ab2f66"></a><br/></td></tr>
+<tr class="separator:ga1305a1c706ece4772010c17734ab2f66"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae813e5093ce0bd11dd5ba9bd4fe77b77"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___a_m_s_gae813e5093ce0bd11dd5ba9bd4fe77b77.html#gae813e5093ce0bd11dd5ba9bd4fe77b77">UCS_AMS_SIZE_TX_MSG</a>&#160;&#160;&#160;45</td></tr>
+<tr class="memdesc:gae813e5093ce0bd11dd5ba9bd4fe77b77"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the payload size in bytes which is available for every Tx message object. Valid values: 45..65535. Default value: 45. <a href="#gae813e5093ce0bd11dd5ba9bd4fe77b77"></a><br/></td></tr>
+<tr class="separator:gae813e5093ce0bd11dd5ba9bd4fe77b77"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Callback Functions</h2></td></tr>
+<tr class="memitem:ga79608ce8c26f58a6875e72c30ac60bda"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___a_m_s_ga79608ce8c26f58a6875e72c30ac60bda.html#ga79608ce8c26f58a6875e72c30ac60bda">Ucs_AmsTx_MsgFreedCb_t</a> )(void *user_ptr)</td></tr>
+<tr class="memdesc:ga79608ce8c26f58a6875e72c30ac60bda"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of a callback function that is invoked to notify that a Tx application message object is available again while a previous allocation using <a class="el" href="group___g___u_c_s___a_m_s_gafbcfeaaa6ff3d255609e404b16dbdf0f.html#gafbcfeaaa6ff3d255609e404b16dbdf0f" title="Allocates an application message object for transmission.">Ucs_AmsTx_AllocMsg()</a> has failed. <a href="#ga79608ce8c26f58a6875e72c30ac60bda"></a><br/></td></tr>
+<tr class="separator:ga79608ce8c26f58a6875e72c30ac60bda"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga80fa395bc924dca9ae92c185656db089"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___a_m_s_ga80fa395bc924dca9ae92c185656db089.html#ga80fa395bc924dca9ae92c185656db089">Ucs_AmsRx_MsgReceivedCb_t</a> )(void *user_ptr)</td></tr>
+<tr class="memdesc:ga80fa395bc924dca9ae92c185656db089"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function type that is invoked if UNICENS has received a message completely and appended to the Rx message queue. <a href="#ga80fa395bc924dca9ae92c185656db089"></a><br/></td></tr>
+<tr class="separator:ga80fa395bc924dca9ae92c185656db089"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gafbcfeaaa6ff3d255609e404b16dbdf0f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_ucs___ams_tx___msg__t.html">Ucs_AmsTx_Msg_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___a_m_s_gafbcfeaaa6ff3d255609e404b16dbdf0f.html#gafbcfeaaa6ff3d255609e404b16dbdf0f">Ucs_AmsTx_AllocMsg</a> (<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *self, uint16_t data_size)</td></tr>
+<tr class="memdesc:gafbcfeaaa6ff3d255609e404b16dbdf0f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates an application message object for transmission. <a href="#gafbcfeaaa6ff3d255609e404b16dbdf0f"></a><br/></td></tr>
+<tr class="separator:gafbcfeaaa6ff3d255609e404b16dbdf0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6486fc060d0aa8b1bb34851d2e63b755"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___a_m_s_ga6486fc060d0aa8b1bb34851d2e63b755.html#ga6486fc060d0aa8b1bb34851d2e63b755">Ucs_AmsTx_SendMsg</a> (<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *self, <a class="el" href="struct_ucs___ams_tx___msg__t.html">Ucs_AmsTx_Msg_t</a> *msg_ptr, <a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga60acfdd5b93a99906d751ac2f14623a9.html#ga60acfdd5b93a99906d751ac2f14623a9">Ucs_AmsTx_CompleteCb_t</a> tx_complete_fptr)</td></tr>
+<tr class="memdesc:ga6486fc060d0aa8b1bb34851d2e63b755"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transmits an application message. <a href="#ga6486fc060d0aa8b1bb34851d2e63b755"></a><br/></td></tr>
+<tr class="separator:ga6486fc060d0aa8b1bb34851d2e63b755"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9e03946330dcc4ed4111b1d43714308d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___a_m_s_ga9e03946330dcc4ed4111b1d43714308d.html#ga9e03946330dcc4ed4111b1d43714308d">Ucs_AmsTx_FreeUnusedMsg</a> (<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *self, <a class="el" href="struct_ucs___ams_tx___msg__t.html">Ucs_AmsTx_Msg_t</a> *msg_ptr)</td></tr>
+<tr class="memdesc:ga9e03946330dcc4ed4111b1d43714308d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees an unused Tx message object. <a href="#ga9e03946330dcc4ed4111b1d43714308d"></a><br/></td></tr>
+<tr class="separator:ga9e03946330dcc4ed4111b1d43714308d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab096e481474195cc57d4d801f1d295f2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_ucs___ams_rx___msg__t.html">Ucs_AmsRx_Msg_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___a_m_s_gab096e481474195cc57d4d801f1d295f2.html#gab096e481474195cc57d4d801f1d295f2">Ucs_AmsRx_PeekMsg</a> (<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *self)</td></tr>
+<tr class="memdesc:gab096e481474195cc57d4d801f1d295f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves a reference to the front-most message in the Rx queue. <a href="#gab096e481474195cc57d4d801f1d295f2"></a><br/></td></tr>
+<tr class="separator:gab096e481474195cc57d4d801f1d295f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6f571e2e15fac1e4be068cdf0ccac44d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___a_m_s_ga6f571e2e15fac1e4be068cdf0ccac44d.html#ga6f571e2e15fac1e4be068cdf0ccac44d">Ucs_AmsRx_ReleaseMsg</a> (<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *self)</td></tr>
+<tr class="memdesc:ga6f571e2e15fac1e4be068cdf0ccac44d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes and frees the front-most message from the Rx queue. <a href="#ga6f571e2e15fac1e4be068cdf0ccac44d"></a><br/></td></tr>
+<tr class="separator:ga6f571e2e15fac1e4be068cdf0ccac44d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9fe2ca761b3856b5e7c3446cc49e90ad"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___a_m_s_ga9fe2ca761b3856b5e7c3446cc49e90ad.html#ga9fe2ca761b3856b5e7c3446cc49e90ad">Ucs_AmsRx_GetMsgCnt</a> (<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *self)</td></tr>
+<tr class="memdesc:ga9fe2ca761b3856b5e7c3446cc49e90ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves the number of messages that are located in the Rx queue. <a href="#ga9fe2ca761b3856b5e7c3446cc49e90ad"></a><br/></td></tr>
+<tr class="separator:ga9fe2ca761b3856b5e7c3446cc49e90ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Application Message Service. </p>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___a_m_s.js b/ucs2-lib/doc/html/group___g___u_c_s___a_m_s.js
new file mode 100644
index 0000000..e1accab
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___a_m_s.js
@@ -0,0 +1,21 @@
+var group___g___u_c_s___a_m_s =
+[
+ [ "Referred Types", "group___g___u_c_s___a_m_s___t_y_p_e_s.html", "group___g___u_c_s___a_m_s___t_y_p_e_s" ],
+ [ "Ucs_Ams_InitData_t", "struct_ucs___ams___init_data__t.html", [
+ [ "enabled", "struct_ucs___ams___init_data__t_a8740ba80e30dd75e71d09fa1dcf04f3d.html#a8740ba80e30dd75e71d09fa1dcf04f3d", null ],
+ [ "rx", "struct_ucs___ams___init_data__t_a976344e02b80d33e167c34d3c6ae9cab.html#a976344e02b80d33e167c34d3c6ae9cab", null ],
+ [ "tx", "struct_ucs___ams___init_data__t_a8e01298906b1fbe44765c6e9e4bbc888.html#a8e01298906b1fbe44765c6e9e4bbc888", null ]
+ ] ],
+ [ "UCS_AMS_NUM_RX_MSGS", "group___g___u_c_s___a_m_s_gae2eb8a7435144add2627537c6372ce69.html#gae2eb8a7435144add2627537c6372ce69", null ],
+ [ "UCS_AMS_NUM_TX_MSGS", "group___g___u_c_s___a_m_s_ga1305a1c706ece4772010c17734ab2f66.html#ga1305a1c706ece4772010c17734ab2f66", null ],
+ [ "UCS_AMS_SIZE_RX_MSG", "group___g___u_c_s___a_m_s_gade9da5d6f847265fc4a8613d5ba6da60.html#gade9da5d6f847265fc4a8613d5ba6da60", null ],
+ [ "UCS_AMS_SIZE_TX_MSG", "group___g___u_c_s___a_m_s_gae813e5093ce0bd11dd5ba9bd4fe77b77.html#gae813e5093ce0bd11dd5ba9bd4fe77b77", null ],
+ [ "Ucs_AmsRx_MsgReceivedCb_t", "group___g___u_c_s___a_m_s_ga80fa395bc924dca9ae92c185656db089.html#ga80fa395bc924dca9ae92c185656db089", null ],
+ [ "Ucs_AmsTx_MsgFreedCb_t", "group___g___u_c_s___a_m_s_ga79608ce8c26f58a6875e72c30ac60bda.html#ga79608ce8c26f58a6875e72c30ac60bda", null ],
+ [ "Ucs_AmsRx_GetMsgCnt", "group___g___u_c_s___a_m_s_ga9fe2ca761b3856b5e7c3446cc49e90ad.html#ga9fe2ca761b3856b5e7c3446cc49e90ad", null ],
+ [ "Ucs_AmsRx_PeekMsg", "group___g___u_c_s___a_m_s_gab096e481474195cc57d4d801f1d295f2.html#gab096e481474195cc57d4d801f1d295f2", null ],
+ [ "Ucs_AmsRx_ReleaseMsg", "group___g___u_c_s___a_m_s_ga6f571e2e15fac1e4be068cdf0ccac44d.html#ga6f571e2e15fac1e4be068cdf0ccac44d", null ],
+ [ "Ucs_AmsTx_AllocMsg", "group___g___u_c_s___a_m_s_gafbcfeaaa6ff3d255609e404b16dbdf0f.html#gafbcfeaaa6ff3d255609e404b16dbdf0f", null ],
+ [ "Ucs_AmsTx_FreeUnusedMsg", "group___g___u_c_s___a_m_s_ga9e03946330dcc4ed4111b1d43714308d.html#ga9e03946330dcc4ed4111b1d43714308d", null ],
+ [ "Ucs_AmsTx_SendMsg", "group___g___u_c_s___a_m_s_ga6486fc060d0aa8b1bb34851d2e63b755.html#ga6486fc060d0aa8b1bb34851d2e63b755", null ]
+]; \ No newline at end of file
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___a_m_s___t_y_p_e_s.html b/ucs2-lib/doc/html/group___g___u_c_s___a_m_s___t_y_p_e_s.html
new file mode 100644
index 0000000..96ac1af
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___a_m_s___t_y_p_e_s.html
@@ -0,0 +1,203 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Referred Types</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___a_m_s___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#typedef-members">Callback Functions</a> &#124;
+<a href="#enum-members">Enumerations</a> </div>
+ <div class="headertitle">
+<div class="title">Referred Types</div> </div>
+<div class="ingroups"><a class="el" href="group___g___u_c_s___a_m_s.html">Application Message Service</a></div></div><!--header-->
+<div class="contents">
+
+<p>Referred types used by Application Message Service.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___ams_rx___init_data__t.html">Ucs_AmsRx_InitData_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The Rx initialization data of the Application Message Service. <a href="struct_ucs___ams_rx___init_data__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___ams_tx___init_data__t.html">Ucs_AmsTx_InitData_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The Tx initialization data of the Application Message Service. <a href="struct_ucs___ams_tx___init_data__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___ams_tx___msg__t.html">Ucs_AmsTx_Msg_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Application message Tx type. <a href="struct_ucs___ams_tx___msg__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___ams_rx___msg__t.html">Ucs_AmsRx_Msg_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Application message Rx type. <a href="struct_ucs___ams_rx___msg__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Callback Functions</h2></td></tr>
+<tr class="memitem:ga60acfdd5b93a99906d751ac2f14623a9"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga60acfdd5b93a99906d751ac2f14623a9.html#ga60acfdd5b93a99906d751ac2f14623a9">Ucs_AmsTx_CompleteCb_t</a> )(<a class="el" href="struct_ucs___ams_tx___msg__t.html">Ucs_AmsTx_Msg_t</a> *msg_ptr, <a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#ga36b630c866dc0c03134f60e98be39f0b">Ucs_AmsTx_Result_t</a> result, <a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#ga667b741121fdfbda2fe19fa23ffc7479">Ucs_AmsTx_Info_t</a> info, void *user_ptr)</td></tr>
+<tr class="memdesc:ga60acfdd5b93a99906d751ac2f14623a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of a callback function that is invoked as soon as a message transmission was finished. <a href="#ga60acfdd5b93a99906d751ac2f14623a9"></a><br/></td></tr>
+<tr class="separator:ga60acfdd5b93a99906d751ac2f14623a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:ga113edf4cab85ce4e5e13ef257b5b7128"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga113edf4cab85ce4e5e13ef257b5b7128.html#ga113edf4cab85ce4e5e13ef257b5b7128">Ucs_AmsRx_ReceiveType_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga113edf4cab85ce4e5e13ef257b5b7128.html#gga113edf4cab85ce4e5e13ef257b5b7128ae659af6679f35f9093306753d7993c78">UCS_AMSRX_RCT_SINGLECAST</a> = 0U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga113edf4cab85ce4e5e13ef257b5b7128.html#gga113edf4cab85ce4e5e13ef257b5b7128a6a08727eaedc64a4b7505e10d02b8e59">UCS_AMSRX_RCT_GROUPCAST</a> = 1U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga113edf4cab85ce4e5e13ef257b5b7128.html#gga113edf4cab85ce4e5e13ef257b5b7128a3304f1288c4b154cbf9ebd2976ecca23">UCS_AMSRX_RCT_BROADCAST</a> = 2U
+<br/>
+ }</td></tr>
+<tr class="memdesc:ga113edf4cab85ce4e5e13ef257b5b7128"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines which address type was used by the transmitter of a message. <a href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga113edf4cab85ce4e5e13ef257b5b7128.html#ga113edf4cab85ce4e5e13ef257b5b7128">More...</a><br/></td></tr>
+<tr class="separator:ga113edf4cab85ce4e5e13ef257b5b7128"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga36b630c866dc0c03134f60e98be39f0b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#ga36b630c866dc0c03134f60e98be39f0b">Ucs_AmsTx_Result_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0ba3213fda6aaa6f3b8caafcf08b75e4e65">UCS_AMSTX_RES_SUCCESS</a> = 0x00U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0ba3c59ee9fddbf6377d012914c4d541c06">UCS_AMSTX_RES_ERR_RETRIES_EXP</a> = 0x01U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0ba99426ad75c697a377095fd16ac9f64dd">UCS_AMSTX_RES_ERR_INVALID_TGT</a> = 0x02U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0baf5b7a5f9d422eaba98b23f4558cf83c4">UCS_AMSTX_RES_ERR_NOT_AVAILABLE</a> = 0x03U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0ba5bb604d0c993b0b7aea0ed4b1e27041d">UCS_AMSTX_RES_ERR_BUF_INTERNAL</a> = 0xFEU,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0baecaf2176f4c201d33f1e80bc8dcdc324">UCS_AMSTX_RES_ERR_UNEXPECTED</a> = 0xFFU
+<br/>
+ }</td></tr>
+<tr class="memdesc:ga36b630c866dc0c03134f60e98be39f0b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transmission result of an application message. <a href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#ga36b630c866dc0c03134f60e98be39f0b">More...</a><br/></td></tr>
+<tr class="separator:ga36b630c866dc0c03134f60e98be39f0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga667b741121fdfbda2fe19fa23ffc7479"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#ga667b741121fdfbda2fe19fa23ffc7479">Ucs_AmsTx_Info_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479a1cbc6f82e1b0b7e53e15132957a8fdb6">UCS_AMSTX_I_SUCCESS</a> = 0x00U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479a4b8ca91b4ba4cf11df77c1ff8e2e1ba4">UCS_AMSTX_I_ERR_CFG_NORECEIVER</a> = 0x01U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479a3524c39a558966db2d1e9278f339f982">UCS_AMSTX_I_ERR_BF</a> = 0x08U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479acd257b1602b92467f83896952de4b3c1">UCS_AMSTX_I_ERR_CRC</a> = 0x09U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479ae8ca52f9ed225767ad2d62b195aeddf6">UCS_AMSTX_I_ERR_ID</a> = 0x0AU,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479ac8bff0614950912c4eddc97b095055cb">UCS_AMSTX_I_ERR_ACK</a> = 0x0BU,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479a456dfbf1fdb8a429118428e918e12557">UCS_AMSTX_I_ERR_TIMEOUT</a> = 0x0CU,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479aef54c664a83ff2d101d4036b420dd7f5">UCS_AMSTX_I_ERR_FATAL_WT</a> = 0x10U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479a3a9611a4c6c74652c619b5c9ddea9170">UCS_AMSTX_I_ERR_FATAL_OA</a> = 0x11U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479a837045ee240df8ebba459f75afae65fc">UCS_AMSTX_I_ERR_UNAVAIL_TRANS</a> = 0x18U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479a38cdf07b2ead1b0ab1d85fba8c20cdf7">UCS_AMSTX_I_ERR_UNAVAIL_OFF</a> = 0x19U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479aeed4e66ae7a3d132f97ea0c3620cc215">UCS_AMSTX_I_ERR_UNKNOWN</a> = 0xFEU,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479a58170c6f84f3dd2130c84c314cfb2ffe">UCS_AMSTX_I_ERR_UNSYNCED</a> = 0xFFU
+<br/>
+ }</td></tr>
+<tr class="memdesc:ga667b741121fdfbda2fe19fa23ffc7479"><td class="mdescLeft">&#160;</td><td class="mdescRight">Detailed INIC transmission information which might be useful for debugging purposes. <a href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#ga667b741121fdfbda2fe19fa23ffc7479">More...</a><br/></td></tr>
+<tr class="separator:ga667b741121fdfbda2fe19fa23ffc7479"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Referred types used by Application Message Service. </p>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___a_m_s___t_y_p_e_s.js b/ucs2-lib/doc/html/group___g___u_c_s___a_m_s___t_y_p_e_s.js
new file mode 100644
index 0000000..82c9b1c
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___a_m_s___t_y_p_e_s.js
@@ -0,0 +1,55 @@
+var group___g___u_c_s___a_m_s___t_y_p_e_s =
+[
+ [ "Ucs_AmsRx_InitData_t", "struct_ucs___ams_rx___init_data__t.html", [
+ [ "message_received_fptr", "struct_ucs___ams_rx___init_data__t_a94cec5846cb407141e9c1e1a2ea205d3.html#a94cec5846cb407141e9c1e1a2ea205d3", null ]
+ ] ],
+ [ "Ucs_AmsTx_InitData_t", "struct_ucs___ams_tx___init_data__t.html", [
+ [ "default_llrbc", "struct_ucs___ams_tx___init_data__t_a804bd7e626fd73b27d18af9a036d7ad4.html#a804bd7e626fd73b27d18af9a036d7ad4", null ],
+ [ "message_freed_fptr", "struct_ucs___ams_tx___init_data__t_a9217a093b6d7e68b7cd9d759c5cef192.html#a9217a093b6d7e68b7cd9d759c5cef192", null ]
+ ] ],
+ [ "Ucs_AmsTx_Msg_t", "struct_ucs___ams_tx___msg__t.html", [
+ [ "custom_info_ptr", "struct_ucs___ams_tx___msg__t_a1c691c4fcbb0562f9a9c9e07f1166319.html#a1c691c4fcbb0562f9a9c9e07f1166319", null ],
+ [ "data_ptr", "struct_ucs___ams_tx___msg__t_a6166cef59cbe432be35512925debeae6.html#a6166cef59cbe432be35512925debeae6", null ],
+ [ "data_size", "struct_ucs___ams_tx___msg__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html#aae6bdbdf6ea1ad3da5af37f0a91d3ea0", null ],
+ [ "destination_address", "struct_ucs___ams_tx___msg__t_a9a199f6a8a711b94ff827e6807980cb3.html#a9a199f6a8a711b94ff827e6807980cb3", null ],
+ [ "llrbc", "struct_ucs___ams_tx___msg__t_a82997e00f317333173aa610d0902ab04.html#a82997e00f317333173aa610d0902ab04", null ],
+ [ "msg_id", "struct_ucs___ams_tx___msg__t_a689014fc11d4f26d264ddae2eaebc9d8.html#a689014fc11d4f26d264ddae2eaebc9d8", null ]
+ ] ],
+ [ "Ucs_AmsRx_Msg_t", "struct_ucs___ams_rx___msg__t.html", [
+ [ "custom_info_ptr", "struct_ucs___ams_rx___msg__t_a1c691c4fcbb0562f9a9c9e07f1166319.html#a1c691c4fcbb0562f9a9c9e07f1166319", null ],
+ [ "data_ptr", "struct_ucs___ams_rx___msg__t_a6166cef59cbe432be35512925debeae6.html#a6166cef59cbe432be35512925debeae6", null ],
+ [ "data_size", "struct_ucs___ams_rx___msg__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html#aae6bdbdf6ea1ad3da5af37f0a91d3ea0", null ],
+ [ "msg_id", "struct_ucs___ams_rx___msg__t_a689014fc11d4f26d264ddae2eaebc9d8.html#a689014fc11d4f26d264ddae2eaebc9d8", null ],
+ [ "receive_type", "struct_ucs___ams_rx___msg__t_af3ea491a2bc42c0f8a5911b4d21058d0.html#af3ea491a2bc42c0f8a5911b4d21058d0", null ],
+ [ "source_address", "struct_ucs___ams_rx___msg__t_abb27f24f389ff3575a5ee33e74e66eb6.html#abb27f24f389ff3575a5ee33e74e66eb6", null ]
+ ] ],
+ [ "Ucs_AmsTx_CompleteCb_t", "group___g___u_c_s___a_m_s___t_y_p_e_s_ga60acfdd5b93a99906d751ac2f14623a9.html#ga60acfdd5b93a99906d751ac2f14623a9", null ],
+ [ "Ucs_AmsRx_ReceiveType_t", "group___g___u_c_s___a_m_s___t_y_p_e_s_ga113edf4cab85ce4e5e13ef257b5b7128.html#ga113edf4cab85ce4e5e13ef257b5b7128", [
+ [ "UCS_AMSRX_RCT_SINGLECAST", "group___g___u_c_s___a_m_s___t_y_p_e_s_ga113edf4cab85ce4e5e13ef257b5b7128.html#gga113edf4cab85ce4e5e13ef257b5b7128ae659af6679f35f9093306753d7993c78", null ],
+ [ "UCS_AMSRX_RCT_GROUPCAST", "group___g___u_c_s___a_m_s___t_y_p_e_s_ga113edf4cab85ce4e5e13ef257b5b7128.html#gga113edf4cab85ce4e5e13ef257b5b7128a6a08727eaedc64a4b7505e10d02b8e59", null ],
+ [ "UCS_AMSRX_RCT_BROADCAST", "group___g___u_c_s___a_m_s___t_y_p_e_s_ga113edf4cab85ce4e5e13ef257b5b7128.html#gga113edf4cab85ce4e5e13ef257b5b7128a3304f1288c4b154cbf9ebd2976ecca23", null ]
+ ] ],
+ [ "Ucs_AmsTx_Info_t", "group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#ga667b741121fdfbda2fe19fa23ffc7479", [
+ [ "UCS_AMSTX_I_SUCCESS", "group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479a1cbc6f82e1b0b7e53e15132957a8fdb6", null ],
+ [ "UCS_AMSTX_I_ERR_CFG_NORECEIVER", "group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479a4b8ca91b4ba4cf11df77c1ff8e2e1ba4", null ],
+ [ "UCS_AMSTX_I_ERR_BF", "group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479a3524c39a558966db2d1e9278f339f982", null ],
+ [ "UCS_AMSTX_I_ERR_CRC", "group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479acd257b1602b92467f83896952de4b3c1", null ],
+ [ "UCS_AMSTX_I_ERR_ID", "group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479ae8ca52f9ed225767ad2d62b195aeddf6", null ],
+ [ "UCS_AMSTX_I_ERR_ACK", "group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479ac8bff0614950912c4eddc97b095055cb", null ],
+ [ "UCS_AMSTX_I_ERR_TIMEOUT", "group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479a456dfbf1fdb8a429118428e918e12557", null ],
+ [ "UCS_AMSTX_I_ERR_FATAL_WT", "group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479aef54c664a83ff2d101d4036b420dd7f5", null ],
+ [ "UCS_AMSTX_I_ERR_FATAL_OA", "group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479a3a9611a4c6c74652c619b5c9ddea9170", null ],
+ [ "UCS_AMSTX_I_ERR_UNAVAIL_TRANS", "group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479a837045ee240df8ebba459f75afae65fc", null ],
+ [ "UCS_AMSTX_I_ERR_UNAVAIL_OFF", "group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479a38cdf07b2ead1b0ab1d85fba8c20cdf7", null ],
+ [ "UCS_AMSTX_I_ERR_UNKNOWN", "group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479aeed4e66ae7a3d132f97ea0c3620cc215", null ],
+ [ "UCS_AMSTX_I_ERR_UNSYNCED", "group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479a58170c6f84f3dd2130c84c314cfb2ffe", null ]
+ ] ],
+ [ "Ucs_AmsTx_Result_t", "group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#ga36b630c866dc0c03134f60e98be39f0b", [
+ [ "UCS_AMSTX_RES_SUCCESS", "group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0ba3213fda6aaa6f3b8caafcf08b75e4e65", null ],
+ [ "UCS_AMSTX_RES_ERR_RETRIES_EXP", "group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0ba3c59ee9fddbf6377d012914c4d541c06", null ],
+ [ "UCS_AMSTX_RES_ERR_INVALID_TGT", "group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0ba99426ad75c697a377095fd16ac9f64dd", null ],
+ [ "UCS_AMSTX_RES_ERR_NOT_AVAILABLE", "group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0baf5b7a5f9d422eaba98b23f4558cf83c4", null ],
+ [ "UCS_AMSTX_RES_ERR_BUF_INTERNAL", "group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0ba5bb604d0c993b0b7aea0ed4b1e27041d", null ],
+ [ "UCS_AMSTX_RES_ERR_UNEXPECTED", "group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0baecaf2176f4c201d33f1e80bc8dcdc324", null ]
+ ] ]
+]; \ No newline at end of file
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___a_m_s___t_y_p_e_s_ga113edf4cab85ce4e5e13ef257b5b7128.html b/ucs2-lib/doc/html/group___g___u_c_s___a_m_s___t_y_p_e_s_ga113edf4cab85ce4e5e13ef257b5b7128.html
new file mode 100644
index 0000000..6f6db89
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___a_m_s___t_y_p_e_s_ga113edf4cab85ce4e5e13ef257b5b7128.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_AmsRx_ReceiveType_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___a_m_s___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga113edf4cab85ce4e5e13ef257b5b7128"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga113edf4cab85ce4e5e13ef257b5b7128.html#ga113edf4cab85ce4e5e13ef257b5b7128">Ucs_AmsRx_ReceiveType_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Defines which address type was used by the transmitter of a message. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga113edf4cab85ce4e5e13ef257b5b7128ae659af6679f35f9093306753d7993c78"></a>UCS_AMSRX_RCT_SINGLECAST</em>&nbsp;</td><td>
+<p>Message was transmitted as singlecast. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga113edf4cab85ce4e5e13ef257b5b7128a6a08727eaedc64a4b7505e10d02b8e59"></a>UCS_AMSRX_RCT_GROUPCAST</em>&nbsp;</td><td>
+<p>Message was transmitted as groupcast. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga113edf4cab85ce4e5e13ef257b5b7128a3304f1288c4b154cbf9ebd2976ecca23"></a>UCS_AMSRX_RCT_BROADCAST</em>&nbsp;</td><td>
+<p>Message was transmitted as broadcast. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s.html">Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html b/ucs2-lib/doc/html/group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html
new file mode 100644
index 0000000..e2be2bf
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html
@@ -0,0 +1,164 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_AmsTx_Result_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___a_m_s___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga36b630c866dc0c03134f60e98be39f0b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#ga36b630c866dc0c03134f60e98be39f0b">Ucs_AmsTx_Result_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Transmission result of an application message. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga36b630c866dc0c03134f60e98be39f0ba3213fda6aaa6f3b8caafcf08b75e4e65"></a>UCS_AMSTX_RES_SUCCESS</em>&nbsp;</td><td>
+<p>The transmission succeeded. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga36b630c866dc0c03134f60e98be39f0ba3c59ee9fddbf6377d012914c4d541c06"></a>UCS_AMSTX_RES_ERR_RETRIES_EXP</em>&nbsp;</td><td>
+<p>The transmission including all retries have failed. </p>
+<p>The following issues may have caused the failure:</p>
+<ul>
+<li>message corruption</li>
+<li>transmission timeouts</li>
+<li>full receive buffers of the destination device</li>
+<li>full receive buffers of the local device if the destination was the own address, own group or broadcast address</li>
+</ul>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga36b630c866dc0c03134f60e98be39f0ba99426ad75c697a377095fd16ac9f64dd"></a>UCS_AMSTX_RES_ERR_INVALID_TGT</em>&nbsp;</td><td>
+<p>The transmission failed because the specified destination address is not found or not valid. </p>
+<p>The following issues may have caused the failure:</p>
+<ul>
+<li>device with the given destination address is not found</li>
+<li>destination address is reserved (for future use)</li>
+<li>destination address is 0xFFFF (un-initialized logical node address is not supported)</li>
+</ul>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga36b630c866dc0c03134f60e98be39f0baf5b7a5f9d422eaba98b23f4558cf83c4"></a>UCS_AMSTX_RES_ERR_NOT_AVAILABLE</em>&nbsp;</td><td>
+<p>The transmission failed since the network or the INIC is not available. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga36b630c866dc0c03134f60e98be39f0ba5bb604d0c993b0b7aea0ed4b1e27041d"></a>UCS_AMSTX_RES_ERR_BUF_INTERNAL</em>&nbsp;</td><td>
+<p>The transmission failed because the allocation of an Rx message object failed. The Rx message object is required to receive the message via the own Rx message queue. </p>
+<p>This is possible in the following cases:</p>
+<ul>
+<li>A message is transmitted to the own node address and the allocation of an Rx message object failed.</li>
+<li>The network transmission to the own group address or broadcast address succeeded but the allocation of an Rx message object failed. The application has to decide whether to retransmit the message to the own address again. </li>
+</ul>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga36b630c866dc0c03134f60e98be39f0baecaf2176f4c201d33f1e80bc8dcdc324"></a>UCS_AMSTX_RES_ERR_UNEXPECTED</em>&nbsp;</td><td>
+<p>The transmission failed due to an unexpected error. The cause of this failure may be an invalid INIC configuration, or an INIC to UNICENS incompatibility issue. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s.html">Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___a_m_s___t_y_p_e_s_ga60acfdd5b93a99906d751ac2f14623a9.html b/ucs2-lib/doc/html/group___g___u_c_s___a_m_s___t_y_p_e_s_ga60acfdd5b93a99906d751ac2f14623a9.html
new file mode 100644
index 0000000..7f64b61
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___a_m_s___t_y_p_e_s_ga60acfdd5b93a99906d751ac2f14623a9.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_AmsTx_CompleteCb_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___a_m_s___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga60acfdd5b93a99906d751ac2f14623a9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* Ucs_AmsTx_CompleteCb_t)(<a class="el" href="struct_ucs___ams_tx___msg__t.html">Ucs_AmsTx_Msg_t</a> *msg_ptr, <a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#ga36b630c866dc0c03134f60e98be39f0b">Ucs_AmsTx_Result_t</a> result, <a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#ga667b741121fdfbda2fe19fa23ffc7479">Ucs_AmsTx_Info_t</a> info, void *user_ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Type of a callback function that is invoked as soon as a message transmission was finished. </p>
+<p>The callback function notifies the result of a completed transmission. If the message has external payload, the application must decide whether to re-use or to free the external payload. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">msg_ptr</td><td>Reference to the related Tx message object. When the callback function returns the reference is no longer valid. </td></tr>
+ <tr><td class="paramname">result</td><td>The transmission result. </td></tr>
+ <tr><td class="paramname">info</td><td>Detailed INIC transmission result, which might be helpful for debug purposes. </td></tr>
+ <tr><td class="paramname">user_ptr</td><td>User reference provided in <a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t::user_ptr</a> </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s.html">Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html b/ucs2-lib/doc/html/group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html
new file mode 100644
index 0000000..5a37875
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html
@@ -0,0 +1,181 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_AmsTx_Info_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___a_m_s___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga667b741121fdfbda2fe19fa23ffc7479"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#ga667b741121fdfbda2fe19fa23ffc7479">Ucs_AmsTx_Info_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Detailed INIC transmission information which might be useful for debugging purposes. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga667b741121fdfbda2fe19fa23ffc7479a1cbc6f82e1b0b7e53e15132957a8fdb6"></a>UCS_AMSTX_I_SUCCESS</em>&nbsp;</td><td>
+<p>The transmission succeeded. </p>
+<p>The corresponding transmission result is <a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0ba3213fda6aaa6f3b8caafcf08b75e4e65">UCS_AMSTX_RES_SUCCESS</a>. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga667b741121fdfbda2fe19fa23ffc7479a4b8ca91b4ba4cf11df77c1ff8e2e1ba4"></a>UCS_AMSTX_I_ERR_CFG_NORECEIVER</em>&nbsp;</td><td>
+<p>The transmission failed because the MOST network is not accessible for MCM in the current attach state or for ICM in general. </p>
+<p>The corresponding transmission result is <a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0baecaf2176f4c201d33f1e80bc8dcdc324">UCS_AMSTX_RES_ERR_UNEXPECTED</a>. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga667b741121fdfbda2fe19fa23ffc7479a3524c39a558966db2d1e9278f339f982"></a>UCS_AMSTX_I_ERR_BF</em>&nbsp;</td><td>
+<p>The transmission failed because the receivers buffer is full. </p>
+<p>The corresponding transmission result is <a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0ba3c59ee9fddbf6377d012914c4d541c06">UCS_AMSTX_RES_ERR_RETRIES_EXP</a>. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga667b741121fdfbda2fe19fa23ffc7479acd257b1602b92467f83896952de4b3c1"></a>UCS_AMSTX_I_ERR_CRC</em>&nbsp;</td><td>
+<p>The transmission failed because of a failed CRC. </p>
+<p>The corresponding transmission result is <a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0ba3c59ee9fddbf6377d012914c4d541c06">UCS_AMSTX_RES_ERR_RETRIES_EXP</a>. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga667b741121fdfbda2fe19fa23ffc7479ae8ca52f9ed225767ad2d62b195aeddf6"></a>UCS_AMSTX_I_ERR_ID</em>&nbsp;</td><td>
+<p>The transmission failed because of corrupted identifiers. </p>
+<p>The corresponding transmission result is <a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0ba3c59ee9fddbf6377d012914c4d541c06">UCS_AMSTX_RES_ERR_RETRIES_EXP</a>. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga667b741121fdfbda2fe19fa23ffc7479ac8bff0614950912c4eddc97b095055cb"></a>UCS_AMSTX_I_ERR_ACK</em>&nbsp;</td><td>
+<p>The transmission failed because of corrupted PACK or CACK. </p>
+<p>The corresponding transmission result is <a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0ba3c59ee9fddbf6377d012914c4d541c06">UCS_AMSTX_RES_ERR_RETRIES_EXP</a>. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga667b741121fdfbda2fe19fa23ffc7479a456dfbf1fdb8a429118428e918e12557"></a>UCS_AMSTX_I_ERR_TIMEOUT</em>&nbsp;</td><td>
+<p>The transmission failed because of a transmission timeout. </p>
+<p>The corresponding transmission result is <a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0ba3c59ee9fddbf6377d012914c4d541c06">UCS_AMSTX_RES_ERR_RETRIES_EXP</a>. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga667b741121fdfbda2fe19fa23ffc7479aef54c664a83ff2d101d4036b420dd7f5"></a>UCS_AMSTX_I_ERR_FATAL_WT</em>&nbsp;</td><td>
+<p>The transmission failed because of destination is not available. </p>
+<p>The corresponding transmission result is <a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0ba99426ad75c697a377095fd16ac9f64dd">UCS_AMSTX_RES_ERR_INVALID_TGT</a>. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga667b741121fdfbda2fe19fa23ffc7479a3a9611a4c6c74652c619b5c9ddea9170"></a>UCS_AMSTX_I_ERR_FATAL_OA</em>&nbsp;</td><td>
+<p>The transmission failed because of the destination is the own node address. </p>
+<p>The corresponding transmission result is <a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0ba99426ad75c697a377095fd16ac9f64dd">UCS_AMSTX_RES_ERR_INVALID_TGT</a>. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga667b741121fdfbda2fe19fa23ffc7479a837045ee240df8ebba459f75afae65fc"></a>UCS_AMSTX_I_ERR_UNAVAIL_TRANS</em>&nbsp;</td><td>
+<p>The transmission canceled during the transition from network interface state "available" to "not available". </p>
+<p>The corresponding transmission result is <a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0baf5b7a5f9d422eaba98b23f4558cf83c4">UCS_AMSTX_RES_ERR_NOT_AVAILABLE</a>. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga667b741121fdfbda2fe19fa23ffc7479a38cdf07b2ead1b0ab1d85fba8c20cdf7"></a>UCS_AMSTX_I_ERR_UNAVAIL_OFF</em>&nbsp;</td><td>
+<p>The transmission failed because the network interface state is "not available". </p>
+<p>The corresponding transmission result is <a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0baf5b7a5f9d422eaba98b23f4558cf83c4">UCS_AMSTX_RES_ERR_NOT_AVAILABLE</a>. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga667b741121fdfbda2fe19fa23ffc7479aeed4e66ae7a3d132f97ea0c3620cc215"></a>UCS_AMSTX_I_ERR_UNKNOWN</em>&nbsp;</td><td>
+<p>The transmission failed because of an unknown INIC error code. </p>
+<p>The corresponding transmission result is <a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0baecaf2176f4c201d33f1e80bc8dcdc324">UCS_AMSTX_RES_ERR_UNEXPECTED</a>. Please check if the MNS version is compatible with the applied INIC firmware version. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga667b741121fdfbda2fe19fa23ffc7479a58170c6f84f3dd2130c84c314cfb2ffe"></a>UCS_AMSTX_I_ERR_UNSYNCED</em>&nbsp;</td><td>
+<p>The transmission failed because the communication between the EHC and the INIC is lost. </p>
+<p>The reason can be a communication error between the EHC and the INIC or that the application has called <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga61381bd30fb6630b6c5d6ecc8968e983.html#ga61381bd30fb6630b6c5d6ecc8968e983" title="Terminates the execution of UNICENS.">Ucs_Stop()</a>.<br/>
+ The corresponding transmission result is <a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0baf5b7a5f9d422eaba98b23f4558cf83c4">UCS_AMSTX_RES_ERR_NOT_AVAILABLE</a>. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s.html">Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___a_m_s_ga1305a1c706ece4772010c17734ab2f66.html b/ucs2-lib/doc/html/group___g___u_c_s___a_m_s_ga1305a1c706ece4772010c17734ab2f66.html
new file mode 100644
index 0000000..de26f0e
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___a_m_s_ga1305a1c706ece4772010c17734ab2f66.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: UCS_AMS_NUM_TX_MSGS</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___a_m_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga1305a1c706ece4772010c17734ab2f66"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define UCS_AMS_NUM_TX_MSGS&#160;&#160;&#160;20</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Defines the number of reserved Tx message objects. Valid values: 5..255. Default value: 20. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___a_m_s.html">Application Message Service</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___a_m_s_ga6486fc060d0aa8b1bb34851d2e63b755.html b/ucs2-lib/doc/html/group___g___u_c_s___a_m_s_ga6486fc060d0aa8b1bb34851d2e63b755.html
new file mode 100644
index 0000000..35fcbce
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___a_m_s_ga6486fc060d0aa8b1bb34851d2e63b755.html
@@ -0,0 +1,170 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_AmsTx_SendMsg</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___a_m_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga6486fc060d0aa8b1bb34851d2e63b755"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a> Ucs_AmsTx_SendMsg </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *&#160;</td>
+ <td class="paramname"><em>self</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="struct_ucs___ams_tx___msg__t.html">Ucs_AmsTx_Msg_t</a> *&#160;</td>
+ <td class="paramname"><em>msg_ptr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga60acfdd5b93a99906d751ac2f14623a9.html#ga60acfdd5b93a99906d751ac2f14623a9">Ucs_AmsTx_CompleteCb_t</a>&#160;</td>
+ <td class="paramname"><em>tx_complete_fptr</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Transmits an application message. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>The instance </td></tr>
+ <tr><td class="paramname">msg_ptr</td><td>Reference to the related Tx message object </td></tr>
+ <tr><td class="paramname">tx_complete_fptr</td><td>Callback function that is invoked as soon as the transmission was finished and the transmission result is available. The application must assign a callback function if the transmission result is required or the Tx message object uses external payload which needs to be reused or freed by the application. Otherwise the application is allowed to pass <code>NULL</code>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section note"><dt>Note</dt><dd>It is important that <code>msg_ptr</code> is the reference to an object which was previously obtained from <a class="el" href="group___g___u_c_s___a_m_s_gafbcfeaaa6ff3d255609e404b16dbdf0f.html#gafbcfeaaa6ff3d255609e404b16dbdf0f" title="Allocates an application message object for transmission.">Ucs_AmsTx_AllocMsg()</a>. The application must not pass the reference of a <em>self-created</em> Tx message object to this function. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible return values are shown in the table below. <table class="doxtable">
+<tr>
+<th>Value</th><th>Description </th></tr>
+<tr>
+<td>UCS_RET_SUCCESS</td><td>No error </td></tr>
+<tr>
+<td>UCS_RET_ERR_PARAM </td><td>Invalid parameter is given. Possible reasons are:<ul>
+<li><code>msg_ptr</code> is <code>NULL</code> </li>
+<li><code>destination_address</code> is smaller than <code>0x10</code> (reserved for internal communication)</li>
+<li><code>data_size</code> of a broad or group-cast message is larger than <code>45</code> </li>
+</ul>
+Either the application must modify the message and retry the function call, or must free the message object via <a class="el" href="group___g___u_c_s___a_m_s_ga9e03946330dcc4ed4111b1d43714308d.html#ga9e03946330dcc4ed4111b1d43714308d" title="Frees an unused Tx message object.">Ucs_AmsTx_FreeUnusedMsg()</a>. </td></tr>
+<tr>
+<td>UCS_RET_ERR_NOT_INITIALIZED</td><td>UNICENS is not initialized. <br/>
+ Message objects that have been allocated during initialized state are no longer valid. </td></tr>
+</table>
+</dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___a_m_s.html">Application Message Service</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___a_m_s_ga6f571e2e15fac1e4be068cdf0ccac44d.html b/ucs2-lib/doc/html/group___g___u_c_s___a_m_s_ga6f571e2e15fac1e4be068cdf0ccac44d.html
new file mode 100644
index 0000000..c2c749f
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___a_m_s_ga6f571e2e15fac1e4be068cdf0ccac44d.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_AmsRx_ReleaseMsg</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___a_m_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga6f571e2e15fac1e4be068cdf0ccac44d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void Ucs_AmsRx_ReleaseMsg </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *&#160;</td>
+ <td class="paramname"><em>self</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Removes and frees the front-most message from the Rx queue. </p>
+<p>The application must not access the removed message any longer. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>The instance </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___a_m_s.html">Application Message Service</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___a_m_s_ga79608ce8c26f58a6875e72c30ac60bda.html b/ucs2-lib/doc/html/group___g___u_c_s___a_m_s_ga79608ce8c26f58a6875e72c30ac60bda.html
new file mode 100644
index 0000000..cd8f58c
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___a_m_s_ga79608ce8c26f58a6875e72c30ac60bda.html
@@ -0,0 +1,130 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_AmsTx_MsgFreedCb_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___a_m_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga79608ce8c26f58a6875e72c30ac60bda"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* Ucs_AmsTx_MsgFreedCb_t)(void *user_ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Type of a callback function that is invoked to notify that a Tx application message object is available again while a previous allocation using <a class="el" href="group___g___u_c_s___a_m_s_gafbcfeaaa6ff3d255609e404b16dbdf0f.html#gafbcfeaaa6ff3d255609e404b16dbdf0f" title="Allocates an application message object for transmission.">Ucs_AmsTx_AllocMsg()</a> has failed. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">user_ptr</td><td>User reference provided in <a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t::user_ptr</a> </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___a_m_s.html">Application Message Service</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___a_m_s_ga80fa395bc924dca9ae92c185656db089.html b/ucs2-lib/doc/html/group___g___u_c_s___a_m_s_ga80fa395bc924dca9ae92c185656db089.html
new file mode 100644
index 0000000..8b1f171
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___a_m_s_ga80fa395bc924dca9ae92c185656db089.html
@@ -0,0 +1,130 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_AmsRx_MsgReceivedCb_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___a_m_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga80fa395bc924dca9ae92c185656db089"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* Ucs_AmsRx_MsgReceivedCb_t)(void *user_ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Callback function type that is invoked if UNICENS has received a message completely and appended to the Rx message queue. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">user_ptr</td><td>User reference provided in <a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t::user_ptr</a> </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___a_m_s.html">Application Message Service</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___a_m_s_ga9e03946330dcc4ed4111b1d43714308d.html b/ucs2-lib/doc/html/group___g___u_c_s___a_m_s_ga9e03946330dcc4ed4111b1d43714308d.html
new file mode 100644
index 0000000..3008593
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___a_m_s_ga9e03946330dcc4ed4111b1d43714308d.html
@@ -0,0 +1,146 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_AmsTx_FreeUnusedMsg</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___a_m_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga9e03946330dcc4ed4111b1d43714308d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void Ucs_AmsTx_FreeUnusedMsg </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *&#160;</td>
+ <td class="paramname"><em>self</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="struct_ucs___ams_tx___msg__t.html">Ucs_AmsTx_Msg_t</a> *&#160;</td>
+ <td class="paramname"><em>msg_ptr</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Frees an unused Tx message object. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>The instance </td></tr>
+ <tr><td class="paramname">msg_ptr</td><td>Reference to the Tx message object</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>It is important that the application is responsible to free external payload, which is associated with the message object. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___a_m_s.html">Application Message Service</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___a_m_s_ga9fe2ca761b3856b5e7c3446cc49e90ad.html b/ucs2-lib/doc/html/group___g___u_c_s___a_m_s_ga9fe2ca761b3856b5e7c3446cc49e90ad.html
new file mode 100644
index 0000000..129fdf1
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___a_m_s_ga9fe2ca761b3856b5e7c3446cc49e90ad.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_AmsRx_GetMsgCnt</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___a_m_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga9fe2ca761b3856b5e7c3446cc49e90ad"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t Ucs_AmsRx_GetMsgCnt </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *&#160;</td>
+ <td class="paramname"><em>self</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Retrieves the number of messages that are located in the Rx queue. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>The instance </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The number of messages in the Rx queue </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___a_m_s.html">Application Message Service</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___a_m_s_gab096e481474195cc57d4d801f1d295f2.html b/ucs2-lib/doc/html/group___g___u_c_s___a_m_s_gab096e481474195cc57d4d801f1d295f2.html
new file mode 100644
index 0000000..a18ea38
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___a_m_s_gab096e481474195cc57d4d801f1d295f2.html
@@ -0,0 +1,139 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_AmsRx_PeekMsg</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___a_m_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gab096e481474195cc57d4d801f1d295f2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_ucs___ams_rx___msg__t.html">Ucs_AmsRx_Msg_t</a>* Ucs_AmsRx_PeekMsg </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *&#160;</td>
+ <td class="paramname"><em>self</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Retrieves a reference to the front-most message in the Rx queue. </p>
+<p>The Application Message Service already provides a queue of completed Rx messages. <a class="el" href="group___g___u_c_s___a_m_s_gab096e481474195cc57d4d801f1d295f2.html#gab096e481474195cc57d4d801f1d295f2" title="Retrieves a reference to the front-most message in the Rx queue.">Ucs_AmsRx_PeekMsg()</a> always returns a reference to the front-most message in the Rx queue. The function call does not dequeue the message handle. Thus, multiple subsequent calls of <a class="el" href="group___g___u_c_s___a_m_s_gab096e481474195cc57d4d801f1d295f2.html#gab096e481474195cc57d4d801f1d295f2" title="Retrieves a reference to the front-most message in the Rx queue.">Ucs_AmsRx_PeekMsg()</a> will always return the same reference. After processing the front-most message, the application must call <a class="el" href="group___g___u_c_s___a_m_s_ga6f571e2e15fac1e4be068cdf0ccac44d.html#ga6f571e2e15fac1e4be068cdf0ccac44d" title="Removes and frees the front-most message from the Rx queue.">Ucs_AmsRx_ReleaseMsg()</a>. <br/>
+ Typically, an application will process the front-most Rx message and call <a class="el" href="group___g___u_c_s___a_m_s_ga6f571e2e15fac1e4be068cdf0ccac44d.html#ga6f571e2e15fac1e4be068cdf0ccac44d" title="Removes and frees the front-most message from the Rx queue.">Ucs_AmsRx_ReleaseMsg()</a>, which dequeues and frees the Rx message. Hence, the application must not access this this reference anymore. The next call of <a class="el" href="group___g___u_c_s___a_m_s_gab096e481474195cc57d4d801f1d295f2.html#gab096e481474195cc57d4d801f1d295f2" title="Retrieves a reference to the front-most message in the Rx queue.">Ucs_AmsRx_PeekMsg()</a> returns a reference of the following Rx message, or <code>NULL</code> if no further message is available. <br/>
+ However, it is possible that an application cannot process an Rx message. In that case that application must not call <a class="el" href="group___g___u_c_s___a_m_s_ga6f571e2e15fac1e4be068cdf0ccac44d.html#ga6f571e2e15fac1e4be068cdf0ccac44d" title="Removes and frees the front-most message from the Rx queue.">Ucs_AmsRx_ReleaseMsg()</a> so that the next call of <a class="el" href="group___g___u_c_s___a_m_s_gab096e481474195cc57d4d801f1d295f2.html#gab096e481474195cc57d4d801f1d295f2" title="Retrieves a reference to the front-most message in the Rx queue.">Ucs_AmsRx_PeekMsg()</a> returns again the reference to the un-processed message. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>The instance </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Reference to the front-most message in the Rx queue or <code>NULL</code> if the Rx queue is empty. </dd></dl>
+<dl class="section warning"><dt>Warning</dt><dd>It is important that the application takes care about the life time of the Rx message object. The returned reference is valid if the application performs the peek, processing and release operation in one go. A reference returned by <a class="el" href="group___g___u_c_s___a_m_s_gab096e481474195cc57d4d801f1d295f2.html#gab096e481474195cc57d4d801f1d295f2" title="Retrieves a reference to the front-most message in the Rx queue.">Ucs_AmsRx_PeekMsg()</a> might become invalid during a call of <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga649fb9128df6f634fc86aa03b374d822.html#ga649fb9128df6f634fc86aa03b374d822" title="The application must call this function cyclically to drive UNICENS.">Ucs_Service()</a>. The reason is that the UNICENS library might process an event which will flush the AMS Rx queue. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___a_m_s.html">Application Message Service</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___a_m_s_gade9da5d6f847265fc4a8613d5ba6da60.html b/ucs2-lib/doc/html/group___g___u_c_s___a_m_s_gade9da5d6f847265fc4a8613d5ba6da60.html
new file mode 100644
index 0000000..3aa9787
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___a_m_s_gade9da5d6f847265fc4a8613d5ba6da60.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: UCS_AMS_SIZE_RX_MSG</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___a_m_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gade9da5d6f847265fc4a8613d5ba6da60"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define UCS_AMS_SIZE_RX_MSG&#160;&#160;&#160;45</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Defines the payload size in bytes which is available for every Rx message object. Valid values: 45..65535. Default value: 45. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___a_m_s.html">Application Message Service</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___a_m_s_gae2eb8a7435144add2627537c6372ce69.html b/ucs2-lib/doc/html/group___g___u_c_s___a_m_s_gae2eb8a7435144add2627537c6372ce69.html
new file mode 100644
index 0000000..50dd6fb
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___a_m_s_gae2eb8a7435144add2627537c6372ce69.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: UCS_AMS_NUM_RX_MSGS</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___a_m_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gae2eb8a7435144add2627537c6372ce69"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define UCS_AMS_NUM_RX_MSGS&#160;&#160;&#160;20</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Defines the number of reserved Rx message objects. Valid values: 5..255. Default value: 20. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___a_m_s.html">Application Message Service</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___a_m_s_gae813e5093ce0bd11dd5ba9bd4fe77b77.html b/ucs2-lib/doc/html/group___g___u_c_s___a_m_s_gae813e5093ce0bd11dd5ba9bd4fe77b77.html
new file mode 100644
index 0000000..4ffcd45
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___a_m_s_gae813e5093ce0bd11dd5ba9bd4fe77b77.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: UCS_AMS_SIZE_TX_MSG</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___a_m_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gae813e5093ce0bd11dd5ba9bd4fe77b77"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define UCS_AMS_SIZE_TX_MSG&#160;&#160;&#160;45</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Defines the payload size in bytes which is available for every Tx message object. Valid values: 45..65535. Default value: 45. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___a_m_s.html">Application Message Service</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___a_m_s_gafbcfeaaa6ff3d255609e404b16dbdf0f.html b/ucs2-lib/doc/html/group___g___u_c_s___a_m_s_gafbcfeaaa6ff3d255609e404b16dbdf0f.html
new file mode 100644
index 0000000..13aaac6
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___a_m_s_gafbcfeaaa6ff3d255609e404b16dbdf0f.html
@@ -0,0 +1,154 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_AmsTx_AllocMsg</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___a_m_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gafbcfeaaa6ff3d255609e404b16dbdf0f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_ucs___ams_tx___msg__t.html">Ucs_AmsTx_Msg_t</a>* Ucs_AmsTx_AllocMsg </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *&#160;</td>
+ <td class="paramname"><em>self</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>data_size</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Allocates an application message object for transmission. </p>
+<p>This function retrieves a Tx message object with a payload buffer of the given size. The application must take care that <a class="el" href="struct_ucs___ams_tx___msg__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html#aae6bdbdf6ea1ad3da5af37f0a91d3ea0" title="The size of payload data in bytes.">Ucs_AmsTx_Msg_t::data_size</a> of the resulting message object does not exceed the amount of provided payload.<br/>
+ The application is also allowed to provide own payload to the message object. In this case the application is allowed to call this function and pass data_size "0". The application can set <a class="el" href="struct_ucs___ams_tx___msg__t_a6166cef59cbe432be35512925debeae6.html#a6166cef59cbe432be35512925debeae6" title="Payload data.">Ucs_AmsTx_Msg_t::data_ptr</a> and <a class="el" href="struct_ucs___ams_tx___msg__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html#aae6bdbdf6ea1ad3da5af37f0a91d3ea0" title="The size of payload data in bytes.">Ucs_AmsTx_Msg_t::data_size</a> of the returned message object to the application provided payload. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>The instance </td></tr>
+ <tr><td class="paramname">data_size</td><td>Required payload size which needs to be allocated. Valid values: 0..65535. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The allocated Tx message object or <code>NULL</code> if no Tx message object is available. If the function returns <code>NULL</code> the application can use <a class="el" href="struct_ucs___ams_tx___init_data__t_a9217a093b6d7e68b7cd9d759c5cef192.html#a9217a093b6d7e68b7cd9d759c5cef192">ams.tx.message_freed_fptr</a> as trigger to request a message object again. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>The application may also allocate a certain number of message objects without transmitting in one go. In this case the message object is handed over to the application which is now responsible to transmit or free the object. When UNICENS terminates it is possible that user allocated memory is still dedicated to such a message buffer. In this case the application must do the following steps for every retained Tx message object:<ul>
+<li>Free application provided payload</li>
+<li>Call <a class="el" href="group___g___u_c_s___a_m_s_ga9e03946330dcc4ed4111b1d43714308d.html#ga9e03946330dcc4ed4111b1d43714308d" title="Frees an unused Tx message object.">Ucs_AmsTx_FreeUnusedMsg()</a> to release the message to UNICENS</li>
+<li>Guarantee to access the Tx message object never again</li>
+</ul>
+After performing these steps the application is allowed to call <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_gaea8d7735d41853167a2befdc06febe43.html#gaea8d7735d41853167a2befdc06febe43" title="UNICENS initialization function.">Ucs_Init()</a> again. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___a_m_s.html">Application Message Service</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___b_c___d_i_a_g.html b/ucs2-lib/doc/html/group___g___u_c_s___b_c___d_i_a_g.html
new file mode 100644
index 0000000..7220c75
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___b_c___d_i_a_g.html
@@ -0,0 +1,141 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: BackChannel Diagnosis</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___b_c___d_i_a_g.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#groups">Topics</a> &#124;
+<a href="#typedef-members">Callback Functions</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">BackChannel Diagnosis</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>BackChannel Diagnosis.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+Topics</h2></td></tr>
+<tr class="memitem:group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s.html">Referred Types</a></td></tr>
+<tr class="memdesc:group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s"><td class="mdescLeft">&#160;</td><td class="mdescRight">Referred Types used by BackChannel Diagnosis. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Callback Functions</h2></td></tr>
+<tr class="memitem:ga9dcf9bd698b30335336ff78524866794"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___b_c___d_i_a_g_ga9dcf9bd698b30335336ff78524866794.html#ga9dcf9bd698b30335336ff78524866794">Ucs_Bcd_ReportCb_t</a> )(<a class="el" href="group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#ga08b88fcd49483ac8d0ce004c104a4c12">Ucs_Bcd_ResCode_t</a> code, uint8_t segment, void *user_ptr)</td></tr>
+<tr class="memdesc:ga9dcf9bd698b30335336ff78524866794"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function signature of result callback used by BackChannel Diagnosis. <a href="#ga9dcf9bd698b30335336ff78524866794"></a><br/></td></tr>
+<tr class="separator:ga9dcf9bd698b30335336ff78524866794"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gaaefed31b3c57ef52a29237c3f84fb566"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___b_c___d_i_a_g_gaaefed31b3c57ef52a29237c3f84fb566.html#gaaefed31b3c57ef52a29237c3f84fb566">Ucs_Bcd_Start</a> (<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *self, <a class="el" href="group___g___u_c_s___b_c___d_i_a_g_ga9dcf9bd698b30335336ff78524866794.html#ga9dcf9bd698b30335336ff78524866794">Ucs_Bcd_ReportCb_t</a> report_fptr)</td></tr>
+<tr class="memdesc:gaaefed31b3c57ef52a29237c3f84fb566"><td class="mdescLeft">&#160;</td><td class="mdescRight">Starts the BackChannel Diagnosis. <a href="#gaaefed31b3c57ef52a29237c3f84fb566"></a><br/></td></tr>
+<tr class="separator:gaaefed31b3c57ef52a29237c3f84fb566"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>BackChannel Diagnosis. </p>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___b_c___d_i_a_g.js b/ucs2-lib/doc/html/group___g___u_c_s___b_c___d_i_a_g.js
new file mode 100644
index 0000000..972adc4
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___b_c___d_i_a_g.js
@@ -0,0 +1,6 @@
+var group___g___u_c_s___b_c___d_i_a_g =
+[
+ [ "Referred Types", "group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s.html", "group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s" ],
+ [ "Ucs_Bcd_ReportCb_t", "group___g___u_c_s___b_c___d_i_a_g_ga9dcf9bd698b30335336ff78524866794.html#ga9dcf9bd698b30335336ff78524866794", null ],
+ [ "Ucs_Bcd_Start", "group___g___u_c_s___b_c___d_i_a_g_gaaefed31b3c57ef52a29237c3f84fb566.html#gaaefed31b3c57ef52a29237c3f84fb566", null ]
+]; \ No newline at end of file
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s.html b/ucs2-lib/doc/html/group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s.html
new file mode 100644
index 0000000..92d1420
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s.html
@@ -0,0 +1,149 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Referred Types</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#define-members">Macros</a> &#124;
+<a href="#enum-members">Enumerations</a> </div>
+ <div class="headertitle">
+<div class="title">Referred Types</div> </div>
+<div class="ingroups"><a class="el" href="group___g___u_c_s___b_c___d_i_a_g.html">BackChannel Diagnosis</a></div></div><!--header-->
+<div class="contents">
+
+<p>Referred Types used by BackChannel Diagnosis.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:ga8ea444dafcef542cfafee9ee0e74a104"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga8ea444dafcef542cfafee9ee0e74a104.html#ga8ea444dafcef542cfafee9ee0e74a104">UCS_BCD_DUMMY_SEGMENT</a>&#160;&#160;&#160;0xFFU</td></tr>
+<tr class="memdesc:ga8ea444dafcef542cfafee9ee0e74a104"><td class="mdescLeft">&#160;</td><td class="mdescRight">No evaluable segment information available for BackChannel Diagnosis. <a href="#ga8ea444dafcef542cfafee9ee0e74a104"></a><br/></td></tr>
+<tr class="separator:ga8ea444dafcef542cfafee9ee0e74a104"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:ga08b88fcd49483ac8d0ce004c104a4c12"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#ga08b88fcd49483ac8d0ce004c104a4c12">Ucs_Bcd_ResCode_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#gga08b88fcd49483ac8d0ce004c104a4c12a9efd7ed8009ce371525bd17ba8cd33bb">UCS_BCD_RES_SUCCESS</a> = 0x01U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#gga08b88fcd49483ac8d0ce004c104a4c12aa33f4df6db0d7b979097f3ea10b680af">UCS_BCD_RES_NO_RING_BREAK</a> = 0x02U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#gga08b88fcd49483ac8d0ce004c104a4c12a135f26c3f41683d98230208b952f238f">UCS_BCD_RES_RING_BREAK</a> = 0x03U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#gga08b88fcd49483ac8d0ce004c104a4c12a249b89261ce8db86eca6d76f43b84e1b">UCS_BCD_RES_TIMEOUT1</a> = 0x04U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#gga08b88fcd49483ac8d0ce004c104a4c12a5782a90257b123278c8ebb4a17b2f264">UCS_BCD_RES_TIMEOUT2</a> = 0x05U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#gga08b88fcd49483ac8d0ce004c104a4c12a3a7748f1c2bab68f1c7969cfec95dabf">UCS_BCD_RES_ERROR</a> = 0x06U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#gga08b88fcd49483ac8d0ce004c104a4c12a9cde6e2034d4ab681bc6978edb671b1e">UCS_BCD_RES_END</a> = 0x07U
+<br/>
+ }</td></tr>
+<tr class="memdesc:ga08b88fcd49483ac8d0ce004c104a4c12"><td class="mdescLeft">&#160;</td><td class="mdescRight">Result values of the BackChannel Diagnosis. <a href="group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#ga08b88fcd49483ac8d0ce004c104a4c12">More...</a><br/></td></tr>
+<tr class="separator:ga08b88fcd49483ac8d0ce004c104a4c12"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Referred Types used by BackChannel Diagnosis. </p>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s.js b/ucs2-lib/doc/html/group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s.js
new file mode 100644
index 0000000..c148af2
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s.js
@@ -0,0 +1,13 @@
+var group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s =
+[
+ [ "UCS_BCD_DUMMY_SEGMENT", "group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga8ea444dafcef542cfafee9ee0e74a104.html#ga8ea444dafcef542cfafee9ee0e74a104", null ],
+ [ "Ucs_Bcd_ResCode_t", "group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#ga08b88fcd49483ac8d0ce004c104a4c12", [
+ [ "UCS_BCD_RES_SUCCESS", "group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#gga08b88fcd49483ac8d0ce004c104a4c12a9efd7ed8009ce371525bd17ba8cd33bb", null ],
+ [ "UCS_BCD_RES_NO_RING_BREAK", "group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#gga08b88fcd49483ac8d0ce004c104a4c12aa33f4df6db0d7b979097f3ea10b680af", null ],
+ [ "UCS_BCD_RES_RING_BREAK", "group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#gga08b88fcd49483ac8d0ce004c104a4c12a135f26c3f41683d98230208b952f238f", null ],
+ [ "UCS_BCD_RES_TIMEOUT1", "group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#gga08b88fcd49483ac8d0ce004c104a4c12a249b89261ce8db86eca6d76f43b84e1b", null ],
+ [ "UCS_BCD_RES_TIMEOUT2", "group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#gga08b88fcd49483ac8d0ce004c104a4c12a5782a90257b123278c8ebb4a17b2f264", null ],
+ [ "UCS_BCD_RES_ERROR", "group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#gga08b88fcd49483ac8d0ce004c104a4c12a3a7748f1c2bab68f1c7969cfec95dabf", null ],
+ [ "UCS_BCD_RES_END", "group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#gga08b88fcd49483ac8d0ce004c104a4c12a9cde6e2034d4ab681bc6978edb671b1e", null ]
+ ] ]
+]; \ No newline at end of file
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html b/ucs2-lib/doc/html/group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html
new file mode 100644
index 0000000..986101e
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html
@@ -0,0 +1,149 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Bcd_ResCode_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga08b88fcd49483ac8d0ce004c104a4c12"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#ga08b88fcd49483ac8d0ce004c104a4c12">Ucs_Bcd_ResCode_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Result values of the BackChannel Diagnosis. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga08b88fcd49483ac8d0ce004c104a4c12a9efd7ed8009ce371525bd17ba8cd33bb"></a>UCS_BCD_RES_SUCCESS</em>&nbsp;</td><td>
+<p>current segment is not broken </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga08b88fcd49483ac8d0ce004c104a4c12aa33f4df6db0d7b979097f3ea10b680af"></a>UCS_BCD_RES_NO_RING_BREAK</em>&nbsp;</td><td>
+<p>TM answered: no ring break. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga08b88fcd49483ac8d0ce004c104a4c12a135f26c3f41683d98230208b952f238f"></a>UCS_BCD_RES_RING_BREAK</em>&nbsp;</td><td>
+<p>Ring break detected in current segment. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga08b88fcd49483ac8d0ce004c104a4c12a249b89261ce8db86eca6d76f43b84e1b"></a>UCS_BCD_RES_TIMEOUT1</em>&nbsp;</td><td>
+<p>No communication on back channel. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga08b88fcd49483ac8d0ce004c104a4c12a5782a90257b123278c8ebb4a17b2f264"></a>UCS_BCD_RES_TIMEOUT2</em>&nbsp;</td><td>
+<p>No result from INIC received. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga08b88fcd49483ac8d0ce004c104a4c12a3a7748f1c2bab68f1c7969cfec95dabf"></a>UCS_BCD_RES_ERROR</em>&nbsp;</td><td>
+<p>An unexpected error occurred. BackChannel Diagnosis was stopped. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga08b88fcd49483ac8d0ce004c104a4c12a9cde6e2034d4ab681bc6978edb671b1e"></a>UCS_BCD_RES_END</em>&nbsp;</td><td>
+<p>BackChannel Diagnosis ended regularly. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s.html">Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga8ea444dafcef542cfafee9ee0e74a104.html b/ucs2-lib/doc/html/group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga8ea444dafcef542cfafee9ee0e74a104.html
new file mode 100644
index 0000000..f31d871
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga8ea444dafcef542cfafee9ee0e74a104.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: UCS_BCD_DUMMY_SEGMENT</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga8ea444dafcef542cfafee9ee0e74a104"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define UCS_BCD_DUMMY_SEGMENT&#160;&#160;&#160;0xFFU</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>No evaluable segment information available for BackChannel Diagnosis. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s.html">Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___b_c___d_i_a_g_ga9dcf9bd698b30335336ff78524866794.html b/ucs2-lib/doc/html/group___g___u_c_s___b_c___d_i_a_g_ga9dcf9bd698b30335336ff78524866794.html
new file mode 100644
index 0000000..7d23ed4
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___b_c___d_i_a_g_ga9dcf9bd698b30335336ff78524866794.html
@@ -0,0 +1,133 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Bcd_ReportCb_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___b_c___d_i_a_g.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga9dcf9bd698b30335336ff78524866794"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* Ucs_Bcd_ReportCb_t)(<a class="el" href="group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#ga08b88fcd49483ac8d0ce004c104a4c12">Ucs_Bcd_ResCode_t</a> code, uint8_t segment, void *user_ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Function signature of result callback used by BackChannel Diagnosis. </p>
+<p>The BackChannel Diagnosis reports the result of certain segment by this callback function.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">code</td><td>Result code </td></tr>
+ <tr><td class="paramname">segment</td><td>Number of the segment which was inspected. Numbering starts with 0 denoting the segment following the TimingMaster. The number is increased for each following segment. </td></tr>
+ <tr><td class="paramname">user_ptr</td><td>User reference provided in <a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t::user_ptr</a> </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___b_c___d_i_a_g.html">BackChannel Diagnosis</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___b_c___d_i_a_g_gaaefed31b3c57ef52a29237c3f84fb566.html b/ucs2-lib/doc/html/group___g___u_c_s___b_c___d_i_a_g_gaaefed31b3c57ef52a29237c3f84fb566.html
new file mode 100644
index 0000000..6bf4cee
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___b_c___d_i_a_g_gaaefed31b3c57ef52a29237c3f84fb566.html
@@ -0,0 +1,154 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Bcd_Start</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___b_c___d_i_a_g.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gaaefed31b3c57ef52a29237c3f84fb566"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a> Ucs_Bcd_Start </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *&#160;</td>
+ <td class="paramname"><em>self</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___b_c___d_i_a_g_ga9dcf9bd698b30335336ff78524866794.html#ga9dcf9bd698b30335336ff78524866794">Ucs_Bcd_ReportCb_t</a>&#160;</td>
+ <td class="paramname"><em>report_fptr</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Starts the BackChannel Diagnosis. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>The instance </td></tr>
+ <tr><td class="paramname">report_fptr</td><td>Callback function presenting reports of the diagnosis </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible return values are shown in the table below. <table class="doxtable">
+<tr>
+<th>Value </th><th>Description</th></tr>
+<tr>
+<td>UCS_RET_SUCCESS </td><td>No error </td></tr>
+<tr>
+<td>UCS_RET_ERR_NOT_INITIALIZED </td><td>UNICENS is not initialized </td></tr>
+</table>
+</dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___b_c___d_i_a_g.html">BackChannel Diagnosis</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___c_m_d.html b/ucs2-lib/doc/html/group___g___u_c_s___c_m_d.html
new file mode 100644
index 0000000..8f8ef8d
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___c_m_d.html
@@ -0,0 +1,140 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Command Interpreter</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___c_m_d.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#groups">Topics</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">Command Interpreter</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Decodes received MOST messages.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+Topics</h2></td></tr>
+<tr class="memitem:group___g___u_c_s___c_m_d___t_y_p_e_s"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___c_m_d___t_y_p_e_s.html">Referred Types</a></td></tr>
+<tr class="memdesc:group___g___u_c_s___c_m_d___t_y_p_e_s"><td class="mdescLeft">&#160;</td><td class="mdescRight">Referred types used by the Command Interpreter. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga70c8351102177badff83fe412c4962b7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#ga91f6db002b6fe98cdeb2969b19131cbb">Ucs_Cmd_Return_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___c_m_d_ga70c8351102177badff83fe412c4962b7.html#ga70c8351102177badff83fe412c4962b7">Ucs_Cmd_AddMsgIdTable</a> (<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *self, <a class="el" href="struct_ucs___cmd___msg_id__t.html">Ucs_Cmd_MsgId_t</a> *msg_id_tab_ptr)</td></tr>
+<tr class="memdesc:ga70c8351102177badff83fe412c4962b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a MessageId Table to the Command Interpreter. <a href="#ga70c8351102177badff83fe412c4962b7"></a><br/></td></tr>
+<tr class="separator:ga70c8351102177badff83fe412c4962b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafe38ecf4cd5bc81074af03affa2374a4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#ga91f6db002b6fe98cdeb2969b19131cbb">Ucs_Cmd_Return_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___c_m_d_gafe38ecf4cd5bc81074af03affa2374a4.html#gafe38ecf4cd5bc81074af03affa2374a4">Ucs_Cmd_RemoveMsgIdTable</a> (<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *self)</td></tr>
+<tr class="memdesc:gafe38ecf4cd5bc81074af03affa2374a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove a MessageId Table from the Command Interpreter. <a href="#gafe38ecf4cd5bc81074af03affa2374a4"></a><br/></td></tr>
+<tr class="separator:gafe38ecf4cd5bc81074af03affa2374a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaaad9e557acfca6cc8c125c7b191515f1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#ga91f6db002b6fe98cdeb2969b19131cbb">Ucs_Cmd_Return_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___c_m_d_gaaad9e557acfca6cc8c125c7b191515f1.html#gaaad9e557acfca6cc8c125c7b191515f1">Ucs_Cmd_DecodeMsg</a> (<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *self, <a class="el" href="struct_ucs___ams_rx___msg__t.html">Ucs_AmsRx_Msg_t</a> *msg_rx_ptr)</td></tr>
+<tr class="memdesc:gaaad9e557acfca6cc8c125c7b191515f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode an MCM message. <a href="#gaaad9e557acfca6cc8c125c7b191515f1"></a><br/></td></tr>
+<tr class="separator:gaaad9e557acfca6cc8c125c7b191515f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Decodes received MOST messages. </p>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___c_m_d.js b/ucs2-lib/doc/html/group___g___u_c_s___c_m_d.js
new file mode 100644
index 0000000..0d591ab
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___c_m_d.js
@@ -0,0 +1,7 @@
+var group___g___u_c_s___c_m_d =
+[
+ [ "Referred Types", "group___g___u_c_s___c_m_d___t_y_p_e_s.html", "group___g___u_c_s___c_m_d___t_y_p_e_s" ],
+ [ "Ucs_Cmd_AddMsgIdTable", "group___g___u_c_s___c_m_d_ga70c8351102177badff83fe412c4962b7.html#ga70c8351102177badff83fe412c4962b7", null ],
+ [ "Ucs_Cmd_DecodeMsg", "group___g___u_c_s___c_m_d_gaaad9e557acfca6cc8c125c7b191515f1.html#gaaad9e557acfca6cc8c125c7b191515f1", null ],
+ [ "Ucs_Cmd_RemoveMsgIdTable", "group___g___u_c_s___c_m_d_gafe38ecf4cd5bc81074af03affa2374a4.html#gafe38ecf4cd5bc81074af03affa2374a4", null ]
+]; \ No newline at end of file
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___c_m_d___t_y_p_e_s.html b/ucs2-lib/doc/html/group___g___u_c_s___c_m_d___t_y_p_e_s.html
new file mode 100644
index 0000000..57ef109
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___c_m_d___t_y_p_e_s.html
@@ -0,0 +1,161 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Referred Types</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___c_m_d___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#define-members">Macros</a> &#124;
+<a href="#typedef-members">Callback Functions</a> &#124;
+<a href="#enum-members">Enumerations</a> </div>
+ <div class="headertitle">
+<div class="title">Referred Types</div> </div>
+<div class="ingroups"><a class="el" href="group___g___u_c_s___c_m_d.html">Command Interpreter</a></div></div><!--header-->
+<div class="contents">
+
+<p>Referred types used by the Command Interpreter.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___cmd___msg_id__t.html">Ucs_Cmd_MsgId_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Structure of a single element of the MessageId Table. <a href="struct_ucs___cmd___msg_id__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:ga5a43bcb8d64270611848455343857bc8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___c_m_d___t_y_p_e_s_ga5a43bcb8d64270611848455343857bc8.html#ga5a43bcb8d64270611848455343857bc8">UCS_CMD_MSGID_TERMINATION</a>&#160;&#160;&#160;0xFFFFU</td></tr>
+<tr class="memdesc:ga5a43bcb8d64270611848455343857bc8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Denotes the end of an MessageId Table. <a href="#ga5a43bcb8d64270611848455343857bc8"></a><br/></td></tr>
+<tr class="separator:ga5a43bcb8d64270611848455343857bc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Callback Functions</h2></td></tr>
+<tr class="memitem:ga88dfb52f565e25938a8162e67aecd580"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#ga91f6db002b6fe98cdeb2969b19131cbb">Ucs_Cmd_Return_t</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___c_m_d___t_y_p_e_s_ga88dfb52f565e25938a8162e67aecd580.html#ga88dfb52f565e25938a8162e67aecd580">Ucs_Cmd_Handler_Function_t</a> )(<a class="el" href="struct_ucs___ams_rx___msg__t.html">Ucs_AmsRx_Msg_t</a> *msg_rx_ptr, void *user_ptr)</td></tr>
+<tr class="memdesc:ga88dfb52f565e25938a8162e67aecd580"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type definition of user handler functions. <a href="#ga88dfb52f565e25938a8162e67aecd580"></a><br/></td></tr>
+<tr class="separator:ga88dfb52f565e25938a8162e67aecd580"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:ga91f6db002b6fe98cdeb2969b19131cbb"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#ga91f6db002b6fe98cdeb2969b19131cbb">Ucs_Cmd_Return_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#gga91f6db002b6fe98cdeb2969b19131cbba30cf8ec25015b74f098bb0e1e501d7c6">UCS_CMD_RET_SUCCESS</a> = 0x00,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#gga91f6db002b6fe98cdeb2969b19131cbbaa33605aae463493dea404f2d7390ec15">UCS_CMD_RET_ERR_MSGID_NOTAVAIL</a> = 0x01,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#gga91f6db002b6fe98cdeb2969b19131cbba20d632ad52c0b2e0458849604f422dba">UCS_CMD_RET_ERR_TX_BUSY</a> = 0x02,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#gga91f6db002b6fe98cdeb2969b19131cbba676c8302cdc00e5190d763b09dbe2e2f">UCS_CMD_RET_ERR_APPL</a> = 0x03,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#gga91f6db002b6fe98cdeb2969b19131cbbab4d57d230971b9f73d85ddd19f3f06ee">UCS_CMD_RET_ERR_ALREADY_ENTERED</a> = 0x04,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#gga91f6db002b6fe98cdeb2969b19131cbba5e844ee693f7195bf00120c79e8235c5">UCS_CMD_RET_ERR_NULL_PTR</a> = 0x05
+<br/>
+ }</td></tr>
+<tr class="memdesc:ga91f6db002b6fe98cdeb2969b19131cbb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Result codes used for Command Interpreter API functions. <a href="group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#ga91f6db002b6fe98cdeb2969b19131cbb">More...</a><br/></td></tr>
+<tr class="separator:ga91f6db002b6fe98cdeb2969b19131cbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Referred types used by the Command Interpreter. </p>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___c_m_d___t_y_p_e_s.js b/ucs2-lib/doc/html/group___g___u_c_s___c_m_d___t_y_p_e_s.js
new file mode 100644
index 0000000..dd223cd
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___c_m_d___t_y_p_e_s.js
@@ -0,0 +1,17 @@
+var group___g___u_c_s___c_m_d___t_y_p_e_s =
+[
+ [ "Ucs_Cmd_MsgId_t", "struct_ucs___cmd___msg_id__t.html", [
+ [ "handler_function_ptr", "struct_ucs___cmd___msg_id__t_a7a00edfeadc4cc2a50b9136d2d368c23.html#a7a00edfeadc4cc2a50b9136d2d368c23", null ],
+ [ "msg_id", "struct_ucs___cmd___msg_id__t_a689014fc11d4f26d264ddae2eaebc9d8.html#a689014fc11d4f26d264ddae2eaebc9d8", null ]
+ ] ],
+ [ "UCS_CMD_MSGID_TERMINATION", "group___g___u_c_s___c_m_d___t_y_p_e_s_ga5a43bcb8d64270611848455343857bc8.html#ga5a43bcb8d64270611848455343857bc8", null ],
+ [ "Ucs_Cmd_Handler_Function_t", "group___g___u_c_s___c_m_d___t_y_p_e_s_ga88dfb52f565e25938a8162e67aecd580.html#ga88dfb52f565e25938a8162e67aecd580", null ],
+ [ "Ucs_Cmd_Return_t", "group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#ga91f6db002b6fe98cdeb2969b19131cbb", [
+ [ "UCS_CMD_RET_SUCCESS", "group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#gga91f6db002b6fe98cdeb2969b19131cbba30cf8ec25015b74f098bb0e1e501d7c6", null ],
+ [ "UCS_CMD_RET_ERR_MSGID_NOTAVAIL", "group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#gga91f6db002b6fe98cdeb2969b19131cbbaa33605aae463493dea404f2d7390ec15", null ],
+ [ "UCS_CMD_RET_ERR_TX_BUSY", "group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#gga91f6db002b6fe98cdeb2969b19131cbba20d632ad52c0b2e0458849604f422dba", null ],
+ [ "UCS_CMD_RET_ERR_APPL", "group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#gga91f6db002b6fe98cdeb2969b19131cbba676c8302cdc00e5190d763b09dbe2e2f", null ],
+ [ "UCS_CMD_RET_ERR_ALREADY_ENTERED", "group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#gga91f6db002b6fe98cdeb2969b19131cbbab4d57d230971b9f73d85ddd19f3f06ee", null ],
+ [ "UCS_CMD_RET_ERR_NULL_PTR", "group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#gga91f6db002b6fe98cdeb2969b19131cbba5e844ee693f7195bf00120c79e8235c5", null ]
+ ] ]
+]; \ No newline at end of file
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___c_m_d___t_y_p_e_s_ga5a43bcb8d64270611848455343857bc8.html b/ucs2-lib/doc/html/group___g___u_c_s___c_m_d___t_y_p_e_s_ga5a43bcb8d64270611848455343857bc8.html
new file mode 100644
index 0000000..a0ec069
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___c_m_d___t_y_p_e_s_ga5a43bcb8d64270611848455343857bc8.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: UCS_CMD_MSGID_TERMINATION</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___c_m_d___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga5a43bcb8d64270611848455343857bc8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define UCS_CMD_MSGID_TERMINATION&#160;&#160;&#160;0xFFFFU</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Denotes the end of an MessageId Table. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___c_m_d___t_y_p_e_s.html">Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___c_m_d___t_y_p_e_s_ga88dfb52f565e25938a8162e67aecd580.html b/ucs2-lib/doc/html/group___g___u_c_s___c_m_d___t_y_p_e_s_ga88dfb52f565e25938a8162e67aecd580.html
new file mode 100644
index 0000000..6578cea
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___c_m_d___t_y_p_e_s_ga88dfb52f565e25938a8162e67aecd580.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Cmd_Handler_Function_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___c_m_d___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga88dfb52f565e25938a8162e67aecd580"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#ga91f6db002b6fe98cdeb2969b19131cbb">Ucs_Cmd_Return_t</a>(* Ucs_Cmd_Handler_Function_t)(<a class="el" href="struct_ucs___ams_rx___msg__t.html">Ucs_AmsRx_Msg_t</a> *msg_rx_ptr, void *user_ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Type definition of user handler functions. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">msg_rx_ptr</td><td>Reference to the received message </td></tr>
+ <tr><td class="paramname">user_ptr</td><td>User reference provided in <a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t::user_ptr</a> </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible return values are shown in the table below. <table class="doxtable">
+<tr>
+<th>Value </th><th>Description</th></tr>
+<tr>
+<td>UCS_CMD_RET_SUCCESS </td><td>The handler function succeeded. </td></tr>
+<tr>
+<td>UCS_CMD_RET_ERR_TX_BUSY </td><td>The handler function could not send an answer because no free Tx Buffer was available. </td></tr>
+<tr>
+<td>UCS_CMD_RET_ERR_APPL </td><td>An error happened in handler function. </td></tr>
+</table>
+</dd></dl>
+<dl class="section note"><dt>Note</dt><dd>The application must not return other values than the ones listed above. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___c_m_d___t_y_p_e_s.html">Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html b/ucs2-lib/doc/html/group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html
new file mode 100644
index 0000000..e4074ef
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html
@@ -0,0 +1,146 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Cmd_Return_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___c_m_d___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga91f6db002b6fe98cdeb2969b19131cbb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#ga91f6db002b6fe98cdeb2969b19131cbb">Ucs_Cmd_Return_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Result codes used for Command Interpreter API functions. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga91f6db002b6fe98cdeb2969b19131cbba30cf8ec25015b74f098bb0e1e501d7c6"></a>UCS_CMD_RET_SUCCESS</em>&nbsp;</td><td>
+<p>Operation successfully completed </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga91f6db002b6fe98cdeb2969b19131cbbaa33605aae463493dea404f2d7390ec15"></a>UCS_CMD_RET_ERR_MSGID_NOTAVAIL</em>&nbsp;</td><td>
+<p>MessageId not found </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga91f6db002b6fe98cdeb2969b19131cbba20d632ad52c0b2e0458849604f422dba"></a>UCS_CMD_RET_ERR_TX_BUSY</em>&nbsp;</td><td>
+<p>No free Tx buffer available </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga91f6db002b6fe98cdeb2969b19131cbba676c8302cdc00e5190d763b09dbe2e2f"></a>UCS_CMD_RET_ERR_APPL</em>&nbsp;</td><td>
+<p>Application handler function reports custom error </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga91f6db002b6fe98cdeb2969b19131cbbab4d57d230971b9f73d85ddd19f3f06ee"></a>UCS_CMD_RET_ERR_ALREADY_ENTERED</em>&nbsp;</td><td>
+<p>MessageId Table already connected </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga91f6db002b6fe98cdeb2969b19131cbba5e844ee693f7195bf00120c79e8235c5"></a>UCS_CMD_RET_ERR_NULL_PTR</em>&nbsp;</td><td>
+<p>NULL pointer used as argument </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___c_m_d___t_y_p_e_s.html">Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___c_m_d_ga70c8351102177badff83fe412c4962b7.html b/ucs2-lib/doc/html/group___g___u_c_s___c_m_d_ga70c8351102177badff83fe412c4962b7.html
new file mode 100644
index 0000000..8c46584
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___c_m_d_ga70c8351102177badff83fe412c4962b7.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Cmd_AddMsgIdTable</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___c_m_d.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga70c8351102177badff83fe412c4962b7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#ga91f6db002b6fe98cdeb2969b19131cbb">Ucs_Cmd_Return_t</a> Ucs_Cmd_AddMsgIdTable </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *&#160;</td>
+ <td class="paramname"><em>self</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="struct_ucs___cmd___msg_id__t.html">Ucs_Cmd_MsgId_t</a> *&#160;</td>
+ <td class="paramname"><em>msg_id_tab_ptr</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Add a MessageId Table to the Command Interpreter. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>The Ucs instance </td></tr>
+ <tr><td class="paramname">msg_id_tab_ptr</td><td>Reference to MessageId Table </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible return values are shown in the table below. <table class="doxtable">
+<tr>
+<th>Value </th><th>Description</th></tr>
+<tr>
+<td>UCS_CMD_RET_SUCCESS </td><td>MessageId Table was successfully added </td></tr>
+<tr>
+<td>UCS_CMD_RET_ERR_ALREADY_ENTERED </td><td>MessageId Table already added </td></tr>
+<tr>
+<td>UCS_CMD_RET_ERR_NULL_PTR </td><td>NULL pointer used as argument for MessageId Table reference </td></tr>
+</table>
+</dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___c_m_d.html">Command Interpreter</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___c_m_d_gaaad9e557acfca6cc8c125c7b191515f1.html b/ucs2-lib/doc/html/group___g___u_c_s___c_m_d_gaaad9e557acfca6cc8c125c7b191515f1.html
new file mode 100644
index 0000000..ab8535d
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___c_m_d_gaaad9e557acfca6cc8c125c7b191515f1.html
@@ -0,0 +1,161 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Cmd_DecodeMsg</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___c_m_d.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gaaad9e557acfca6cc8c125c7b191515f1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#ga91f6db002b6fe98cdeb2969b19131cbb">Ucs_Cmd_Return_t</a> Ucs_Cmd_DecodeMsg </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *&#160;</td>
+ <td class="paramname"><em>self</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="struct_ucs___ams_rx___msg__t.html">Ucs_AmsRx_Msg_t</a> *&#160;</td>
+ <td class="paramname"><em>msg_rx_ptr</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Decode an MCM message. </p>
+<p>Function expects that the MessageId Table ends with a termination entry (handler_function_ptr == NULL). If this entry is not present, the search may end in an endless loop. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>Pointer to the Ucs instance </td></tr>
+ <tr><td class="paramname">msg_rx_ptr</td><td>Reference to the message to decode </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible return values are shown in the table below. <table class="doxtable">
+<tr>
+<th>Value </th><th>Description</th></tr>
+<tr>
+<td>UCS_CMD_RET_SUCCESS </td><td>Decoding was successful </td></tr>
+<tr>
+<td>UCS_CMD_RET_ERR_MSGID_NOTAVAIL </td><td>MessageId not found </td></tr>
+<tr>
+<td>UCS_CMD_RET_ERR_TX_BUSY </td><td>No Tx Buffer available </td></tr>
+<tr>
+<td>UCS_CMD_RET_ERR_APPL </td><td>Error happened in handler function </td></tr>
+<tr>
+<td>UCS_CMD_RET_ERR_NULL_PTR </td><td>NULL pointer used as argument for message reference or MessageId Table not available. </td></tr>
+</table>
+</dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___c_m_d.html">Command Interpreter</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___c_m_d_gafe38ecf4cd5bc81074af03affa2374a4.html b/ucs2-lib/doc/html/group___g___u_c_s___c_m_d_gafe38ecf4cd5bc81074af03affa2374a4.html
new file mode 100644
index 0000000..5275f43
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___c_m_d_gafe38ecf4cd5bc81074af03affa2374a4.html
@@ -0,0 +1,141 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Cmd_RemoveMsgIdTable</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___c_m_d.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gafe38ecf4cd5bc81074af03affa2374a4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#ga91f6db002b6fe98cdeb2969b19131cbb">Ucs_Cmd_Return_t</a> Ucs_Cmd_RemoveMsgIdTable </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *&#160;</td>
+ <td class="paramname"><em>self</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Remove a MessageId Table from the Command Interpreter. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>pointer to the Ucs instance </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible return values are shown in the table below. <table class="doxtable">
+<tr>
+<th>Value </th><th>Description</th></tr>
+<tr>
+<td>UCS_CMD_RET_SUCCESS </td><td>MessageId Table was successfully removed </td></tr>
+</table>
+</dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___c_m_d.html">Command Interpreter</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o.html b/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o.html
new file mode 100644
index 0000000..02e2313
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o.html
@@ -0,0 +1,153 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: GPIO</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___g_p_i_o.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#groups">Topics</a> &#124;
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">GPIO</div> </div>
+<div class="ingroups"><a class="el" href="group___g___u_c_s___p_b_i.html">Peripheral Bus Interface</a></div></div><!--header-->
+<div class="contents">
+
+<p>Provides service functions to handle data communication over GPIO.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+Topics</h2></td></tr>
+<tr class="memitem:group___g___u_c_s___g_p_i_o___t_y_p_e_s"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s.html">GPIO Referred Types</a></td></tr>
+<tr class="memdesc:group___g___u_c_s___g_p_i_o___t_y_p_e_s"><td class="mdescLeft">&#160;</td><td class="mdescRight">Referred types used by the Extended Resource Manager. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___gpio___init_data__t.html">Ucs_Gpio_InitData_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The initialization structure of the GPIO Module. <a href="struct_ucs___gpio___init_data__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga76f4de37c98b0cdd7cc25a22a9dac8a9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___g_p_i_o_ga76f4de37c98b0cdd7cc25a22a9dac8a9.html#ga76f4de37c98b0cdd7cc25a22a9dac8a9">Ucs_Gpio_CreatePort</a> (<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *self, uint16_t destination_address, uint8_t index, uint16_t debounce_time, <a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga14238b74c9e86db4e775461f2cf9b1cb.html#ga14238b74c9e86db4e775461f2cf9b1cb">Ucs_Gpio_CreatePortResCb_t</a> result_fptr)</td></tr>
+<tr class="memdesc:ga76f4de37c98b0cdd7cc25a22a9dac8a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates the GPIO port with its associated port instance identifier. <a href="#ga76f4de37c98b0cdd7cc25a22a9dac8a9"></a><br/></td></tr>
+<tr class="separator:ga76f4de37c98b0cdd7cc25a22a9dac8a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf9ecc1f20870bf49d40521db09854a68"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___g_p_i_o_gaf9ecc1f20870bf49d40521db09854a68.html#gaf9ecc1f20870bf49d40521db09854a68">Ucs_Gpio_SetPinMode</a> (<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *self, uint16_t destination_address, uint16_t gpio_port_handle, uint8_t pin, <a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#gacfcf034325bd7eff2f6fc78e8696ed49">Ucs_Gpio_PinMode_t</a> mode, <a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga69f4d52dfc38232662abd4568e18e3c2.html#ga69f4d52dfc38232662abd4568e18e3c2">Ucs_Gpio_ConfigPinModeResCb_t</a> result_fptr)</td></tr>
+<tr class="memdesc:gaf9ecc1f20870bf49d40521db09854a68"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configures the pin mode of the given GPIO port. <a href="#gaf9ecc1f20870bf49d40521db09854a68"></a><br/></td></tr>
+<tr class="separator:gaf9ecc1f20870bf49d40521db09854a68"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga10b73bad28ba7e0f24d3676f082a11a1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___g_p_i_o_ga10b73bad28ba7e0f24d3676f082a11a1.html#ga10b73bad28ba7e0f24d3676f082a11a1">Ucs_Gpio_GetPinMode</a> (<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *self, uint16_t destination_address, uint16_t gpio_port_handle, <a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga69f4d52dfc38232662abd4568e18e3c2.html#ga69f4d52dfc38232662abd4568e18e3c2">Ucs_Gpio_ConfigPinModeResCb_t</a> result_fptr)</td></tr>
+<tr class="memdesc:ga10b73bad28ba7e0f24d3676f082a11a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves the pin mode configuration of the given GPIO port. <a href="#ga10b73bad28ba7e0f24d3676f082a11a1"></a><br/></td></tr>
+<tr class="separator:ga10b73bad28ba7e0f24d3676f082a11a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaff68acc9fb26096cae9374694b43ae92"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___g_p_i_o_gaff68acc9fb26096cae9374694b43ae92.html#gaff68acc9fb26096cae9374694b43ae92">Ucs_Gpio_WritePort</a> (<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *self, uint16_t destination_address, uint16_t gpio_port_handle, uint16_t mask, uint16_t data, <a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga106c6afdd6f996c8bc5d632f08236912.html#ga106c6afdd6f996c8bc5d632f08236912">Ucs_Gpio_PinStateResCb_t</a> result_fptr)</td></tr>
+<tr class="memdesc:gaff68acc9fb26096cae9374694b43ae92"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes data to the given GPIO port. <a href="#gaff68acc9fb26096cae9374694b43ae92"></a><br/></td></tr>
+<tr class="separator:gaff68acc9fb26096cae9374694b43ae92"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa2dc67622555e9e64e4bb524a8e18642"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___g_p_i_o_gaa2dc67622555e9e64e4bb524a8e18642.html#gaa2dc67622555e9e64e4bb524a8e18642">Ucs_Gpio_ReadPort</a> (<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *self, uint16_t destination_address, uint16_t gpio_port_handle, <a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga106c6afdd6f996c8bc5d632f08236912.html#ga106c6afdd6f996c8bc5d632f08236912">Ucs_Gpio_PinStateResCb_t</a> result_fptr)</td></tr>
+<tr class="memdesc:gaa2dc67622555e9e64e4bb524a8e18642"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the pin state of the given GPIO port. <a href="#gaa2dc67622555e9e64e4bb524a8e18642"></a><br/></td></tr>
+<tr class="separator:gaa2dc67622555e9e64e4bb524a8e18642"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Provides service functions to handle data communication over GPIO. </p>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o.js b/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o.js
new file mode 100644
index 0000000..ed11793
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o.js
@@ -0,0 +1,12 @@
+var group___g___u_c_s___g_p_i_o =
+[
+ [ "GPIO Referred Types", "group___g___u_c_s___g_p_i_o___t_y_p_e_s.html", "group___g___u_c_s___g_p_i_o___t_y_p_e_s" ],
+ [ "Ucs_Gpio_InitData_t", "struct_ucs___gpio___init_data__t.html", [
+ [ "trigger_event_status_fptr", "struct_ucs___gpio___init_data__t_abb586c1dd43ecda56d21209333104904.html#abb586c1dd43ecda56d21209333104904", null ]
+ ] ],
+ [ "Ucs_Gpio_CreatePort", "group___g___u_c_s___g_p_i_o_ga76f4de37c98b0cdd7cc25a22a9dac8a9.html#ga76f4de37c98b0cdd7cc25a22a9dac8a9", null ],
+ [ "Ucs_Gpio_GetPinMode", "group___g___u_c_s___g_p_i_o_ga10b73bad28ba7e0f24d3676f082a11a1.html#ga10b73bad28ba7e0f24d3676f082a11a1", null ],
+ [ "Ucs_Gpio_ReadPort", "group___g___u_c_s___g_p_i_o_gaa2dc67622555e9e64e4bb524a8e18642.html#gaa2dc67622555e9e64e4bb524a8e18642", null ],
+ [ "Ucs_Gpio_SetPinMode", "group___g___u_c_s___g_p_i_o_gaf9ecc1f20870bf49d40521db09854a68.html#gaf9ecc1f20870bf49d40521db09854a68", null ],
+ [ "Ucs_Gpio_WritePort", "group___g___u_c_s___g_p_i_o_gaff68acc9fb26096cae9374694b43ae92.html#gaff68acc9fb26096cae9374694b43ae92", null ]
+]; \ No newline at end of file
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o___t_y_p_e_s.html b/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o___t_y_p_e_s.html
new file mode 100644
index 0000000..8df6f72
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o___t_y_p_e_s.html
@@ -0,0 +1,214 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: GPIO Referred Types</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___g_p_i_o___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#typedef-members">Callback Functions</a> &#124;
+<a href="#enum-members">Enumerations</a> </div>
+ <div class="headertitle">
+<div class="title">GPIO Referred Types</div> </div>
+<div class="ingroups"><a class="el" href="group___g___u_c_s___g_p_i_o.html">GPIO</a></div></div><!--header-->
+<div class="contents">
+
+<p>Referred types used by the Extended Resource Manager.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___gpio___result_details__t.html">Ucs_Gpio_ResultDetails_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Detailed information used for GPIO results. <a href="struct_ucs___gpio___result_details__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___gpio___result__t.html">Ucs_Gpio_Result_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Result structure of the GPIO Module. <a href="struct_ucs___gpio___result__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Callback Functions</h2></td></tr>
+<tr class="memitem:ga14238b74c9e86db4e775461f2cf9b1cb"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga14238b74c9e86db4e775461f2cf9b1cb.html#ga14238b74c9e86db4e775461f2cf9b1cb">Ucs_Gpio_CreatePortResCb_t</a> )(uint16_t node_address, uint16_t gpio_port_handle, <a class="el" href="struct_ucs___gpio___result__t.html">Ucs_Gpio_Result_t</a> result, void *user_ptr)</td></tr>
+<tr class="memdesc:ga14238b74c9e86db4e775461f2cf9b1cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function signature of result callback used by <a class="el" href="group___g___u_c_s___g_p_i_o_ga76f4de37c98b0cdd7cc25a22a9dac8a9.html#ga76f4de37c98b0cdd7cc25a22a9dac8a9" title="Creates the GPIO port with its associated port instance identifier.">Ucs_Gpio_CreatePort()</a> <a href="#ga14238b74c9e86db4e775461f2cf9b1cb"></a><br/></td></tr>
+<tr class="separator:ga14238b74c9e86db4e775461f2cf9b1cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga69f4d52dfc38232662abd4568e18e3c2"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga69f4d52dfc38232662abd4568e18e3c2.html#ga69f4d52dfc38232662abd4568e18e3c2">Ucs_Gpio_ConfigPinModeResCb_t</a> )(uint16_t node_address, uint16_t gpio_port_handle, <a class="el" href="struct_ucs___gpio___pin_configuration__t.html">Ucs_Gpio_PinConfiguration_t</a> pin_cfg_list[], uint8_t list_sz, <a class="el" href="struct_ucs___gpio___result__t.html">Ucs_Gpio_Result_t</a> result, void *user_ptr)</td></tr>
+<tr class="memdesc:ga69f4d52dfc38232662abd4568e18e3c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function signature of result callback used by <a class="el" href="group___g___u_c_s___g_p_i_o_gaf9ecc1f20870bf49d40521db09854a68.html#gaf9ecc1f20870bf49d40521db09854a68" title="Configures the pin mode of the given GPIO port.">Ucs_Gpio_SetPinMode()</a> and <a class="el" href="group___g___u_c_s___g_p_i_o_ga10b73bad28ba7e0f24d3676f082a11a1.html#ga10b73bad28ba7e0f24d3676f082a11a1" title="Retrieves the pin mode configuration of the given GPIO port.">Ucs_Gpio_GetPinMode()</a>. <a href="#ga69f4d52dfc38232662abd4568e18e3c2"></a><br/></td></tr>
+<tr class="separator:ga69f4d52dfc38232662abd4568e18e3c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga106c6afdd6f996c8bc5d632f08236912"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga106c6afdd6f996c8bc5d632f08236912.html#ga106c6afdd6f996c8bc5d632f08236912">Ucs_Gpio_PinStateResCb_t</a> )(uint16_t node_address, uint16_t gpio_port_handle, uint16_t current_state, uint16_t sticky_state, <a class="el" href="struct_ucs___gpio___result__t.html">Ucs_Gpio_Result_t</a> result, void *user_ptr)</td></tr>
+<tr class="memdesc:ga106c6afdd6f996c8bc5d632f08236912"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function signature of result callback used by <a class="el" href="group___g___u_c_s___g_p_i_o_gaff68acc9fb26096cae9374694b43ae92.html#gaff68acc9fb26096cae9374694b43ae92" title="Writes data to the given GPIO port.">Ucs_Gpio_WritePort()</a> and <a class="el" href="group___g___u_c_s___g_p_i_o_gaa2dc67622555e9e64e4bb524a8e18642.html#gaa2dc67622555e9e64e4bb524a8e18642" title="Reads the pin state of the given GPIO port.">Ucs_Gpio_ReadPort()</a>. <a href="#ga106c6afdd6f996c8bc5d632f08236912"></a><br/></td></tr>
+<tr class="separator:ga106c6afdd6f996c8bc5d632f08236912"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga99bb3bcb2b588bc66d41f3e03d478020"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga99bb3bcb2b588bc66d41f3e03d478020.html#ga99bb3bcb2b588bc66d41f3e03d478020">Ucs_Gpio_TriggerEventResultCb_t</a> )(uint16_t node_address, uint16_t gpio_port_handle, uint16_t rising_edges, uint16_t falling_edges, uint16_t levels, void *user_ptr)</td></tr>
+<tr class="memdesc:ga99bb3bcb2b588bc66d41f3e03d478020"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function signature of result callback used by Gpio_TriggerEvents() <a href="#ga99bb3bcb2b588bc66d41f3e03d478020"></a><br/></td></tr>
+<tr class="separator:ga99bb3bcb2b588bc66d41f3e03d478020"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:gacfcf034325bd7eff2f6fc78e8696ed49"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#gacfcf034325bd7eff2f6fc78e8696ed49">Ucs_Gpio_PinMode_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a3b1cbb2c0c6d6b0cc2ffab0fca8c0db6">UCS_GPIO_UNAVAILABLE</a> = 0x00U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49ad873d79be503a0c950b11f9c2bb78005">UCS_GPIO_UNUSED</a> = 0x01U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49ae900752d71b764e1d516d7f4851a5ad5">UCS_GPIO_INPUT</a> = 0x10U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a1879711b642763de0a241c05ef37a8d1">UCS_GPIO_IN_STICKY_HL</a> = 0x11U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a40f39256ead895d688c6b4453dcc50fd">UCS_GPIO_IN_STICKY_LL</a> = 0x12U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49aa45d36ca2a1e7cf7784cf1a1c584f211">UCS_GPIO_IN_TRIGGER_RE</a> = 0x13U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49ae2e19388cad9b8b469f01fcf28386282">UCS_GPIO_IN_TRIGGER_FE</a> = 0x14U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49ad93bd4a0972f3b9d219d5ee944191adc">UCS_GPIO_IN_TRIGGER_HL</a> = 0x16U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a3afeffaf0739a0c83b4a4f5c8b2819a9">UCS_GPIO_IN_TRIGGER_LL</a> = 0x17U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a58dd9cd05f9b030ea62b58a0a1d0466e">UCS_GPIO_IN_DEBOUNCED</a> = 0x30U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a2b1bbeedf9af00d3ca2ae66cb1c5e24e">UCS_GPIO_IN_DB_TRIGGER_RE</a> = 0x33U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a6b3ef7f6a36417340134f8515ca3cacc">UCS_GPIO_IN_DB_TRIGGER_FE</a> = 0x34U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a0097aaff89dc2390f8cb2538759e7dd1">UCS_GPIO_IN_DB_TRIGGER_HL</a> = 0x36U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a7e3847141ff0ee6fd999d9fc1d87fbae">UCS_GPIO_IN_DB_TRIGGER_LL</a> = 0x37U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a97eb6c69f81b2438926688ef447bf7ee">UCS_GPIO_OUT_DEFAULT_LOW</a> = 0x40U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49ae5cfa651166ae5731b1d2677ab20c32c">UCS_GPIO_OUT_DEFAULT_HIGH</a> = 0x41U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49aa2c5f837c034c9ac5fb048a7e9047d2f">UCS_GPIO_OUT_OPEN_DRAIN</a> = 0x50U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a70501fdc88378cf07868868fb90557fd">UCS_GPIO_OUT_OD_TRIGGER_RE</a> = 0x53U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49abc808199f07f8d370cedf914243dc6a8">UCS_GPIO_OUT_OD_TRIGGER_FE</a> = 0x54U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a35d170a50162566d22e7060f332e1853">UCS_GPIO_OUT_OD_TRIGGER_HL</a> = 0x56U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a8f4405ba3c6e04e5b753e716f923ebd2">UCS_GPIO_OUT_OD_TRIGGER_LL</a> = 0x57U
+<br/>
+ }</td></tr>
+<tr class="memdesc:gacfcf034325bd7eff2f6fc78e8696ed49"><td class="mdescLeft">&#160;</td><td class="mdescRight">The mode of the GPIO pin. <a href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#gacfcf034325bd7eff2f6fc78e8696ed49">More...</a><br/></td></tr>
+<tr class="separator:gacfcf034325bd7eff2f6fc78e8696ed49"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7432b6d95eb2af7bce5fe5809b08d88b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga7432b6d95eb2af7bce5fe5809b08d88b.html#ga7432b6d95eb2af7bce5fe5809b08d88b">Ucs_Gpio_ResultCode_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga7432b6d95eb2af7bce5fe5809b08d88b.html#gga7432b6d95eb2af7bce5fe5809b08d88ba00b6d2bbc409c15ce1f4bbdd53dab993">UCS_GPIO_RES_SUCCESS</a> = 0x00U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga7432b6d95eb2af7bce5fe5809b08d88b.html#gga7432b6d95eb2af7bce5fe5809b08d88ba204d1c257b844f4ed9d31f2a614f7f24">UCS_GPIO_RES_ERR_CMD</a> = 0x01U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga7432b6d95eb2af7bce5fe5809b08d88b.html#gga7432b6d95eb2af7bce5fe5809b08d88ba7a5b3cf49d177ac97cfbb4a2e7796d68">UCS_GPIO_RES_ERR_SYNC</a> = 0x02U
+<br/>
+ }</td></tr>
+<tr class="memdesc:ga7432b6d95eb2af7bce5fe5809b08d88b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Result codes of the GPIO Module. <a href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga7432b6d95eb2af7bce5fe5809b08d88b.html#ga7432b6d95eb2af7bce5fe5809b08d88b">More...</a><br/></td></tr>
+<tr class="separator:ga7432b6d95eb2af7bce5fe5809b08d88b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga292134dc6bc30b6b4f0e3e8882c2e772"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga292134dc6bc30b6b4f0e3e8882c2e772.html#ga292134dc6bc30b6b4f0e3e8882c2e772">Ucs_Gpio_ResultType_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga292134dc6bc30b6b4f0e3e8882c2e772.html#gga292134dc6bc30b6b4f0e3e8882c2e772abd0caef5b4b9f4f2b75f65c7f67f65bc">UCS_GPIO_RESULT_TYPE_TGT</a> = 0x00U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga292134dc6bc30b6b4f0e3e8882c2e772.html#gga292134dc6bc30b6b4f0e3e8882c2e772aa402809c65ce64324a827eb0ab4475b1">UCS_GPIO_RESULT_TYPE_TX</a> = 0x01U
+<br/>
+ }</td></tr>
+<tr class="memdesc:ga292134dc6bc30b6b4f0e3e8882c2e772"><td class="mdescLeft">&#160;</td><td class="mdescRight">This enumerator specifies the kind of result - Target or Transmission. <a href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga292134dc6bc30b6b4f0e3e8882c2e772.html#ga292134dc6bc30b6b4f0e3e8882c2e772">More...</a><br/></td></tr>
+<tr class="separator:ga292134dc6bc30b6b4f0e3e8882c2e772"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Referred types used by the Extended Resource Manager. </p>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o___t_y_p_e_s.js b/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o___t_y_p_e_s.js
new file mode 100644
index 0000000..2fcab4d
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o___t_y_p_e_s.js
@@ -0,0 +1,48 @@
+var group___g___u_c_s___g_p_i_o___t_y_p_e_s =
+[
+ [ "Ucs_Gpio_ResultDetails_t", "struct_ucs___gpio___result_details__t.html", [
+ [ "inic_result", "struct_ucs___gpio___result_details__t_ac8f7bd459f5052601dbbab267d9d8067.html#ac8f7bd459f5052601dbbab267d9d8067", null ],
+ [ "result_type", "struct_ucs___gpio___result_details__t_a87d6ba6c35b8ada8a002fee6caf0c28a.html#a87d6ba6c35b8ada8a002fee6caf0c28a", null ],
+ [ "tx_result", "struct_ucs___gpio___result_details__t_abee2d1d2c9eebcbc9da920664e9eb248.html#abee2d1d2c9eebcbc9da920664e9eb248", null ]
+ ] ],
+ [ "Ucs_Gpio_Result_t", "struct_ucs___gpio___result__t.html", [
+ [ "code", "struct_ucs___gpio___result__t_a5a25ac28b5135e04a465fdead03df796.html#a5a25ac28b5135e04a465fdead03df796", null ],
+ [ "details", "struct_ucs___gpio___result__t_a834bf2a84ecdbd878eb0edbf89bc0b88.html#a834bf2a84ecdbd878eb0edbf89bc0b88", null ]
+ ] ],
+ [ "Ucs_Gpio_ConfigPinModeResCb_t", "group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga69f4d52dfc38232662abd4568e18e3c2.html#ga69f4d52dfc38232662abd4568e18e3c2", null ],
+ [ "Ucs_Gpio_CreatePortResCb_t", "group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga14238b74c9e86db4e775461f2cf9b1cb.html#ga14238b74c9e86db4e775461f2cf9b1cb", null ],
+ [ "Ucs_Gpio_PinStateResCb_t", "group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga106c6afdd6f996c8bc5d632f08236912.html#ga106c6afdd6f996c8bc5d632f08236912", null ],
+ [ "Ucs_Gpio_TriggerEventResultCb_t", "group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga99bb3bcb2b588bc66d41f3e03d478020.html#ga99bb3bcb2b588bc66d41f3e03d478020", null ],
+ [ "Ucs_Gpio_PinMode_t", "group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#gacfcf034325bd7eff2f6fc78e8696ed49", [
+ [ "UCS_GPIO_UNAVAILABLE", "group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a3b1cbb2c0c6d6b0cc2ffab0fca8c0db6", null ],
+ [ "UCS_GPIO_UNUSED", "group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49ad873d79be503a0c950b11f9c2bb78005", null ],
+ [ "UCS_GPIO_INPUT", "group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49ae900752d71b764e1d516d7f4851a5ad5", null ],
+ [ "UCS_GPIO_IN_STICKY_HL", "group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a1879711b642763de0a241c05ef37a8d1", null ],
+ [ "UCS_GPIO_IN_STICKY_LL", "group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a40f39256ead895d688c6b4453dcc50fd", null ],
+ [ "UCS_GPIO_IN_TRIGGER_RE", "group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49aa45d36ca2a1e7cf7784cf1a1c584f211", null ],
+ [ "UCS_GPIO_IN_TRIGGER_FE", "group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49ae2e19388cad9b8b469f01fcf28386282", null ],
+ [ "UCS_GPIO_IN_TRIGGER_HL", "group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49ad93bd4a0972f3b9d219d5ee944191adc", null ],
+ [ "UCS_GPIO_IN_TRIGGER_LL", "group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a3afeffaf0739a0c83b4a4f5c8b2819a9", null ],
+ [ "UCS_GPIO_IN_DEBOUNCED", "group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a58dd9cd05f9b030ea62b58a0a1d0466e", null ],
+ [ "UCS_GPIO_IN_DB_TRIGGER_RE", "group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a2b1bbeedf9af00d3ca2ae66cb1c5e24e", null ],
+ [ "UCS_GPIO_IN_DB_TRIGGER_FE", "group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a6b3ef7f6a36417340134f8515ca3cacc", null ],
+ [ "UCS_GPIO_IN_DB_TRIGGER_HL", "group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a0097aaff89dc2390f8cb2538759e7dd1", null ],
+ [ "UCS_GPIO_IN_DB_TRIGGER_LL", "group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a7e3847141ff0ee6fd999d9fc1d87fbae", null ],
+ [ "UCS_GPIO_OUT_DEFAULT_LOW", "group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a97eb6c69f81b2438926688ef447bf7ee", null ],
+ [ "UCS_GPIO_OUT_DEFAULT_HIGH", "group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49ae5cfa651166ae5731b1d2677ab20c32c", null ],
+ [ "UCS_GPIO_OUT_OPEN_DRAIN", "group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49aa2c5f837c034c9ac5fb048a7e9047d2f", null ],
+ [ "UCS_GPIO_OUT_OD_TRIGGER_RE", "group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a70501fdc88378cf07868868fb90557fd", null ],
+ [ "UCS_GPIO_OUT_OD_TRIGGER_FE", "group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49abc808199f07f8d370cedf914243dc6a8", null ],
+ [ "UCS_GPIO_OUT_OD_TRIGGER_HL", "group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a35d170a50162566d22e7060f332e1853", null ],
+ [ "UCS_GPIO_OUT_OD_TRIGGER_LL", "group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a8f4405ba3c6e04e5b753e716f923ebd2", null ]
+ ] ],
+ [ "Ucs_Gpio_ResultCode_t", "group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga7432b6d95eb2af7bce5fe5809b08d88b.html#ga7432b6d95eb2af7bce5fe5809b08d88b", [
+ [ "UCS_GPIO_RES_SUCCESS", "group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga7432b6d95eb2af7bce5fe5809b08d88b.html#gga7432b6d95eb2af7bce5fe5809b08d88ba00b6d2bbc409c15ce1f4bbdd53dab993", null ],
+ [ "UCS_GPIO_RES_ERR_CMD", "group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga7432b6d95eb2af7bce5fe5809b08d88b.html#gga7432b6d95eb2af7bce5fe5809b08d88ba204d1c257b844f4ed9d31f2a614f7f24", null ],
+ [ "UCS_GPIO_RES_ERR_SYNC", "group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga7432b6d95eb2af7bce5fe5809b08d88b.html#gga7432b6d95eb2af7bce5fe5809b08d88ba7a5b3cf49d177ac97cfbb4a2e7796d68", null ]
+ ] ],
+ [ "Ucs_Gpio_ResultType_t", "group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga292134dc6bc30b6b4f0e3e8882c2e772.html#ga292134dc6bc30b6b4f0e3e8882c2e772", [
+ [ "UCS_GPIO_RESULT_TYPE_TGT", "group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga292134dc6bc30b6b4f0e3e8882c2e772.html#gga292134dc6bc30b6b4f0e3e8882c2e772abd0caef5b4b9f4f2b75f65c7f67f65bc", null ],
+ [ "UCS_GPIO_RESULT_TYPE_TX", "group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga292134dc6bc30b6b4f0e3e8882c2e772.html#gga292134dc6bc30b6b4f0e3e8882c2e772aa402809c65ce64324a827eb0ab4475b1", null ]
+ ] ]
+]; \ No newline at end of file
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga106c6afdd6f996c8bc5d632f08236912.html b/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga106c6afdd6f996c8bc5d632f08236912.html
new file mode 100644
index 0000000..7c43234
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga106c6afdd6f996c8bc5d632f08236912.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Gpio_PinStateResCb_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___g_p_i_o___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga106c6afdd6f996c8bc5d632f08236912"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* Ucs_Gpio_PinStateResCb_t)(uint16_t node_address, uint16_t gpio_port_handle, uint16_t current_state, uint16_t sticky_state, <a class="el" href="struct_ucs___gpio___result__t.html">Ucs_Gpio_Result_t</a> result, void *user_ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Function signature of result callback used by <a class="el" href="group___g___u_c_s___g_p_i_o_gaff68acc9fb26096cae9374694b43ae92.html#gaff68acc9fb26096cae9374694b43ae92" title="Writes data to the given GPIO port.">Ucs_Gpio_WritePort()</a> and <a class="el" href="group___g___u_c_s___g_p_i_o_gaa2dc67622555e9e64e4bb524a8e18642.html#gaa2dc67622555e9e64e4bb524a8e18642" title="Reads the pin state of the given GPIO port.">Ucs_Gpio_ReadPort()</a>. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">node_address</td><td>The node address of the device from where the results come </td></tr>
+ <tr><td class="paramname">gpio_port_handle</td><td>The port resource handle. </td></tr>
+ <tr><td class="paramname">current_state</td><td>The current state of the GPIO pin </td></tr>
+ <tr><td class="paramname">sticky_state</td><td>The sticky state of all GPIO pins configured as sticky inputs. </td></tr>
+ <tr><td class="paramname">result</td><td>The operation result </td></tr>
+ <tr><td class="paramname">user_ptr</td><td>User reference provided in <a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t::user_ptr</a> </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s.html">GPIO Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga14238b74c9e86db4e775461f2cf9b1cb.html b/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga14238b74c9e86db4e775461f2cf9b1cb.html
new file mode 100644
index 0000000..dec2041
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga14238b74c9e86db4e775461f2cf9b1cb.html
@@ -0,0 +1,133 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Gpio_CreatePortResCb_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___g_p_i_o___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga14238b74c9e86db4e775461f2cf9b1cb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* Ucs_Gpio_CreatePortResCb_t)(uint16_t node_address, uint16_t gpio_port_handle, <a class="el" href="struct_ucs___gpio___result__t.html">Ucs_Gpio_Result_t</a> result, void *user_ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Function signature of result callback used by <a class="el" href="group___g___u_c_s___g_p_i_o_ga76f4de37c98b0cdd7cc25a22a9dac8a9.html#ga76f4de37c98b0cdd7cc25a22a9dac8a9" title="Creates the GPIO port with its associated port instance identifier.">Ucs_Gpio_CreatePort()</a> </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">node_address</td><td>The node address of the device from where the results come </td></tr>
+ <tr><td class="paramname">gpio_port_handle</td><td>The port resource handle. </td></tr>
+ <tr><td class="paramname">result</td><td>The operation result </td></tr>
+ <tr><td class="paramname">user_ptr</td><td>User reference provided in <a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t::user_ptr</a> </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s.html">GPIO Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga292134dc6bc30b6b4f0e3e8882c2e772.html b/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga292134dc6bc30b6b4f0e3e8882c2e772.html
new file mode 100644
index 0000000..d1621ce
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga292134dc6bc30b6b4f0e3e8882c2e772.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Gpio_ResultType_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___g_p_i_o___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga292134dc6bc30b6b4f0e3e8882c2e772"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga292134dc6bc30b6b4f0e3e8882c2e772.html#ga292134dc6bc30b6b4f0e3e8882c2e772">Ucs_Gpio_ResultType_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>This enumerator specifies the kind of result - Target or Transmission. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga292134dc6bc30b6b4f0e3e8882c2e772abd0caef5b4b9f4f2b75f65c7f67f65bc"></a>UCS_GPIO_RESULT_TYPE_TGT</em>&nbsp;</td><td>
+<p>Specifies the target results, typically INIC function-specific error from target device. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga292134dc6bc30b6b4f0e3e8882c2e772aa402809c65ce64324a827eb0ab4475b1"></a>UCS_GPIO_RESULT_TYPE_TX</em>&nbsp;</td><td>
+<p>Specifies the transmission error information that occurred on the MOST network. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s.html">GPIO Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga69f4d52dfc38232662abd4568e18e3c2.html b/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga69f4d52dfc38232662abd4568e18e3c2.html
new file mode 100644
index 0000000..413650b
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga69f4d52dfc38232662abd4568e18e3c2.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Gpio_ConfigPinModeResCb_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___g_p_i_o___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga69f4d52dfc38232662abd4568e18e3c2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* Ucs_Gpio_ConfigPinModeResCb_t)(uint16_t node_address, uint16_t gpio_port_handle, <a class="el" href="struct_ucs___gpio___pin_configuration__t.html">Ucs_Gpio_PinConfiguration_t</a> pin_cfg_list[], uint8_t list_sz, <a class="el" href="struct_ucs___gpio___result__t.html">Ucs_Gpio_Result_t</a> result, void *user_ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Function signature of result callback used by <a class="el" href="group___g___u_c_s___g_p_i_o_gaf9ecc1f20870bf49d40521db09854a68.html#gaf9ecc1f20870bf49d40521db09854a68" title="Configures the pin mode of the given GPIO port.">Ucs_Gpio_SetPinMode()</a> and <a class="el" href="group___g___u_c_s___g_p_i_o_ga10b73bad28ba7e0f24d3676f082a11a1.html#ga10b73bad28ba7e0f24d3676f082a11a1" title="Retrieves the pin mode configuration of the given GPIO port.">Ucs_Gpio_GetPinMode()</a>. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">node_address</td><td>The node address of the device from where the results come </td></tr>
+ <tr><td class="paramname">gpio_port_handle</td><td>The port resource handle. </td></tr>
+ <tr><td class="paramname">pin</td><td>The pin that has been configured. </td></tr>
+ <tr><td class="paramname">mode</td><td>The mode of the GPIO pin. </td></tr>
+ <tr><td class="paramname">result</td><td>The operation result </td></tr>
+ <tr><td class="paramname">user_ptr</td><td>User reference provided in <a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t::user_ptr</a> </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s.html">GPIO Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga7432b6d95eb2af7bce5fe5809b08d88b.html b/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga7432b6d95eb2af7bce5fe5809b08d88b.html
new file mode 100644
index 0000000..6e3b179
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga7432b6d95eb2af7bce5fe5809b08d88b.html
@@ -0,0 +1,139 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Gpio_ResultCode_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___g_p_i_o___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga7432b6d95eb2af7bce5fe5809b08d88b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga7432b6d95eb2af7bce5fe5809b08d88b.html#ga7432b6d95eb2af7bce5fe5809b08d88b">Ucs_Gpio_ResultCode_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Result codes of the GPIO Module. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga7432b6d95eb2af7bce5fe5809b08d88ba00b6d2bbc409c15ce1f4bbdd53dab993"></a>UCS_GPIO_RES_SUCCESS</em>&nbsp;</td><td>
+<p>GPIO command succeeded. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga7432b6d95eb2af7bce5fe5809b08d88ba204d1c257b844f4ed9d31f2a614f7f24"></a>UCS_GPIO_RES_ERR_CMD</em>&nbsp;</td><td>
+<p>GPIO command failed due to an INIC function-specific error or a transmission error on the MOST network. </p>
+<p>The <em>result_type</em> section in <a class="el" href="struct_ucs___gpio___result_details__t.html" title="Detailed information used for GPIO results.">Ucs_Gpio_ResultDetails_t</a> will provide you with more detailed information concerning the error type. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga7432b6d95eb2af7bce5fe5809b08d88ba7a5b3cf49d177ac97cfbb4a2e7796d68"></a>UCS_GPIO_RES_ERR_SYNC</em>&nbsp;</td><td>
+<p>Remote synchronization of target device failed. </p>
+<p>The <em>inic_result</em> section in <a class="el" href="struct_ucs___gpio___result_details__t.html" title="Detailed information used for GPIO results.">Ucs_Gpio_ResultDetails_t</a> will provide you with more detailed information concerning this error code. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s.html">GPIO Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga99bb3bcb2b588bc66d41f3e03d478020.html b/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga99bb3bcb2b588bc66d41f3e03d478020.html
new file mode 100644
index 0000000..2f1df3f
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga99bb3bcb2b588bc66d41f3e03d478020.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Gpio_TriggerEventResultCb_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___g_p_i_o___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga99bb3bcb2b588bc66d41f3e03d478020"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* Ucs_Gpio_TriggerEventResultCb_t)(uint16_t node_address, uint16_t gpio_port_handle, uint16_t rising_edges, uint16_t falling_edges, uint16_t levels, void *user_ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Function signature of result callback used by Gpio_TriggerEvents() </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">node_address</td><td>The node address of the device from where the results come </td></tr>
+ <tr><td class="paramname">gpio_port_handle</td><td>The port resource handle. </td></tr>
+ <tr><td class="paramname">rising_edges</td><td>The GPIO pins on which a rising-edge trigger condition was detected </td></tr>
+ <tr><td class="paramname">falling_edges</td><td>The GPIO pins on which a falling-edge trigger condition was detected </td></tr>
+ <tr><td class="paramname">levels</td><td>The GPIO pins on which a logic level condition was detected </td></tr>
+ <tr><td class="paramname">user_ptr</td><td>User reference provided in <a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t::user_ptr</a> </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s.html">GPIO Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html b/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html
new file mode 100644
index 0000000..a10776d
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html
@@ -0,0 +1,191 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Gpio_PinMode_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___g_p_i_o___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gacfcf034325bd7eff2f6fc78e8696ed49"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#gacfcf034325bd7eff2f6fc78e8696ed49">Ucs_Gpio_PinMode_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The mode of the GPIO pin. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="ggacfcf034325bd7eff2f6fc78e8696ed49a3b1cbb2c0c6d6b0cc2ffab0fca8c0db6"></a>UCS_GPIO_UNAVAILABLE</em>&nbsp;</td><td>
+<p>Unavailable Mode. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggacfcf034325bd7eff2f6fc78e8696ed49ad873d79be503a0c950b11f9c2bb78005"></a>UCS_GPIO_UNUSED</em>&nbsp;</td><td>
+<p>Unused Mode. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggacfcf034325bd7eff2f6fc78e8696ed49ae900752d71b764e1d516d7f4851a5ad5"></a>UCS_GPIO_INPUT</em>&nbsp;</td><td>
+<p>Input Mode. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggacfcf034325bd7eff2f6fc78e8696ed49a1879711b642763de0a241c05ef37a8d1"></a>UCS_GPIO_IN_STICKY_HL</em>&nbsp;</td><td>
+<p>InputStickyHighLevel Mode. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggacfcf034325bd7eff2f6fc78e8696ed49a40f39256ead895d688c6b4453dcc50fd"></a>UCS_GPIO_IN_STICKY_LL</em>&nbsp;</td><td>
+<p>InputStickyLowLevel Mode. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggacfcf034325bd7eff2f6fc78e8696ed49aa45d36ca2a1e7cf7784cf1a1c584f211"></a>UCS_GPIO_IN_TRIGGER_RE</em>&nbsp;</td><td>
+<p>InputTriggerRisingEdge Mode. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggacfcf034325bd7eff2f6fc78e8696ed49ae2e19388cad9b8b469f01fcf28386282"></a>UCS_GPIO_IN_TRIGGER_FE</em>&nbsp;</td><td>
+<p>InputTriggerFallingEdge Mode. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggacfcf034325bd7eff2f6fc78e8696ed49ad93bd4a0972f3b9d219d5ee944191adc"></a>UCS_GPIO_IN_TRIGGER_HL</em>&nbsp;</td><td>
+<p>InputTriggerHighLevel Mode. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggacfcf034325bd7eff2f6fc78e8696ed49a3afeffaf0739a0c83b4a4f5c8b2819a9"></a>UCS_GPIO_IN_TRIGGER_LL</em>&nbsp;</td><td>
+<p>InputTriggerLowLevel Mode. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggacfcf034325bd7eff2f6fc78e8696ed49a58dd9cd05f9b030ea62b58a0a1d0466e"></a>UCS_GPIO_IN_DEBOUNCED</em>&nbsp;</td><td>
+<p>InputDebounced Mode. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggacfcf034325bd7eff2f6fc78e8696ed49a2b1bbeedf9af00d3ca2ae66cb1c5e24e"></a>UCS_GPIO_IN_DB_TRIGGER_RE</em>&nbsp;</td><td>
+<p>InputDebouncedTriggerRisingEdge Mode. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggacfcf034325bd7eff2f6fc78e8696ed49a6b3ef7f6a36417340134f8515ca3cacc"></a>UCS_GPIO_IN_DB_TRIGGER_FE</em>&nbsp;</td><td>
+<p>InputDebouncedTriggerFallingEdge Mode. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggacfcf034325bd7eff2f6fc78e8696ed49a0097aaff89dc2390f8cb2538759e7dd1"></a>UCS_GPIO_IN_DB_TRIGGER_HL</em>&nbsp;</td><td>
+<p>InputDebouncedTriggerHighLevel Mode. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggacfcf034325bd7eff2f6fc78e8696ed49a7e3847141ff0ee6fd999d9fc1d87fbae"></a>UCS_GPIO_IN_DB_TRIGGER_LL</em>&nbsp;</td><td>
+<p>InputDebouncedTriggerLowLevel Mode. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggacfcf034325bd7eff2f6fc78e8696ed49a97eb6c69f81b2438926688ef447bf7ee"></a>UCS_GPIO_OUT_DEFAULT_LOW</em>&nbsp;</td><td>
+<p>OutputDefaultLow Mode. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggacfcf034325bd7eff2f6fc78e8696ed49ae5cfa651166ae5731b1d2677ab20c32c"></a>UCS_GPIO_OUT_DEFAULT_HIGH</em>&nbsp;</td><td>
+<p>OutputDefaultHigh Mode. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggacfcf034325bd7eff2f6fc78e8696ed49aa2c5f837c034c9ac5fb048a7e9047d2f"></a>UCS_GPIO_OUT_OPEN_DRAIN</em>&nbsp;</td><td>
+<p>OutputOpenDrain Mode. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggacfcf034325bd7eff2f6fc78e8696ed49a70501fdc88378cf07868868fb90557fd"></a>UCS_GPIO_OUT_OD_TRIGGER_RE</em>&nbsp;</td><td>
+<p>OutputOpenDrainTriggerRisingEdge Mode. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggacfcf034325bd7eff2f6fc78e8696ed49abc808199f07f8d370cedf914243dc6a8"></a>UCS_GPIO_OUT_OD_TRIGGER_FE</em>&nbsp;</td><td>
+<p>OutputOpenDrainTriggerFallingEdge Mode. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggacfcf034325bd7eff2f6fc78e8696ed49a35d170a50162566d22e7060f332e1853"></a>UCS_GPIO_OUT_OD_TRIGGER_HL</em>&nbsp;</td><td>
+<p>OutputOpenDrainTriggerHighLevel Mode. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggacfcf034325bd7eff2f6fc78e8696ed49a8f4405ba3c6e04e5b753e716f923ebd2"></a>UCS_GPIO_OUT_OD_TRIGGER_LL</em>&nbsp;</td><td>
+<p>OutputOpenDrainTriggerLowLevel Mode. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s.html">GPIO Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o_ga10b73bad28ba7e0f24d3676f082a11a1.html b/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o_ga10b73bad28ba7e0f24d3676f082a11a1.html
new file mode 100644
index 0000000..90aa70d
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o_ga10b73bad28ba7e0f24d3676f082a11a1.html
@@ -0,0 +1,219 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Gpio_GetPinMode</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___g_p_i_o.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga10b73bad28ba7e0f24d3676f082a11a1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a> Ucs_Gpio_GetPinMode </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *&#160;</td>
+ <td class="paramname"><em>self</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>destination_address</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>gpio_port_handle</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga69f4d52dfc38232662abd4568e18e3c2.html#ga69f4d52dfc38232662abd4568e18e3c2">Ucs_Gpio_ConfigPinModeResCb_t</a>&#160;</td>
+ <td class="paramname"><em>result_fptr</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Retrieves the pin mode configuration of the given GPIO port. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This function corresponds with the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-GPIOPortPinMode703">INIC.GPIOPortPinMode</a>.</td></tr>
+</table>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>The UNICENS instance pointer </td></tr>
+ <tr><td class="paramname">destination_address</td><td>Address of the target device. Use the <code>UCS_ADDR_LOCAL_DEV</code> macro to target the local device. <br/>
+ The following address ranges are supported:<ul>
+<li>[0x10 ... 0x2FF]</li>
+<li>[0x500 ... 0xFEF]</li>
+<li>UCS_ADDR_LOCAL_DEV </li>
+</ul>
+</td></tr>
+ <tr><td class="paramname">gpio_port_handle</td><td>The GPIO Port resource handle. <table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>GPIOPortHandle</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">result_fptr</td><td>Required result callback function pointer. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible return values are shown in the table below. <table class="doxtable">
+<tr>
+<th>Value </th><th>Description</th></tr>
+<tr>
+<td>UCS_RET_SUCCESS </td><td>No error </td></tr>
+<tr>
+<td>UCS_RET_ERR_PARAM </td><td>At least one parameter is wrong </td></tr>
+<tr>
+<td>UCS_RET_ERR_BUFFER_OVERFLOW </td><td>No message buffer available </td></tr>
+<tr>
+<td>UCS_RET_ERR_API_LOCKED </td><td>API is currently locked </td></tr>
+<tr>
+<td>UCS_RET_ERR_NOT_INITIALIZED </td><td>UNICENS is not initialized </td></tr>
+</table>
+</dd></dl>
+<p><br/>
+ <b>Example</b> </p>
+<div class="fragment"><div class="line"><span class="comment">// Main function</span></div>
+<div class="line"><span class="keywordtype">void</span> main()</div>
+<div class="line">{</div>
+<div class="line"> <span class="comment">// Read configuration of GPIO pins</span></div>
+<div class="line"> <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd" title="Standard return codes used for synchronous response.">Ucs_Return_t</a> result = <a class="code" href="group___g___u_c_s___g_p_i_o_ga10b73bad28ba7e0f24d3676f082a11a1.html#ga10b73bad28ba7e0f24d3676f082a11a1" title="Retrieves the pin mode configuration of the given GPIO port.">Ucs_Gpio_GetPinMode</a>(0x222U, 0x1D00, &amp;App_GpioConfigPinModeResCb);</div>
+<div class="line"> <span class="keywordflow">if</span> (result != <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda3fb51656e17ee4802f23706f35e349bc" title="Operation successfully completed.">UCS_RET_SUCCESS</a>)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">// Error handling here </span></div>
+<div class="line"> }</div>
+<div class="line">}</div>
+<div class="line"></div>
+<div class="line"><span class="comment">// The event handler function</span></div>
+<div class="line"><span class="comment">// Handle GpioConfigPinMode event</span></div>
+<div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> App_GpioConfigPinModeResCb(uint16_t device_id, uint16_t port_handle, <a class="code" href="struct_ucs___gpio___pin_configuration__t.html" title="This structure contains information on the GPIO pin configuration.">Ucs_Gpio_PinConfiguration_t</a> pin_cfg_list[], uint8_t list_sz, <a class="code" href="struct_ucs___gpio___result__t.html" title="Result structure of the GPIO Module.">Ucs_Gpio_Result_t</a> result, <span class="keywordtype">void</span> * user_ptr)</div>
+<div class="line">{</div>
+<div class="line"> <span class="keywordflow">if</span> (result.<a class="code" href="struct_ucs___gpio___result__t_a5a25ac28b5135e04a465fdead03df796.html#a5a25ac28b5135e04a465fdead03df796" title="Result code.">code</a> == <a class="code" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga7432b6d95eb2af7bce5fe5809b08d88b.html#gga7432b6d95eb2af7bce5fe5809b08d88ba00b6d2bbc409c15ce1f4bbdd53dab993" title="GPIO command succeeded.">UCS_GPIO_RES_SUCCESS</a>)</div>
+<div class="line"> {</div>
+<div class="line"> uint8_t i;</div>
+<div class="line"> <span class="keywordflow">for</span> (i = 0U; i &lt; list_sz; i++)</div>
+<div class="line"> { </div>
+<div class="line"> <span class="comment">// Configuration list of all GPIO pins</span></div>
+<div class="line"> <span class="comment">// Do what needs to be..</span></div>
+<div class="line"> }</div>
+<div class="line"> }</div>
+<div class="line"> <span class="keywordflow">else</span></div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">// Error handling here</span></div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___g_p_i_o.html">GPIO</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o_ga76f4de37c98b0cdd7cc25a22a9dac8a9.html b/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o_ga76f4de37c98b0cdd7cc25a22a9dac8a9.html
new file mode 100644
index 0000000..a985286
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o_ga76f4de37c98b0cdd7cc25a22a9dac8a9.html
@@ -0,0 +1,224 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Gpio_CreatePort</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___g_p_i_o.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga76f4de37c98b0cdd7cc25a22a9dac8a9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a> Ucs_Gpio_CreatePort </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *&#160;</td>
+ <td class="paramname"><em>self</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>destination_address</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint8_t&#160;</td>
+ <td class="paramname"><em>index</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>debounce_time</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga14238b74c9e86db4e775461f2cf9b1cb.html#ga14238b74c9e86db4e775461f2cf9b1cb">Ucs_Gpio_CreatePortResCb_t</a>&#160;</td>
+ <td class="paramname"><em>result_fptr</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates the GPIO port with its associated port instance identifier. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This function corresponds with the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-GPIOPortCreate701">INIC.GPIOPortCreate</a>.</td></tr>
+</table>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>The UNICENS instance pointer </td></tr>
+ <tr><td class="paramname">destination_address</td><td>Address of the target device. Use the <code>UCS_ADDR_LOCAL_DEV</code> macro to target the local device. <br/>
+ The following address ranges are supported:<ul>
+<li>[0x10 ... 0x2FF]</li>
+<li>[0x500 ... 0xFEF]</li>
+<li>UCS_ADDR_LOCAL_DEV </li>
+</ul>
+</td></tr>
+ <tr><td class="paramname">index</td><td>The index of the GPIO Port instance. <table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>Index</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">debounce_time</td><td>The timeout for the GPIO debounce timer (in ms). <table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>DebounceTime</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">result_fptr</td><td>Required result callback function pointer. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible return values are shown in the table below. <table class="doxtable">
+<tr>
+<th>Value </th><th>Description</th></tr>
+<tr>
+<td>UCS_RET_SUCCESS </td><td>No error </td></tr>
+<tr>
+<td>UCS_RET_ERR_PARAM </td><td>At least one parameter is wrong </td></tr>
+<tr>
+<td>UCS_RET_ERR_BUFFER_OVERFLOW </td><td>No message buffer available </td></tr>
+<tr>
+<td>UCS_RET_ERR_API_LOCKED </td><td>API is currently locked </td></tr>
+<tr>
+<td>UCS_RET_ERR_NOT_INITIALIZED </td><td>UNICENS is not initialized </td></tr>
+</table>
+</dd></dl>
+<p><br/>
+ <b>Example</b> </p>
+<div class="fragment"><div class="line"><span class="comment">// Main function</span></div>
+<div class="line"><span class="keywordtype">void</span> main()</div>
+<div class="line">{</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd" title="Standard return codes used for synchronous response.">Ucs_Return_t</a> result = <a class="code" href="group___g___u_c_s___g_p_i_o_ga76f4de37c98b0cdd7cc25a22a9dac8a9.html#ga76f4de37c98b0cdd7cc25a22a9dac8a9" title="Creates the GPIO port with its associated port instance identifier.">Ucs_Gpio_CreatePort</a>(<a class="code" href="group___g___u_c_s___i_r_m_ga17bc521c78b99dc17f16161199cd4c1a.html#ga17bc521c78b99dc17f16161199cd4c1a" title="Defines the address of the local device.">UCS_ADDR_LOCAL_DEV</a>, 0x00U, 0x0003U, &amp;App_GpioCreatePortResCb);</div>
+<div class="line"> <span class="keywordflow">if</span> (result != <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda3fb51656e17ee4802f23706f35e349bc" title="Operation successfully completed.">UCS_RET_SUCCESS</a>)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">// Error handling here </span></div>
+<div class="line"> }</div>
+<div class="line">}</div>
+<div class="line"></div>
+<div class="line"><span class="comment">// The GPIO CreatePort event handler function</span></div>
+<div class="line"><span class="comment">// Handle GpioCreatePort event</span></div>
+<div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> App_GpioCreatePortResCb(uint16_t device_id, uint16_t port_handle, <a class="code" href="struct_ucs___gpio___result__t.html" title="Result structure of the GPIO Module.">Ucs_Gpio_Result_t</a> result, <span class="keywordtype">void</span> * user_ptr)</div>
+<div class="line">{</div>
+<div class="line"> <span class="keywordflow">if</span> (result.<a class="code" href="struct_ucs___gpio___result__t_a5a25ac28b5135e04a465fdead03df796.html#a5a25ac28b5135e04a465fdead03df796" title="Result code.">code</a> == <a class="code" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga7432b6d95eb2af7bce5fe5809b08d88b.html#gga7432b6d95eb2af7bce5fe5809b08d88ba00b6d2bbc409c15ce1f4bbdd53dab993" title="GPIO command succeeded.">UCS_GPIO_RES_SUCCESS</a>)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">// Store received port handle</span></div>
+<div class="line"> }</div>
+<div class="line"> <span class="keywordflow">else</span></div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">// Error handling here</span></div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___g_p_i_o.html">GPIO</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o_gaa2dc67622555e9e64e4bb524a8e18642.html b/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o_gaa2dc67622555e9e64e4bb524a8e18642.html
new file mode 100644
index 0000000..abc8fbf
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o_gaa2dc67622555e9e64e4bb524a8e18642.html
@@ -0,0 +1,213 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Gpio_ReadPort</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___g_p_i_o.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gaa2dc67622555e9e64e4bb524a8e18642"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a> Ucs_Gpio_ReadPort </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *&#160;</td>
+ <td class="paramname"><em>self</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>destination_address</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>gpio_port_handle</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga106c6afdd6f996c8bc5d632f08236912.html#ga106c6afdd6f996c8bc5d632f08236912">Ucs_Gpio_PinStateResCb_t</a>&#160;</td>
+ <td class="paramname"><em>result_fptr</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reads the pin state of the given GPIO port. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This function corresponds with the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-GPIOPortPinState704">INIC.GPIOPortPinState</a>.</td></tr>
+</table>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>The UNICENS instance pointer </td></tr>
+ <tr><td class="paramname">destination_address</td><td>Address of the target device. Use the <code>UCS_ADDR_LOCAL_DEV</code> macro to target the local device. <br/>
+ The following address ranges are supported:<ul>
+<li>[0x10 ... 0x2FF]</li>
+<li>[0x500 ... 0xFEF]</li>
+<li>UCS_ADDR_LOCAL_DEV </li>
+</ul>
+</td></tr>
+ <tr><td class="paramname">gpio_port_handle</td><td>The GPIO Port resource handle. <table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>GPIOPortHandle</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">result_fptr</td><td>Required result callback function pointer. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible return values are shown in the table below. <table class="doxtable">
+<tr>
+<th>Value </th><th>Description</th></tr>
+<tr>
+<td>UCS_RET_SUCCESS </td><td>No error </td></tr>
+<tr>
+<td>UCS_RET_ERR_PARAM </td><td>At least one parameter is wrong </td></tr>
+<tr>
+<td>UCS_RET_ERR_BUFFER_OVERFLOW </td><td>No message buffer available </td></tr>
+<tr>
+<td>UCS_RET_ERR_API_LOCKED </td><td>API is currently locked </td></tr>
+<tr>
+<td>UCS_RET_ERR_NOT_INITIALIZED </td><td>UNICENS is not initialized </td></tr>
+</table>
+</dd></dl>
+<p><br/>
+ <b>Example</b> </p>
+<div class="fragment"><div class="line"><span class="comment">// Main function</span></div>
+<div class="line"><span class="keywordtype">void</span> main()</div>
+<div class="line">{</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd" title="Standard return codes used for synchronous response.">Ucs_Return_t</a> result = <a class="code" href="group___g___u_c_s___g_p_i_o_gaa2dc67622555e9e64e4bb524a8e18642.html#gaa2dc67622555e9e64e4bb524a8e18642" title="Reads the pin state of the given GPIO port.">Ucs_Gpio_ReadPort</a>(<a class="code" href="group___g___u_c_s___i_r_m_ga17bc521c78b99dc17f16161199cd4c1a.html#ga17bc521c78b99dc17f16161199cd4c1a" title="Defines the address of the local device.">UCS_ADDR_LOCAL_DEV</a>, 0x1D00, &amp;App_GpioReadPortResCb);</div>
+<div class="line"> <span class="keywordflow">if</span> (result != <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda3fb51656e17ee4802f23706f35e349bc" title="Operation successfully completed.">UCS_RET_SUCCESS</a>)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">// Error handling here </span></div>
+<div class="line"> }</div>
+<div class="line">}</div>
+<div class="line"></div>
+<div class="line"><span class="comment">// The event handler function</span></div>
+<div class="line"><span class="comment">// Handle GpioReadPort event</span></div>
+<div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> App_GpioReadPortResCb(uint16_t device_id, uint16_t port_handle, uint16_t current_state, uint16_t sticky_state, <a class="code" href="struct_ucs___gpio___result__t.html" title="Result structure of the GPIO Module.">Ucs_Gpio_Result_t</a> result)</div>
+<div class="line">{</div>
+<div class="line"> <span class="keywordflow">if</span> (result.<a class="code" href="struct_ucs___gpio___result__t_a5a25ac28b5135e04a465fdead03df796.html#a5a25ac28b5135e04a465fdead03df796" title="Result code.">code</a> == <a class="code" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga7432b6d95eb2af7bce5fe5809b08d88b.html#gga7432b6d95eb2af7bce5fe5809b08d88ba00b6d2bbc409c15ce1f4bbdd53dab993" title="GPIO command succeeded.">UCS_GPIO_RES_SUCCESS</a>)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">// Do what needs to be..</span></div>
+<div class="line"> }</div>
+<div class="line"> <span class="keywordflow">else</span></div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">// Error handling here</span></div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___g_p_i_o.html">GPIO</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o_gaf9ecc1f20870bf49d40521db09854a68.html b/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o_gaf9ecc1f20870bf49d40521db09854a68.html
new file mode 100644
index 0000000..effbcfe
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o_gaf9ecc1f20870bf49d40521db09854a68.html
@@ -0,0 +1,245 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Gpio_SetPinMode</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___g_p_i_o.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gaf9ecc1f20870bf49d40521db09854a68"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a> Ucs_Gpio_SetPinMode </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *&#160;</td>
+ <td class="paramname"><em>self</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>destination_address</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>gpio_port_handle</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint8_t&#160;</td>
+ <td class="paramname"><em>pin</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#gacfcf034325bd7eff2f6fc78e8696ed49">Ucs_Gpio_PinMode_t</a>&#160;</td>
+ <td class="paramname"><em>mode</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga69f4d52dfc38232662abd4568e18e3c2.html#ga69f4d52dfc38232662abd4568e18e3c2">Ucs_Gpio_ConfigPinModeResCb_t</a>&#160;</td>
+ <td class="paramname"><em>result_fptr</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Configures the pin mode of the given GPIO port. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This function corresponds with the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-GPIOPortPinMode703">INIC.GPIOPortPinMode</a>.</td></tr>
+</table>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>The UNICENS instance pointer </td></tr>
+ <tr><td class="paramname">destination_address</td><td>Address of the target device. Use the <code>UCS_ADDR_LOCAL_DEV</code> macro to target the local device. <br/>
+ The following address ranges are supported:<ul>
+<li>[0x10 ... 0x2FF]</li>
+<li>[0x500 ... 0xFEF]</li>
+<li>UCS_ADDR_LOCAL_DEV </li>
+</ul>
+</td></tr>
+ <tr><td class="paramname">gpio_port_handle</td><td>The GPIO Port resource handle. <table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>GPIOPortHandle</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">pin</td><td>The GPIO pin that is to be configured. <table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>Pin</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">mode</td><td>The mode of the GPIO pin. <table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>Mode</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">result_fptr</td><td>Required result callback function pointer. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible return values are shown in the table below. <table class="doxtable">
+<tr>
+<th>Value </th><th>Description</th></tr>
+<tr>
+<td>UCS_RET_SUCCESS </td><td>No error </td></tr>
+<tr>
+<td>UCS_RET_ERR_PARAM </td><td>At least one parameter is wrong </td></tr>
+<tr>
+<td>UCS_RET_ERR_BUFFER_OVERFLOW </td><td>No message buffer available </td></tr>
+<tr>
+<td>UCS_RET_ERR_API_LOCKED </td><td>API is currently locked </td></tr>
+<tr>
+<td>UCS_RET_ERR_NOT_INITIALIZED </td><td>UNICENS is not initialized </td></tr>
+</table>
+</dd></dl>
+<p><br/>
+ <b>Example</b> </p>
+<div class="fragment"><div class="line"><span class="comment">// Main function</span></div>
+<div class="line"><span class="keywordtype">void</span> main()</div>
+<div class="line">{</div>
+<div class="line"> <span class="comment">// Set configuration of GPIO pin no. 3</span></div>
+<div class="line"> <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd" title="Standard return codes used for synchronous response.">Ucs_Return_t</a> result = <a class="code" href="group___g___u_c_s___g_p_i_o_gaf9ecc1f20870bf49d40521db09854a68.html#gaf9ecc1f20870bf49d40521db09854a68" title="Configures the pin mode of the given GPIO port.">Ucs_Gpio_SetPinMode</a>(0x221U, 0x1D00, 0x03U, <a class="code" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a97eb6c69f81b2438926688ef447bf7ee" title="OutputDefaultLow Mode.">UCS_GPIO_OUT_DEFAULT_LOW</a>, &amp;App_GpioConfigPinModeResCb);</div>
+<div class="line"> <span class="keywordflow">if</span> (result != <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda3fb51656e17ee4802f23706f35e349bc" title="Operation successfully completed.">UCS_RET_SUCCESS</a>)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">// Error handling here </span></div>
+<div class="line"> }</div>
+<div class="line">}</div>
+<div class="line"></div>
+<div class="line"><span class="comment">// The event handler function</span></div>
+<div class="line"><span class="comment">// Handle GpioConfigPinMode event</span></div>
+<div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> App_GpioConfigPinModeResCb(uint16_t device_id, uint16_t port_handle, <a class="code" href="struct_ucs___gpio___pin_configuration__t.html" title="This structure contains information on the GPIO pin configuration.">Ucs_Gpio_PinConfiguration_t</a> pin_cfg_list[], uint8_t list_sz, <a class="code" href="struct_ucs___gpio___result__t.html" title="Result structure of the GPIO Module.">Ucs_Gpio_Result_t</a> result, <span class="keywordtype">void</span> * user_ptr)</div>
+<div class="line">{</div>
+<div class="line"> <span class="keywordflow">if</span> (result.<a class="code" href="struct_ucs___gpio___result__t_a5a25ac28b5135e04a465fdead03df796.html#a5a25ac28b5135e04a465fdead03df796" title="Result code.">code</a> == <a class="code" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga7432b6d95eb2af7bce5fe5809b08d88b.html#gga7432b6d95eb2af7bce5fe5809b08d88ba00b6d2bbc409c15ce1f4bbdd53dab993" title="GPIO command succeeded.">UCS_GPIO_RES_SUCCESS</a>)</div>
+<div class="line"> {</div>
+<div class="line"> uint8_t i;</div>
+<div class="line"> <span class="keywordflow">for</span> (i = 0U; i &lt; list_sz; i++)</div>
+<div class="line"> { </div>
+<div class="line"> <span class="comment">// Configuration list of all GPIO pins</span></div>
+<div class="line"> <span class="comment">// Check configuration of GPIO pin no. 3 here</span></div>
+<div class="line"> <span class="keywordflow">if</span> (pin_cfg_list[i].pin == 3 &amp;&amp; pin_cfg_list[i].mode != <a class="code" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a97eb6c69f81b2438926688ef447bf7ee" title="OutputDefaultLow Mode.">UCS_GPIO_OUT_DEFAULT_LOW</a>)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">// Error handling</span></div>
+<div class="line"> }</div>
+<div class="line"> }</div>
+<div class="line"> }</div>
+<div class="line"> <span class="keywordflow">else</span></div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">// Error handling here</span></div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___g_p_i_o.html">GPIO</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o_gaff68acc9fb26096cae9374694b43ae92.html b/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o_gaff68acc9fb26096cae9374694b43ae92.html
new file mode 100644
index 0000000..0dc841e
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___g_p_i_o_gaff68acc9fb26096cae9374694b43ae92.html
@@ -0,0 +1,245 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Gpio_WritePort</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___g_p_i_o.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gaff68acc9fb26096cae9374694b43ae92"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a> Ucs_Gpio_WritePort </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *&#160;</td>
+ <td class="paramname"><em>self</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>destination_address</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>gpio_port_handle</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>mask</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>data</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga106c6afdd6f996c8bc5d632f08236912.html#ga106c6afdd6f996c8bc5d632f08236912">Ucs_Gpio_PinStateResCb_t</a>&#160;</td>
+ <td class="paramname"><em>result_fptr</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Writes data to the given GPIO port. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This function corresponds with the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-GPIOPortPinState704">INIC.GPIOPortPinState</a>.</td></tr>
+</table>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>The UNICENS instance pointer </td></tr>
+ <tr><td class="paramname">destination_address</td><td>Address of the target device. Use the <code>UCS_ADDR_LOCAL_DEV</code> macro to target the local device. <br/>
+ The following address ranges are supported:<ul>
+<li>[0x10 ... 0x2FF]</li>
+<li>[0x500 ... 0xFEF]</li>
+<li>UCS_ADDR_LOCAL_DEV </li>
+</ul>
+</td></tr>
+ <tr><td class="paramname">gpio_port_handle</td><td>The GPIO Port resource handle. <table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>GPIOPortHandle</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">mask</td><td>The GPIO pin to be written. <table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>Mask</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">data</td><td>The state of the GPIO pin to be written. <table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>Data</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">result_fptr</td><td>Required result callback function pointer. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible return values are shown in the table below. <table class="doxtable">
+<tr>
+<th>Value </th><th>Description</th></tr>
+<tr>
+<td>UCS_RET_SUCCESS </td><td>No error </td></tr>
+<tr>
+<td>UCS_RET_ERR_PARAM </td><td>At least one parameter is wrong </td></tr>
+<tr>
+<td>UCS_RET_ERR_BUFFER_OVERFLOW </td><td>No message buffer available </td></tr>
+<tr>
+<td>UCS_RET_ERR_API_LOCKED </td><td>API is currently locked </td></tr>
+<tr>
+<td>UCS_RET_ERR_NOT_INITIALIZED </td><td>UNICENS is not initialized </td></tr>
+</table>
+</dd></dl>
+<p><br/>
+ <b>Example</b> </p>
+<div class="fragment"><div class="line"> <span class="comment">// Main function</span></div>
+<div class="line"> <span class="keywordtype">void</span> main()</div>
+<div class="line"> {</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd" title="Standard return codes used for synchronous response.">Ucs_Return_t</a> result = <a class="code" href="group___g___u_c_s___g_p_i_o_gaff68acc9fb26096cae9374694b43ae92.html#gaff68acc9fb26096cae9374694b43ae92" title="Writes data to the given GPIO port.">Ucs_Gpio_WritePort</a>(0x555U, 0x1D00, 0x0039U, 0x0038U, &amp;App_GpioWritePortResCb);</div>
+<div class="line"> <span class="keywordflow">if</span> (result != <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda3fb51656e17ee4802f23706f35e349bc" title="Operation successfully completed.">UCS_RET_SUCCESS</a>)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">// Error handling here </span></div>
+<div class="line"> }</div>
+<div class="line"> }</div>
+<div class="line"></div>
+<div class="line"><span class="comment">// The event handler function</span></div>
+<div class="line"><span class="comment">// Handle GpioWritePort event</span></div>
+<div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> App_GpioWritePortResCb(uint16_t device_id, uint16_t port_handle, uint16_t current_state, uint16_t sticky_state, <a class="code" href="struct_ucs___gpio___result__t.html" title="Result structure of the GPIO Module.">Ucs_Gpio_Result_t</a> result, <span class="keywordtype">void</span> * user_ptr)</div>
+<div class="line">{</div>
+<div class="line"> <span class="keywordflow">if</span> (result.<a class="code" href="struct_ucs___gpio___result__t_a5a25ac28b5135e04a465fdead03df796.html#a5a25ac28b5135e04a465fdead03df796" title="Result code.">code</a> == <a class="code" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga7432b6d95eb2af7bce5fe5809b08d88b.html#gga7432b6d95eb2af7bce5fe5809b08d88ba00b6d2bbc409c15ce1f4bbdd53dab993" title="GPIO command succeeded.">UCS_GPIO_RES_SUCCESS</a>)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">// Do what needs to be..</span></div>
+<div class="line"> }</div>
+<div class="line"> <span class="keywordflow">else</span></div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">// Error handling here</span></div>
+<div class="line"> <span class="keywordflow">switch</span>(result.<a class="code" href="struct_ucs___gpio___result__t_a834bf2a84ecdbd878eb0edbf89bc0b88.html#a834bf2a84ecdbd878eb0edbf89bc0b88" title="Detailed information on the returned result.">details</a>.<a class="code" href="struct_ucs___gpio___result_details__t_a87d6ba6c35b8ada8a002fee6caf0c28a.html#a87d6ba6c35b8ada8a002fee6caf0c28a" title="Specifies the type of the current asynchronous result.">result_type</a>)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga292134dc6bc30b6b4f0e3e8882c2e772.html#gga292134dc6bc30b6b4f0e3e8882c2e772abd0caef5b4b9f4f2b75f65c7f67f65bc" title="Specifies the target results, typically INIC function-specific error from target device.">UCS_GPIO_RESULT_TYPE_TGT</a>:</div>
+<div class="line"> <span class="comment">// Handle the target results</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga292134dc6bc30b6b4f0e3e8882c2e772.html#gga292134dc6bc30b6b4f0e3e8882c2e772aa402809c65ce64324a827eb0ab4475b1" title="Specifies the transmission error information that occurred on the MOST network.">UCS_GPIO_RESULT_TYPE_TX</a>:</div>
+<div class="line"> <span class="comment">// Handle transmission error</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> }</div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___g_p_i_o.html">GPIO</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i2_c.html b/ucs2-lib/doc/html/group___g___u_c_s___i2_c.html
new file mode 100644
index 0000000..0dc4349
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i2_c.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: I2C</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i2_c.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#groups">Topics</a> &#124;
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">I2C</div> </div>
+<div class="ingroups"><a class="el" href="group___g___u_c_s___p_b_i.html">Peripheral Bus Interface</a></div></div><!--header-->
+<div class="contents">
+
+<p>Provides service functions to handle data communication over I2C.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+Topics</h2></td></tr>
+<tr class="memitem:group___g___u_c_s___i2_c___t_y_p_e_s"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s.html">I2C Referred Types</a></td></tr>
+<tr class="memdesc:group___g___u_c_s___i2_c___t_y_p_e_s"><td class="mdescLeft">&#160;</td><td class="mdescRight">Referred types used by the Extended Resource Manager. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___i2c___init_data__t.html">Ucs_I2c_InitData_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The initialization structure of the I2C Module. <a href="struct_ucs___i2c___init_data__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gac06f58d8a7775703373f12c3c677d687"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i2_c_gac06f58d8a7775703373f12c3c677d687.html#gac06f58d8a7775703373f12c3c677d687">Ucs_I2c_CreatePort</a> (<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *self, uint16_t destination_address, uint8_t index, <a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga8492cc027b5b9e2f436a172e526e1d5e.html#ga8492cc027b5b9e2f436a172e526e1d5e">Ucs_I2c_Speed_t</a> speed, uint8_t i2c_int_mask, <a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_gae1f1b25aca1c240022464571187ea98f.html#gae1f1b25aca1c240022464571187ea98f">Ucs_I2c_CreatePortResCb_t</a> result_fptr)</td></tr>
+<tr class="memdesc:gac06f58d8a7775703373f12c3c677d687"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an I2C Port with its associated parameter. <a href="#gac06f58d8a7775703373f12c3c677d687"></a><br/></td></tr>
+<tr class="separator:gac06f58d8a7775703373f12c3c677d687"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gade4a94669fe4f29f18fe5bfd4e102474"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i2_c_gade4a94669fe4f29f18fe5bfd4e102474.html#gade4a94669fe4f29f18fe5bfd4e102474">Ucs_I2c_WritePort</a> (<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *self, uint16_t destination_address, uint16_t port_handle, <a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga631c2b70299a4c07ac77b6741b5b5e44.html#ga631c2b70299a4c07ac77b6741b5b5e44">Ucs_I2c_TrMode_t</a> mode, uint8_t block_count, uint8_t slave_address, uint16_t timeout, uint8_t data_len, uint8_t *data_ptr, <a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga50029da1794f34d3ddac9df8d537c234.html#ga50029da1794f34d3ddac9df8d537c234">Ucs_I2c_WritePortResCb_t</a> result_fptr)</td></tr>
+<tr class="memdesc:gade4a94669fe4f29f18fe5bfd4e102474"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes a block of bytes to an I2C device at a specified I2C address. <a href="#gade4a94669fe4f29f18fe5bfd4e102474"></a><br/></td></tr>
+<tr class="separator:gade4a94669fe4f29f18fe5bfd4e102474"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga153f7ce3ea500b2f39544e0ccfc86503"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i2_c_ga153f7ce3ea500b2f39544e0ccfc86503.html#ga153f7ce3ea500b2f39544e0ccfc86503">Ucs_I2c_ReadPort</a> (<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *self, uint16_t destination_address, uint16_t port_handle, uint8_t slave_address, uint8_t data_len, uint16_t timeout, <a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga8dd5d3515acabc6a95e9bf32629eb644.html#ga8dd5d3515acabc6a95e9bf32629eb644">Ucs_I2c_ReadPortResCb_t</a> result_fptr)</td></tr>
+<tr class="memdesc:ga153f7ce3ea500b2f39544e0ccfc86503"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads a block of bytes from an I2C device at a specified I2C address. <a href="#ga153f7ce3ea500b2f39544e0ccfc86503"></a><br/></td></tr>
+<tr class="separator:ga153f7ce3ea500b2f39544e0ccfc86503"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Provides service functions to handle data communication over I2C. </p>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i2_c.js b/ucs2-lib/doc/html/group___g___u_c_s___i2_c.js
new file mode 100644
index 0000000..5ec15c2
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i2_c.js
@@ -0,0 +1,10 @@
+var group___g___u_c_s___i2_c =
+[
+ [ "I2C Referred Types", "group___g___u_c_s___i2_c___t_y_p_e_s.html", "group___g___u_c_s___i2_c___t_y_p_e_s" ],
+ [ "Ucs_I2c_InitData_t", "struct_ucs___i2c___init_data__t.html", [
+ [ "interrupt_status_fptr", "struct_ucs___i2c___init_data__t_a2d31f7e7ace9d7a9998a9d9427706a45.html#a2d31f7e7ace9d7a9998a9d9427706a45", null ]
+ ] ],
+ [ "Ucs_I2c_CreatePort", "group___g___u_c_s___i2_c_gac06f58d8a7775703373f12c3c677d687.html#gac06f58d8a7775703373f12c3c677d687", null ],
+ [ "Ucs_I2c_ReadPort", "group___g___u_c_s___i2_c_ga153f7ce3ea500b2f39544e0ccfc86503.html#ga153f7ce3ea500b2f39544e0ccfc86503", null ],
+ [ "Ucs_I2c_WritePort", "group___g___u_c_s___i2_c_gade4a94669fe4f29f18fe5bfd4e102474.html#gade4a94669fe4f29f18fe5bfd4e102474", null ]
+]; \ No newline at end of file
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i2_c___t_y_p_e_s.html b/ucs2-lib/doc/html/group___g___u_c_s___i2_c___t_y_p_e_s.html
new file mode 100644
index 0000000..a7e9347
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i2_c___t_y_p_e_s.html
@@ -0,0 +1,186 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: I2C Referred Types</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i2_c___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#typedef-members">Callback Functions</a> &#124;
+<a href="#enum-members">Enumerations</a> </div>
+ <div class="headertitle">
+<div class="title">I2C Referred Types</div> </div>
+<div class="ingroups"><a class="el" href="group___g___u_c_s___i2_c.html">I2C</a></div></div><!--header-->
+<div class="contents">
+
+<p>Referred types used by the Extended Resource Manager.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___i2c___result_details__t.html">Ucs_I2c_ResultDetails_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Detailed information used for I2C results. <a href="struct_ucs___i2c___result_details__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___i2c___result__t.html">Ucs_I2c_Result_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Result structure of the I2C Module. <a href="struct_ucs___i2c___result__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Callback Functions</h2></td></tr>
+<tr class="memitem:gae1f1b25aca1c240022464571187ea98f"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_gae1f1b25aca1c240022464571187ea98f.html#gae1f1b25aca1c240022464571187ea98f">Ucs_I2c_CreatePortResCb_t</a> )(uint16_t node_address, uint16_t i2c_port_handle, <a class="el" href="struct_ucs___i2c___result__t.html">Ucs_I2c_Result_t</a> result, void *user_ptr)</td></tr>
+<tr class="memdesc:gae1f1b25aca1c240022464571187ea98f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function type to retrieve the result of the I2c_CreatePort function. <a href="#gae1f1b25aca1c240022464571187ea98f"></a><br/></td></tr>
+<tr class="separator:gae1f1b25aca1c240022464571187ea98f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga50029da1794f34d3ddac9df8d537c234"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga50029da1794f34d3ddac9df8d537c234.html#ga50029da1794f34d3ddac9df8d537c234">Ucs_I2c_WritePortResCb_t</a> )(uint16_t node_address, uint16_t i2c_port_handle, uint8_t i2c_slave_address, uint8_t data_len, <a class="el" href="struct_ucs___i2c___result__t.html">Ucs_I2c_Result_t</a> result, void *user_ptr)</td></tr>
+<tr class="memdesc:ga50029da1794f34d3ddac9df8d537c234"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function type to retrieve the result of the Gpio_ConfigPinMode function. <a href="#ga50029da1794f34d3ddac9df8d537c234"></a><br/></td></tr>
+<tr class="separator:ga50029da1794f34d3ddac9df8d537c234"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8dd5d3515acabc6a95e9bf32629eb644"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga8dd5d3515acabc6a95e9bf32629eb644.html#ga8dd5d3515acabc6a95e9bf32629eb644">Ucs_I2c_ReadPortResCb_t</a> )(uint16_t node_address, uint16_t i2c_port_handle, uint8_t i2c_slave_address, uint8_t data_len, uint8_t data_ptr[], <a class="el" href="struct_ucs___i2c___result__t.html">Ucs_I2c_Result_t</a> result, void *user_ptr)</td></tr>
+<tr class="memdesc:ga8dd5d3515acabc6a95e9bf32629eb644"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function type to retrieve the result of the Gpio_ConfigPinMode function. <a href="#ga8dd5d3515acabc6a95e9bf32629eb644"></a><br/></td></tr>
+<tr class="separator:ga8dd5d3515acabc6a95e9bf32629eb644"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3bdd3013545f8249a73c73e0d28713f7"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga3bdd3013545f8249a73c73e0d28713f7.html#ga3bdd3013545f8249a73c73e0d28713f7">Ucs_I2c_IntEventReportCb_t</a> )(uint16_t node_address, void *user_ptr)</td></tr>
+<tr class="memdesc:ga3bdd3013545f8249a73c73e0d28713f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function type to report the I2C interrupt event. <a href="#ga3bdd3013545f8249a73c73e0d28713f7"></a><br/></td></tr>
+<tr class="separator:ga3bdd3013545f8249a73c73e0d28713f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:ga8492cc027b5b9e2f436a172e526e1d5e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga8492cc027b5b9e2f436a172e526e1d5e.html#ga8492cc027b5b9e2f436a172e526e1d5e">Ucs_I2c_Speed_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga8492cc027b5b9e2f436a172e526e1d5e.html#gga8492cc027b5b9e2f436a172e526e1d5ea91d8d37db8f69a15ca3d6d19b3f5d981">UCS_I2C_SLOW_MODE</a> = 0x00U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga8492cc027b5b9e2f436a172e526e1d5e.html#gga8492cc027b5b9e2f436a172e526e1d5ea577d5efdff88c202f2e2f43aed2b0391">UCS_I2C_FAST_MODE</a> = 0x01U
+<br/>
+ }</td></tr>
+<tr class="memdesc:ga8492cc027b5b9e2f436a172e526e1d5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The speed grade of the I2C Port. <a href="group___g___u_c_s___i2_c___t_y_p_e_s_ga8492cc027b5b9e2f436a172e526e1d5e.html#ga8492cc027b5b9e2f436a172e526e1d5e">More...</a><br/></td></tr>
+<tr class="separator:ga8492cc027b5b9e2f436a172e526e1d5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga631c2b70299a4c07ac77b6741b5b5e44"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga631c2b70299a4c07ac77b6741b5b5e44.html#ga631c2b70299a4c07ac77b6741b5b5e44">Ucs_I2c_TrMode_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga631c2b70299a4c07ac77b6741b5b5e44.html#gga631c2b70299a4c07ac77b6741b5b5e44ad6f21f4e04e8f755a59c8e7cef9cb7ad">UCS_I2C_DEFAULT_MODE</a> = 0x00U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga631c2b70299a4c07ac77b6741b5b5e44.html#gga631c2b70299a4c07ac77b6741b5b5e44ad5c54c3051eef15fbb36f003dc1633d4">UCS_I2C_REPEATED_MODE</a> = 0x01U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga631c2b70299a4c07ac77b6741b5b5e44.html#gga631c2b70299a4c07ac77b6741b5b5e44a3380b0b2a253a389aec424ef348a34b7">UCS_I2C_BURST_MODE</a> = 0x02U
+<br/>
+ }</td></tr>
+<tr class="memdesc:ga631c2b70299a4c07ac77b6741b5b5e44"><td class="mdescLeft">&#160;</td><td class="mdescRight">The write transfer mode. <a href="group___g___u_c_s___i2_c___t_y_p_e_s_ga631c2b70299a4c07ac77b6741b5b5e44.html#ga631c2b70299a4c07ac77b6741b5b5e44">More...</a><br/></td></tr>
+<tr class="separator:ga631c2b70299a4c07ac77b6741b5b5e44"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga930e829c3c689b8ead8f9fbf7f2ca237"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga930e829c3c689b8ead8f9fbf7f2ca237.html#ga930e829c3c689b8ead8f9fbf7f2ca237">Ucs_I2c_ResultCode_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga930e829c3c689b8ead8f9fbf7f2ca237.html#gga930e829c3c689b8ead8f9fbf7f2ca237a1f0bb0636d1fbe3a3c94541d3725b864">UCS_I2C_RES_SUCCESS</a> = 0x00U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga930e829c3c689b8ead8f9fbf7f2ca237.html#gga930e829c3c689b8ead8f9fbf7f2ca237a7f9bec3206cf8dea98f72710bd6219e8">UCS_I2C_RES_ERR_CMD</a> = 0x01U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga930e829c3c689b8ead8f9fbf7f2ca237.html#gga930e829c3c689b8ead8f9fbf7f2ca237a3f4942e0d97505a6f343621b6a5d03a8">UCS_I2C_RES_ERR_SYNC</a> = 0x02U
+<br/>
+ }</td></tr>
+<tr class="memdesc:ga930e829c3c689b8ead8f9fbf7f2ca237"><td class="mdescLeft">&#160;</td><td class="mdescRight">Result codes of the I2C Module. <a href="group___g___u_c_s___i2_c___t_y_p_e_s_ga930e829c3c689b8ead8f9fbf7f2ca237.html#ga930e829c3c689b8ead8f9fbf7f2ca237">More...</a><br/></td></tr>
+<tr class="separator:ga930e829c3c689b8ead8f9fbf7f2ca237"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7c7b4521cb5391bd20c02104876a811d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga7c7b4521cb5391bd20c02104876a811d.html#ga7c7b4521cb5391bd20c02104876a811d">Ucs_I2c_ResultType_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga7c7b4521cb5391bd20c02104876a811d.html#gga7c7b4521cb5391bd20c02104876a811da5f9dc425604e39a96af53cc4fb940cd6">UCS_I2C_RESULT_TYPE_TGT</a> = 0x00U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga7c7b4521cb5391bd20c02104876a811d.html#gga7c7b4521cb5391bd20c02104876a811da1e9f8a38a7bf67986bb52aae45326f0e">UCS_I2C_RESULT_TYPE_TX</a> = 0x01U
+<br/>
+ }</td></tr>
+<tr class="memdesc:ga7c7b4521cb5391bd20c02104876a811d"><td class="mdescLeft">&#160;</td><td class="mdescRight">This enumerator specifies the kind of result - Target or Transmission. <a href="group___g___u_c_s___i2_c___t_y_p_e_s_ga7c7b4521cb5391bd20c02104876a811d.html#ga7c7b4521cb5391bd20c02104876a811d">More...</a><br/></td></tr>
+<tr class="separator:ga7c7b4521cb5391bd20c02104876a811d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Referred types used by the Extended Resource Manager. </p>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i2_c___t_y_p_e_s.js b/ucs2-lib/doc/html/group___g___u_c_s___i2_c___t_y_p_e_s.js
new file mode 100644
index 0000000..4afe2b0
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i2_c___t_y_p_e_s.js
@@ -0,0 +1,34 @@
+var group___g___u_c_s___i2_c___t_y_p_e_s =
+[
+ [ "Ucs_I2c_ResultDetails_t", "struct_ucs___i2c___result_details__t.html", [
+ [ "inic_result", "struct_ucs___i2c___result_details__t_ac8f7bd459f5052601dbbab267d9d8067.html#ac8f7bd459f5052601dbbab267d9d8067", null ],
+ [ "result_type", "struct_ucs___i2c___result_details__t_afbf6b21e51e2114bd8165bc6b9d920a5.html#afbf6b21e51e2114bd8165bc6b9d920a5", null ],
+ [ "tx_result", "struct_ucs___i2c___result_details__t_abee2d1d2c9eebcbc9da920664e9eb248.html#abee2d1d2c9eebcbc9da920664e9eb248", null ]
+ ] ],
+ [ "Ucs_I2c_Result_t", "struct_ucs___i2c___result__t.html", [
+ [ "code", "struct_ucs___i2c___result__t_aacd0e1eabaa18a3fe226a2b4f849832b.html#aacd0e1eabaa18a3fe226a2b4f849832b", null ],
+ [ "details", "struct_ucs___i2c___result__t_a288b89d26129791b83b01a3b464d7351.html#a288b89d26129791b83b01a3b464d7351", null ]
+ ] ],
+ [ "Ucs_I2c_CreatePortResCb_t", "group___g___u_c_s___i2_c___t_y_p_e_s_gae1f1b25aca1c240022464571187ea98f.html#gae1f1b25aca1c240022464571187ea98f", null ],
+ [ "Ucs_I2c_IntEventReportCb_t", "group___g___u_c_s___i2_c___t_y_p_e_s_ga3bdd3013545f8249a73c73e0d28713f7.html#ga3bdd3013545f8249a73c73e0d28713f7", null ],
+ [ "Ucs_I2c_ReadPortResCb_t", "group___g___u_c_s___i2_c___t_y_p_e_s_ga8dd5d3515acabc6a95e9bf32629eb644.html#ga8dd5d3515acabc6a95e9bf32629eb644", null ],
+ [ "Ucs_I2c_WritePortResCb_t", "group___g___u_c_s___i2_c___t_y_p_e_s_ga50029da1794f34d3ddac9df8d537c234.html#ga50029da1794f34d3ddac9df8d537c234", null ],
+ [ "Ucs_I2c_ResultCode_t", "group___g___u_c_s___i2_c___t_y_p_e_s_ga930e829c3c689b8ead8f9fbf7f2ca237.html#ga930e829c3c689b8ead8f9fbf7f2ca237", [
+ [ "UCS_I2C_RES_SUCCESS", "group___g___u_c_s___i2_c___t_y_p_e_s_ga930e829c3c689b8ead8f9fbf7f2ca237.html#gga930e829c3c689b8ead8f9fbf7f2ca237a1f0bb0636d1fbe3a3c94541d3725b864", null ],
+ [ "UCS_I2C_RES_ERR_CMD", "group___g___u_c_s___i2_c___t_y_p_e_s_ga930e829c3c689b8ead8f9fbf7f2ca237.html#gga930e829c3c689b8ead8f9fbf7f2ca237a7f9bec3206cf8dea98f72710bd6219e8", null ],
+ [ "UCS_I2C_RES_ERR_SYNC", "group___g___u_c_s___i2_c___t_y_p_e_s_ga930e829c3c689b8ead8f9fbf7f2ca237.html#gga930e829c3c689b8ead8f9fbf7f2ca237a3f4942e0d97505a6f343621b6a5d03a8", null ]
+ ] ],
+ [ "Ucs_I2c_ResultType_t", "group___g___u_c_s___i2_c___t_y_p_e_s_ga7c7b4521cb5391bd20c02104876a811d.html#ga7c7b4521cb5391bd20c02104876a811d", [
+ [ "UCS_I2C_RESULT_TYPE_TGT", "group___g___u_c_s___i2_c___t_y_p_e_s_ga7c7b4521cb5391bd20c02104876a811d.html#gga7c7b4521cb5391bd20c02104876a811da5f9dc425604e39a96af53cc4fb940cd6", null ],
+ [ "UCS_I2C_RESULT_TYPE_TX", "group___g___u_c_s___i2_c___t_y_p_e_s_ga7c7b4521cb5391bd20c02104876a811d.html#gga7c7b4521cb5391bd20c02104876a811da1e9f8a38a7bf67986bb52aae45326f0e", null ]
+ ] ],
+ [ "Ucs_I2c_Speed_t", "group___g___u_c_s___i2_c___t_y_p_e_s_ga8492cc027b5b9e2f436a172e526e1d5e.html#ga8492cc027b5b9e2f436a172e526e1d5e", [
+ [ "UCS_I2C_SLOW_MODE", "group___g___u_c_s___i2_c___t_y_p_e_s_ga8492cc027b5b9e2f436a172e526e1d5e.html#gga8492cc027b5b9e2f436a172e526e1d5ea91d8d37db8f69a15ca3d6d19b3f5d981", null ],
+ [ "UCS_I2C_FAST_MODE", "group___g___u_c_s___i2_c___t_y_p_e_s_ga8492cc027b5b9e2f436a172e526e1d5e.html#gga8492cc027b5b9e2f436a172e526e1d5ea577d5efdff88c202f2e2f43aed2b0391", null ]
+ ] ],
+ [ "Ucs_I2c_TrMode_t", "group___g___u_c_s___i2_c___t_y_p_e_s_ga631c2b70299a4c07ac77b6741b5b5e44.html#ga631c2b70299a4c07ac77b6741b5b5e44", [
+ [ "UCS_I2C_DEFAULT_MODE", "group___g___u_c_s___i2_c___t_y_p_e_s_ga631c2b70299a4c07ac77b6741b5b5e44.html#gga631c2b70299a4c07ac77b6741b5b5e44ad6f21f4e04e8f755a59c8e7cef9cb7ad", null ],
+ [ "UCS_I2C_REPEATED_MODE", "group___g___u_c_s___i2_c___t_y_p_e_s_ga631c2b70299a4c07ac77b6741b5b5e44.html#gga631c2b70299a4c07ac77b6741b5b5e44ad5c54c3051eef15fbb36f003dc1633d4", null ],
+ [ "UCS_I2C_BURST_MODE", "group___g___u_c_s___i2_c___t_y_p_e_s_ga631c2b70299a4c07ac77b6741b5b5e44.html#gga631c2b70299a4c07ac77b6741b5b5e44a3380b0b2a253a389aec424ef348a34b7", null ]
+ ] ]
+]; \ No newline at end of file
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i2_c___t_y_p_e_s_ga3bdd3013545f8249a73c73e0d28713f7.html b/ucs2-lib/doc/html/group___g___u_c_s___i2_c___t_y_p_e_s_ga3bdd3013545f8249a73c73e0d28713f7.html
new file mode 100644
index 0000000..3089b00
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i2_c___t_y_p_e_s_ga3bdd3013545f8249a73c73e0d28713f7.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_I2c_IntEventReportCb_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i2_c___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga3bdd3013545f8249a73c73e0d28713f7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* Ucs_I2c_IntEventReportCb_t)(uint16_t node_address, void *user_ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Callback function type to report the I2C interrupt event. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">node_address</td><td>The node address of the device from where the interrupt comes </td></tr>
+ <tr><td class="paramname">user_ptr</td><td>User reference provided in <a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t::user_ptr</a> </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s.html">I2C Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i2_c___t_y_p_e_s_ga50029da1794f34d3ddac9df8d537c234.html b/ucs2-lib/doc/html/group___g___u_c_s___i2_c___t_y_p_e_s_ga50029da1794f34d3ddac9df8d537c234.html
new file mode 100644
index 0000000..644565f
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i2_c___t_y_p_e_s_ga50029da1794f34d3ddac9df8d537c234.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_I2c_WritePortResCb_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i2_c___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga50029da1794f34d3ddac9df8d537c234"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* Ucs_I2c_WritePortResCb_t)(uint16_t node_address, uint16_t i2c_port_handle, uint8_t i2c_slave_address, uint8_t data_len, <a class="el" href="struct_ucs___i2c___result__t.html">Ucs_I2c_Result_t</a> result, void *user_ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Callback function type to retrieve the result of the Gpio_ConfigPinMode function. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">node_address</td><td>The node address of the device from where the results come </td></tr>
+ <tr><td class="paramname">i2c_port_handle</td><td>The port resource handle. </td></tr>
+ <tr><td class="paramname">i2c_slave_address</td><td>The 7-bit I2C Port slave address of the peripheral to be read. </td></tr>
+ <tr><td class="paramname">data_len</td><td>The number of bytes wrote to the I2C address. </td></tr>
+ <tr><td class="paramname">result</td><td>The operation result </td></tr>
+ <tr><td class="paramname">user_ptr</td><td>User reference provided in <a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t::user_ptr</a> </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s.html">I2C Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i2_c___t_y_p_e_s_ga631c2b70299a4c07ac77b6741b5b5e44.html b/ucs2-lib/doc/html/group___g___u_c_s___i2_c___t_y_p_e_s_ga631c2b70299a4c07ac77b6741b5b5e44.html
new file mode 100644
index 0000000..885e284
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i2_c___t_y_p_e_s_ga631c2b70299a4c07ac77b6741b5b5e44.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_I2c_TrMode_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i2_c___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga631c2b70299a4c07ac77b6741b5b5e44"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga631c2b70299a4c07ac77b6741b5b5e44.html#ga631c2b70299a4c07ac77b6741b5b5e44">Ucs_I2c_TrMode_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The write transfer mode. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga631c2b70299a4c07ac77b6741b5b5e44ad6f21f4e04e8f755a59c8e7cef9cb7ad"></a>UCS_I2C_DEFAULT_MODE</em>&nbsp;</td><td>
+<p>Default mode of the I2C write transfer. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga631c2b70299a4c07ac77b6741b5b5e44ad5c54c3051eef15fbb36f003dc1633d4"></a>UCS_I2C_REPEATED_MODE</em>&nbsp;</td><td>
+<p>Repeated Mode of the I2C write transfer. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga631c2b70299a4c07ac77b6741b5b5e44a3380b0b2a253a389aec424ef348a34b7"></a>UCS_I2C_BURST_MODE</em>&nbsp;</td><td>
+<p>Burst mode of the I2C write transfer. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s.html">I2C Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i2_c___t_y_p_e_s_ga7c7b4521cb5391bd20c02104876a811d.html b/ucs2-lib/doc/html/group___g___u_c_s___i2_c___t_y_p_e_s_ga7c7b4521cb5391bd20c02104876a811d.html
new file mode 100644
index 0000000..1deb137
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i2_c___t_y_p_e_s_ga7c7b4521cb5391bd20c02104876a811d.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_I2c_ResultType_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i2_c___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga7c7b4521cb5391bd20c02104876a811d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga7c7b4521cb5391bd20c02104876a811d.html#ga7c7b4521cb5391bd20c02104876a811d">Ucs_I2c_ResultType_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>This enumerator specifies the kind of result - Target or Transmission. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga7c7b4521cb5391bd20c02104876a811da5f9dc425604e39a96af53cc4fb940cd6"></a>UCS_I2C_RESULT_TYPE_TGT</em>&nbsp;</td><td>
+<p>Specifies the target results, typically INIC function-specific error from target device. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga7c7b4521cb5391bd20c02104876a811da1e9f8a38a7bf67986bb52aae45326f0e"></a>UCS_I2C_RESULT_TYPE_TX</em>&nbsp;</td><td>
+<p>Specifies the transmission error information that occurred on the MOST network. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s.html">I2C Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i2_c___t_y_p_e_s_ga8492cc027b5b9e2f436a172e526e1d5e.html b/ucs2-lib/doc/html/group___g___u_c_s___i2_c___t_y_p_e_s_ga8492cc027b5b9e2f436a172e526e1d5e.html
new file mode 100644
index 0000000..6400c48
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i2_c___t_y_p_e_s_ga8492cc027b5b9e2f436a172e526e1d5e.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_I2c_Speed_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i2_c___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga8492cc027b5b9e2f436a172e526e1d5e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga8492cc027b5b9e2f436a172e526e1d5e.html#ga8492cc027b5b9e2f436a172e526e1d5e">Ucs_I2c_Speed_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The speed grade of the I2C Port. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga8492cc027b5b9e2f436a172e526e1d5ea91d8d37db8f69a15ca3d6d19b3f5d981"></a>UCS_I2C_SLOW_MODE</em>&nbsp;</td><td>
+<p>Speed grade of the port is 100 kHz. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga8492cc027b5b9e2f436a172e526e1d5ea577d5efdff88c202f2e2f43aed2b0391"></a>UCS_I2C_FAST_MODE</em>&nbsp;</td><td>
+<p>Speed grade of the port is 400 kHz. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s.html">I2C Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i2_c___t_y_p_e_s_ga8dd5d3515acabc6a95e9bf32629eb644.html b/ucs2-lib/doc/html/group___g___u_c_s___i2_c___t_y_p_e_s_ga8dd5d3515acabc6a95e9bf32629eb644.html
new file mode 100644
index 0000000..43bd204
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i2_c___t_y_p_e_s_ga8dd5d3515acabc6a95e9bf32629eb644.html
@@ -0,0 +1,136 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_I2c_ReadPortResCb_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i2_c___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga8dd5d3515acabc6a95e9bf32629eb644"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* Ucs_I2c_ReadPortResCb_t)(uint16_t node_address, uint16_t i2c_port_handle, uint8_t i2c_slave_address, uint8_t data_len, uint8_t data_ptr[], <a class="el" href="struct_ucs___i2c___result__t.html">Ucs_I2c_Result_t</a> result, void *user_ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Callback function type to retrieve the result of the Gpio_ConfigPinMode function. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">node_address</td><td>The node address of the device from where the results come </td></tr>
+ <tr><td class="paramname">i2c_port_handle</td><td>The port resource handle. </td></tr>
+ <tr><td class="paramname">i2c_slave_address</td><td>The 7-bit I2C Port slave address of the peripheral from which the data have been read. </td></tr>
+ <tr><td class="paramname">data_len</td><td>The number of bytes read from the address. </td></tr>
+ <tr><td class="paramname">data_ptr</td><td>The reference to the data list. </td></tr>
+ <tr><td class="paramname">result</td><td>The operation result </td></tr>
+ <tr><td class="paramname">user_ptr</td><td>User reference provided in <a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t::user_ptr</a> </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s.html">I2C Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i2_c___t_y_p_e_s_ga930e829c3c689b8ead8f9fbf7f2ca237.html b/ucs2-lib/doc/html/group___g___u_c_s___i2_c___t_y_p_e_s_ga930e829c3c689b8ead8f9fbf7f2ca237.html
new file mode 100644
index 0000000..7bd1150
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i2_c___t_y_p_e_s_ga930e829c3c689b8ead8f9fbf7f2ca237.html
@@ -0,0 +1,139 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_I2c_ResultCode_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i2_c___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga930e829c3c689b8ead8f9fbf7f2ca237"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga930e829c3c689b8ead8f9fbf7f2ca237.html#ga930e829c3c689b8ead8f9fbf7f2ca237">Ucs_I2c_ResultCode_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Result codes of the I2C Module. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga930e829c3c689b8ead8f9fbf7f2ca237a1f0bb0636d1fbe3a3c94541d3725b864"></a>UCS_I2C_RES_SUCCESS</em>&nbsp;</td><td>
+<p>I2C command succeeded. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga930e829c3c689b8ead8f9fbf7f2ca237a7f9bec3206cf8dea98f72710bd6219e8"></a>UCS_I2C_RES_ERR_CMD</em>&nbsp;</td><td>
+<p>I2C command failed due to an INIC function-specific error or a transmission error on the MOST network. </p>
+<p>The <em>result_type</em> section in <a class="el" href="struct_ucs___i2c___result_details__t.html" title="Detailed information used for I2C results.">Ucs_I2c_ResultDetails_t</a> will provide you with more detailed information concerning the error type. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga930e829c3c689b8ead8f9fbf7f2ca237a3f4942e0d97505a6f343621b6a5d03a8"></a>UCS_I2C_RES_ERR_SYNC</em>&nbsp;</td><td>
+<p>Remote synchronization of target device failed. </p>
+<p>The <em>inic_result</em> section in <a class="el" href="struct_ucs___i2c___result_details__t.html" title="Detailed information used for I2C results.">Ucs_I2c_ResultDetails_t</a> will provide you with more detailed information concerning the error code. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s.html">I2C Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i2_c___t_y_p_e_s_gae1f1b25aca1c240022464571187ea98f.html b/ucs2-lib/doc/html/group___g___u_c_s___i2_c___t_y_p_e_s_gae1f1b25aca1c240022464571187ea98f.html
new file mode 100644
index 0000000..15238e6
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i2_c___t_y_p_e_s_gae1f1b25aca1c240022464571187ea98f.html
@@ -0,0 +1,133 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_I2c_CreatePortResCb_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i2_c___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gae1f1b25aca1c240022464571187ea98f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* Ucs_I2c_CreatePortResCb_t)(uint16_t node_address, uint16_t i2c_port_handle, <a class="el" href="struct_ucs___i2c___result__t.html">Ucs_I2c_Result_t</a> result, void *user_ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Callback function type to retrieve the result of the I2c_CreatePort function. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">node_address</td><td>The node address of the device from where the results come </td></tr>
+ <tr><td class="paramname">i2c_port_handle</td><td>The port resource handle. </td></tr>
+ <tr><td class="paramname">result</td><td>The operation result </td></tr>
+ <tr><td class="paramname">user_ptr</td><td>User reference provided in <a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t::user_ptr</a> </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s.html">I2C Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i2_c_ga153f7ce3ea500b2f39544e0ccfc86503.html b/ucs2-lib/doc/html/group___g___u_c_s___i2_c_ga153f7ce3ea500b2f39544e0ccfc86503.html
new file mode 100644
index 0000000..b830bb9
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i2_c_ga153f7ce3ea500b2f39544e0ccfc86503.html
@@ -0,0 +1,246 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_I2c_ReadPort</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i2_c.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga153f7ce3ea500b2f39544e0ccfc86503"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a> Ucs_I2c_ReadPort </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *&#160;</td>
+ <td class="paramname"><em>self</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>destination_address</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>port_handle</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint8_t&#160;</td>
+ <td class="paramname"><em>slave_address</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint8_t&#160;</td>
+ <td class="paramname"><em>data_len</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>timeout</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga8dd5d3515acabc6a95e9bf32629eb644.html#ga8dd5d3515acabc6a95e9bf32629eb644">Ucs_I2c_ReadPortResCb_t</a>&#160;</td>
+ <td class="paramname"><em>result_fptr</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reads a block of bytes from an I2C device at a specified I2C address. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This function corresponds with the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-I2CPortRead6C3">INIC.I2CPortRead</a>.</td></tr>
+</table>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>The UNICENS instance pointer </td></tr>
+ <tr><td class="paramname">destination_address</td><td>Address of the target device. Use the <code>UCS_ADDR_LOCAL_DEV</code> macro to target the local device. <br/>
+ The following address ranges are supported:<ul>
+<li>[0x10 ... 0x2FF]</li>
+<li>[0x500 ... 0xFEF]</li>
+<li>UCS_ADDR_LOCAL_DEV </li>
+</ul>
+</td></tr>
+ <tr><td class="paramname">port_handle</td><td>Port resource handle. <table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>I2CPortHandle</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">slave_address</td><td>The 7-bit I2C slave address of the peripheral to be read. <table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>SlaveAddress</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">data_len</td><td>Number of bytes to be read from the address. <table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>Length</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">timeout</td><td>The timeout for the I2C Port read. <table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>Timeout</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">result_fptr</td><td>Required result callback function pointer. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible return values are shown in the table below. <table class="doxtable">
+<tr>
+<th>Value </th><th>Description</th></tr>
+<tr>
+<td>UCS_RET_SUCCESS </td><td>No error </td></tr>
+<tr>
+<td>UCS_RET_ERR_PARAM </td><td>At least one parameter is wrong </td></tr>
+<tr>
+<td>UCS_RET_ERR_BUFFER_OVERFLOW </td><td>No message buffer available </td></tr>
+<tr>
+<td>UCS_RET_ERR_API_LOCKED </td><td>API is currently locked </td></tr>
+<tr>
+<td>UCS_RET_ERR_NOT_INITIALIZED </td><td>UNICENS is not initialized </td></tr>
+</table>
+</dd></dl>
+<p><br/>
+ <b>Example</b> </p>
+<div class="fragment"><div class="line"><span class="comment">// Main function</span></div>
+<div class="line"><span class="keywordtype">void</span> main()</div>
+<div class="line">{</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd" title="Standard return codes used for synchronous response.">Ucs_Return_t</a> result = <a class="code" href="group___g___u_c_s___i2_c_ga153f7ce3ea500b2f39544e0ccfc86503.html#ga153f7ce3ea500b2f39544e0ccfc86503" title="Reads a block of bytes from an I2C device at a specified I2C address.">Ucs_I2c_ReadPort</a>(0x14U, 0x0F00U, 0x20U, 5U, 0x0FU, &amp;App_I2cReadPortResCb);</div>
+<div class="line"> <span class="keywordflow">if</span> (result != <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda3fb51656e17ee4802f23706f35e349bc" title="Operation successfully completed.">UCS_RET_SUCCESS</a>)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">// Error handling here </span></div>
+<div class="line"> }</div>
+<div class="line">}</div>
+<div class="line"></div>
+<div class="line"><span class="comment">// The event handler function</span></div>
+<div class="line"><span class="comment">// Handle I2cReadPort event</span></div>
+<div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> App_I2cReadPortResCb(uint16_t device_id, uint16_t port_handle, uint8_t slave_address, uint8_t data_len, uint8_t data_ptr[], <a class="code" href="struct_ucs___i2c___result__t.html" title="Result structure of the I2C Module.">Ucs_I2c_Result_t</a> result, <span class="keywordtype">void</span> * user_ptr)</div>
+<div class="line">{</div>
+<div class="line"> <span class="keywordflow">if</span> (result.<a class="code" href="struct_ucs___i2c___result__t_aacd0e1eabaa18a3fe226a2b4f849832b.html#aacd0e1eabaa18a3fe226a2b4f849832b" title="Result code.">code</a> == <a class="code" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga930e829c3c689b8ead8f9fbf7f2ca237.html#gga930e829c3c689b8ead8f9fbf7f2ca237a1f0bb0636d1fbe3a3c94541d3725b864" title="I2C command succeeded.">UCS_I2C_RES_SUCCESS</a>)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">// Do what needs to be..</span></div>
+<div class="line"> }</div>
+<div class="line"> <span class="keywordflow">else</span></div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">// Error handling here</span></div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___i2_c.html">I2C</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i2_c_gac06f58d8a7775703373f12c3c677d687.html b/ucs2-lib/doc/html/group___g___u_c_s___i2_c_gac06f58d8a7775703373f12c3c677d687.html
new file mode 100644
index 0000000..36dbd93
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i2_c_gac06f58d8a7775703373f12c3c677d687.html
@@ -0,0 +1,237 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_I2c_CreatePort</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i2_c.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gac06f58d8a7775703373f12c3c677d687"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a> Ucs_I2c_CreatePort </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *&#160;</td>
+ <td class="paramname"><em>self</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>destination_address</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint8_t&#160;</td>
+ <td class="paramname"><em>index</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga8492cc027b5b9e2f436a172e526e1d5e.html#ga8492cc027b5b9e2f436a172e526e1d5e">Ucs_I2c_Speed_t</a>&#160;</td>
+ <td class="paramname"><em>speed</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint8_t&#160;</td>
+ <td class="paramname"><em>i2c_int_mask</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_gae1f1b25aca1c240022464571187ea98f.html#gae1f1b25aca1c240022464571187ea98f">Ucs_I2c_CreatePortResCb_t</a>&#160;</td>
+ <td class="paramname"><em>result_fptr</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates an I2C Port with its associated parameter. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This function corresponds with the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-I2CPortCreate6C1">INIC.I2CPortCreate</a>.</td></tr>
+</table>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>The UNICENS instance pointer </td></tr>
+ <tr><td class="paramname">destination_address</td><td>Address of the target device. Use the <code>UCS_ADDR_LOCAL_DEV</code> macro to target the local device. <br/>
+ The following address ranges are supported:<ul>
+<li>[0x10 ... 0x2FF]</li>
+<li>[0x500 ... 0xFEF]</li>
+<li>UCS_ADDR_LOCAL_DEV </li>
+</ul>
+</td></tr>
+ <tr><td class="paramname">index</td><td>I2C Port instance. <table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>Index</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">speed</td><td>The speed grade of the I2C Port. <table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>Speed</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">i2c_int_mask</td><td>The bit mask corresponding to the I2C-interrupt on the GPIO Port. </td></tr>
+ <tr><td class="paramname">result_fptr</td><td>Required result callback function pointer. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible return values are shown in the table below. <table class="doxtable">
+<tr>
+<th>Value </th><th>Description</th></tr>
+<tr>
+<td>UCS_RET_SUCCESS </td><td>No error </td></tr>
+<tr>
+<td>UCS_RET_ERR_PARAM </td><td>At least one parameter is NULL </td></tr>
+<tr>
+<td>UCS_RET_ERR_BUFFER_OVERFLOW </td><td>No message buffer available </td></tr>
+<tr>
+<td>UCS_RET_ERR_API_LOCKED </td><td>API is currently locked </td></tr>
+<tr>
+<td>UCS_RET_ERR_NOT_INITIALIZED </td><td>UNICENS is not initialized </td></tr>
+</table>
+</dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>The below points should be considered in order to receive the notification of the I2C interrupt:<ul>
+<li>The <a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga3bdd3013545f8249a73c73e0d28713f7.html#ga3bdd3013545f8249a73c73e0d28713f7">Ucs_I2c_IntEventReportCb_t</a> callback function should be registered in the <a class="el" href="struct_ucs___init_data__t.html" title="UNICENS initialization structure used by function Ucs_Init().">Ucs_InitData_t</a> init structure.</li>
+<li>The GPIO port has to be be opened and the I2C interrupt pin associated with that port configured correctly.</li>
+</ul>
+</dd></dl>
+<p><br/>
+ <b>Example</b> </p>
+<div class="fragment"><div class="line"><span class="preprocessor">#define I2C_INT_PIN_MASK ((uint8_t)0x01)</span></div>
+<div class="line"><span class="preprocessor"></span></div>
+<div class="line"><span class="comment">// Main function</span></div>
+<div class="line"><span class="keywordtype">void</span> main()</div>
+<div class="line">{ </div>
+<div class="line"> <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd" title="Standard return codes used for synchronous response.">Ucs_Return_t</a> result = <a class="code" href="group___g___u_c_s___i2_c_gac06f58d8a7775703373f12c3c677d687.html#gac06f58d8a7775703373f12c3c677d687" title="Creates an I2C Port with its associated parameter.">Ucs_I2c_CreatePort</a>(0x556U, 0x00U, <a class="code" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga8492cc027b5b9e2f436a172e526e1d5e.html#gga8492cc027b5b9e2f436a172e526e1d5ea577d5efdff88c202f2e2f43aed2b0391" title="Speed grade of the port is 400 kHz.">UCS_I2C_FAST_MODE</a>, I2C_INT_PIN_MASK, &amp;App_I2cCreatePortResCb);</div>
+<div class="line"> <span class="keywordflow">if</span> (result != <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda3fb51656e17ee4802f23706f35e349bc" title="Operation successfully completed.">UCS_RET_SUCCESS</a>)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">// Error handling here </span></div>
+<div class="line"> }</div>
+<div class="line">} </div>
+<div class="line"></div>
+<div class="line"><span class="comment">// Handle I2cCreatePort event</span></div>
+<div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> App_I2cCreatePortResCb(uint16_t device_id, uint16_t port_handle, <a class="code" href="struct_ucs___i2c___result__t.html" title="Result structure of the I2C Module.">Ucs_I2c_Result_t</a> result, <span class="keywordtype">void</span> * user_ptr)</div>
+<div class="line">{</div>
+<div class="line"> <span class="keywordflow">if</span> (result.<a class="code" href="struct_ucs___i2c___result__t_aacd0e1eabaa18a3fe226a2b4f849832b.html#aacd0e1eabaa18a3fe226a2b4f849832b" title="Result code.">code</a> == <a class="code" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga930e829c3c689b8ead8f9fbf7f2ca237.html#gga930e829c3c689b8ead8f9fbf7f2ca237a1f0bb0636d1fbe3a3c94541d3725b864" title="I2C command succeeded.">UCS_I2C_RES_SUCCESS</a>)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">// Store received port handle</span></div>
+<div class="line"> }</div>
+<div class="line"> <span class="keywordflow">else</span></div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">// Error handling here</span></div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___i2_c.html">I2C</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i2_c_gade4a94669fe4f29f18fe5bfd4e102474.html b/ucs2-lib/doc/html/group___g___u_c_s___i2_c_gade4a94669fe4f29f18fe5bfd4e102474.html
new file mode 100644
index 0000000..1b81a0e
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i2_c_gade4a94669fe4f29f18fe5bfd4e102474.html
@@ -0,0 +1,284 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_I2c_WritePort</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i2_c.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gade4a94669fe4f29f18fe5bfd4e102474"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a> Ucs_I2c_WritePort </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *&#160;</td>
+ <td class="paramname"><em>self</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>destination_address</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>port_handle</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga631c2b70299a4c07ac77b6741b5b5e44.html#ga631c2b70299a4c07ac77b6741b5b5e44">Ucs_I2c_TrMode_t</a>&#160;</td>
+ <td class="paramname"><em>mode</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint8_t&#160;</td>
+ <td class="paramname"><em>block_count</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint8_t&#160;</td>
+ <td class="paramname"><em>slave_address</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>timeout</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint8_t&#160;</td>
+ <td class="paramname"><em>data_len</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint8_t *&#160;</td>
+ <td class="paramname"><em>data_ptr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga50029da1794f34d3ddac9df8d537c234.html#ga50029da1794f34d3ddac9df8d537c234">Ucs_I2c_WritePortResCb_t</a>&#160;</td>
+ <td class="paramname"><em>result_fptr</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Writes a block of bytes to an I2C device at a specified I2C address. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This function corresponds with the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-I2CPortWrite6C4">INIC.I2CPortWrite</a>.</td></tr>
+</table>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>The UNICENS instance pointer </td></tr>
+ <tr><td class="paramname">destination_address</td><td>Address of the target device. Use the <code>UCS_ADDR_LOCAL_DEV</code> macro to target the local device. <br/>
+ The following address ranges are supported:<ul>
+<li>[0x10 ... 0x2FF]</li>
+<li>[0x500 ... 0xFEF]</li>
+<li>UCS_ADDR_LOCAL_DEV </li>
+</ul>
+</td></tr>
+ <tr><td class="paramname">port_handle</td><td>Port resource handle. <table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>I2CPortHandle</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">mode</td><td>The write transfer mode. <table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>Mode</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">block_count</td><td>The number of blocks to be written to the I2C address. If parameter <em>mode</em> is <b>not</b> set to Burst Mode, the value of <em>block_count</em> has to be set to <b>0</b>. Otherwise the valid range of this parameter goes from 1 to 30. <table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>BlockCount</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">slave_address</td><td>The 7-bit I2C slave address of the peripheral to be read. <table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>SlaveAddress</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">timeout</td><td>The timeout for the I2C Port write. <table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>Timeout</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">data_len</td><td>The total number of bytes to be written to the addressed I2C peripheral. Even if parameter <em>mode</em> is set to Burst Mode, the <em>data_len</em> shall correspond to the whole size of the burst transfer. That is, the <em>data_len</em> shall equal the size of a block <b>times</b> the <em>block_count</em> value. </td></tr>
+ <tr><td class="paramname">data_ptr</td><td>Reference to the data to be written. </td></tr>
+ <tr><td class="paramname">result_fptr</td><td>Required result callback function pointer. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible return values are shown in the table below. <table class="doxtable">
+<tr>
+<th>Value </th><th>Description</th></tr>
+<tr>
+<td>UCS_RET_SUCCESS </td><td>No error </td></tr>
+<tr>
+<td>UCS_RET_ERR_PARAM </td><td>At least one parameter is wrong </td></tr>
+<tr>
+<td>UCS_RET_ERR_BUFFER_OVERFLOW </td><td>No message buffer available </td></tr>
+<tr>
+<td>UCS_RET_ERR_API_LOCKED </td><td>API is currently locked </td></tr>
+<tr>
+<td>UCS_RET_ERR_NOT_INITIALIZED </td><td>UNICENS is not initialized </td></tr>
+</table>
+</dd></dl>
+<p><br/>
+ <b>Example</b> </p>
+<div class="fragment"><div class="line">uint8_t myData[] = {0x4U, 0x3U, 0x2U, 0x1U, 0x0U, 0x4U, 0x3U, 0x2U, 0x1U, 0x0U, 0x05U, 0x05U}; </div>
+<div class="line"></div>
+<div class="line"><span class="comment">// Main function</span></div>
+<div class="line"><span class="keywordtype">void</span> main()</div>
+<div class="line">{</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd" title="Standard return codes used for synchronous response.">Ucs_Return_t</a> result = <a class="code" href="group___g___u_c_s___i2_c_gade4a94669fe4f29f18fe5bfd4e102474.html#gade4a94669fe4f29f18fe5bfd4e102474" title="Writes a block of bytes to an I2C device at a specified I2C address.">Ucs_I2c_WritePort</a>(0x15U, 0x0F00U, <a class="code" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga631c2b70299a4c07ac77b6741b5b5e44.html#gga631c2b70299a4c07ac77b6741b5b5e44a3380b0b2a253a389aec424ef348a34b7" title="Burst mode of the I2C write transfer.">UCS_I2C_BURST_MODE</a>, 4U, 0x20U, 0x0FU, 12U, myData, &amp;App_I2cWritePortResCb);</div>
+<div class="line"> <span class="keywordflow">if</span> (result != <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda3fb51656e17ee4802f23706f35e349bc" title="Operation successfully completed.">UCS_RET_SUCCESS</a>)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">// Error handling here </span></div>
+<div class="line"> }</div>
+<div class="line">}</div>
+<div class="line"></div>
+<div class="line"><span class="comment">// The event handler function</span></div>
+<div class="line"><span class="comment">// Handle I2cWritePort event</span></div>
+<div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> App_I2cWritePortResCb(uint16_t device_id, uint16_t port_handle, uint8_t i2c_slave_address, uint8_t data_len, <a class="code" href="struct_ucs___i2c___result__t.html" title="Result structure of the I2C Module.">Ucs_I2c_Result_t</a> result, <span class="keywordtype">void</span> * user_ptr)</div>
+<div class="line">{</div>
+<div class="line"> <span class="keywordflow">if</span> (result.<a class="code" href="struct_ucs___i2c___result__t_aacd0e1eabaa18a3fe226a2b4f849832b.html#aacd0e1eabaa18a3fe226a2b4f849832b" title="Result code.">code</a> == <a class="code" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga930e829c3c689b8ead8f9fbf7f2ca237.html#gga930e829c3c689b8ead8f9fbf7f2ca237a1f0bb0636d1fbe3a3c94541d3725b864" title="I2C command succeeded.">UCS_I2C_RES_SUCCESS</a>)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">// Do what needs to be..</span></div>
+<div class="line"> }</div>
+<div class="line"> <span class="keywordflow">else</span></div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">// Error handling here</span></div>
+<div class="line"> <span class="keywordflow">switch</span>(result.<a class="code" href="struct_ucs___i2c___result__t_a288b89d26129791b83b01a3b464d7351.html#a288b89d26129791b83b01a3b464d7351" title="Detailed information on the returned result.">details</a>.<a class="code" href="struct_ucs___i2c___result_details__t_afbf6b21e51e2114bd8165bc6b9d920a5.html#afbf6b21e51e2114bd8165bc6b9d920a5" title="Specifies the type of the current asynchronous result.">result_type</a>)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga7c7b4521cb5391bd20c02104876a811d.html#gga7c7b4521cb5391bd20c02104876a811da5f9dc425604e39a96af53cc4fb940cd6" title="Specifies the target results, typically INIC function-specific error from target device.">UCS_I2C_RESULT_TYPE_TGT</a>:</div>
+<div class="line"> <span class="comment">// Handle the target results</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga7c7b4521cb5391bd20c02104876a811d.html#gga7c7b4521cb5391bd20c02104876a811da1e9f8a38a7bf67986bb52aae45326f0e" title="Specifies the transmission error information that occurred on the MOST network.">UCS_I2C_RESULT_TYPE_TX</a>:</div>
+<div class="line"> <span class="keywordflow">default</span>:</div>
+<div class="line"> <span class="comment">// Handle transmission error</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> }</div>
+<div class="line"> }</div>
+<div class="line"> }</div>
+</div><!-- fragment -->
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___i2_c.html">I2C</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_c.html b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_c.html
new file mode 100644
index 0000000..44481e8
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_c.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: INIC</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i_n_i_c.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#groups">Topics</a> &#124;
+<a href="#nested-classes">Data Structures</a> </div>
+ <div class="headertitle">
+<div class="title">INIC</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>INIC related functions.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+Topics</h2></td></tr>
+<tr class="memitem:group___g___u_c_s___i_n_i_c___t_y_p_e_s"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s.html">Referred Types</a></td></tr>
+<tr class="memdesc:group___g___u_c_s___i_n_i_c___t_y_p_e_s"><td class="mdescLeft">&#160;</td><td class="mdescRight">INIC related types. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___inic___init_data__t.html">Ucs_Inic_InitData_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The INIC section of initialization data. <a href="struct_ucs___inic___init_data__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>INIC related functions. </p>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_c.js b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_c.js
new file mode 100644
index 0000000..5b455ba
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_c.js
@@ -0,0 +1,7 @@
+var group___g___u_c_s___i_n_i_c =
+[
+ [ "Referred Types", "group___g___u_c_s___i_n_i_c___t_y_p_e_s.html", "group___g___u_c_s___i_n_i_c___t_y_p_e_s" ],
+ [ "Ucs_Inic_InitData_t", "struct_ucs___inic___init_data__t.html", [
+ [ "power_state_fptr", "struct_ucs___inic___init_data__t_a238990027953e8302526513c7cbb4dc0.html#a238990027953e8302526513c7cbb4dc0", null ]
+ ] ]
+]; \ No newline at end of file
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_c___t_y_p_e_s.html b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_c___t_y_p_e_s.html
new file mode 100644
index 0000000..b50ee8f
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_c___t_y_p_e_s.html
@@ -0,0 +1,191 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Referred Types</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i_n_i_c___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#typedef-members">Callback Functions</a> &#124;
+<a href="#enum-members">Enumerations</a> </div>
+ <div class="headertitle">
+<div class="title">Referred Types</div> </div>
+<div class="ingroups"><a class="el" href="group___g___u_c_s___i_n_i_c.html">INIC</a></div></div><!--header-->
+<div class="contents">
+
+<p>INIC related types.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___inic___version__t.html">Ucs_Inic_Version_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This structure contains information on the hardware and firmware modules of the INIC. <a href="struct_ucs___inic___version__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___gpio___pin_configuration__t.html">Ucs_Gpio_PinConfiguration_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This structure contains information on the GPIO pin configuration. <a href="struct_ucs___gpio___pin_configuration__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Callback Functions</h2></td></tr>
+<tr class="memitem:gaca78cd7da871ae21b1d546c31e604772"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s_gaca78cd7da871ae21b1d546c31e604772.html#gaca78cd7da871ae21b1d546c31e604772">Ucs_Inic_PowerStateCb_t</a> )(<a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga132c4c68227062e63ffb99b321b9a677.html#ga132c4c68227062e63ffb99b321b9a677">Ucs_Inic_PowerState_t</a> power_state, void *user_ptr)</td></tr>
+<tr class="memdesc:gaca78cd7da871ae21b1d546c31e604772"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function signature used to monitor the INICs power state. <a href="#gaca78cd7da871ae21b1d546c31e604772"></a><br/></td></tr>
+<tr class="separator:gaca78cd7da871ae21b1d546c31e604772"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:ga17139fe9e7d72bdb5a09d5a1ab39de4e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga17139fe9e7d72bdb5a09d5a1ab39de4e.html#ga17139fe9e7d72bdb5a09d5a1ab39de4e">Ucs_Inic_LastResetReason_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga17139fe9e7d72bdb5a09d5a1ab39de4e.html#gga17139fe9e7d72bdb5a09d5a1ab39de4ea68f49058a3c2aa114b5648ebd5913127">UCS_INIC_RST_STARTUP</a> = 0x00U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga17139fe9e7d72bdb5a09d5a1ab39de4e.html#gga17139fe9e7d72bdb5a09d5a1ab39de4ea300964cfd947816911fc84b377645b66">UCS_INIC_RST_HW_WATCHDOG</a> = 0x01U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga17139fe9e7d72bdb5a09d5a1ab39de4e.html#gga17139fe9e7d72bdb5a09d5a1ab39de4ea1d4d0eca4c7fe754ecdfa67ecafcdb66">UCS_INIC_RST_STACK_OVERFLOW</a> = 0x02U
+<br/>
+ }</td></tr>
+<tr class="memdesc:ga17139fe9e7d72bdb5a09d5a1ab39de4e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data Type which describes the last reset reason of the device. <a href="group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga17139fe9e7d72bdb5a09d5a1ab39de4e.html#ga17139fe9e7d72bdb5a09d5a1ab39de4e">More...</a><br/></td></tr>
+<tr class="separator:ga17139fe9e7d72bdb5a09d5a1ab39de4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga132c4c68227062e63ffb99b321b9a677"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga132c4c68227062e63ffb99b321b9a677.html#ga132c4c68227062e63ffb99b321b9a677">Ucs_Inic_PowerState_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga132c4c68227062e63ffb99b321b9a677.html#gga132c4c68227062e63ffb99b321b9a677ad9a4e228862a8bb126d2e508d85a0389">UCS_INIC_PWS_U_NORMAL</a> = 0x00U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga132c4c68227062e63ffb99b321b9a677.html#gga132c4c68227062e63ffb99b321b9a677a11e4fbe29a4fdb2c2e0afeb25e09965a">UCS_INIC_PWS_U_LOW</a> = 0x01U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga132c4c68227062e63ffb99b321b9a677.html#gga132c4c68227062e63ffb99b321b9a677abca288e1dc24d1dae285b7be73abe1d2">UCS_INIC_PWS_STP</a> = 0x02U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga132c4c68227062e63ffb99b321b9a677.html#gga132c4c68227062e63ffb99b321b9a677a64b91caa822c22017b4aca60d38c78c8">UCS_INIC_PWS_U_CRITICAL</a> = 0x03U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga132c4c68227062e63ffb99b321b9a677.html#gga132c4c68227062e63ffb99b321b9a677aa33c9585db02ba2136a5214e9a0fc72e">UCS_INIC_PWS_NO_MONITORING</a> = 0xFFU
+<br/>
+ }</td></tr>
+<tr class="memdesc:ga132c4c68227062e63ffb99b321b9a677"><td class="mdescLeft">&#160;</td><td class="mdescRight">The current power state of the INICs power management interface (PS0/PS1). <a href="group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga132c4c68227062e63ffb99b321b9a677.html#ga132c4c68227062e63ffb99b321b9a677">More...</a><br/></td></tr>
+<tr class="separator:ga132c4c68227062e63ffb99b321b9a677"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4d4ad405b114eba3e3a2e5581a0b5d9c"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga4d4ad405b114eba3e3a2e5581a0b5d9c.html#ga4d4ad405b114eba3e3a2e5581a0b5d9c">Ucs_Sd_ResCode_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga4d4ad405b114eba3e3a2e5581a0b5d9c.html#gga4d4ad405b114eba3e3a2e5581a0b5d9ca863e9f716a0aaaa31a88e2362e0b20c9">UCS_SD_TARGET_FOUND</a> = 0x01U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga4d4ad405b114eba3e3a2e5581a0b5d9c.html#gga4d4ad405b114eba3e3a2e5581a0b5d9ca4bb8732a74d1e48108c59ee15b99f2dc">UCS_SD_FINISHED</a> = 0x02U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga4d4ad405b114eba3e3a2e5581a0b5d9c.html#gga4d4ad405b114eba3e3a2e5581a0b5d9ca6905a0a0e360528a3a8bc2a019b83f5e">UCS_SD_CABLE_LINK_RES</a> = 0x03U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga4d4ad405b114eba3e3a2e5581a0b5d9c.html#gga4d4ad405b114eba3e3a2e5581a0b5d9ca24eb65098a000880b49bdec23df59875">UCS_SD_ABORTED</a> = 0x04U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga4d4ad405b114eba3e3a2e5581a0b5d9c.html#gga4d4ad405b114eba3e3a2e5581a0b5d9caf1cfc47eb0bb457e7627178aa04ec292">UCS_SD_ERROR</a> = 0x05U
+<br/>
+ }</td></tr>
+<tr class="memdesc:ga4d4ad405b114eba3e3a2e5581a0b5d9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of System Diagnosis Report. <a href="group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga4d4ad405b114eba3e3a2e5581a0b5d9c.html#ga4d4ad405b114eba3e3a2e5581a0b5d9c">More...</a><br/></td></tr>
+<tr class="separator:ga4d4ad405b114eba3e3a2e5581a0b5d9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad0e1473ecd96b8d94131cb5d81295fc3"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s_gad0e1473ecd96b8d94131cb5d81295fc3.html#gad0e1473ecd96b8d94131cb5d81295fc3">Ucs_Sd_ErrCode_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s_gad0e1473ecd96b8d94131cb5d81295fc3.html#ggad0e1473ecd96b8d94131cb5d81295fc3a93dead118b00c19d7d17401be8ce72cd">UCS_SD_ERR_UNSPECIFIED</a> = 0x01U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s_gad0e1473ecd96b8d94131cb5d81295fc3.html#ggad0e1473ecd96b8d94131cb5d81295fc3a6702bd287f88f76e4d13ac87f8b3c721">UCS_SD_ERR_WELCOME_NO_SUCCESS</a> = 0x02U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s_gad0e1473ecd96b8d94131cb5d81295fc3.html#ggad0e1473ecd96b8d94131cb5d81295fc3a2e4d4e1fe5f54e2f5855e26483670aea">UCS_SD_ERR_STOP_SYSDIAG_FAILED</a> = 0x03U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s_gad0e1473ecd96b8d94131cb5d81295fc3.html#ggad0e1473ecd96b8d94131cb5d81295fc3aa90c57ed3372954deabffda0100a2da3">UCS_SD_ERR_TERMINATED</a> = 0x04U
+<br/>
+ }</td></tr>
+<tr class="memdesc:gad0e1473ecd96b8d94131cb5d81295fc3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of System Diagnosis Error Codes. <a href="group___g___u_c_s___i_n_i_c___t_y_p_e_s_gad0e1473ecd96b8d94131cb5d81295fc3.html#gad0e1473ecd96b8d94131cb5d81295fc3">More...</a><br/></td></tr>
+<tr class="separator:gad0e1473ecd96b8d94131cb5d81295fc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>INIC related types. </p>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_c___t_y_p_e_s.js b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_c___t_y_p_e_s.js
new file mode 100644
index 0000000..25167de
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_c___t_y_p_e_s.js
@@ -0,0 +1,45 @@
+var group___g___u_c_s___i_n_i_c___t_y_p_e_s =
+[
+ [ "Ucs_Inic_Version_t", "struct_ucs___inic___version__t.html", [
+ [ "build_version", "struct_ucs___inic___version__t_ab190dafd0511e594196f0d25f0cd99dc.html#ab190dafd0511e594196f0d25f0cd99dc", null ],
+ [ "cs_major_version", "struct_ucs___inic___version__t_abae3da4c5cc12b7d7470701f1811caa2.html#abae3da4c5cc12b7d7470701f1811caa2", null ],
+ [ "cs_minor_version", "struct_ucs___inic___version__t_aedae893bc0a52aed213d0dcef8262921.html#aedae893bc0a52aed213d0dcef8262921", null ],
+ [ "cs_release_version", "struct_ucs___inic___version__t_aed9e506bf23c33ccb10ba21404859a74.html#aed9e506bf23c33ccb10ba21404859a74", null ],
+ [ "diagnosis_id", "struct_ucs___inic___version__t_ab98cc6d6cb5cc92d5f6633419daa643e.html#ab98cc6d6cb5cc92d5f6633419daa643e", null ],
+ [ "hw_revision", "struct_ucs___inic___version__t_afd5796c03158d03bb72378ce02535beb.html#afd5796c03158d03bb72378ce02535beb", null ],
+ [ "major_version", "struct_ucs___inic___version__t_a79fca74d233fe79b334ecc712ca688ea.html#a79fca74d233fe79b334ecc712ca688ea", null ],
+ [ "minor_version", "struct_ucs___inic___version__t_a384e7593c5c4c33e1f7c9936dab0b937.html#a384e7593c5c4c33e1f7c9936dab0b937", null ],
+ [ "product_identifier", "struct_ucs___inic___version__t_a20c9cb94858deb6d8a9ab9a220fa8778.html#a20c9cb94858deb6d8a9ab9a220fa8778", null ],
+ [ "release_version", "struct_ucs___inic___version__t_a2aa984a9a3499db9e991535b402b3dca.html#a2aa984a9a3499db9e991535b402b3dca", null ]
+ ] ],
+ [ "Ucs_Gpio_PinConfiguration_t", "struct_ucs___gpio___pin_configuration__t.html", [
+ [ "mode", "struct_ucs___gpio___pin_configuration__t_a9f9602aa82b7dc511dfd57447039c1ab.html#a9f9602aa82b7dc511dfd57447039c1ab", null ],
+ [ "pin", "struct_ucs___gpio___pin_configuration__t_ab40a673fb19c1e650e1f79de91788aa5.html#ab40a673fb19c1e650e1f79de91788aa5", null ]
+ ] ],
+ [ "Ucs_Inic_PowerStateCb_t", "group___g___u_c_s___i_n_i_c___t_y_p_e_s_gaca78cd7da871ae21b1d546c31e604772.html#gaca78cd7da871ae21b1d546c31e604772", null ],
+ [ "Ucs_Inic_LastResetReason_t", "group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga17139fe9e7d72bdb5a09d5a1ab39de4e.html#ga17139fe9e7d72bdb5a09d5a1ab39de4e", [
+ [ "UCS_INIC_RST_STARTUP", "group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga17139fe9e7d72bdb5a09d5a1ab39de4e.html#gga17139fe9e7d72bdb5a09d5a1ab39de4ea68f49058a3c2aa114b5648ebd5913127", null ],
+ [ "UCS_INIC_RST_HW_WATCHDOG", "group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga17139fe9e7d72bdb5a09d5a1ab39de4e.html#gga17139fe9e7d72bdb5a09d5a1ab39de4ea300964cfd947816911fc84b377645b66", null ],
+ [ "UCS_INIC_RST_STACK_OVERFLOW", "group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga17139fe9e7d72bdb5a09d5a1ab39de4e.html#gga17139fe9e7d72bdb5a09d5a1ab39de4ea1d4d0eca4c7fe754ecdfa67ecafcdb66", null ]
+ ] ],
+ [ "Ucs_Inic_PowerState_t", "group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga132c4c68227062e63ffb99b321b9a677.html#ga132c4c68227062e63ffb99b321b9a677", [
+ [ "UCS_INIC_PWS_U_NORMAL", "group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga132c4c68227062e63ffb99b321b9a677.html#gga132c4c68227062e63ffb99b321b9a677ad9a4e228862a8bb126d2e508d85a0389", null ],
+ [ "UCS_INIC_PWS_U_LOW", "group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga132c4c68227062e63ffb99b321b9a677.html#gga132c4c68227062e63ffb99b321b9a677a11e4fbe29a4fdb2c2e0afeb25e09965a", null ],
+ [ "UCS_INIC_PWS_STP", "group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga132c4c68227062e63ffb99b321b9a677.html#gga132c4c68227062e63ffb99b321b9a677abca288e1dc24d1dae285b7be73abe1d2", null ],
+ [ "UCS_INIC_PWS_U_CRITICAL", "group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga132c4c68227062e63ffb99b321b9a677.html#gga132c4c68227062e63ffb99b321b9a677a64b91caa822c22017b4aca60d38c78c8", null ],
+ [ "UCS_INIC_PWS_NO_MONITORING", "group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga132c4c68227062e63ffb99b321b9a677.html#gga132c4c68227062e63ffb99b321b9a677aa33c9585db02ba2136a5214e9a0fc72e", null ]
+ ] ],
+ [ "Ucs_Sd_ErrCode_t", "group___g___u_c_s___i_n_i_c___t_y_p_e_s_gad0e1473ecd96b8d94131cb5d81295fc3.html#gad0e1473ecd96b8d94131cb5d81295fc3", [
+ [ "UCS_SD_ERR_UNSPECIFIED", "group___g___u_c_s___i_n_i_c___t_y_p_e_s_gad0e1473ecd96b8d94131cb5d81295fc3.html#ggad0e1473ecd96b8d94131cb5d81295fc3a93dead118b00c19d7d17401be8ce72cd", null ],
+ [ "UCS_SD_ERR_WELCOME_NO_SUCCESS", "group___g___u_c_s___i_n_i_c___t_y_p_e_s_gad0e1473ecd96b8d94131cb5d81295fc3.html#ggad0e1473ecd96b8d94131cb5d81295fc3a6702bd287f88f76e4d13ac87f8b3c721", null ],
+ [ "UCS_SD_ERR_STOP_SYSDIAG_FAILED", "group___g___u_c_s___i_n_i_c___t_y_p_e_s_gad0e1473ecd96b8d94131cb5d81295fc3.html#ggad0e1473ecd96b8d94131cb5d81295fc3a2e4d4e1fe5f54e2f5855e26483670aea", null ],
+ [ "UCS_SD_ERR_TERMINATED", "group___g___u_c_s___i_n_i_c___t_y_p_e_s_gad0e1473ecd96b8d94131cb5d81295fc3.html#ggad0e1473ecd96b8d94131cb5d81295fc3aa90c57ed3372954deabffda0100a2da3", null ]
+ ] ],
+ [ "Ucs_Sd_ResCode_t", "group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga4d4ad405b114eba3e3a2e5581a0b5d9c.html#ga4d4ad405b114eba3e3a2e5581a0b5d9c", [
+ [ "UCS_SD_TARGET_FOUND", "group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga4d4ad405b114eba3e3a2e5581a0b5d9c.html#gga4d4ad405b114eba3e3a2e5581a0b5d9ca863e9f716a0aaaa31a88e2362e0b20c9", null ],
+ [ "UCS_SD_FINISHED", "group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga4d4ad405b114eba3e3a2e5581a0b5d9c.html#gga4d4ad405b114eba3e3a2e5581a0b5d9ca4bb8732a74d1e48108c59ee15b99f2dc", null ],
+ [ "UCS_SD_CABLE_LINK_RES", "group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga4d4ad405b114eba3e3a2e5581a0b5d9c.html#gga4d4ad405b114eba3e3a2e5581a0b5d9ca6905a0a0e360528a3a8bc2a019b83f5e", null ],
+ [ "UCS_SD_ABORTED", "group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga4d4ad405b114eba3e3a2e5581a0b5d9c.html#gga4d4ad405b114eba3e3a2e5581a0b5d9ca24eb65098a000880b49bdec23df59875", null ],
+ [ "UCS_SD_ERROR", "group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga4d4ad405b114eba3e3a2e5581a0b5d9c.html#gga4d4ad405b114eba3e3a2e5581a0b5d9caf1cfc47eb0bb457e7627178aa04ec292", null ]
+ ] ]
+]; \ No newline at end of file
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga132c4c68227062e63ffb99b321b9a677.html b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga132c4c68227062e63ffb99b321b9a677.html
new file mode 100644
index 0000000..1829ed9
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga132c4c68227062e63ffb99b321b9a677.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Inic_PowerState_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i_n_i_c___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga132c4c68227062e63ffb99b321b9a677"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga132c4c68227062e63ffb99b321b9a677.html#ga132c4c68227062e63ffb99b321b9a677">Ucs_Inic_PowerState_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The current power state of the INICs power management interface (PS0/PS1). </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga132c4c68227062e63ffb99b321b9a677ad9a4e228862a8bb126d2e508d85a0389"></a>UCS_INIC_PWS_U_NORMAL</em>&nbsp;</td><td>
+<p>Power state "UNormal". </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga132c4c68227062e63ffb99b321b9a677a11e4fbe29a4fdb2c2e0afeb25e09965a"></a>UCS_INIC_PWS_U_LOW</em>&nbsp;</td><td>
+<p>Power state "ULow". </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga132c4c68227062e63ffb99b321b9a677abca288e1dc24d1dae285b7be73abe1d2"></a>UCS_INIC_PWS_STP</em>&nbsp;</td><td>
+<p>Power State "STP". </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga132c4c68227062e63ffb99b321b9a677a64b91caa822c22017b4aca60d38c78c8"></a>UCS_INIC_PWS_U_CRITICAL</em>&nbsp;</td><td>
+<p>Power State "UCritical". </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga132c4c68227062e63ffb99b321b9a677aa33c9585db02ba2136a5214e9a0fc72e"></a>UCS_INIC_PWS_NO_MONITORING</em>&nbsp;</td><td>
+<p>No power state. Power management monitoring is disabled in INIC configuration string. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s.html">Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga17139fe9e7d72bdb5a09d5a1ab39de4e.html b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga17139fe9e7d72bdb5a09d5a1ab39de4e.html
new file mode 100644
index 0000000..dbdae19
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga17139fe9e7d72bdb5a09d5a1ab39de4e.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Inic_LastResetReason_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i_n_i_c___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga17139fe9e7d72bdb5a09d5a1ab39de4e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga17139fe9e7d72bdb5a09d5a1ab39de4e.html#ga17139fe9e7d72bdb5a09d5a1ab39de4e">Ucs_Inic_LastResetReason_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Data Type which describes the last reset reason of the device. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga17139fe9e7d72bdb5a09d5a1ab39de4ea68f49058a3c2aa114b5648ebd5913127"></a>UCS_INIC_RST_STARTUP</em>&nbsp;</td><td>
+<p>Reset due to Power on reset or reset pin (!RST) is held low. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga17139fe9e7d72bdb5a09d5a1ab39de4ea300964cfd947816911fc84b377645b66"></a>UCS_INIC_RST_HW_WATCHDOG</em>&nbsp;</td><td>
+<p>Reset due to hardware watchdog that had snapped. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga17139fe9e7d72bdb5a09d5a1ab39de4ea1d4d0eca4c7fe754ecdfa67ecafcdb66"></a>UCS_INIC_RST_STACK_OVERFLOW</em>&nbsp;</td><td>
+<p>Reset due to stack overflow. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s.html">Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga4d4ad405b114eba3e3a2e5581a0b5d9c.html b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga4d4ad405b114eba3e3a2e5581a0b5d9c.html
new file mode 100644
index 0000000..698fd62
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga4d4ad405b114eba3e3a2e5581a0b5d9c.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Sd_ResCode_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i_n_i_c___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga4d4ad405b114eba3e3a2e5581a0b5d9c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga4d4ad405b114eba3e3a2e5581a0b5d9c.html#ga4d4ad405b114eba3e3a2e5581a0b5d9c">Ucs_Sd_ResCode_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Type of System Diagnosis Report. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga4d4ad405b114eba3e3a2e5581a0b5d9ca863e9f716a0aaaa31a88e2362e0b20c9"></a>UCS_SD_TARGET_FOUND</em>&nbsp;</td><td>
+<p>Segment description. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga4d4ad405b114eba3e3a2e5581a0b5d9ca4bb8732a74d1e48108c59ee15b99f2dc"></a>UCS_SD_FINISHED</em>&nbsp;</td><td>
+<p>System Diagnosis finished. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga4d4ad405b114eba3e3a2e5581a0b5d9ca6905a0a0e360528a3a8bc2a019b83f5e"></a>UCS_SD_CABLE_LINK_RES</em>&nbsp;</td><td>
+<p>Cable Link Diagnosis was executed. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga4d4ad405b114eba3e3a2e5581a0b5d9ca24eb65098a000880b49bdec23df59875"></a>UCS_SD_ABORTED</em>&nbsp;</td><td>
+<p>System Diagnosis stopped by application command. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga4d4ad405b114eba3e3a2e5581a0b5d9caf1cfc47eb0bb457e7627178aa04ec292"></a>UCS_SD_ERROR</em>&nbsp;</td><td>
+<p>System Diagnosis detected unexpected error. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s.html">Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_c___t_y_p_e_s_gaca78cd7da871ae21b1d546c31e604772.html b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_c___t_y_p_e_s_gaca78cd7da871ae21b1d546c31e604772.html
new file mode 100644
index 0000000..0b55812
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_c___t_y_p_e_s_gaca78cd7da871ae21b1d546c31e604772.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Inic_PowerStateCb_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i_n_i_c___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gaca78cd7da871ae21b1d546c31e604772"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* Ucs_Inic_PowerStateCb_t)(<a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga132c4c68227062e63ffb99b321b9a677.html#ga132c4c68227062e63ffb99b321b9a677">Ucs_Inic_PowerState_t</a> power_state, void *user_ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Function signature used to monitor the INICs power state. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">power_state</td><td>The current state of the INICs power management interface. </td></tr>
+ <tr><td class="paramname">user_ptr</td><td>User reference provided in <a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t::user_ptr</a> </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s.html">Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_c___t_y_p_e_s_gad0e1473ecd96b8d94131cb5d81295fc3.html b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_c___t_y_p_e_s_gad0e1473ecd96b8d94131cb5d81295fc3.html
new file mode 100644
index 0000000..5ad9a20
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_c___t_y_p_e_s_gad0e1473ecd96b8d94131cb5d81295fc3.html
@@ -0,0 +1,140 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Sd_ErrCode_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i_n_i_c___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gad0e1473ecd96b8d94131cb5d81295fc3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s_gad0e1473ecd96b8d94131cb5d81295fc3.html#gad0e1473ecd96b8d94131cb5d81295fc3">Ucs_Sd_ErrCode_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Type of System Diagnosis Error Codes. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="ggad0e1473ecd96b8d94131cb5d81295fc3a93dead118b00c19d7d17401be8ce72cd"></a>UCS_SD_ERR_UNSPECIFIED</em>&nbsp;</td><td>
+<p>An internal error occurred during System Diagnosis. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggad0e1473ecd96b8d94131cb5d81295fc3a6702bd287f88f76e4d13ac87f8b3c721"></a>UCS_SD_ERR_WELCOME_NO_SUCCESS</em>&nbsp;</td><td>
+<p>INIC answered with "NoSuccess" to a Welcome.StartResult command. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggad0e1473ecd96b8d94131cb5d81295fc3a2e4d4e1fe5f54e2f5855e26483670aea"></a>UCS_SD_ERR_STOP_SYSDIAG_FAILED</em>&nbsp;</td><td>
+<p>Stopping the System Diagnosis mode on INIC failed. The INIC may remain in System Diagnosis mode. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggad0e1473ecd96b8d94131cb5d81295fc3aa90c57ed3372954deabffda0100a2da3"></a>UCS_SD_ERR_TERMINATED</em>&nbsp;</td><td>
+<p>System Diagnosis stopped due to a severe error. The INIC may remain in System Diagnosis mode. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s.html">Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v.html b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v.html
new file mode 100644
index 0000000..99b023d
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v.html
@@ -0,0 +1,185 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Initialization and Service</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i_n_i_t___a_n_d___s_r_v.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#groups">Topics</a> &#124;
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#define-members">Macros</a> &#124;
+<a href="#typedef-members">Callback Functions</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">Initialization and Service</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides initialization and service functions.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+Topics</h2></td></tr>
+<tr class="memitem:group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s.html">Initialization and Service Types</a></td></tr>
+<tr class="memdesc:group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s"><td class="mdescLeft">&#160;</td><td class="mdescRight">Referred types used by basic functions. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group___g___u_c_s___t_r_a_c_e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___t_r_a_c_e.html">Tracing/Debugging</a></td></tr>
+<tr class="memdesc:group___g___u_c_s___t_r_a_c_e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tracing/Debugging Interface. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">UNICENS initialization structure used by function <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_gaea8d7735d41853167a2befdc06febe43.html#gaea8d7735d41853167a2befdc06febe43" title="UNICENS initialization function.">Ucs_Init()</a>. <a href="struct_ucs___init_data__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:ga750688e4ce10e995d802e288540d19c4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga750688e4ce10e995d802e288540d19c4.html#ga750688e4ce10e995d802e288540d19c4">UCS_NUM_INSTANCES</a>&#160;&#160;&#160;1</td></tr>
+<tr class="memdesc:ga750688e4ce10e995d802e288540d19c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of API instances which can be created by function <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga85a99b5d236b29e2d598bef51edad638.html#ga85a99b5d236b29e2d598bef51edad638" title="Retrieves a UNICENS API instance.">Ucs_CreateInstance()</a>. <a href="#ga750688e4ce10e995d802e288540d19c4"></a><br/></td></tr>
+<tr class="separator:ga750688e4ce10e995d802e288540d19c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaff7821fdddebc32a8a3f61a5eebc405a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_gaff7821fdddebc32a8a3f61a5eebc405a.html#gaff7821fdddebc32a8a3f61a5eebc405a">UCS_FOOTPRINT_TINY</a></td></tr>
+<tr class="memdesc:gaff7821fdddebc32a8a3f61a5eebc405a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define this macro to reduce the RAM and ROM size of the UNICENS software by disabling certain features. <a href="#gaff7821fdddebc32a8a3f61a5eebc405a"></a><br/></td></tr>
+<tr class="separator:gaff7821fdddebc32a8a3f61a5eebc405a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Callback Functions</h2></td></tr>
+<tr class="memitem:ga61a038694eeb972f6d298478f16a2de2"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga61a038694eeb972f6d298478f16a2de2.html#ga61a038694eeb972f6d298478f16a2de2">Ucs_RequestServiceCb_t</a> )(void *user_ptr)</td></tr>
+<tr class="memdesc:ga61a038694eeb972f6d298478f16a2de2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function signature used for service request callback. <a href="#ga61a038694eeb972f6d298478f16a2de2"></a><br/></td></tr>
+<tr class="separator:ga61a038694eeb972f6d298478f16a2de2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga64926a6a194cfb06703835e3d06475c6"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga64926a6a194cfb06703835e3d06475c6.html#ga64926a6a194cfb06703835e3d06475c6">Ucs_ErrorCb_t</a> )(<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga9551cd80ce8a13fa6cce717cbc13e499.html#ga9551cd80ce8a13fa6cce717cbc13e499">Ucs_Error_t</a> error_code, void *user_ptr)</td></tr>
+<tr class="memdesc:ga64926a6a194cfb06703835e3d06475c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function signature used for the general error callback function. <a href="#ga64926a6a194cfb06703835e3d06475c6"></a><br/></td></tr>
+<tr class="separator:ga64926a6a194cfb06703835e3d06475c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga981854177aa9ebd554ab522199193bd3"><td class="memItemLeft" align="right" valign="top">typedef uint16_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga981854177aa9ebd554ab522199193bd3.html#ga981854177aa9ebd554ab522199193bd3">Ucs_GetTickCountCb_t</a> )(void *user_ptr)</td></tr>
+<tr class="memdesc:ga981854177aa9ebd554ab522199193bd3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function signature used for callback function to get system tick count. <a href="#ga981854177aa9ebd554ab522199193bd3"></a><br/></td></tr>
+<tr class="separator:ga981854177aa9ebd554ab522199193bd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0238420959cc58ee52c0b385741fccc9"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga0238420959cc58ee52c0b385741fccc9.html#ga0238420959cc58ee52c0b385741fccc9">Ucs_SetAppTimerCb_t</a> )(uint16_t timeout, void *user_ptr)</td></tr>
+<tr class="memdesc:ga0238420959cc58ee52c0b385741fccc9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function signature used for timer callback function. <a href="#ga0238420959cc58ee52c0b385741fccc9"></a><br/></td></tr>
+<tr class="separator:ga0238420959cc58ee52c0b385741fccc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga85a99b5d236b29e2d598bef51edad638"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga85a99b5d236b29e2d598bef51edad638.html#ga85a99b5d236b29e2d598bef51edad638">Ucs_CreateInstance</a> (void)</td></tr>
+<tr class="memdesc:ga85a99b5d236b29e2d598bef51edad638"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves a UNICENS API instance. <a href="#ga85a99b5d236b29e2d598bef51edad638"></a><br/></td></tr>
+<tr class="separator:ga85a99b5d236b29e2d598bef51edad638"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga64b50780725a0dc8693b5b73f8345ad6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga64b50780725a0dc8693b5b73f8345ad6.html#ga64b50780725a0dc8693b5b73f8345ad6">Ucs_SetDefaultConfig</a> (<a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t</a> *init_ptr)</td></tr>
+<tr class="memdesc:ga64b50780725a0dc8693b5b73f8345ad6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assigns default values to a provided UNICENS init structure. <a href="#ga64b50780725a0dc8693b5b73f8345ad6"></a><br/></td></tr>
+<tr class="separator:ga64b50780725a0dc8693b5b73f8345ad6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaea8d7735d41853167a2befdc06febe43"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_gaea8d7735d41853167a2befdc06febe43.html#gaea8d7735d41853167a2befdc06febe43">Ucs_Init</a> (<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *self, const <a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t</a> *init_ptr, <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gaba3a47e6c1d360c77e560cefe8c541e3.html#gaba3a47e6c1d360c77e560cefe8c541e3">Ucs_InitResultCb_t</a> init_result_fptr)</td></tr>
+<tr class="memdesc:gaea8d7735d41853167a2befdc06febe43"><td class="mdescLeft">&#160;</td><td class="mdescRight">UNICENS initialization function. <a href="#gaea8d7735d41853167a2befdc06febe43"></a><br/></td></tr>
+<tr class="separator:gaea8d7735d41853167a2befdc06febe43"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga61381bd30fb6630b6c5d6ecc8968e983"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga61381bd30fb6630b6c5d6ecc8968e983.html#ga61381bd30fb6630b6c5d6ecc8968e983">Ucs_Stop</a> (<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *self, <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gaa573fbe79f76f263a17e51d6de99036d.html#gaa573fbe79f76f263a17e51d6de99036d">Ucs_StdResultCb_t</a> stopped_fptr)</td></tr>
+<tr class="memdesc:ga61381bd30fb6630b6c5d6ecc8968e983"><td class="mdescLeft">&#160;</td><td class="mdescRight">Terminates the execution of UNICENS. <a href="#ga61381bd30fb6630b6c5d6ecc8968e983"></a><br/></td></tr>
+<tr class="separator:ga61381bd30fb6630b6c5d6ecc8968e983"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga649fb9128df6f634fc86aa03b374d822"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga649fb9128df6f634fc86aa03b374d822.html#ga649fb9128df6f634fc86aa03b374d822">Ucs_Service</a> (<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *self)</td></tr>
+<tr class="memdesc:ga649fb9128df6f634fc86aa03b374d822"><td class="mdescLeft">&#160;</td><td class="mdescRight">The application must call this function cyclically to drive UNICENS. <a href="#ga649fb9128df6f634fc86aa03b374d822"></a><br/></td></tr>
+<tr class="separator:ga649fb9128df6f634fc86aa03b374d822"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga369c86a27ffee30a3af3423f6b3f3e59"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga369c86a27ffee30a3af3423f6b3f3e59.html#ga369c86a27ffee30a3af3423f6b3f3e59">Ucs_ReportTimeout</a> (<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *self)</td></tr>
+<tr class="memdesc:ga369c86a27ffee30a3af3423f6b3f3e59"><td class="mdescLeft">&#160;</td><td class="mdescRight">The application must call this function if the application timer expires. <a href="#ga369c86a27ffee30a3af3423f6b3f3e59"></a><br/></td></tr>
+<tr class="separator:ga369c86a27ffee30a3af3423f6b3f3e59"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Provides initialization and service functions. </p>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v.js b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v.js
new file mode 100644
index 0000000..dd35541
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v.js
@@ -0,0 +1,30 @@
+var group___g___u_c_s___i_n_i_t___a_n_d___s_r_v =
+[
+ [ "Initialization and Service Types", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s.html", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s" ],
+ [ "Tracing/Debugging", "group___g___u_c_s___t_r_a_c_e.html", "group___g___u_c_s___t_r_a_c_e" ],
+ [ "Ucs_InitData_t", "struct_ucs___init_data__t.html", [
+ [ "ams", "struct_ucs___init_data__t_afc4097eb34fb5c24bb13e02b6f506b3c.html#afc4097eb34fb5c24bb13e02b6f506b3c", null ],
+ [ "general", "struct_ucs___init_data__t_a43e7559dfe1bc2860cb0d2749fa66071.html#a43e7559dfe1bc2860cb0d2749fa66071", null ],
+ [ "gpio", "struct_ucs___init_data__t_aaff1fbd74feb484366c4082f00f2aea7.html#aaff1fbd74feb484366c4082f00f2aea7", null ],
+ [ "i2c", "struct_ucs___init_data__t_a1b49223d94d385d1229b6864ad7fa053.html#a1b49223d94d385d1229b6864ad7fa053", null ],
+ [ "inic", "struct_ucs___init_data__t_a6788f8bea24665769ce00897162f84d4.html#a6788f8bea24665769ce00897162f84d4", null ],
+ [ "lld", "struct_ucs___init_data__t_ac0b0a4478bafe6e81ed3c3e2c72f4fc9.html#ac0b0a4478bafe6e81ed3c3e2c72f4fc9", null ],
+ [ "mgr", "struct_ucs___init_data__t_a517c2ec800639c8a91183e70189b1875.html#a517c2ec800639c8a91183e70189b1875", null ],
+ [ "nd", "struct_ucs___init_data__t_a97b13c03602cc54884ae1765c518bd7b.html#a97b13c03602cc54884ae1765c518bd7b", null ],
+ [ "network", "struct_ucs___init_data__t_aa220785601aa16c0e0aff52f44380719.html#aa220785601aa16c0e0aff52f44380719", null ],
+ [ "rm", "struct_ucs___init_data__t_a8619aaf795810b7508046fbfef6d6907.html#a8619aaf795810b7508046fbfef6d6907", null ],
+ [ "user_ptr", "struct_ucs___init_data__t_a41f828ebbe67a574ee39abd6c054bb6c.html#a41f828ebbe67a574ee39abd6c054bb6c", null ]
+ ] ],
+ [ "UCS_FOOTPRINT_TINY", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_gaff7821fdddebc32a8a3f61a5eebc405a.html#gaff7821fdddebc32a8a3f61a5eebc405a", null ],
+ [ "UCS_NUM_INSTANCES", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga750688e4ce10e995d802e288540d19c4.html#ga750688e4ce10e995d802e288540d19c4", null ],
+ [ "Ucs_ErrorCb_t", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga64926a6a194cfb06703835e3d06475c6.html#ga64926a6a194cfb06703835e3d06475c6", null ],
+ [ "Ucs_GetTickCountCb_t", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga981854177aa9ebd554ab522199193bd3.html#ga981854177aa9ebd554ab522199193bd3", null ],
+ [ "Ucs_RequestServiceCb_t", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga61a038694eeb972f6d298478f16a2de2.html#ga61a038694eeb972f6d298478f16a2de2", null ],
+ [ "Ucs_SetAppTimerCb_t", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga0238420959cc58ee52c0b385741fccc9.html#ga0238420959cc58ee52c0b385741fccc9", null ],
+ [ "Ucs_CreateInstance", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga85a99b5d236b29e2d598bef51edad638.html#ga85a99b5d236b29e2d598bef51edad638", null ],
+ [ "Ucs_Init", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_gaea8d7735d41853167a2befdc06febe43.html#gaea8d7735d41853167a2befdc06febe43", null ],
+ [ "Ucs_ReportTimeout", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga369c86a27ffee30a3af3423f6b3f3e59.html#ga369c86a27ffee30a3af3423f6b3f3e59", null ],
+ [ "Ucs_Service", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga649fb9128df6f634fc86aa03b374d822.html#ga649fb9128df6f634fc86aa03b374d822", null ],
+ [ "Ucs_SetDefaultConfig", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga64b50780725a0dc8693b5b73f8345ad6.html#ga64b50780725a0dc8693b5b73f8345ad6", null ],
+ [ "Ucs_Stop", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga61381bd30fb6630b6c5d6ecc8968e983.html#ga61381bd30fb6630b6c5d6ecc8968e983", null ]
+]; \ No newline at end of file
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s.html b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s.html
new file mode 100644
index 0000000..168cffa
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s.html
@@ -0,0 +1,224 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Initialization and Service Types</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#typedef-members">Callback Functions</a> &#124;
+<a href="#enum-members">Enumerations</a> </div>
+ <div class="headertitle">
+<div class="title">Initialization and Service Types</div> </div>
+<div class="ingroups"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v.html">Initialization and Service</a></div></div><!--header-->
+<div class="contents">
+
+<p>Referred types used by basic functions.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___general___init_data__t.html">Ucs_General_InitData_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The general section of initialization data. <a href="struct_ucs___general___init_data__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___nd___init_data__t.html">Ucs_Nd_InitData_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The initialization data of the Node Discovery service. <a href="struct_ucs___nd___init_data__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___std_result__t.html">Ucs_StdResult_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Standard result structure which provides fields for detailed status and error information. <a href="struct_ucs___std_result__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Callback Functions</h2></td></tr>
+<tr class="memitem:ga074c04d40d00986e0c869adaec8fadda"><td class="memItemLeft" align="right" valign="top">typedef struct Ucs_Inst_&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a></td></tr>
+<tr class="memdesc:ga074c04d40d00986e0c869adaec8fadda"><td class="mdescLeft">&#160;</td><td class="mdescRight">UNICENS instance. <a href="#ga074c04d40d00986e0c869adaec8fadda"></a><br/></td></tr>
+<tr class="separator:ga074c04d40d00986e0c869adaec8fadda"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa573fbe79f76f263a17e51d6de99036d"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gaa573fbe79f76f263a17e51d6de99036d.html#gaa573fbe79f76f263a17e51d6de99036d">Ucs_StdResultCb_t</a> )(<a class="el" href="struct_ucs___std_result__t.html">Ucs_StdResult_t</a> result, void *user_ptr)</td></tr>
+<tr class="memdesc:gaa573fbe79f76f263a17e51d6de99036d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function signature used for UNICENS standard result callbacks. <a href="#gaa573fbe79f76f263a17e51d6de99036d"></a><br/></td></tr>
+<tr class="separator:gaa573fbe79f76f263a17e51d6de99036d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaba3a47e6c1d360c77e560cefe8c541e3"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gaba3a47e6c1d360c77e560cefe8c541e3.html#gaba3a47e6c1d360c77e560cefe8c541e3">Ucs_InitResultCb_t</a> )(<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#ga0a933f34b9acbf21dc68f426c324e78c">Ucs_InitResult_t</a> result, void *user_ptr)</td></tr>
+<tr class="memdesc:gaba3a47e6c1d360c77e560cefe8c541e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function signature used for UNICENS standard result callbacks. <a href="#gaba3a47e6c1d360c77e560cefe8c541e3"></a><br/></td></tr>
+<tr class="separator:gaba3a47e6c1d360c77e560cefe8c541e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:ga9551cd80ce8a13fa6cce717cbc13e499"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga9551cd80ce8a13fa6cce717cbc13e499.html#ga9551cd80ce8a13fa6cce717cbc13e499">Ucs_Error_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga9551cd80ce8a13fa6cce717cbc13e499.html#gga9551cd80ce8a13fa6cce717cbc13e499ad407f31040ff1757ca3a3b98643e406d">UCS_GEN_ERR_COMMUNICATION</a> = 1,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga9551cd80ce8a13fa6cce717cbc13e499.html#gga9551cd80ce8a13fa6cce717cbc13e499a6c90c86ae1e93413b08142ea356336a4">UCS_GEN_ERR_INIC</a> = 2
+<br/>
+ }</td></tr>
+<tr class="memdesc:ga9551cd80ce8a13fa6cce717cbc13e499"><td class="mdescLeft">&#160;</td><td class="mdescRight">UNICENS general error codes. <a href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga9551cd80ce8a13fa6cce717cbc13e499.html#ga9551cd80ce8a13fa6cce717cbc13e499">More...</a><br/></td></tr>
+<tr class="separator:ga9551cd80ce8a13fa6cce717cbc13e499"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga886138f5d13e84ffaa3df5769830e1cd"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda3fb51656e17ee4802f23706f35e349bc">UCS_RET_SUCCESS</a> = 0x00,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cdab98b74c51324859f3138fed96afd1573">UCS_RET_ERR_PARAM</a> = 0x01,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cdabb64ac46e62c58382dc65f3fd7bf12d2">UCS_RET_ERR_BUFFER_OVERFLOW</a> = 0x02,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda7e6114552879861375322bf68dafe3a3">UCS_RET_ERR_NOT_AVAILABLE</a> = 0x03,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda8820168a0730173889011958189733e2">UCS_RET_ERR_NOT_SUPPORTED</a> = 0x04,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda6384d8a38b3298f50efd7bd42a60a2ec">UCS_RET_ERR_INVALID_SHADOW</a> = 0x05,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda6e3654d081184da037670c8af1950ea7">UCS_RET_ERR_ALREADY_SET</a> = 0x06,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cdad4a30091202638c890abbdb682ca4fe5">UCS_RET_ERR_API_LOCKED</a> = 0x07,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda9e2acee4f83d89585e959b143b7aafb8">UCS_RET_ERR_NOT_INITIALIZED</a> = 0x08
+<br/>
+ }</td></tr>
+<tr class="memdesc:ga886138f5d13e84ffaa3df5769830e1cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Standard return codes used for synchronous response. <a href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">More...</a><br/></td></tr>
+<tr class="separator:ga886138f5d13e84ffaa3df5769830e1cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac844b77cf41aef663782bc0b43d3540c"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#gac844b77cf41aef663782bc0b43d3540c">Ucs_Result_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540cae19d5a51de78bbf903a108a4e36a0fdf">UCS_RES_SUCCESS</a> = 0x00,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540ca4f4226f6e507caf5a9e044759c6409cf">UCS_RES_ERR_MOST_STANDARD</a> = 0x01,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540ca8ff50e770356e4fca8d36a308e323d83">UCS_RES_ERR_BUSY</a> = 0x02,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540caa7f09aea37cedd8dfbe3665781aae6aa">UCS_RES_ERR_PROCESSING</a> = 0x03,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540caa142d5f1f196cbf759f2cbd6d8a7468a">UCS_RES_ERR_CONFIGURATION</a> = 0x04,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540cae64970c5c3ad3d0dc6996b77cd528dbb">UCS_RES_ERR_SYSTEM</a> = 0x05,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540ca3099d31f6d533972cf96c86dca0b0cc7">UCS_RES_ERR_TIMEOUT</a> = 0x06,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540ca4e2229e49fe1197dd9df919719fcd38a">UCS_RES_ERR_TRANSMISSION</a> = 0x07
+<br/>
+ }</td></tr>
+<tr class="memdesc:gac844b77cf41aef663782bc0b43d3540c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Result codes used for asynchronous response. <a href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#gac844b77cf41aef663782bc0b43d3540c">More...</a><br/></td></tr>
+<tr class="separator:gac844b77cf41aef663782bc0b43d3540c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0a933f34b9acbf21dc68f426c324e78c"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#ga0a933f34b9acbf21dc68f426c324e78c">Ucs_InitResult_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78cac4d2785b5c79a9b38389e08d30494714">UCS_INIT_RES_SUCCESS</a> = 0x00U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78ca5e10b22e7790c92189a9919144403a62">UCS_INIT_RES_ERR_BUF_OVERFLOW</a> = 0x01U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78ca8191a6141de6a807faf20d10f891ae1b">UCS_INIT_RES_ERR_INIC_SYNC</a> = 0x02U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78ca735eb5f7e05170ce9795455a2edc8ff8">UCS_INIT_RES_ERR_INIC_VERSION</a> = 0x03U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78cade535af6ab10db100b979034ab8d0b42">UCS_INIT_RES_ERR_INIC_SYSTEM</a> = 0x04U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78cabf7bd2e232e7c79cc52158c39f33cfce">UCS_INIT_RES_ERR_DEV_ATT_CFG</a> = 0x05U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78ca7396a1d49772aea15554fa43a0f70aa1">UCS_INIT_RES_ERR_DEV_ATT_PROC</a> = 0x06U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78ca6e5f7ef8de83f043b212140987ed8d17">UCS_INIT_RES_ERR_NET_CFG</a> = 0x07U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78ca994453c34eb59dd6c4aff21c7cec7346">UCS_INIT_RES_ERR_INTERNAL</a> = 0x0AU,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78ca64e1be1198542a86cdc7082a3ee4fc13">UCS_INIT_RES_ERR_TIMEOUT</a> = 0x0BU
+<br/>
+ }</td></tr>
+<tr class="memdesc:ga0a933f34b9acbf21dc68f426c324e78c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Result values of initialization result callback function. <a href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#ga0a933f34b9acbf21dc68f426c324e78c">More...</a><br/></td></tr>
+<tr class="separator:ga0a933f34b9acbf21dc68f426c324e78c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Referred types used by basic functions. </p>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s.js b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s.js
new file mode 100644
index 0000000..4adb407
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s.js
@@ -0,0 +1,60 @@
+var group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s =
+[
+ [ "Ucs_General_InitData_t", "struct_ucs___general___init_data__t.html", [
+ [ "debug_error_msg_fptr", "struct_ucs___general___init_data__t_ad21ca235fca8aa5dbc81e6a82ca0f867.html#ad21ca235fca8aa5dbc81e6a82ca0f867", null ],
+ [ "error_fptr", "struct_ucs___general___init_data__t_aa197d5a04c7eee7b95eb9e1de232d161.html#aa197d5a04c7eee7b95eb9e1de232d161", null ],
+ [ "get_tick_count_fptr", "struct_ucs___general___init_data__t_a4e1140be3951f0e14d4071840f4ebc8e.html#a4e1140be3951f0e14d4071840f4ebc8e", null ],
+ [ "inic_watchdog_enabled", "struct_ucs___general___init_data__t_a1694b517ad074d3b14b76b400f86c9db.html#a1694b517ad074d3b14b76b400f86c9db", null ],
+ [ "request_service_fptr", "struct_ucs___general___init_data__t_a7d2541cf63dfcea750c0d0ec2ef563c0.html#a7d2541cf63dfcea750c0d0ec2ef563c0", null ],
+ [ "set_application_timer_fptr", "struct_ucs___general___init_data__t_a9de73ec82699e45173702e9b0ccc917a.html#a9de73ec82699e45173702e9b0ccc917a", null ]
+ ] ],
+ [ "Ucs_Nd_InitData_t", "struct_ucs___nd___init_data__t.html", [
+ [ "eval_fptr", "struct_ucs___nd___init_data__t_ab9bc02a84c7daeff234344541d41be62.html#ab9bc02a84c7daeff234344541d41be62", null ],
+ [ "report_fptr", "struct_ucs___nd___init_data__t_a98b9ccad2c6c5fa2edaf472151ee853c.html#a98b9ccad2c6c5fa2edaf472151ee853c", null ]
+ ] ],
+ [ "Ucs_StdResult_t", "struct_ucs___std_result__t.html", [
+ [ "code", "struct_ucs___std_result__t_a02d8eefc721a797ac87f5030774972ef.html#a02d8eefc721a797ac87f5030774972ef", null ],
+ [ "info_ptr", "struct_ucs___std_result__t_ab89f4871a6526d4d409fca9ee58ce176.html#ab89f4871a6526d4d409fca9ee58ce176", null ],
+ [ "info_size", "struct_ucs___std_result__t_ab8c6e508e45bdac2dc20bfc1b0dff08c.html#ab8c6e508e45bdac2dc20bfc1b0dff08c", null ]
+ ] ],
+ [ "Ucs_InitResultCb_t", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gaba3a47e6c1d360c77e560cefe8c541e3.html#gaba3a47e6c1d360c77e560cefe8c541e3", null ],
+ [ "Ucs_Inst_t", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda", null ],
+ [ "Ucs_StdResultCb_t", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gaa573fbe79f76f263a17e51d6de99036d.html#gaa573fbe79f76f263a17e51d6de99036d", null ],
+ [ "Ucs_Error_t", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga9551cd80ce8a13fa6cce717cbc13e499.html#ga9551cd80ce8a13fa6cce717cbc13e499", [
+ [ "UCS_GEN_ERR_COMMUNICATION", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga9551cd80ce8a13fa6cce717cbc13e499.html#gga9551cd80ce8a13fa6cce717cbc13e499ad407f31040ff1757ca3a3b98643e406d", null ],
+ [ "UCS_GEN_ERR_INIC", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga9551cd80ce8a13fa6cce717cbc13e499.html#gga9551cd80ce8a13fa6cce717cbc13e499a6c90c86ae1e93413b08142ea356336a4", null ]
+ ] ],
+ [ "Ucs_InitResult_t", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#ga0a933f34b9acbf21dc68f426c324e78c", [
+ [ "UCS_INIT_RES_SUCCESS", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78cac4d2785b5c79a9b38389e08d30494714", null ],
+ [ "UCS_INIT_RES_ERR_BUF_OVERFLOW", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78ca5e10b22e7790c92189a9919144403a62", null ],
+ [ "UCS_INIT_RES_ERR_INIC_SYNC", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78ca8191a6141de6a807faf20d10f891ae1b", null ],
+ [ "UCS_INIT_RES_ERR_INIC_VERSION", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78ca735eb5f7e05170ce9795455a2edc8ff8", null ],
+ [ "UCS_INIT_RES_ERR_INIC_SYSTEM", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78cade535af6ab10db100b979034ab8d0b42", null ],
+ [ "UCS_INIT_RES_ERR_DEV_ATT_CFG", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78cabf7bd2e232e7c79cc52158c39f33cfce", null ],
+ [ "UCS_INIT_RES_ERR_DEV_ATT_PROC", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78ca7396a1d49772aea15554fa43a0f70aa1", null ],
+ [ "UCS_INIT_RES_ERR_NET_CFG", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78ca6e5f7ef8de83f043b212140987ed8d17", null ],
+ [ "UCS_INIT_RES_ERR_INTERNAL", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78ca994453c34eb59dd6c4aff21c7cec7346", null ],
+ [ "UCS_INIT_RES_ERR_TIMEOUT", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78ca64e1be1198542a86cdc7082a3ee4fc13", null ]
+ ] ],
+ [ "Ucs_Result_t", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#gac844b77cf41aef663782bc0b43d3540c", [
+ [ "UCS_RES_SUCCESS", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540cae19d5a51de78bbf903a108a4e36a0fdf", null ],
+ [ "UCS_RES_ERR_MOST_STANDARD", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540ca4f4226f6e507caf5a9e044759c6409cf", null ],
+ [ "UCS_RES_ERR_BUSY", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540ca8ff50e770356e4fca8d36a308e323d83", null ],
+ [ "UCS_RES_ERR_PROCESSING", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540caa7f09aea37cedd8dfbe3665781aae6aa", null ],
+ [ "UCS_RES_ERR_CONFIGURATION", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540caa142d5f1f196cbf759f2cbd6d8a7468a", null ],
+ [ "UCS_RES_ERR_SYSTEM", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540cae64970c5c3ad3d0dc6996b77cd528dbb", null ],
+ [ "UCS_RES_ERR_TIMEOUT", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540ca3099d31f6d533972cf96c86dca0b0cc7", null ],
+ [ "UCS_RES_ERR_TRANSMISSION", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540ca4e2229e49fe1197dd9df919719fcd38a", null ]
+ ] ],
+ [ "Ucs_Return_t", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd", [
+ [ "UCS_RET_SUCCESS", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda3fb51656e17ee4802f23706f35e349bc", null ],
+ [ "UCS_RET_ERR_PARAM", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cdab98b74c51324859f3138fed96afd1573", null ],
+ [ "UCS_RET_ERR_BUFFER_OVERFLOW", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cdabb64ac46e62c58382dc65f3fd7bf12d2", null ],
+ [ "UCS_RET_ERR_NOT_AVAILABLE", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda7e6114552879861375322bf68dafe3a3", null ],
+ [ "UCS_RET_ERR_NOT_SUPPORTED", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda8820168a0730173889011958189733e2", null ],
+ [ "UCS_RET_ERR_INVALID_SHADOW", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda6384d8a38b3298f50efd7bd42a60a2ec", null ],
+ [ "UCS_RET_ERR_ALREADY_SET", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda6e3654d081184da037670c8af1950ea7", null ],
+ [ "UCS_RET_ERR_API_LOCKED", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cdad4a30091202638c890abbdb682ca4fe5", null ],
+ [ "UCS_RET_ERR_NOT_INITIALIZED", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda9e2acee4f83d89585e959b143b7aafb8", null ]
+ ] ]
+]; \ No newline at end of file
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html
new file mode 100644
index 0000000..68bc32f
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Inst_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga074c04d40d00986e0c869adaec8fadda"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef struct Ucs_Inst_ <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>UNICENS instance. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s.html">Initialization and Service Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html
new file mode 100644
index 0000000..1880338
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html
@@ -0,0 +1,158 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_InitResult_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga0a933f34b9acbf21dc68f426c324e78c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#ga0a933f34b9acbf21dc68f426c324e78c">Ucs_InitResult_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Result values of initialization result callback function. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga0a933f34b9acbf21dc68f426c324e78cac4d2785b5c79a9b38389e08d30494714"></a>UCS_INIT_RES_SUCCESS</em>&nbsp;</td><td>
+<p>Initialization succeeded. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga0a933f34b9acbf21dc68f426c324e78ca5e10b22e7790c92189a9919144403a62"></a>UCS_INIT_RES_ERR_BUF_OVERFLOW</em>&nbsp;</td><td>
+<p>No message buffer available. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga0a933f34b9acbf21dc68f426c324e78ca8191a6141de6a807faf20d10f891ae1b"></a>UCS_INIT_RES_ERR_INIC_SYNC</em>&nbsp;</td><td>
+<p>INIC synchronization failed. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga0a933f34b9acbf21dc68f426c324e78ca735eb5f7e05170ce9795455a2edc8ff8"></a>UCS_INIT_RES_ERR_INIC_VERSION</em>&nbsp;</td><td>
+<p>INIC device version check failed. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga0a933f34b9acbf21dc68f426c324e78cade535af6ab10db100b979034ab8d0b42"></a>UCS_INIT_RES_ERR_INIC_SYSTEM</em>&nbsp;</td><td>
+<p>Device attach failed due to an INIC system error. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga0a933f34b9acbf21dc68f426c324e78cabf7bd2e232e7c79cc52158c39f33cfce"></a>UCS_INIT_RES_ERR_DEV_ATT_CFG</em>&nbsp;</td><td>
+<p>INIC device attach failed due to an configuration error. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga0a933f34b9acbf21dc68f426c324e78ca7396a1d49772aea15554fa43a0f70aa1"></a>UCS_INIT_RES_ERR_DEV_ATT_PROC</em>&nbsp;</td><td>
+<p>Device attach failed due to a processing error. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga0a933f34b9acbf21dc68f426c324e78ca6e5f7ef8de83f043b212140987ed8d17"></a>UCS_INIT_RES_ERR_NET_CFG</em>&nbsp;</td><td>
+<p>Network Configuration request failed. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga0a933f34b9acbf21dc68f426c324e78ca994453c34eb59dd6c4aff21c7cec7346"></a>UCS_INIT_RES_ERR_INTERNAL</em>&nbsp;</td><td>
+<p>Internal error occurred. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga0a933f34b9acbf21dc68f426c324e78ca64e1be1198542a86cdc7082a3ee4fc13"></a>UCS_INIT_RES_ERR_TIMEOUT</em>&nbsp;</td><td>
+<p>Initialization timeout occurred. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s.html">Initialization and Service Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html
new file mode 100644
index 0000000..e9ccae9
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Return_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga886138f5d13e84ffaa3df5769830e1cd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Standard return codes used for synchronous response. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga886138f5d13e84ffaa3df5769830e1cda3fb51656e17ee4802f23706f35e349bc"></a>UCS_RET_SUCCESS</em>&nbsp;</td><td>
+<p>Operation successfully completed. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga886138f5d13e84ffaa3df5769830e1cdab98b74c51324859f3138fed96afd1573"></a>UCS_RET_ERR_PARAM</em>&nbsp;</td><td>
+<p>At least one parameter exceeds its admissible range. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga886138f5d13e84ffaa3df5769830e1cdabb64ac46e62c58382dc65f3fd7bf12d2"></a>UCS_RET_ERR_BUFFER_OVERFLOW</em>&nbsp;</td><td>
+<p>Buffer overflow or service busy. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga886138f5d13e84ffaa3df5769830e1cda7e6114552879861375322bf68dafe3a3"></a>UCS_RET_ERR_NOT_AVAILABLE</em>&nbsp;</td><td>
+<p>Functionality not available. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga886138f5d13e84ffaa3df5769830e1cda8820168a0730173889011958189733e2"></a>UCS_RET_ERR_NOT_SUPPORTED</em>&nbsp;</td><td>
+<p>This function is not supported by this derivative of INIC / physical layer / MOST speed. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga886138f5d13e84ffaa3df5769830e1cda6384d8a38b3298f50efd7bd42a60a2ec"></a>UCS_RET_ERR_INVALID_SHADOW</em>&nbsp;</td><td>
+<p>The requested information is not yet available. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga886138f5d13e84ffaa3df5769830e1cda6e3654d081184da037670c8af1950ea7"></a>UCS_RET_ERR_ALREADY_SET</em>&nbsp;</td><td>
+<p>The value to be set is already set. The application can therefore be aware that no message will be send to INIC and no callback will be called. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga886138f5d13e84ffaa3df5769830e1cdad4a30091202638c890abbdb682ca4fe5"></a>UCS_RET_ERR_API_LOCKED</em>&nbsp;</td><td>
+<p>INIC performs already requested function. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga886138f5d13e84ffaa3df5769830e1cda9e2acee4f83d89585e959b143b7aafb8"></a>UCS_RET_ERR_NOT_INITIALIZED</em>&nbsp;</td><td>
+<p>UNICENS is not initialized. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s.html">Initialization and Service Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga9551cd80ce8a13fa6cce717cbc13e499.html b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga9551cd80ce8a13fa6cce717cbc13e499.html
new file mode 100644
index 0000000..31ff3f4
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga9551cd80ce8a13fa6cce717cbc13e499.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Error_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga9551cd80ce8a13fa6cce717cbc13e499"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga9551cd80ce8a13fa6cce717cbc13e499.html#ga9551cd80ce8a13fa6cce717cbc13e499">Ucs_Error_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>UNICENS general error codes. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga9551cd80ce8a13fa6cce717cbc13e499ad407f31040ff1757ca3a3b98643e406d"></a>UCS_GEN_ERR_COMMUNICATION</em>&nbsp;</td><td>
+<p>Fatal communication error between EHC and INIC. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga9551cd80ce8a13fa6cce717cbc13e499a6c90c86ae1e93413b08142ea356336a4"></a>UCS_GEN_ERR_INIC</em>&nbsp;</td><td>
+<p>INIC internal error. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s.html">Initialization and Service Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gaa573fbe79f76f263a17e51d6de99036d.html b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gaa573fbe79f76f263a17e51d6de99036d.html
new file mode 100644
index 0000000..1aac2c1
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gaa573fbe79f76f263a17e51d6de99036d.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_StdResultCb_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gaa573fbe79f76f263a17e51d6de99036d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* Ucs_StdResultCb_t)(<a class="el" href="struct_ucs___std_result__t.html">Ucs_StdResult_t</a> result, void *user_ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Function signature used for UNICENS standard result callbacks. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">result</td><td>Result of the callback </td></tr>
+ <tr><td class="paramname">user_ptr</td><td>User reference provided in <a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t::user_ptr</a> </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s.html">Initialization and Service Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gaba3a47e6c1d360c77e560cefe8c541e3.html b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gaba3a47e6c1d360c77e560cefe8c541e3.html
new file mode 100644
index 0000000..76bdf7b
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gaba3a47e6c1d360c77e560cefe8c541e3.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_InitResultCb_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gaba3a47e6c1d360c77e560cefe8c541e3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* Ucs_InitResultCb_t)(<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#ga0a933f34b9acbf21dc68f426c324e78c">Ucs_InitResult_t</a> result, void *user_ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Function signature used for UNICENS standard result callbacks. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">result</td><td>Result of the callback </td></tr>
+ <tr><td class="paramname">user_ptr</td><td>User reference provided in <a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t::user_ptr</a> </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s.html">Initialization and Service Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html
new file mode 100644
index 0000000..4c6838a
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html
@@ -0,0 +1,152 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Result_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gac844b77cf41aef663782bc0b43d3540c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#gac844b77cf41aef663782bc0b43d3540c">Ucs_Result_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Result codes used for asynchronous response. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="ggac844b77cf41aef663782bc0b43d3540cae19d5a51de78bbf903a108a4e36a0fdf"></a>UCS_RES_SUCCESS</em>&nbsp;</td><td>
+<p>Operation successfully completed. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggac844b77cf41aef663782bc0b43d3540ca4f4226f6e507caf5a9e044759c6409cf"></a>UCS_RES_ERR_MOST_STANDARD</em>&nbsp;</td><td>
+<p>MOST standard error occurred. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggac844b77cf41aef663782bc0b43d3540ca8ff50e770356e4fca8d36a308e323d83"></a>UCS_RES_ERR_BUSY</em>&nbsp;</td><td>
+<p>Function currently busy. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggac844b77cf41aef663782bc0b43d3540caa7f09aea37cedd8dfbe3665781aae6aa"></a>UCS_RES_ERR_PROCESSING</em>&nbsp;</td><td>
+<p>Processing error occurred. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggac844b77cf41aef663782bc0b43d3540caa142d5f1f196cbf759f2cbd6d8a7468a"></a>UCS_RES_ERR_CONFIGURATION</em>&nbsp;</td><td>
+<p>Configuration error occurred. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggac844b77cf41aef663782bc0b43d3540cae64970c5c3ad3d0dc6996b77cd528dbb"></a>UCS_RES_ERR_SYSTEM</em>&nbsp;</td><td>
+<p>System error occurred. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggac844b77cf41aef663782bc0b43d3540ca3099d31f6d533972cf96c86dca0b0cc7"></a>UCS_RES_ERR_TIMEOUT</em>&nbsp;</td><td>
+<p>Timeout occurred. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggac844b77cf41aef663782bc0b43d3540ca4e2229e49fe1197dd9df919719fcd38a"></a>UCS_RES_ERR_TRANSMISSION</em>&nbsp;</td><td>
+<p>Transmission error occurred. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s.html">Initialization and Service Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga0238420959cc58ee52c0b385741fccc9.html b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga0238420959cc58ee52c0b385741fccc9.html
new file mode 100644
index 0000000..dfbaeb5
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga0238420959cc58ee52c0b385741fccc9.html
@@ -0,0 +1,132 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_SetAppTimerCb_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i_n_i_t___a_n_d___s_r_v.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga0238420959cc58ee52c0b385741fccc9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* Ucs_SetAppTimerCb_t)(uint16_t timeout, void *user_ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Function signature used for timer callback function. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">timeout</td><td>The specified time-out value. If timeout value is greater than 0, the application has to start the timer associated with the specified timeout value. If timeout value is equal to 0, the application has to stop the application timer. </td></tr>
+ <tr><td class="paramname">user_ptr</td><td>User reference provided in <a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t::user_ptr</a> </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section note"><dt>Note</dt><dd><b>The application should only dedicate one timer to UNICENS. Thus, whenever this callback function is called and the associated timeout value is greater than 0, the application should restart the timer with the new specified timeout value !</b> </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v.html">Initialization and Service</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga369c86a27ffee30a3af3423f6b3f3e59.html b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga369c86a27ffee30a3af3423f6b3f3e59.html
new file mode 100644
index 0000000..be3c3db
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga369c86a27ffee30a3af3423f6b3f3e59.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_ReportTimeout</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i_n_i_t___a_n_d___s_r_v.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga369c86a27ffee30a3af3423f6b3f3e59"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void Ucs_ReportTimeout </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *&#160;</td>
+ <td class="paramname"><em>self</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The application must call this function if the application timer expires. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>The instance </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v.html">Initialization and Service</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga61381bd30fb6630b6c5d6ecc8968e983.html b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga61381bd30fb6630b6c5d6ecc8968e983.html
new file mode 100644
index 0000000..44a82a8
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga61381bd30fb6630b6c5d6ecc8968e983.html
@@ -0,0 +1,168 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Stop</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i_n_i_t___a_n_d___s_r_v.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga61381bd30fb6630b6c5d6ecc8968e983"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a> Ucs_Stop </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *&#160;</td>
+ <td class="paramname"><em>self</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gaa573fbe79f76f263a17e51d6de99036d.html#gaa573fbe79f76f263a17e51d6de99036d">Ucs_StdResultCb_t</a>&#160;</td>
+ <td class="paramname"><em>stopped_fptr</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Terminates the execution of UNICENS. </p>
+<p>This function stops further communication with the INIC, forces the INIC to protected mode and releases external resources, e.g. calls <code>tx_complete_fptr</code> for previously transmitted application messages. After the termination is complete UNICENS will call stopped_fptr() and will no longer invoke the request_service_fptr. <br/>
+<br/>
+ The application shall no longer call any API function. Any previously retrieved UNICENS objects (e.g. messages) become invalid. </p>
+<dl class="section note"><dt>Note</dt><dd><b>Do not call this function within any of the UNICENS callbacks!</b> </dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>The instance </td></tr>
+ <tr><td class="paramname">stopped_fptr</td><td>Mandatory callback function which is invoked as soon as the termination has been completed. Possible result values are shown in the table below. <table class="doxtable">
+<tr>
+<th>Result Code </th><th>Description</th></tr>
+<tr>
+<td>UCS_RES_SUCCESS </td><td>Termination succeeded </td></tr>
+<tr>
+<td>UCS_RES_ERR_TIMEOUT </td><td>The termination was forced after a definite time. A communication error or INIC reset may be the reason. </td></tr>
+</table>
+</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible return values are shown in the table below. <table class="doxtable">
+<tr>
+<th>Value </th><th>Description</th></tr>
+<tr>
+<td>UCS_RET_SUCCESS </td><td>No error </td></tr>
+<tr>
+<td>UCS_RET_ERR_PARAM </td><td>Mandatory callback function not provided </td></tr>
+<tr>
+<td>UCS_RET_ERR_API_LOCKED </td><td>Initialization was not completed or termination has been started before </td></tr>
+</table>
+</dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v.html">Initialization and Service</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga61a038694eeb972f6d298478f16a2de2.html b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga61a038694eeb972f6d298478f16a2de2.html
new file mode 100644
index 0000000..ad6498b
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga61a038694eeb972f6d298478f16a2de2.html
@@ -0,0 +1,130 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_RequestServiceCb_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i_n_i_t___a_n_d___s_r_v.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga61a038694eeb972f6d298478f16a2de2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* Ucs_RequestServiceCb_t)(void *user_ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Function signature used for service request callback. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">user_ptr</td><td>User reference provided in <a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t::user_ptr</a> </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v.html">Initialization and Service</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga64926a6a194cfb06703835e3d06475c6.html b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga64926a6a194cfb06703835e3d06475c6.html
new file mode 100644
index 0000000..f3599e7
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga64926a6a194cfb06703835e3d06475c6.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_ErrorCb_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i_n_i_t___a_n_d___s_r_v.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga64926a6a194cfb06703835e3d06475c6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* Ucs_ErrorCb_t)(<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga9551cd80ce8a13fa6cce717cbc13e499.html#ga9551cd80ce8a13fa6cce717cbc13e499">Ucs_Error_t</a> error_code, void *user_ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Function signature used for the general error callback function. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">error_code</td><td>Reported error code </td></tr>
+ <tr><td class="paramname">user_ptr</td><td>User reference provided in <a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t::user_ptr</a> </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v.html">Initialization and Service</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga649fb9128df6f634fc86aa03b374d822.html b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga649fb9128df6f634fc86aa03b374d822.html
new file mode 100644
index 0000000..0a869ae
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga649fb9128df6f634fc86aa03b374d822.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Service</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i_n_i_t___a_n_d___s_r_v.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga649fb9128df6f634fc86aa03b374d822"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void Ucs_Service </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *&#160;</td>
+ <td class="paramname"><em>self</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The application must call this function cyclically to drive UNICENS. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>The instance </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v.html">Initialization and Service</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga64b50780725a0dc8693b5b73f8345ad6.html b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga64b50780725a0dc8693b5b73f8345ad6.html
new file mode 100644
index 0000000..6c20ca4
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga64b50780725a0dc8693b5b73f8345ad6.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_SetDefaultConfig</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i_n_i_t___a_n_d___s_r_v.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga64b50780725a0dc8693b5b73f8345ad6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a> Ucs_SetDefaultConfig </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t</a> *&#160;</td>
+ <td class="paramname"><em>init_ptr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Assigns default values to a provided UNICENS init structure. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">init_ptr</td><td>Reference to a provided MNS init structure. Must not be <code>NULL</code>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible return values are shown in the table below. <table class="doxtable">
+<tr>
+<th>Value </th><th>Description</th></tr>
+<tr>
+<td>UCS_RET_SUCCESS </td><td>No error </td></tr>
+<tr>
+<td>UCS_RET_ERR_PARAM </td><td>Parameter <code>init_ptr</code> is <code>NULL</code> </td></tr>
+</table>
+</dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v.html">Initialization and Service</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga750688e4ce10e995d802e288540d19c4.html b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga750688e4ce10e995d802e288540d19c4.html
new file mode 100644
index 0000000..e4550f3
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga750688e4ce10e995d802e288540d19c4.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: UCS_NUM_INSTANCES</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i_n_i_t___a_n_d___s_r_v.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga750688e4ce10e995d802e288540d19c4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define UCS_NUM_INSTANCES&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Number of API instances which can be created by function <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga85a99b5d236b29e2d598bef51edad638.html#ga85a99b5d236b29e2d598bef51edad638" title="Retrieves a UNICENS API instance.">Ucs_CreateInstance()</a>. </p>
+<p>One API instance is used to communicate with one local INIC. In this case the application is connected to one network. It is possible access multiple networks by having multiple API instances. Each API instance requires communication with an exclusive INIC. Valid values: 1..10. Default Value: 1. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v.html">Initialization and Service</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga85a99b5d236b29e2d598bef51edad638.html b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga85a99b5d236b29e2d598bef51edad638.html
new file mode 100644
index 0000000..3367302
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga85a99b5d236b29e2d598bef51edad638.html
@@ -0,0 +1,130 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_CreateInstance</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i_n_i_t___a_n_d___s_r_v.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga85a99b5d236b29e2d598bef51edad638"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a>* Ucs_CreateInstance </td>
+ <td>(</td>
+ <td class="paramtype">void&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Retrieves a UNICENS API instance. </p>
+<p>One API instance is used to communicate with one local INIC. In this case the application is connected to one network. It is possible access multiple networks by having multiple API instances. Each API instance requires communication with an exclusive INIC. </p>
+<dl class="section return"><dt>Returns</dt><dd>Returns a reference to new instance of UNICENS or <code>NULL</code>, if it is not possible to create a further instance. The returned instance must be used as argument <code>self</code>. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v.html">Initialization and Service</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga981854177aa9ebd554ab522199193bd3.html b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga981854177aa9ebd554ab522199193bd3.html
new file mode 100644
index 0000000..6cfecfa
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga981854177aa9ebd554ab522199193bd3.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_GetTickCountCb_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i_n_i_t___a_n_d___s_r_v.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga981854177aa9ebd554ab522199193bd3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef uint16_t(* Ucs_GetTickCountCb_t)(void *user_ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Function signature used for callback function to get system tick count. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">user_ptr</td><td>User reference provided in <a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t::user_ptr</a> </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Tick count in milliseconds </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v.html">Initialization and Service</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_gaea8d7735d41853167a2befdc06febe43.html b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_gaea8d7735d41853167a2befdc06febe43.html
new file mode 100644
index 0000000..7035b47
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_gaea8d7735d41853167a2befdc06febe43.html
@@ -0,0 +1,183 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Init</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i_n_i_t___a_n_d___s_r_v.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gaea8d7735d41853167a2befdc06febe43"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a> Ucs_Init </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *&#160;</td>
+ <td class="paramname"><em>self</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t</a> *&#160;</td>
+ <td class="paramname"><em>init_ptr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gaba3a47e6c1d360c77e560cefe8c541e3.html#gaba3a47e6c1d360c77e560cefe8c541e3">Ucs_InitResultCb_t</a>&#160;</td>
+ <td class="paramname"><em>init_result_fptr</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>UNICENS initialization function. </p>
+<p>This function must be called by the application for initializing the complete MOST NetServices library. </p>
+<dl class="section note"><dt>Note</dt><dd><b>Do not call this function within any of the UNICENS callbacks!</b> </dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>The instance </td></tr>
+ <tr><td class="paramname">init_ptr</td><td>Reference to UNICENS initialization data </td></tr>
+ <tr><td class="paramname">init_result_fptr</td><td>Callback that reports the result of the initialization Possible result values are shown in the table below. <table class="doxtable">
+<tr>
+<th>Result Code </th><th>Description</th></tr>
+<tr>
+<td>UCS_INIT_RES_SUCCESS </td><td>Initialization succeeded </td></tr>
+<tr>
+<td>UCS_INIT_RES_ERR_BUF_OVERFLOW </td><td>No message buffer available </td></tr>
+<tr>
+<td>UCS_INIT_RES_ERR_PMS_INIT </td><td>PMS cannot establish INIC synchronization within 2 seconds </td></tr>
+<tr>
+<td>UCS_INIT_RES_ERR_INIC_VERSION </td><td>INIC device version check failed </td></tr>
+<tr>
+<td>UCS_INIT_RES_ERR_DEV_ATT_CFG </td><td>Device attach failed due to an configuration error </td></tr>
+<tr>
+<td>UCS_INIT_RES_ERR_DEV_ATT_PROC </td><td>Device attach failed due to a system error </td></tr>
+<tr>
+<td>UCS_INIT_RES_ERR_NET_CFG </td><td>Network configuration failed </td></tr>
+<tr>
+<td>UCS_INIT_RES_ERR_TIMEOUT </td><td>Initialization was not successful within 2 seconds </td></tr>
+</table>
+</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible return values are shown in the table below. <table class="doxtable">
+<tr>
+<th>Value </th><th>Description</th></tr>
+<tr>
+<td>UCS_RET_SUCCESS </td><td>No error. </td></tr>
+<tr>
+<td>UCS_RET_ERR_PARAM </td><td>Parameter <code>init_ptr</code> or one of its attributes is not set correctly. </td></tr>
+</table>
+</dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v.html">Initialization and Service</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_gaff7821fdddebc32a8a3f61a5eebc405a.html b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_gaff7821fdddebc32a8a3f61a5eebc405a.html
new file mode 100644
index 0000000..e3a0b42
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_gaff7821fdddebc32a8a3f61a5eebc405a.html
@@ -0,0 +1,129 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: UCS_FOOTPRINT_TINY</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i_n_i_t___a_n_d___s_r_v.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gaff7821fdddebc32a8a3f61a5eebc405a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define UCS_FOOTPRINT_TINY</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Define this macro to reduce the RAM and ROM size of the UNICENS software by disabling certain features. </p>
+<p>If this macro is defined the following changes apply:</p>
+<ul>
+<li>Reduction of low-level buffers</li>
+<li>AMS does not support segmentation (payload &gt; 45 bytes)</li>
+</ul>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v.html">Initialization and Service</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i_r_m.html b/ucs2-lib/doc/html/group___g___u_c_s___i_r_m.html
new file mode 100644
index 0000000..ce0eac5
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i_r_m.html
@@ -0,0 +1,150 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Extended Resources Management</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i_r_m.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#groups">Topics</a> &#124;
+<a href="#define-members">Macros</a> &#124;
+<a href="#typedef-members">Callback Functions</a> </div>
+ <div class="headertitle">
+<div class="title">Extended Resources Management</div> </div>
+<div class="ingroups"><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g.html">Routing Management</a></div></div><!--header-->
+<div class="contents">
+
+<p>Provides data type to manage MOST data resources.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+Topics</h2></td></tr>
+<tr class="memitem:group___g___u_c_s___x_r_m___s_t_r_e_a_m"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___x_r_m___s_t_r_e_a_m.html">Additional Streaming Port Functions</a></td></tr>
+<tr class="memdesc:group___g___u_c_s___x_r_m___s_t_r_e_a_m"><td class="mdescLeft">&#160;</td><td class="mdescRight">Additional Streaming Port functions of the Extended Resource Manager. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group___g___u_c_s___x_r_m___t_y_p_e_s"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s.html">XRM Referred Types</a></td></tr>
+<tr class="memdesc:group___g___u_c_s___x_r_m___t_y_p_e_s"><td class="mdescLeft">&#160;</td><td class="mdescRight">Referred types used by XRM service functions. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group___g___u_c_s___x_r_m___c_f_g"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___x_r_m___c_f_g.html">XRM Configuration Macros</a></td></tr>
+<tr class="memdesc:group___g___u_c_s___x_r_m___c_f_g"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configurations Macros used by XRM service functions. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:ga17bc521c78b99dc17f16161199cd4c1a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i_r_m_ga17bc521c78b99dc17f16161199cd4c1a.html#ga17bc521c78b99dc17f16161199cd4c1a">UCS_ADDR_LOCAL_DEV</a>&#160;&#160;&#160;0x0001U</td></tr>
+<tr class="memdesc:ga17bc521c78b99dc17f16161199cd4c1a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the address of the local device. <a href="#ga17bc521c78b99dc17f16161199cd4c1a"></a><br/></td></tr>
+<tr class="separator:ga17bc521c78b99dc17f16161199cd4c1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Callback Functions</h2></td></tr>
+<tr class="memitem:gae689267958c19afd9f9a097c36d017d3"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i_r_m_gae689267958c19afd9f9a097c36d017d3.html#gae689267958c19afd9f9a097c36d017d3">Ucs_Xrm_Most_PortStatusCb_t</a> )(uint16_t most_port_handle, <a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga902951b9083ff58a88e19e151b57106a.html#ga902951b9083ff58a88e19e151b57106a">Ucs_Most_PortAvail_t</a> availability, <a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga24bf81b4e52fc1fb01deba9165d7c79e.html#ga24bf81b4e52fc1fb01deba9165d7c79e">Ucs_Most_PortAvailInfo_t</a> avail_info, uint16_t free_streaming_bw, void *user_ptr)</td></tr>
+<tr class="memdesc:gae689267958c19afd9f9a097c36d017d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function signature used for the MOST Port status. <a href="#gae689267958c19afd9f9a097c36d017d3"></a><br/></td></tr>
+<tr class="separator:gae689267958c19afd9f9a097c36d017d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8d92898b48eeef24ac44a6e3ebdff460"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i_r_m_ga8d92898b48eeef24ac44a6e3ebdff460.html#ga8d92898b48eeef24ac44a6e3ebdff460">Ucs_Xrm_CheckUnmuteCb_t</a> )(uint16_t node_address, void *user_ptr)</td></tr>
+<tr class="memdesc:ga8d92898b48eeef24ac44a6e3ebdff460"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function signature used for the check unmute callback. <a href="#ga8d92898b48eeef24ac44a6e3ebdff460"></a><br/></td></tr>
+<tr class="separator:ga8d92898b48eeef24ac44a6e3ebdff460"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Provides data type to manage MOST data resources. </p>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i_r_m.js b/ucs2-lib/doc/html/group___g___u_c_s___i_r_m.js
new file mode 100644
index 0000000..f774044
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i_r_m.js
@@ -0,0 +1,9 @@
+var group___g___u_c_s___i_r_m =
+[
+ [ "Additional Streaming Port Functions", "group___g___u_c_s___x_r_m___s_t_r_e_a_m.html", "group___g___u_c_s___x_r_m___s_t_r_e_a_m" ],
+ [ "XRM Referred Types", "group___g___u_c_s___x_r_m___t_y_p_e_s.html", "group___g___u_c_s___x_r_m___t_y_p_e_s" ],
+ [ "XRM Configuration Macros", "group___g___u_c_s___x_r_m___c_f_g.html", "group___g___u_c_s___x_r_m___c_f_g" ],
+ [ "UCS_ADDR_LOCAL_DEV", "group___g___u_c_s___i_r_m_ga17bc521c78b99dc17f16161199cd4c1a.html#ga17bc521c78b99dc17f16161199cd4c1a", null ],
+ [ "Ucs_Xrm_CheckUnmuteCb_t", "group___g___u_c_s___i_r_m_ga8d92898b48eeef24ac44a6e3ebdff460.html#ga8d92898b48eeef24ac44a6e3ebdff460", null ],
+ [ "Ucs_Xrm_Most_PortStatusCb_t", "group___g___u_c_s___i_r_m_gae689267958c19afd9f9a097c36d017d3.html#gae689267958c19afd9f9a097c36d017d3", null ]
+]; \ No newline at end of file
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i_r_m_ga17bc521c78b99dc17f16161199cd4c1a.html b/ucs2-lib/doc/html/group___g___u_c_s___i_r_m_ga17bc521c78b99dc17f16161199cd4c1a.html
new file mode 100644
index 0000000..6397750
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i_r_m_ga17bc521c78b99dc17f16161199cd4c1a.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: UCS_ADDR_LOCAL_DEV</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i_r_m.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga17bc521c78b99dc17f16161199cd4c1a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define UCS_ADDR_LOCAL_DEV&#160;&#160;&#160;0x0001U</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Defines the address of the local device. </p>
+<p>This macro is used to define the address of the local device. It should be used by the application to trigger jobs on the local device. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___i_r_m.html">Extended Resources Management</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i_r_m_ga8d92898b48eeef24ac44a6e3ebdff460.html b/ucs2-lib/doc/html/group___g___u_c_s___i_r_m_ga8d92898b48eeef24ac44a6e3ebdff460.html
new file mode 100644
index 0000000..74f12db
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i_r_m_ga8d92898b48eeef24ac44a6e3ebdff460.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_CheckUnmuteCb_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i_r_m.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga8d92898b48eeef24ac44a6e3ebdff460"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* Ucs_Xrm_CheckUnmuteCb_t)(uint16_t node_address, void *user_ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Function signature used for the check unmute callback. </p>
+<p>Whenever this callback function is called and the EHC has sink connections muted by the mute pin, the application has to ensure that this mute pin is not asserted before attempting unmute. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">node_address</td><td>The node address of the device to be looked for. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___i_r_m.html">Extended Resources Management</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___i_r_m_gae689267958c19afd9f9a097c36d017d3.html b/ucs2-lib/doc/html/group___g___u_c_s___i_r_m_gae689267958c19afd9f9a097c36d017d3.html
new file mode 100644
index 0000000..8908024
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___i_r_m_gae689267958c19afd9f9a097c36d017d3.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_Most_PortStatusCb_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___i_r_m.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gae689267958c19afd9f9a097c36d017d3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* Ucs_Xrm_Most_PortStatusCb_t)(uint16_t most_port_handle, <a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga902951b9083ff58a88e19e151b57106a.html#ga902951b9083ff58a88e19e151b57106a">Ucs_Most_PortAvail_t</a> availability, <a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga24bf81b4e52fc1fb01deba9165d7c79e.html#ga24bf81b4e52fc1fb01deba9165d7c79e">Ucs_Most_PortAvailInfo_t</a> avail_info, uint16_t free_streaming_bw, void *user_ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Function signature used for the MOST Port status. </p>
+<p>This callback function is called to report streaming-related information for a MOST Port. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">most_port_handle</td><td>Port resource handle. </td></tr>
+ <tr><td class="paramname">availability</td><td>State of the MOST port related to streaming connections. </td></tr>
+ <tr><td class="paramname">avail_info</td><td>Sub state to parameter <code>availability</code>. </td></tr>
+ <tr><td class="paramname">free_streaming_bw</td><td>Free streaming bandwidth for the dedicated MOST Port. </td></tr>
+ <tr><td class="paramname">user_ptr</td><td>User reference provided in <a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t::user_ptr</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___i_r_m.html">Extended Resources Management</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___l_l_d.html b/ucs2-lib/doc/html/group___g___u_c_s___l_l_d.html
new file mode 100644
index 0000000..04e08ad
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___l_l_d.html
@@ -0,0 +1,150 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Low-Level Driver</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___l_l_d.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#groups">Topics</a> &#124;
+<a href="#typedef-members">Callback Functions</a> </div>
+ <div class="headertitle">
+<div class="title">Low-Level Driver</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides an interface for Port Message Exchange with the INIC.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+Topics</h2></td></tr>
+<tr class="memitem:group___g___u_c_s___l_l_d___a_p_i"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___l_l_d___a_p_i.html">Low-Level Driver API</a></td></tr>
+<tr class="memdesc:group___g___u_c_s___l_l_d___a_p_i"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function pointers to be used by the low-level driver. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group___g___u_c_s___l_l_d___t_y_p_e_s"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___l_l_d___t_y_p_e_s.html">Referred Types</a></td></tr>
+<tr class="memdesc:group___g___u_c_s___l_l_d___t_y_p_e_s"><td class="mdescLeft">&#160;</td><td class="mdescRight">Referred types used by the low-level driver interface. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Callback Functions</h2></td></tr>
+<tr class="memitem:ga73f07fb097d3c1bb6c5bf048f088166e"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___l_l_d_ga73f07fb097d3c1bb6c5bf048f088166e.html#ga73f07fb097d3c1bb6c5bf048f088166e">Ucs_Lld_StartCb_t</a> )(<a class="el" href="struct_ucs___lld___api__t.html">Ucs_Lld_Api_t</a> *api_ptr, void *inst_ptr, void *lld_user_ptr)</td></tr>
+<tr class="memdesc:ga73f07fb097d3c1bb6c5bf048f088166e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Notifies the LLD to start transmitting and receiving messages. <a href="#ga73f07fb097d3c1bb6c5bf048f088166e"></a><br/></td></tr>
+<tr class="separator:ga73f07fb097d3c1bb6c5bf048f088166e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga917011a0aed9ca6d0aaf2201dc8c0e9f"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___l_l_d_ga917011a0aed9ca6d0aaf2201dc8c0e9f.html#ga917011a0aed9ca6d0aaf2201dc8c0e9f">Ucs_Lld_StopCb_t</a> )(void *lld_user_ptr)</td></tr>
+<tr class="memdesc:ga917011a0aed9ca6d0aaf2201dc8c0e9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Notifies the LLD to stop/abort transmitting and receiving messages. <a href="#ga917011a0aed9ca6d0aaf2201dc8c0e9f"></a><br/></td></tr>
+<tr class="separator:ga917011a0aed9ca6d0aaf2201dc8c0e9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabb4b73751b87fe9a63b3d15403a81965"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___l_l_d_gabb4b73751b87fe9a63b3d15403a81965.html#gabb4b73751b87fe9a63b3d15403a81965">Ucs_Lld_ResetInicCb_t</a> )(void *lld_user_ptr)</td></tr>
+<tr class="memdesc:gabb4b73751b87fe9a63b3d15403a81965"><td class="mdescLeft">&#160;</td><td class="mdescRight">Notifies the LLD to reset the INIC. <a href="#gabb4b73751b87fe9a63b3d15403a81965"></a><br/></td></tr>
+<tr class="separator:gabb4b73751b87fe9a63b3d15403a81965"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae49a0953d88e8fbd4ebf2ce9c5f7b7f1"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___l_l_d_gae49a0953d88e8fbd4ebf2ce9c5f7b7f1.html#gae49a0953d88e8fbd4ebf2ce9c5f7b7f1">Ucs_Lld_RxMsgAvailableCb_t</a> )(void *lld_user_ptr)</td></tr>
+<tr class="memdesc:gae49a0953d88e8fbd4ebf2ce9c5f7b7f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function which is invoked as soon as port message objects are available again. <a href="#gae49a0953d88e8fbd4ebf2ce9c5f7b7f1"></a><br/></td></tr>
+<tr class="separator:gae49a0953d88e8fbd4ebf2ce9c5f7b7f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa618347d194113c34f5b21d3c36ba7b6"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___l_l_d_gaa618347d194113c34f5b21d3c36ba7b6.html#gaa618347d194113c34f5b21d3c36ba7b6">Ucs_Lld_TxTransmitCb_t</a> )(<a class="el" href="struct_ucs___lld___tx_msg__t.html">Ucs_Lld_TxMsg_t</a> *msg_ptr, void *lld_user_ptr)</td></tr>
+<tr class="memdesc:gaa618347d194113c34f5b21d3c36ba7b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function which is invoked to transmit a single message to the INIC. <a href="#gaa618347d194113c34f5b21d3c36ba7b6"></a><br/></td></tr>
+<tr class="separator:gaa618347d194113c34f5b21d3c36ba7b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Provides an interface for Port Message Exchange with the INIC. </p>
+<p>UNICENS provides a certain set of functions which are only dedicated to the low-level driver. The low-level driver <em>API</em> is a set of functions which shall be used by the low-level driver. The low-level driver <em>callbacks</em> is a set of function that shall be implemented by the low-level driver. The low-level driver <em>callbacks</em> shall be assigned to the UNICENS initialization structure. During initialization UNICENS invokes the callback <a class="el" href="struct_ucs___lld___callbacks__t.html">start_fptr</a> and passes the low-level driver <em>API</em> as pointer to <a class="el" href="struct_ucs___lld___api__t.html">Ucs_Lld_Api_t</a>. </p>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___l_l_d.js b/ucs2-lib/doc/html/group___g___u_c_s___l_l_d.js
new file mode 100644
index 0000000..0f0cec0
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___l_l_d.js
@@ -0,0 +1,10 @@
+var group___g___u_c_s___l_l_d =
+[
+ [ "Low-Level Driver API", "group___g___u_c_s___l_l_d___a_p_i.html", "group___g___u_c_s___l_l_d___a_p_i" ],
+ [ "Referred Types", "group___g___u_c_s___l_l_d___t_y_p_e_s.html", "group___g___u_c_s___l_l_d___t_y_p_e_s" ],
+ [ "Ucs_Lld_ResetInicCb_t", "group___g___u_c_s___l_l_d_gabb4b73751b87fe9a63b3d15403a81965.html#gabb4b73751b87fe9a63b3d15403a81965", null ],
+ [ "Ucs_Lld_RxMsgAvailableCb_t", "group___g___u_c_s___l_l_d_gae49a0953d88e8fbd4ebf2ce9c5f7b7f1.html#gae49a0953d88e8fbd4ebf2ce9c5f7b7f1", null ],
+ [ "Ucs_Lld_StartCb_t", "group___g___u_c_s___l_l_d_ga73f07fb097d3c1bb6c5bf048f088166e.html#ga73f07fb097d3c1bb6c5bf048f088166e", null ],
+ [ "Ucs_Lld_StopCb_t", "group___g___u_c_s___l_l_d_ga917011a0aed9ca6d0aaf2201dc8c0e9f.html#ga917011a0aed9ca6d0aaf2201dc8c0e9f", null ],
+ [ "Ucs_Lld_TxTransmitCb_t", "group___g___u_c_s___l_l_d_gaa618347d194113c34f5b21d3c36ba7b6.html#gaa618347d194113c34f5b21d3c36ba7b6", null ]
+]; \ No newline at end of file
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___l_l_d___a_p_i.html b/ucs2-lib/doc/html/group___g___u_c_s___l_l_d___a_p_i.html
new file mode 100644
index 0000000..5c3585b
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___l_l_d___a_p_i.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Low-Level Driver API</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___l_l_d___a_p_i.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#typedef-members">Callback Functions</a> </div>
+ <div class="headertitle">
+<div class="title">Low-Level Driver API</div> </div>
+<div class="ingroups"><a class="el" href="group___g___u_c_s___l_l_d.html">Low-Level Driver</a></div></div><!--header-->
+<div class="contents">
+
+<p>Function pointers to be used by the low-level driver.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___lld___api__t.html">Ucs_Lld_Api_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialization required for one communication channel (control or packet) <a href="struct_ucs___lld___api__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Callback Functions</h2></td></tr>
+<tr class="memitem:ga5bfaf97236d417072fe606f24bb3c8ad"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="struct_ucs___lld___rx_msg__t.html">Ucs_Lld_RxMsg_t</a> *(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___l_l_d___a_p_i_ga5bfaf97236d417072fe606f24bb3c8ad.html#ga5bfaf97236d417072fe606f24bb3c8ad">Ucs_Lld_RxAllocateCb_t</a> )(void *inst_ptr, uint16_t buffer_size)</td></tr>
+<tr class="memdesc:ga5bfaf97236d417072fe606f24bb3c8ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates an Rx message object. <a href="#ga5bfaf97236d417072fe606f24bb3c8ad"></a><br/></td></tr>
+<tr class="separator:ga5bfaf97236d417072fe606f24bb3c8ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadc535a5be0f7bf336dc66cecfff8067d"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___l_l_d___a_p_i_gadc535a5be0f7bf336dc66cecfff8067d.html#gadc535a5be0f7bf336dc66cecfff8067d">Ucs_Lld_RxFreeUnusedCb_t</a> )(void *inst_ptr, <a class="el" href="struct_ucs___lld___rx_msg__t.html">Ucs_Lld_RxMsg_t</a> *msg_ptr)</td></tr>
+<tr class="memdesc:gadc535a5be0f7bf336dc66cecfff8067d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees an unused Rx message object. <a href="#gadc535a5be0f7bf336dc66cecfff8067d"></a><br/></td></tr>
+<tr class="separator:gadc535a5be0f7bf336dc66cecfff8067d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga03c6fb96255dffab2fd1ca1a70204ad9"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___l_l_d___a_p_i_ga03c6fb96255dffab2fd1ca1a70204ad9.html#ga03c6fb96255dffab2fd1ca1a70204ad9">Ucs_Lld_RxReceiveCb_t</a> )(void *inst_ptr, <a class="el" href="struct_ucs___lld___rx_msg__t.html">Ucs_Lld_RxMsg_t</a> *msg_ptr)</td></tr>
+<tr class="memdesc:ga03c6fb96255dffab2fd1ca1a70204ad9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pass an Rx message to UNICENS. <a href="#ga03c6fb96255dffab2fd1ca1a70204ad9"></a><br/></td></tr>
+<tr class="separator:ga03c6fb96255dffab2fd1ca1a70204ad9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga59b99932c0fd7cd21f1c9788d60f1d4e"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___l_l_d___a_p_i_ga59b99932c0fd7cd21f1c9788d60f1d4e.html#ga59b99932c0fd7cd21f1c9788d60f1d4e">Ucs_Lld_TxReleaseCb_t</a> )(void *inst_ptr, <a class="el" href="struct_ucs___lld___tx_msg__t.html">Ucs_Lld_TxMsg_t</a> *msg_ptr)</td></tr>
+<tr class="memdesc:ga59b99932c0fd7cd21f1c9788d60f1d4e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Notifies that the LLD no longer needs to access the Tx message object. <a href="#ga59b99932c0fd7cd21f1c9788d60f1d4e"></a><br/></td></tr>
+<tr class="separator:ga59b99932c0fd7cd21f1c9788d60f1d4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Function pointers to be used by the low-level driver. </p>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___l_l_d___a_p_i.js b/ucs2-lib/doc/html/group___g___u_c_s___l_l_d___a_p_i.js
new file mode 100644
index 0000000..847d1d0
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___l_l_d___a_p_i.js
@@ -0,0 +1,13 @@
+var group___g___u_c_s___l_l_d___a_p_i =
+[
+ [ "Ucs_Lld_Api_t", "struct_ucs___lld___api__t.html", [
+ [ "rx_allocate_fptr", "struct_ucs___lld___api__t_a4621743277024b76d3afe1aed195f211.html#a4621743277024b76d3afe1aed195f211", null ],
+ [ "rx_free_unused_fptr", "struct_ucs___lld___api__t_a9fba62024daebe86940aee310c17ccfb.html#a9fba62024daebe86940aee310c17ccfb", null ],
+ [ "rx_receive_fptr", "struct_ucs___lld___api__t_a3ed1d41d7cab149f0bc5d2ea13631b16.html#a3ed1d41d7cab149f0bc5d2ea13631b16", null ],
+ [ "tx_release_fptr", "struct_ucs___lld___api__t_ad4d0f461ff3009909e295910e5380835.html#ad4d0f461ff3009909e295910e5380835", null ]
+ ] ],
+ [ "Ucs_Lld_RxAllocateCb_t", "group___g___u_c_s___l_l_d___a_p_i_ga5bfaf97236d417072fe606f24bb3c8ad.html#ga5bfaf97236d417072fe606f24bb3c8ad", null ],
+ [ "Ucs_Lld_RxFreeUnusedCb_t", "group___g___u_c_s___l_l_d___a_p_i_gadc535a5be0f7bf336dc66cecfff8067d.html#gadc535a5be0f7bf336dc66cecfff8067d", null ],
+ [ "Ucs_Lld_RxReceiveCb_t", "group___g___u_c_s___l_l_d___a_p_i_ga03c6fb96255dffab2fd1ca1a70204ad9.html#ga03c6fb96255dffab2fd1ca1a70204ad9", null ],
+ [ "Ucs_Lld_TxReleaseCb_t", "group___g___u_c_s___l_l_d___a_p_i_ga59b99932c0fd7cd21f1c9788d60f1d4e.html#ga59b99932c0fd7cd21f1c9788d60f1d4e", null ]
+]; \ No newline at end of file
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___l_l_d___a_p_i_ga03c6fb96255dffab2fd1ca1a70204ad9.html b/ucs2-lib/doc/html/group___g___u_c_s___l_l_d___a_p_i_ga03c6fb96255dffab2fd1ca1a70204ad9.html
new file mode 100644
index 0000000..1d1e685
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___l_l_d___a_p_i_ga03c6fb96255dffab2fd1ca1a70204ad9.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Lld_RxReceiveCb_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___l_l_d___a_p_i.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga03c6fb96255dffab2fd1ca1a70204ad9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* Ucs_Lld_RxReceiveCb_t)(void *inst_ptr, <a class="el" href="struct_ucs___lld___rx_msg__t.html">Ucs_Lld_RxMsg_t</a> *msg_ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Pass an Rx message to UNICENS. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">inst_ptr</td><td>Reference to internal UNICENS handler </td></tr>
+ <tr><td class="paramname">msg_ptr</td><td>Reference to the Rx message object containing the received message. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___l_l_d___a_p_i.html">Low-Level Driver API</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___l_l_d___a_p_i_ga59b99932c0fd7cd21f1c9788d60f1d4e.html b/ucs2-lib/doc/html/group___g___u_c_s___l_l_d___a_p_i_ga59b99932c0fd7cd21f1c9788d60f1d4e.html
new file mode 100644
index 0000000..a91f762
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___l_l_d___a_p_i_ga59b99932c0fd7cd21f1c9788d60f1d4e.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Lld_TxReleaseCb_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___l_l_d___a_p_i.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga59b99932c0fd7cd21f1c9788d60f1d4e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* Ucs_Lld_TxReleaseCb_t)(void *inst_ptr, <a class="el" href="struct_ucs___lld___tx_msg__t.html">Ucs_Lld_TxMsg_t</a> *msg_ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Notifies that the LLD no longer needs to access the Tx message object. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">inst_ptr</td><td>Reference to internal UNICENS handler </td></tr>
+ <tr><td class="paramname">msg_ptr</td><td>Reference to the Tx message object which is no longer accessed by the low-level driver </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___l_l_d___a_p_i.html">Low-Level Driver API</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___l_l_d___a_p_i_ga5bfaf97236d417072fe606f24bb3c8ad.html b/ucs2-lib/doc/html/group___g___u_c_s___l_l_d___a_p_i_ga5bfaf97236d417072fe606f24bb3c8ad.html
new file mode 100644
index 0000000..f0b0cc9
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___l_l_d___a_p_i_ga5bfaf97236d417072fe606f24bb3c8ad.html
@@ -0,0 +1,133 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Lld_RxAllocateCb_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___l_l_d___a_p_i.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga5bfaf97236d417072fe606f24bb3c8ad"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="struct_ucs___lld___rx_msg__t.html">Ucs_Lld_RxMsg_t</a>*(* Ucs_Lld_RxAllocateCb_t)(void *inst_ptr, uint16_t buffer_size)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Allocates an Rx message object. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">inst_ptr</td><td>Reference to an internal UNICENS handler </td></tr>
+ <tr><td class="paramname">buffer_size</td><td>The size in bytes of the received Rx message. Valid values: 6..72. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The Rx message object or <code>NULL</code> if no message object is available. In the latter case the low-level driver can wait until <a class="el" href="group___g___u_c_s___l_l_d_gae49a0953d88e8fbd4ebf2ce9c5f7b7f1.html#gae49a0953d88e8fbd4ebf2ce9c5f7b7f1" title="Callback function which is invoked as soon as port message objects are available again.">Ucs_Lld_RxMsgAvailableCb_t()</a> is invoked. The low-level driver is allowed to pre-allocate Rx messages with the maximum size of 72 bytes. After writing received data into <a class="el" href="struct_ucs___lld___rx_msg__t_a6166cef59cbe432be35512925debeae6.html#a6166cef59cbe432be35512925debeae6" title="Points to a UNICENS allocated memory chunk.">Ucs_Lld_RxMsg_t::data_ptr</a> the low-level driver must set <a class="el" href="struct_ucs___lld___rx_msg__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html#aae6bdbdf6ea1ad3da5af37f0a91d3ea0" title="Size of the memory chunk in bytes. Valid values: 6..72.">Ucs_Lld_RxMsg_t::data_size</a> to the actual message size. </dd></dl>
+<dl class="section warning"><dt>Warning</dt><dd>The function will also return <code>NULL</code> if the requested <code>buffer_size</code> exceeds the valid range. In such a case the UNICENS cannot guarantee that <a class="el" href="group___g___u_c_s___l_l_d_gae49a0953d88e8fbd4ebf2ce9c5f7b7f1.html#gae49a0953d88e8fbd4ebf2ce9c5f7b7f1" title="Callback function which is invoked as soon as port message objects are available again.">Ucs_Lld_RxMsgAvailableCb_t()</a> is called as expected. Received messages exceeding the valid range must be discarded by the LLD. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___l_l_d___a_p_i.html">Low-Level Driver API</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___l_l_d___a_p_i_gadc535a5be0f7bf336dc66cecfff8067d.html b/ucs2-lib/doc/html/group___g___u_c_s___l_l_d___a_p_i_gadc535a5be0f7bf336dc66cecfff8067d.html
new file mode 100644
index 0000000..f65dba9
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___l_l_d___a_p_i_gadc535a5be0f7bf336dc66cecfff8067d.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Lld_RxFreeUnusedCb_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___l_l_d___a_p_i.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gadc535a5be0f7bf336dc66cecfff8067d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* Ucs_Lld_RxFreeUnusedCb_t)(void *inst_ptr, <a class="el" href="struct_ucs___lld___rx_msg__t.html">Ucs_Lld_RxMsg_t</a> *msg_ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Frees an unused Rx message object. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">inst_ptr</td><td>Reference to internal UNICENS handler </td></tr>
+ <tr><td class="paramname">msg_ptr</td><td>Reference to the unused Rx message object </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___l_l_d___a_p_i.html">Low-Level Driver API</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___l_l_d___t_y_p_e_s.html b/ucs2-lib/doc/html/group___g___u_c_s___l_l_d___t_y_p_e_s.html
new file mode 100644
index 0000000..b412a84
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___l_l_d___t_y_p_e_s.html
@@ -0,0 +1,136 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Referred Types</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___l_l_d___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Data Structures</a> </div>
+ <div class="headertitle">
+<div class="title">Referred Types</div> </div>
+<div class="ingroups"><a class="el" href="group___g___u_c_s___l_l_d.html">Low-Level Driver</a></div></div><!--header-->
+<div class="contents">
+
+<p>Referred types used by the low-level driver interface.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___lld___tx_msg__t.html">Ucs_Lld_TxMsg_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tx message object providing the raw port message byte stream. <a href="struct_ucs___lld___tx_msg__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___lld___rx_msg__t.html">Ucs_Lld_RxMsg_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rx message object pointing to the raw port message byte stream. <a href="struct_ucs___lld___rx_msg__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___lld___callbacks__t.html">Ucs_Lld_Callbacks_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set of functions implemented by the low-level driver. <a href="struct_ucs___lld___callbacks__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___mem___buffer__t.html">Ucs_Mem_Buffer_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Memory chunk representing a message or part of a message. <a href="struct_ucs___mem___buffer__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Referred types used by the low-level driver interface. </p>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___l_l_d___t_y_p_e_s.js b/ucs2-lib/doc/html/group___g___u_c_s___l_l_d___t_y_p_e_s.js
new file mode 100644
index 0000000..8a649c2
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___l_l_d___t_y_p_e_s.js
@@ -0,0 +1,24 @@
+var group___g___u_c_s___l_l_d___t_y_p_e_s =
+[
+ [ "Ucs_Lld_TxMsg_t", "struct_ucs___lld___tx_msg__t.html", [
+ [ "custom_next_msg_ptr", "struct_ucs___lld___tx_msg__t_ae6dfc382578b04d70665e7c805fdc4c2.html#ae6dfc382578b04d70665e7c805fdc4c2", null ],
+ [ "memory_ptr", "struct_ucs___lld___tx_msg__t_a0fae6a3f19d8a9bbdad3c3b1ead3e868.html#a0fae6a3f19d8a9bbdad3c3b1ead3e868", null ]
+ ] ],
+ [ "Ucs_Lld_RxMsg_t", "struct_ucs___lld___rx_msg__t.html", [
+ [ "data_ptr", "struct_ucs___lld___rx_msg__t_a6166cef59cbe432be35512925debeae6.html#a6166cef59cbe432be35512925debeae6", null ],
+ [ "data_size", "struct_ucs___lld___rx_msg__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html#aae6bdbdf6ea1ad3da5af37f0a91d3ea0", null ]
+ ] ],
+ [ "Ucs_Lld_Callbacks_t", "struct_ucs___lld___callbacks__t.html", [
+ [ "lld_user_ptr", "struct_ucs___lld___callbacks__t_a44afa0156353f9fba156ff0c91873968.html#a44afa0156353f9fba156ff0c91873968", null ],
+ [ "rx_available_fptr", "struct_ucs___lld___callbacks__t_a90fa6db664734c2446327b71c51f5b52.html#a90fa6db664734c2446327b71c51f5b52", null ],
+ [ "start_fptr", "struct_ucs___lld___callbacks__t_a96bad24b6b49ffacfd9136230447cb22.html#a96bad24b6b49ffacfd9136230447cb22", null ],
+ [ "stop_fptr", "struct_ucs___lld___callbacks__t_ab0f955ca90942fda14ac12500422a437.html#ab0f955ca90942fda14ac12500422a437", null ],
+ [ "tx_transmit_fptr", "struct_ucs___lld___callbacks__t_ad8f7d021075e06672a999eb02da1d2e4.html#ad8f7d021075e06672a999eb02da1d2e4", null ]
+ ] ],
+ [ "Ucs_Mem_Buffer_t", "struct_ucs___mem___buffer__t.html", [
+ [ "data_ptr", "struct_ucs___mem___buffer__t_a6166cef59cbe432be35512925debeae6.html#a6166cef59cbe432be35512925debeae6", null ],
+ [ "data_size", "struct_ucs___mem___buffer__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html#aae6bdbdf6ea1ad3da5af37f0a91d3ea0", null ],
+ [ "next_buffer_ptr", "struct_ucs___mem___buffer__t_a5245ce4ea7d022a357642b645e7ac645.html#a5245ce4ea7d022a357642b645e7ac645", null ],
+ [ "total_size", "struct_ucs___mem___buffer__t_af0c4b4b26e805f939299b203943976b2.html#af0c4b4b26e805f939299b203943976b2", null ]
+ ] ]
+]; \ No newline at end of file
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___l_l_d_ga73f07fb097d3c1bb6c5bf048f088166e.html b/ucs2-lib/doc/html/group___g___u_c_s___l_l_d_ga73f07fb097d3c1bb6c5bf048f088166e.html
new file mode 100644
index 0000000..434fcbe
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___l_l_d_ga73f07fb097d3c1bb6c5bf048f088166e.html
@@ -0,0 +1,132 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Lld_StartCb_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___l_l_d.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga73f07fb097d3c1bb6c5bf048f088166e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* Ucs_Lld_StartCb_t)(<a class="el" href="struct_ucs___lld___api__t.html">Ucs_Lld_Api_t</a> *api_ptr, void *inst_ptr, void *lld_user_ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Notifies the LLD to start transmitting and receiving messages. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">api_ptr</td><td>Reference to UNICENS LLD interface </td></tr>
+ <tr><td class="paramname">inst_ptr</td><td>Reference to internal UNICENS handler </td></tr>
+ <tr><td class="paramname">lld_user_ptr</td><td>User defined pointer which is provided in <a class="el" href="struct_ucs___lld___callbacks__t.html">Ucs_Lld_Callbacks_t</a> structure. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___l_l_d.html">Low-Level Driver</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___l_l_d_ga917011a0aed9ca6d0aaf2201dc8c0e9f.html b/ucs2-lib/doc/html/group___g___u_c_s___l_l_d_ga917011a0aed9ca6d0aaf2201dc8c0e9f.html
new file mode 100644
index 0000000..362923b
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___l_l_d_ga917011a0aed9ca6d0aaf2201dc8c0e9f.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Lld_StopCb_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___l_l_d.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga917011a0aed9ca6d0aaf2201dc8c0e9f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* Ucs_Lld_StopCb_t)(void *lld_user_ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Notifies the LLD to stop/abort transmitting and receiving messages. </p>
+<p>As soon as this function is called the low-level driver is not allowed to call any UNICENS API function. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">lld_user_ptr</td><td>User defined pointer which is provided in <a class="el" href="struct_ucs___lld___callbacks__t.html">Ucs_Lld_Callbacks_t</a> structure. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___l_l_d.html">Low-Level Driver</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___l_l_d_gaa618347d194113c34f5b21d3c36ba7b6.html b/ucs2-lib/doc/html/group___g___u_c_s___l_l_d_gaa618347d194113c34f5b21d3c36ba7b6.html
new file mode 100644
index 0000000..c1ae18e
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___l_l_d_gaa618347d194113c34f5b21d3c36ba7b6.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Lld_TxTransmitCb_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___l_l_d.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gaa618347d194113c34f5b21d3c36ba7b6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* Ucs_Lld_TxTransmitCb_t)(<a class="el" href="struct_ucs___lld___tx_msg__t.html">Ucs_Lld_TxMsg_t</a> *msg_ptr, void *lld_user_ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Callback function which is invoked to transmit a single message to the INIC. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">msg_ptr</td><td>Reference to a single Tx message. </td></tr>
+ <tr><td class="paramname">lld_user_ptr</td><td>User defined pointer which is provided in <a class="el" href="struct_ucs___lld___callbacks__t.html">Ucs_Lld_Callbacks_t</a> structure. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___l_l_d.html">Low-Level Driver</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___l_l_d_gabb4b73751b87fe9a63b3d15403a81965.html b/ucs2-lib/doc/html/group___g___u_c_s___l_l_d_gabb4b73751b87fe9a63b3d15403a81965.html
new file mode 100644
index 0000000..fd92cfc
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___l_l_d_gabb4b73751b87fe9a63b3d15403a81965.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Lld_ResetInicCb_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___l_l_d.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gabb4b73751b87fe9a63b3d15403a81965"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* Ucs_Lld_ResetInicCb_t)(void *lld_user_ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Notifies the LLD to reset the INIC. </p>
+<p>If this function is called the low-level driver is responsible to perform an INIC hardware reset. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">lld_user_ptr</td><td>User defined pointer which is provided in <a class="el" href="struct_ucs___lld___callbacks__t.html">Ucs_Lld_Callbacks_t</a> structure. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___l_l_d.html">Low-Level Driver</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___l_l_d_gae49a0953d88e8fbd4ebf2ce9c5f7b7f1.html b/ucs2-lib/doc/html/group___g___u_c_s___l_l_d_gae49a0953d88e8fbd4ebf2ce9c5f7b7f1.html
new file mode 100644
index 0000000..686c945
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___l_l_d_gae49a0953d88e8fbd4ebf2ce9c5f7b7f1.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Lld_RxMsgAvailableCb_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___l_l_d.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gae49a0953d88e8fbd4ebf2ce9c5f7b7f1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* Ucs_Lld_RxMsgAvailableCb_t)(void *lld_user_ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Callback function which is invoked as soon as port message objects are available again. </p>
+<p>By implementing this callback function the low-level driver can avoid polling for Rx message objects. The low-level driver should wait for the function call as soon as <a class="el" href="group___g___u_c_s___l_l_d___a_p_i_ga5bfaf97236d417072fe606f24bb3c8ad.html#ga5bfaf97236d417072fe606f24bb3c8ad" title="Allocates an Rx message object.">Ucs_Lld_RxAllocateCb_t()</a> returns NULL. Only then it shall call those functions again. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">lld_user_ptr</td><td>User defined pointer which is provided in <a class="el" href="struct_ucs___lld___callbacks__t.html">Ucs_Lld_Callbacks_t</a> structure. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___l_l_d.html">Low-Level Driver</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___m_g_r.html b/ucs2-lib/doc/html/group___g___u_c_s___m_g_r.html
new file mode 100644
index 0000000..41dbcd4
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___m_g_r.html
@@ -0,0 +1,150 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Manager</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___m_g_r.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#typedef-members">Callback Functions</a> &#124;
+<a href="#enum-members">Enumerations</a> </div>
+ <div class="headertitle">
+<div class="title">Manager</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>The Manager is responsible to force the network to available and handle NodeDiscovery and RoutingManagement by a default logic.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___mgr___init_data__t.html">Ucs_Mgr_InitData_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The initialization data of the Manager. <a href="struct_ucs___mgr___init_data__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Callback Functions</h2></td></tr>
+<tr class="memitem:gad54678ad2a4671ec224422a8647b20f6"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___m_g_r_gad54678ad2a4671ec224422a8647b20f6.html#gad54678ad2a4671ec224422a8647b20f6">Ucs_MgrReportCb_t</a> )(<a class="el" href="group___g___u_c_s___m_g_r_gab85aa9ce377050505124af5e9549e445.html#gab85aa9ce377050505124af5e9549e445">Ucs_MgrReport_t</a> code, uint16_t node_address, <a class="el" href="struct_ucs___rm___node__t.html">Ucs_Rm_Node_t</a> *node_ptr, void *user_ptr)</td></tr>
+<tr class="memdesc:gad54678ad2a4671ec224422a8647b20f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Optional callback function that reports events on ignored, welcomed and lost nodes. <a href="#gad54678ad2a4671ec224422a8647b20f6"></a><br/></td></tr>
+<tr class="separator:gad54678ad2a4671ec224422a8647b20f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:gab85aa9ce377050505124af5e9549e445"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___m_g_r_gab85aa9ce377050505124af5e9549e445.html#gab85aa9ce377050505124af5e9549e445">Ucs_MgrReport_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___m_g_r_gab85aa9ce377050505124af5e9549e445.html#ggab85aa9ce377050505124af5e9549e445a6fcfe54d64bd8cf6b24361bf326f6c49">UCS_MGR_REP_IGNORED_UNKNOWN</a> = 0,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___m_g_r_gab85aa9ce377050505124af5e9549e445.html#ggab85aa9ce377050505124af5e9549e445afe4f1822be465b7a8891dccf0af36945">UCS_MGR_REP_IGNORED_DUPLICATE</a> = 1,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___m_g_r_gab85aa9ce377050505124af5e9549e445.html#ggab85aa9ce377050505124af5e9549e445ac7d7f8d978224660f4c6b94f2651d19e">UCS_MGR_REP_AVAILABLE</a> = 2,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___m_g_r_gab85aa9ce377050505124af5e9549e445.html#ggab85aa9ce377050505124af5e9549e445a8c94fd8dfa39ea4a65b30a9ebfb5a38b">UCS_MGR_REP_NOT_AVAILABLE</a> = 3
+<br/>
+ }</td></tr>
+<tr class="memdesc:gab85aa9ce377050505124af5e9549e445"><td class="mdescLeft">&#160;</td><td class="mdescRight">Manager report codes. <a href="group___g___u_c_s___m_g_r_gab85aa9ce377050505124af5e9549e445.html#gab85aa9ce377050505124af5e9549e445">More...</a><br/></td></tr>
+<tr class="separator:gab85aa9ce377050505124af5e9549e445"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>The Manager is responsible to force the network to available and handle NodeDiscovery and RoutingManagement by a default logic. </p>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___m_g_r.js b/ucs2-lib/doc/html/group___g___u_c_s___m_g_r.js
new file mode 100644
index 0000000..8ddca77
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___m_g_r.js
@@ -0,0 +1,19 @@
+var group___g___u_c_s___m_g_r =
+[
+ [ "Ucs_Mgr_InitData_t", "struct_ucs___mgr___init_data__t.html", [
+ [ "enabled", "struct_ucs___mgr___init_data__t_a8740ba80e30dd75e71d09fa1dcf04f3d.html#a8740ba80e30dd75e71d09fa1dcf04f3d", null ],
+ [ "nodes_list_ptr", "struct_ucs___mgr___init_data__t_ae261d2df7a2be21b4e8e4a582113643c.html#ae261d2df7a2be21b4e8e4a582113643c", null ],
+ [ "nodes_list_size", "struct_ucs___mgr___init_data__t_ab0ad9592908a66a29460d67bf3146114.html#ab0ad9592908a66a29460d67bf3146114", null ],
+ [ "packet_bw", "struct_ucs___mgr___init_data__t_a980d5ec2fe728b8ca99de235be7858d2.html#a980d5ec2fe728b8ca99de235be7858d2", null ],
+ [ "report_fptr", "struct_ucs___mgr___init_data__t_ac5131dba874debb5bb76b7f3b5a31818.html#ac5131dba874debb5bb76b7f3b5a31818", null ],
+ [ "routes_list_ptr", "struct_ucs___mgr___init_data__t_a4bda15e771fef671a47cd88a09707030.html#a4bda15e771fef671a47cd88a09707030", null ],
+ [ "routes_list_size", "struct_ucs___mgr___init_data__t_a30588f13e23cf04757b91e979e55c369.html#a30588f13e23cf04757b91e979e55c369", null ]
+ ] ],
+ [ "Ucs_MgrReportCb_t", "group___g___u_c_s___m_g_r_gad54678ad2a4671ec224422a8647b20f6.html#gad54678ad2a4671ec224422a8647b20f6", null ],
+ [ "Ucs_MgrReport_t", "group___g___u_c_s___m_g_r_gab85aa9ce377050505124af5e9549e445.html#gab85aa9ce377050505124af5e9549e445", [
+ [ "UCS_MGR_REP_IGNORED_UNKNOWN", "group___g___u_c_s___m_g_r_gab85aa9ce377050505124af5e9549e445.html#ggab85aa9ce377050505124af5e9549e445a6fcfe54d64bd8cf6b24361bf326f6c49", null ],
+ [ "UCS_MGR_REP_IGNORED_DUPLICATE", "group___g___u_c_s___m_g_r_gab85aa9ce377050505124af5e9549e445.html#ggab85aa9ce377050505124af5e9549e445afe4f1822be465b7a8891dccf0af36945", null ],
+ [ "UCS_MGR_REP_AVAILABLE", "group___g___u_c_s___m_g_r_gab85aa9ce377050505124af5e9549e445.html#ggab85aa9ce377050505124af5e9549e445ac7d7f8d978224660f4c6b94f2651d19e", null ],
+ [ "UCS_MGR_REP_NOT_AVAILABLE", "group___g___u_c_s___m_g_r_gab85aa9ce377050505124af5e9549e445.html#ggab85aa9ce377050505124af5e9549e445a8c94fd8dfa39ea4a65b30a9ebfb5a38b", null ]
+ ] ]
+]; \ No newline at end of file
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___m_g_r_gab85aa9ce377050505124af5e9549e445.html b/ucs2-lib/doc/html/group___g___u_c_s___m_g_r_gab85aa9ce377050505124af5e9549e445.html
new file mode 100644
index 0000000..9b3b39d
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___m_g_r_gab85aa9ce377050505124af5e9549e445.html
@@ -0,0 +1,140 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_MgrReport_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___m_g_r.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gab85aa9ce377050505124af5e9549e445"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___m_g_r_gab85aa9ce377050505124af5e9549e445.html#gab85aa9ce377050505124af5e9549e445">Ucs_MgrReport_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Manager report codes. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="ggab85aa9ce377050505124af5e9549e445a6fcfe54d64bd8cf6b24361bf326f6c49"></a>UCS_MGR_REP_IGNORED_UNKNOWN</em>&nbsp;</td><td>
+<p>A discovered node is ignored due to a wrong signature, a missing entry in the <a class="el" href="struct_ucs___mgr___init_data__t.html">nodes_list_ptr</a>, or since the desired node address is not within the following range: 0x200..0x2FF, 0x500..0xEFF. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggab85aa9ce377050505124af5e9549e445afe4f1822be465b7a8891dccf0af36945"></a>UCS_MGR_REP_IGNORED_DUPLICATE</em>&nbsp;</td><td>
+<p>A discovered node is ignored due since it is a duplicate of an alredy welcomed node. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggab85aa9ce377050505124af5e9549e445ac7d7f8d978224660f4c6b94f2651d19e"></a>UCS_MGR_REP_AVAILABLE</em>&nbsp;</td><td>
+<p>A discovered node was successfully "welcomed" in the network. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggab85aa9ce377050505124af5e9549e445a8c94fd8dfa39ea4a65b30a9ebfb5a38b"></a>UCS_MGR_REP_NOT_AVAILABLE</em>&nbsp;</td><td>
+<p>A previously welcomed node became invalid and is no longer accessible in the network. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___m_g_r.html">Manager</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___m_g_r_gad54678ad2a4671ec224422a8647b20f6.html b/ucs2-lib/doc/html/group___g___u_c_s___m_g_r_gad54678ad2a4671ec224422a8647b20f6.html
new file mode 100644
index 0000000..b839ecf
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___m_g_r_gad54678ad2a4671ec224422a8647b20f6.html
@@ -0,0 +1,133 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_MgrReportCb_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___m_g_r.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gad54678ad2a4671ec224422a8647b20f6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* Ucs_MgrReportCb_t)(<a class="el" href="group___g___u_c_s___m_g_r_gab85aa9ce377050505124af5e9549e445.html#gab85aa9ce377050505124af5e9549e445">Ucs_MgrReport_t</a> code, uint16_t node_address, <a class="el" href="struct_ucs___rm___node__t.html">Ucs_Rm_Node_t</a> *node_ptr, void *user_ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Optional callback function that reports events on ignored, welcomed and lost nodes. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">code</td><td>Report code </td></tr>
+ <tr><td class="paramname">node_address</td><td>The desired node_address of the node which is defined in it's signature. </td></tr>
+ <tr><td class="paramname">node_ptr</td><td>Reference to the node object which is part of the <a class="el" href="struct_ucs___mgr___init_data__t.html">nodes_list_ptr</a>. The reference is <code>NULL</code> if <code>code</code> is <code>UCS_MGR_REP_IGNORED_UNKNOWN</code> or <code>UCS_MGR_REP_IGNORED_DUPLICATE</code>. </td></tr>
+ <tr><td class="paramname">user_ptr</td><td>User reference provided in <a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t::user_ptr</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___m_g_r.html">Manager</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___m_i_s_c.html b/ucs2-lib/doc/html/group___g___u_c_s___m_i_s_c.html
new file mode 100644
index 0000000..bed0f6e
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___m_i_s_c.html
@@ -0,0 +1,136 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Miscellaneous</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___m_i_s_c.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#define-members">Macros</a> </div>
+ <div class="headertitle">
+<div class="title">Miscellaneous</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Miscellaneous features.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:ga74b0d1a6c74c93a79fc2751554806796"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___m_i_s_c_ga74b0d1a6c74c93a79fc2751554806796.html#ga74b0d1a6c74c93a79fc2751554806796">UCS_VERSION_MAJOR</a>&#160;&#160;&#160;_PPP_MNS_REV_1</td></tr>
+<tr class="memdesc:ga74b0d1a6c74c93a79fc2751554806796"><td class="mdescLeft">&#160;</td><td class="mdescRight">UNICENS Major Version Number. <a href="#ga74b0d1a6c74c93a79fc2751554806796"></a><br/></td></tr>
+<tr class="separator:ga74b0d1a6c74c93a79fc2751554806796"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaae920665e0a0d0c4213b8e037f6ce869"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___m_i_s_c_gaae920665e0a0d0c4213b8e037f6ce869.html#gaae920665e0a0d0c4213b8e037f6ce869">UCS_VERSION_MINOR</a>&#160;&#160;&#160;_PPP_MNS_REV_2</td></tr>
+<tr class="memdesc:gaae920665e0a0d0c4213b8e037f6ce869"><td class="mdescLeft">&#160;</td><td class="mdescRight">UNICENS Minor Version Number. <a href="#gaae920665e0a0d0c4213b8e037f6ce869"></a><br/></td></tr>
+<tr class="separator:gaae920665e0a0d0c4213b8e037f6ce869"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad0b327b6924e088113371b79e161cafe"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___m_i_s_c_gad0b327b6924e088113371b79e161cafe.html#gad0b327b6924e088113371b79e161cafe">UCS_VERSION_RELEASE</a>&#160;&#160;&#160;_PPP_MNS_REV_3</td></tr>
+<tr class="memdesc:gad0b327b6924e088113371b79e161cafe"><td class="mdescLeft">&#160;</td><td class="mdescRight">UNICENS Release Version Number. <a href="#gad0b327b6924e088113371b79e161cafe"></a><br/></td></tr>
+<tr class="separator:gad0b327b6924e088113371b79e161cafe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaadb74b48c69d7b6fc0a94eeb666e8183"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___m_i_s_c_gaadb74b48c69d7b6fc0a94eeb666e8183.html#gaadb74b48c69d7b6fc0a94eeb666e8183">UCS_VERSION_BUILD</a>&#160;&#160;&#160;_PPP_MNS_REV_5</td></tr>
+<tr class="memdesc:gaadb74b48c69d7b6fc0a94eeb666e8183"><td class="mdescLeft">&#160;</td><td class="mdescRight">UNICENS Build Number. <a href="#gaadb74b48c69d7b6fc0a94eeb666e8183"></a><br/></td></tr>
+<tr class="separator:gaadb74b48c69d7b6fc0a94eeb666e8183"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Miscellaneous features. </p>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___m_i_s_c.js b/ucs2-lib/doc/html/group___g___u_c_s___m_i_s_c.js
new file mode 100644
index 0000000..3a0c80c
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___m_i_s_c.js
@@ -0,0 +1,7 @@
+var group___g___u_c_s___m_i_s_c =
+[
+ [ "UCS_VERSION_BUILD", "group___g___u_c_s___m_i_s_c_gaadb74b48c69d7b6fc0a94eeb666e8183.html#gaadb74b48c69d7b6fc0a94eeb666e8183", null ],
+ [ "UCS_VERSION_MAJOR", "group___g___u_c_s___m_i_s_c_ga74b0d1a6c74c93a79fc2751554806796.html#ga74b0d1a6c74c93a79fc2751554806796", null ],
+ [ "UCS_VERSION_MINOR", "group___g___u_c_s___m_i_s_c_gaae920665e0a0d0c4213b8e037f6ce869.html#gaae920665e0a0d0c4213b8e037f6ce869", null ],
+ [ "UCS_VERSION_RELEASE", "group___g___u_c_s___m_i_s_c_gad0b327b6924e088113371b79e161cafe.html#gad0b327b6924e088113371b79e161cafe", null ]
+]; \ No newline at end of file
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___m_i_s_c_ga74b0d1a6c74c93a79fc2751554806796.html b/ucs2-lib/doc/html/group___g___u_c_s___m_i_s_c_ga74b0d1a6c74c93a79fc2751554806796.html
new file mode 100644
index 0000000..9f4f401
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___m_i_s_c_ga74b0d1a6c74c93a79fc2751554806796.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: UCS_VERSION_MAJOR</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___m_i_s_c.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga74b0d1a6c74c93a79fc2751554806796"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define UCS_VERSION_MAJOR&#160;&#160;&#160;_PPP_MNS_REV_1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>UNICENS Major Version Number. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___m_i_s_c.html">Miscellaneous</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___m_i_s_c_gaadb74b48c69d7b6fc0a94eeb666e8183.html b/ucs2-lib/doc/html/group___g___u_c_s___m_i_s_c_gaadb74b48c69d7b6fc0a94eeb666e8183.html
new file mode 100644
index 0000000..a97537d
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___m_i_s_c_gaadb74b48c69d7b6fc0a94eeb666e8183.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: UCS_VERSION_BUILD</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___m_i_s_c.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gaadb74b48c69d7b6fc0a94eeb666e8183"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define UCS_VERSION_BUILD&#160;&#160;&#160;_PPP_MNS_REV_5</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>UNICENS Build Number. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___m_i_s_c.html">Miscellaneous</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___m_i_s_c_gaae920665e0a0d0c4213b8e037f6ce869.html b/ucs2-lib/doc/html/group___g___u_c_s___m_i_s_c_gaae920665e0a0d0c4213b8e037f6ce869.html
new file mode 100644
index 0000000..7372dee
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___m_i_s_c_gaae920665e0a0d0c4213b8e037f6ce869.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: UCS_VERSION_MINOR</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___m_i_s_c.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gaae920665e0a0d0c4213b8e037f6ce869"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define UCS_VERSION_MINOR&#160;&#160;&#160;_PPP_MNS_REV_2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>UNICENS Minor Version Number. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___m_i_s_c.html">Miscellaneous</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___m_i_s_c_gad0b327b6924e088113371b79e161cafe.html b/ucs2-lib/doc/html/group___g___u_c_s___m_i_s_c_gad0b327b6924e088113371b79e161cafe.html
new file mode 100644
index 0000000..b8eaf6b
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___m_i_s_c_gad0b327b6924e088113371b79e161cafe.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: UCS_VERSION_RELEASE</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___m_i_s_c.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gad0b327b6924e088113371b79e161cafe"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define UCS_VERSION_RELEASE&#160;&#160;&#160;_PPP_MNS_REV_3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>UNICENS Release Version Number. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___m_i_s_c.html">Miscellaneous</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___n_e_t.html b/ucs2-lib/doc/html/group___g___u_c_s___n_e_t.html
new file mode 100644
index 0000000..f50e5ff
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___n_e_t.html
@@ -0,0 +1,163 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Network</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___n_e_t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#groups">Topics</a> &#124;
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#typedef-members">Callback Functions</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">Network</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides network management functions.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+Topics</h2></td></tr>
+<tr class="memitem:group___g___u_c_s___n_e_t___t_y_p_e_s"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s.html">Referred Types</a></td></tr>
+<tr class="memdesc:group___g___u_c_s___n_e_t___t_y_p_e_s"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides network management functions. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___network___init_data__t.html">Ucs_Network_InitData_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The network section of the UNICENS initialization data. <a href="struct_ucs___network___init_data__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Callback Functions</h2></td></tr>
+<tr class="memitem:gaf195e8ae396bc1fc358666fe50bf3f51"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___n_e_t_gaf195e8ae396bc1fc358666fe50bf3f51.html#gaf195e8ae396bc1fc358666fe50bf3f51">Ucs_Network_StatusCb_t</a> )(uint16_t change_mask, uint16_t events, <a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s_ga6b0bec2ae9e4d0fb93eefd65752f0c74.html#ga6b0bec2ae9e4d0fb93eefd65752f0c74">Ucs_Network_Availability_t</a> availability, <a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s_gad5ed0387c3c156602826d50ce94c9df7.html#gad5ed0387c3c156602826d50ce94c9df7">Ucs_Network_AvailInfo_t</a> avail_info, <a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#gab4ec40bf01de998abc4f2ae34c26ac46">Ucs_Network_AvailTransCause_t</a> avail_trans_cause, uint16_t node_address, uint8_t node_position, uint8_t max_position, uint16_t packet_bw, void *user_ptr)</td></tr>
+<tr class="memdesc:gaf195e8ae396bc1fc358666fe50bf3f51"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function signature used for the Network Status callback function. <a href="#gaf195e8ae396bc1fc358666fe50bf3f51"></a><br/></td></tr>
+<tr class="separator:gaf195e8ae396bc1fc358666fe50bf3f51"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga43fb9c04d5ad142f6abbf9566af82f8c"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___n_e_t_ga43fb9c04d5ad142f6abbf9566af82f8c.html#ga43fb9c04d5ad142f6abbf9566af82f8c">Ucs_Network_FrameCounterCb_t</a> )(uint32_t reference, uint32_t frame_counter, bool frame_lock, <a class="el" href="struct_ucs___std_result__t.html">Ucs_StdResult_t</a> result, void *user_pointer)</td></tr>
+<tr class="memdesc:ga43fb9c04d5ad142f6abbf9566af82f8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function signature of result callback used by <a class="el" href="group___g___u_c_s___n_e_t_ga3360b1585b5a9b54d24a934c22a44281.html#ga3360b1585b5a9b54d24a934c22a44281" title="Retrieves the Network Frame Counter, which is the number of frames since reset.">Ucs_Network_GetFrameCounter()</a>. <a href="#ga43fb9c04d5ad142f6abbf9566af82f8c"></a><br/></td></tr>
+<tr class="separator:ga43fb9c04d5ad142f6abbf9566af82f8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga83c2e74a4cc216aa10d7c6a1a517d459"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___n_e_t_ga83c2e74a4cc216aa10d7c6a1a517d459.html#ga83c2e74a4cc216aa10d7c6a1a517d459">Ucs_Network_Startup</a> (<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *self, uint16_t packet_bw, uint16_t forced_na_timeout, <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gaa573fbe79f76f263a17e51d6de99036d.html#gaa573fbe79f76f263a17e51d6de99036d">Ucs_StdResultCb_t</a> result_fptr)</td></tr>
+<tr class="memdesc:ga83c2e74a4cc216aa10d7c6a1a517d459"><td class="mdescLeft">&#160;</td><td class="mdescRight">Starts up the MOST Network. <a href="#ga83c2e74a4cc216aa10d7c6a1a517d459"></a><br/></td></tr>
+<tr class="separator:ga83c2e74a4cc216aa10d7c6a1a517d459"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1e49ce81a42f09bcecc2202edc2b93fc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___n_e_t_ga1e49ce81a42f09bcecc2202edc2b93fc.html#ga1e49ce81a42f09bcecc2202edc2b93fc">Ucs_Network_Shutdown</a> (<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *self, <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gaa573fbe79f76f263a17e51d6de99036d.html#gaa573fbe79f76f263a17e51d6de99036d">Ucs_StdResultCb_t</a> result_fptr)</td></tr>
+<tr class="memdesc:ga1e49ce81a42f09bcecc2202edc2b93fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Switches of the MOST Network. <a href="#ga1e49ce81a42f09bcecc2202edc2b93fc"></a><br/></td></tr>
+<tr class="separator:ga1e49ce81a42f09bcecc2202edc2b93fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3a71b7772ce265a77eefa7ad069c4819"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___n_e_t_ga3a71b7772ce265a77eefa7ad069c4819.html#ga3a71b7772ce265a77eefa7ad069c4819">Ucs_Network_ForceNotAvailable</a> (<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *self, bool force, <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gaa573fbe79f76f263a17e51d6de99036d.html#gaa573fbe79f76f263a17e51d6de99036d">Ucs_StdResultCb_t</a> result_fptr)</td></tr>
+<tr class="memdesc:ga3a71b7772ce265a77eefa7ad069c4819"><td class="mdescLeft">&#160;</td><td class="mdescRight">Triggers the INIC to force the NotAvailable state. <a href="#ga3a71b7772ce265a77eefa7ad069c4819"></a><br/></td></tr>
+<tr class="separator:ga3a71b7772ce265a77eefa7ad069c4819"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3360b1585b5a9b54d24a934c22a44281"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___n_e_t_ga3360b1585b5a9b54d24a934c22a44281.html#ga3360b1585b5a9b54d24a934c22a44281">Ucs_Network_GetFrameCounter</a> (<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *self, uint32_t reference, <a class="el" href="group___g___u_c_s___n_e_t_ga43fb9c04d5ad142f6abbf9566af82f8c.html#ga43fb9c04d5ad142f6abbf9566af82f8c">Ucs_Network_FrameCounterCb_t</a> result_fptr)</td></tr>
+<tr class="memdesc:ga3360b1585b5a9b54d24a934c22a44281"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves the Network Frame Counter, which is the number of frames since reset. <a href="#ga3360b1585b5a9b54d24a934c22a44281"></a><br/></td></tr>
+<tr class="separator:ga3360b1585b5a9b54d24a934c22a44281"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf08bc0be54565e30143166d675866f87"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___n_e_t_gaf08bc0be54565e30143166d675866f87.html#gaf08bc0be54565e30143166d675866f87">Ucs_Network_GetNodesCount</a> (<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *self)</td></tr>
+<tr class="memdesc:gaf08bc0be54565e30143166d675866f87"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves the number of nodes within the MOST network. <a href="#gaf08bc0be54565e30143166d675866f87"></a><br/></td></tr>
+<tr class="separator:gaf08bc0be54565e30143166d675866f87"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Provides network management functions. </p>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___n_e_t.js b/ucs2-lib/doc/html/group___g___u_c_s___n_e_t.js
new file mode 100644
index 0000000..16a2b0b
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___n_e_t.js
@@ -0,0 +1,14 @@
+var group___g___u_c_s___n_e_t =
+[
+ [ "Referred Types", "group___g___u_c_s___n_e_t___t_y_p_e_s.html", "group___g___u_c_s___n_e_t___t_y_p_e_s" ],
+ [ "Ucs_Network_InitData_t", "struct_ucs___network___init_data__t.html", [
+ [ "status", "struct_ucs___network___init_data__t_ae9d2b9f86bdd3a9667a348eb2b75da12.html#ae9d2b9f86bdd3a9667a348eb2b75da12", null ]
+ ] ],
+ [ "Ucs_Network_FrameCounterCb_t", "group___g___u_c_s___n_e_t_ga43fb9c04d5ad142f6abbf9566af82f8c.html#ga43fb9c04d5ad142f6abbf9566af82f8c", null ],
+ [ "Ucs_Network_StatusCb_t", "group___g___u_c_s___n_e_t_gaf195e8ae396bc1fc358666fe50bf3f51.html#gaf195e8ae396bc1fc358666fe50bf3f51", null ],
+ [ "Ucs_Network_ForceNotAvailable", "group___g___u_c_s___n_e_t_ga3a71b7772ce265a77eefa7ad069c4819.html#ga3a71b7772ce265a77eefa7ad069c4819", null ],
+ [ "Ucs_Network_GetFrameCounter", "group___g___u_c_s___n_e_t_ga3360b1585b5a9b54d24a934c22a44281.html#ga3360b1585b5a9b54d24a934c22a44281", null ],
+ [ "Ucs_Network_GetNodesCount", "group___g___u_c_s___n_e_t_gaf08bc0be54565e30143166d675866f87.html#gaf08bc0be54565e30143166d675866f87", null ],
+ [ "Ucs_Network_Shutdown", "group___g___u_c_s___n_e_t_ga1e49ce81a42f09bcecc2202edc2b93fc.html#ga1e49ce81a42f09bcecc2202edc2b93fc", null ],
+ [ "Ucs_Network_Startup", "group___g___u_c_s___n_e_t_ga83c2e74a4cc216aa10d7c6a1a517d459.html#ga83c2e74a4cc216aa10d7c6a1a517d459", null ]
+]; \ No newline at end of file
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___n_e_t___t_y_p_e_s.html b/ucs2-lib/doc/html/group___g___u_c_s___n_e_t___t_y_p_e_s.html
new file mode 100644
index 0000000..a854b79
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___n_e_t___t_y_p_e_s.html
@@ -0,0 +1,201 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Referred Types</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___n_e_t___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#define-members">Macros</a> &#124;
+<a href="#enum-members">Enumerations</a> </div>
+ <div class="headertitle">
+<div class="title">Referred Types</div> </div>
+<div class="ingroups"><a class="el" href="group___g___u_c_s___n_e_t.html">Network</a></div></div><!--header-->
+<div class="contents">
+
+<p>Provides network management functions.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___network___status__t.html">Ucs_Network_Status_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Structure holds parameters for the notification of the Network Status. <a href="struct_ucs___network___status__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:ga5f170c3358fc47999f969ee868d113ef"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s_ga5f170c3358fc47999f969ee868d113ef.html#ga5f170c3358fc47999f969ee868d113ef">UCS_NETWORK_EVENT_NCE</a>&#160;&#160;&#160;0x0001U</td></tr>
+<tr class="memdesc:ga5f170c3358fc47999f969ee868d113ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bitmask used for network status event "Network Change Event". <a href="#ga5f170c3358fc47999f969ee868d113ef"></a><br/></td></tr>
+<tr class="separator:ga5f170c3358fc47999f969ee868d113ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab6ef28648a40efb679babf0a7a5173e6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s_gab6ef28648a40efb679babf0a7a5173e6.html#gab6ef28648a40efb679babf0a7a5173e6">UCS_EXC_SIGNATURE_VERSION_LIMIT</a>&#160;&#160;&#160;1U</td></tr>
+<tr class="memdesc:gab6ef28648a40efb679babf0a7a5173e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signature version limit of EXC commands. Denotes the maximum signature version number the INIC can handle. <a href="#gab6ef28648a40efb679babf0a7a5173e6"></a><br/></td></tr>
+<tr class="separator:gab6ef28648a40efb679babf0a7a5173e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:ga779e730fce488874146678e0971f52a8"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#ga779e730fce488874146678e0971f52a8">Ucs_Network_StatusMask_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8a8ad2af6dd9a9c5358a8b743c1ada77cd">UCS_NW_M_EVENTS</a> = 0x01U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8a707f78e3b7a58f4ce21f31da38e00573">UCS_NW_M_AVAIL</a> = 0x02U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8a9c2971b3e618e402a6d5452dc1c30738">UCS_NW_M_AVAIL_INFO</a> = 0x04U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8af36c80b9128eb740ebfca15dd7c7c6be">UCS_NW_M_AVAIL_TR_CAUSE</a> = 0x08U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8ab698174c497186f8e738111f6d0a7036">UCS_NW_M_NODE_ADDR</a> = 0x10U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8a89bb7ec3c55087159a8a19b5e9cc7fa0">UCS_NW_M_NODE_POS</a> = 0x20U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8a043ec67877e6a38b5a13fb544681b767">UCS_NW_M_MAX_POS</a> = 0x40U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8aa545cf71946b90b29bcf58581e8b1e2a">UCS_NW_M_PACKET_BW</a> = 0x80U
+<br/>
+ }</td></tr>
+<tr class="memdesc:ga779e730fce488874146678e0971f52a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the flags set in <code>change_mask</code> used by NetworkStatus.Status. <a href="group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#ga779e730fce488874146678e0971f52a8">More...</a><br/></td></tr>
+<tr class="separator:ga779e730fce488874146678e0971f52a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6b0bec2ae9e4d0fb93eefd65752f0c74"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s_ga6b0bec2ae9e4d0fb93eefd65752f0c74.html#ga6b0bec2ae9e4d0fb93eefd65752f0c74">Ucs_Network_Availability_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s_ga6b0bec2ae9e4d0fb93eefd65752f0c74.html#gga6b0bec2ae9e4d0fb93eefd65752f0c74afb1201dc3a998b9d4f9c48d5978d9ffc">UCS_NW_NOT_AVAILABLE</a> = 0x00U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s_ga6b0bec2ae9e4d0fb93eefd65752f0c74.html#gga6b0bec2ae9e4d0fb93eefd65752f0c74a37fb322b410de335478f6bed31cd33f1">UCS_NW_AVAILABLE</a> = 0x01U
+<br/>
+ }</td></tr>
+<tr class="memdesc:ga6b0bec2ae9e4d0fb93eefd65752f0c74"><td class="mdescLeft">&#160;</td><td class="mdescRight">MOST Network Availability. <a href="group___g___u_c_s___n_e_t___t_y_p_e_s_ga6b0bec2ae9e4d0fb93eefd65752f0c74.html#ga6b0bec2ae9e4d0fb93eefd65752f0c74">More...</a><br/></td></tr>
+<tr class="separator:ga6b0bec2ae9e4d0fb93eefd65752f0c74"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad5ed0387c3c156602826d50ce94c9df7"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s_gad5ed0387c3c156602826d50ce94c9df7.html#gad5ed0387c3c156602826d50ce94c9df7">Ucs_Network_AvailInfo_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s_gad5ed0387c3c156602826d50ce94c9df7.html#ggad5ed0387c3c156602826d50ce94c9df7ace556bfc10aa45dcd561a6c75680e99e">UCS_NW_AVAIL_INFO_REGULAR</a> = 0x00U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s_gad5ed0387c3c156602826d50ce94c9df7.html#ggad5ed0387c3c156602826d50ce94c9df7a754bb411728af7ee41315b2257c9f409">UCS_NW_AVAIL_INFO_DIAGNOSIS</a> = 0x02U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s_gad5ed0387c3c156602826d50ce94c9df7.html#ggad5ed0387c3c156602826d50ce94c9df7a95e0a195f246b6c474781b42fda0e1cb">UCS_NW_AVAIL_INFO_FORCED_NA</a> = 0x06U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s_gad5ed0387c3c156602826d50ce94c9df7.html#ggad5ed0387c3c156602826d50ce94c9df7a1e35e06faaf9537517a3b77c172c9e6a">UCS_NW_AVAIL_INFO_UNSTABLE</a> = 0x10U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s_gad5ed0387c3c156602826d50ce94c9df7.html#ggad5ed0387c3c156602826d50ce94c9df7aac87fccc7041c51b30c04dbd42c963ba">UCS_NW_AVAIL_INFO_STABLE</a> = 0x11U
+<br/>
+ }</td></tr>
+<tr class="memdesc:gad5ed0387c3c156602826d50ce94c9df7"><td class="mdescLeft">&#160;</td><td class="mdescRight">MOST Network Availability Information. <a href="group___g___u_c_s___n_e_t___t_y_p_e_s_gad5ed0387c3c156602826d50ce94c9df7.html#gad5ed0387c3c156602826d50ce94c9df7">More...</a><br/></td></tr>
+<tr class="separator:gad5ed0387c3c156602826d50ce94c9df7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab4ec40bf01de998abc4f2ae34c26ac46"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#gab4ec40bf01de998abc4f2ae34c26ac46">Ucs_Network_AvailTransCause_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#ggab4ec40bf01de998abc4f2ae34c26ac46a69da70cbc0d72fa912330df7d6f95805">UCS_NW_AV_TR_CA_CMD</a> = 0x00U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#ggab4ec40bf01de998abc4f2ae34c26ac46a6ac2248030e3550a61f1e296a2e5d735">UCS_NW_AV_TR_CA_RX_ACTIVITY</a> = 0x01U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#ggab4ec40bf01de998abc4f2ae34c26ac46a35193eafdb2690c7f1750e7e086528a0">UCS_NW_AV_TR_CA_NORMAL</a> = 0x10U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#ggab4ec40bf01de998abc4f2ae34c26ac46a5f2f79813d9cdc51a9b01baedcd115c7">UCS_NW_AV_TR_CA_ERR_SSO</a> = 0x11U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#ggab4ec40bf01de998abc4f2ae34c26ac46a26a6a280eb53c98f5bb0cc7f753608c0">UCS_NW_AV_TR_CA_ERR_CRIT_UNLOCK</a> = 0x12U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#ggab4ec40bf01de998abc4f2ae34c26ac46a163cc94df0ecbc01a5a0ad28ff0d2275">UCS_NW_AV_TR_CA_ERR_SYSTEM</a> = 0x13U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#ggab4ec40bf01de998abc4f2ae34c26ac46a6b7b5cef497a453a98714f09d4b037be">UCS_NW_AV_TR_CA_NO_TRANSITION</a> = 0xFFU
+<br/>
+ }</td></tr>
+<tr class="memdesc:gab4ec40bf01de998abc4f2ae34c26ac46"><td class="mdescLeft">&#160;</td><td class="mdescRight">MOST Network Availability Transition Cause. <a href="group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#gab4ec40bf01de998abc4f2ae34c26ac46">More...</a><br/></td></tr>
+<tr class="separator:gab4ec40bf01de998abc4f2ae34c26ac46"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Provides network management functions. </p>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___n_e_t___t_y_p_e_s.js b/ucs2-lib/doc/html/group___g___u_c_s___n_e_t___t_y_p_e_s.js
new file mode 100644
index 0000000..eb0d9f3
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___n_e_t___t_y_p_e_s.js
@@ -0,0 +1,39 @@
+var group___g___u_c_s___n_e_t___t_y_p_e_s =
+[
+ [ "Ucs_Network_Status_t", "struct_ucs___network___status__t.html", [
+ [ "cb_fptr", "struct_ucs___network___status__t_a08f6acd8566e419c7017fc1874720223.html#a08f6acd8566e419c7017fc1874720223", null ],
+ [ "notification_mask", "struct_ucs___network___status__t_ae7a618bc7852c52001d0756913c545c8.html#ae7a618bc7852c52001d0756913c545c8", null ]
+ ] ],
+ [ "UCS_EXC_SIGNATURE_VERSION_LIMIT", "group___g___u_c_s___n_e_t___t_y_p_e_s_gab6ef28648a40efb679babf0a7a5173e6.html#gab6ef28648a40efb679babf0a7a5173e6", null ],
+ [ "UCS_NETWORK_EVENT_NCE", "group___g___u_c_s___n_e_t___t_y_p_e_s_ga5f170c3358fc47999f969ee868d113ef.html#ga5f170c3358fc47999f969ee868d113ef", null ],
+ [ "Ucs_Network_Availability_t", "group___g___u_c_s___n_e_t___t_y_p_e_s_ga6b0bec2ae9e4d0fb93eefd65752f0c74.html#ga6b0bec2ae9e4d0fb93eefd65752f0c74", [
+ [ "UCS_NW_NOT_AVAILABLE", "group___g___u_c_s___n_e_t___t_y_p_e_s_ga6b0bec2ae9e4d0fb93eefd65752f0c74.html#gga6b0bec2ae9e4d0fb93eefd65752f0c74afb1201dc3a998b9d4f9c48d5978d9ffc", null ],
+ [ "UCS_NW_AVAILABLE", "group___g___u_c_s___n_e_t___t_y_p_e_s_ga6b0bec2ae9e4d0fb93eefd65752f0c74.html#gga6b0bec2ae9e4d0fb93eefd65752f0c74a37fb322b410de335478f6bed31cd33f1", null ]
+ ] ],
+ [ "Ucs_Network_AvailInfo_t", "group___g___u_c_s___n_e_t___t_y_p_e_s_gad5ed0387c3c156602826d50ce94c9df7.html#gad5ed0387c3c156602826d50ce94c9df7", [
+ [ "UCS_NW_AVAIL_INFO_REGULAR", "group___g___u_c_s___n_e_t___t_y_p_e_s_gad5ed0387c3c156602826d50ce94c9df7.html#ggad5ed0387c3c156602826d50ce94c9df7ace556bfc10aa45dcd561a6c75680e99e", null ],
+ [ "UCS_NW_AVAIL_INFO_DIAGNOSIS", "group___g___u_c_s___n_e_t___t_y_p_e_s_gad5ed0387c3c156602826d50ce94c9df7.html#ggad5ed0387c3c156602826d50ce94c9df7a754bb411728af7ee41315b2257c9f409", null ],
+ [ "UCS_NW_AVAIL_INFO_FORCED_NA", "group___g___u_c_s___n_e_t___t_y_p_e_s_gad5ed0387c3c156602826d50ce94c9df7.html#ggad5ed0387c3c156602826d50ce94c9df7a95e0a195f246b6c474781b42fda0e1cb", null ],
+ [ "UCS_NW_AVAIL_INFO_UNSTABLE", "group___g___u_c_s___n_e_t___t_y_p_e_s_gad5ed0387c3c156602826d50ce94c9df7.html#ggad5ed0387c3c156602826d50ce94c9df7a1e35e06faaf9537517a3b77c172c9e6a", null ],
+ [ "UCS_NW_AVAIL_INFO_STABLE", "group___g___u_c_s___n_e_t___t_y_p_e_s_gad5ed0387c3c156602826d50ce94c9df7.html#ggad5ed0387c3c156602826d50ce94c9df7aac87fccc7041c51b30c04dbd42c963ba", null ]
+ ] ],
+ [ "Ucs_Network_AvailTransCause_t", "group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#gab4ec40bf01de998abc4f2ae34c26ac46", [
+ [ "UCS_NW_AV_TR_CA_CMD", "group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#ggab4ec40bf01de998abc4f2ae34c26ac46a69da70cbc0d72fa912330df7d6f95805", null ],
+ [ "UCS_NW_AV_TR_CA_RX_ACTIVITY", "group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#ggab4ec40bf01de998abc4f2ae34c26ac46a6ac2248030e3550a61f1e296a2e5d735", null ],
+ [ "UCS_NW_AV_TR_CA_NORMAL", "group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#ggab4ec40bf01de998abc4f2ae34c26ac46a35193eafdb2690c7f1750e7e086528a0", null ],
+ [ "UCS_NW_AV_TR_CA_ERR_SSO", "group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#ggab4ec40bf01de998abc4f2ae34c26ac46a5f2f79813d9cdc51a9b01baedcd115c7", null ],
+ [ "UCS_NW_AV_TR_CA_ERR_CRIT_UNLOCK", "group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#ggab4ec40bf01de998abc4f2ae34c26ac46a26a6a280eb53c98f5bb0cc7f753608c0", null ],
+ [ "UCS_NW_AV_TR_CA_ERR_SYSTEM", "group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#ggab4ec40bf01de998abc4f2ae34c26ac46a163cc94df0ecbc01a5a0ad28ff0d2275", null ],
+ [ "UCS_NW_AV_TR_CA_NO_TRANSITION", "group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#ggab4ec40bf01de998abc4f2ae34c26ac46a6b7b5cef497a453a98714f09d4b037be", null ]
+ ] ],
+ [ "Ucs_Network_StatusMask_t", "group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#ga779e730fce488874146678e0971f52a8", [
+ [ "UCS_NW_M_EVENTS", "group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8a8ad2af6dd9a9c5358a8b743c1ada77cd", null ],
+ [ "UCS_NW_M_AVAIL", "group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8a707f78e3b7a58f4ce21f31da38e00573", null ],
+ [ "UCS_NW_M_AVAIL_INFO", "group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8a9c2971b3e618e402a6d5452dc1c30738", null ],
+ [ "UCS_NW_M_AVAIL_TR_CAUSE", "group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8af36c80b9128eb740ebfca15dd7c7c6be", null ],
+ [ "UCS_NW_M_NODE_ADDR", "group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8ab698174c497186f8e738111f6d0a7036", null ],
+ [ "UCS_NW_M_NODE_POS", "group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8a89bb7ec3c55087159a8a19b5e9cc7fa0", null ],
+ [ "UCS_NW_M_MAX_POS", "group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8a043ec67877e6a38b5a13fb544681b767", null ],
+ [ "UCS_NW_M_PACKET_BW", "group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8aa545cf71946b90b29bcf58581e8b1e2a", null ]
+ ] ]
+]; \ No newline at end of file
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___n_e_t___t_y_p_e_s_ga5f170c3358fc47999f969ee868d113ef.html b/ucs2-lib/doc/html/group___g___u_c_s___n_e_t___t_y_p_e_s_ga5f170c3358fc47999f969ee868d113ef.html
new file mode 100644
index 0000000..bc3c548
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___n_e_t___t_y_p_e_s_ga5f170c3358fc47999f969ee868d113ef.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: UCS_NETWORK_EVENT_NCE</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___n_e_t___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga5f170c3358fc47999f969ee868d113ef"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define UCS_NETWORK_EVENT_NCE&#160;&#160;&#160;0x0001U</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Bitmask used for network status event "Network Change Event". </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s.html">Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___n_e_t___t_y_p_e_s_ga6b0bec2ae9e4d0fb93eefd65752f0c74.html b/ucs2-lib/doc/html/group___g___u_c_s___n_e_t___t_y_p_e_s_ga6b0bec2ae9e4d0fb93eefd65752f0c74.html
new file mode 100644
index 0000000..8f1488a
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___n_e_t___t_y_p_e_s_ga6b0bec2ae9e4d0fb93eefd65752f0c74.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Network_Availability_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___n_e_t___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga6b0bec2ae9e4d0fb93eefd65752f0c74"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s_ga6b0bec2ae9e4d0fb93eefd65752f0c74.html#ga6b0bec2ae9e4d0fb93eefd65752f0c74">Ucs_Network_Availability_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>MOST Network Availability. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga6b0bec2ae9e4d0fb93eefd65752f0c74afb1201dc3a998b9d4f9c48d5978d9ffc"></a>UCS_NW_NOT_AVAILABLE</em>&nbsp;</td><td>
+<p>MOST network is not available. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga6b0bec2ae9e4d0fb93eefd65752f0c74a37fb322b410de335478f6bed31cd33f1"></a>UCS_NW_AVAILABLE</em>&nbsp;</td><td>
+<p>MOST network is available. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s.html">Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html b/ucs2-lib/doc/html/group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html
new file mode 100644
index 0000000..23966c9
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html
@@ -0,0 +1,152 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Network_StatusMask_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___n_e_t___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga779e730fce488874146678e0971f52a8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#ga779e730fce488874146678e0971f52a8">Ucs_Network_StatusMask_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Defines the flags set in <code>change_mask</code> used by NetworkStatus.Status. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga779e730fce488874146678e0971f52a8a8ad2af6dd9a9c5358a8b743c1ada77cd"></a>UCS_NW_M_EVENTS</em>&nbsp;</td><td>
+<p>Flag for notification of event changes. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga779e730fce488874146678e0971f52a8a707f78e3b7a58f4ce21f31da38e00573"></a>UCS_NW_M_AVAIL</em>&nbsp;</td><td>
+<p>Flag for notification of availability changes. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga779e730fce488874146678e0971f52a8a9c2971b3e618e402a6d5452dc1c30738"></a>UCS_NW_M_AVAIL_INFO</em>&nbsp;</td><td>
+<p>Flag for notification of availability info changes. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga779e730fce488874146678e0971f52a8af36c80b9128eb740ebfca15dd7c7c6be"></a>UCS_NW_M_AVAIL_TR_CAUSE</em>&nbsp;</td><td>
+<p>Flag for notification of availability transition cause changes. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga779e730fce488874146678e0971f52a8ab698174c497186f8e738111f6d0a7036"></a>UCS_NW_M_NODE_ADDR</em>&nbsp;</td><td>
+<p>Flag for notification of node address changes. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga779e730fce488874146678e0971f52a8a89bb7ec3c55087159a8a19b5e9cc7fa0"></a>UCS_NW_M_NODE_POS</em>&nbsp;</td><td>
+<p>Flag for notification of node position changes. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga779e730fce488874146678e0971f52a8a043ec67877e6a38b5a13fb544681b767"></a>UCS_NW_M_MAX_POS</em>&nbsp;</td><td>
+<p>Flag for notification of MPR changes. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga779e730fce488874146678e0971f52a8aa545cf71946b90b29bcf58581e8b1e2a"></a>UCS_NW_M_PACKET_BW</em>&nbsp;</td><td>
+<p>Flag for notification of packet bandwidth changes. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s.html">Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html b/ucs2-lib/doc/html/group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html
new file mode 100644
index 0000000..3269bf0
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html
@@ -0,0 +1,153 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Network_AvailTransCause_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___n_e_t___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gab4ec40bf01de998abc4f2ae34c26ac46"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#gab4ec40bf01de998abc4f2ae34c26ac46">Ucs_Network_AvailTransCause_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>MOST Network Availability Transition Cause. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="ggab4ec40bf01de998abc4f2ae34c26ac46a69da70cbc0d72fa912330df7d6f95805"></a>UCS_NW_AV_TR_CA_CMD</em>&nbsp;</td><td>
+<p>Start-up is initiated by chip e.g., INIC.MOSTNetworkStartup() </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggab4ec40bf01de998abc4f2ae34c26ac46a6ac2248030e3550a61f1e296a2e5d735"></a>UCS_NW_AV_TR_CA_RX_ACTIVITY</em>&nbsp;</td><td>
+<p>Chip is woken up by network activity. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggab4ec40bf01de998abc4f2ae34c26ac46a35193eafdb2690c7f1750e7e086528a0"></a>UCS_NW_AV_TR_CA_NORMAL</em>&nbsp;</td><td>
+<p>Network is typically shutdown by an INIC.MOSTNetworkShutdown() command initiated locally or by a node positioned upstream (in the latter case, the shutdown flag indicates a Normal Shutdown). </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggab4ec40bf01de998abc4f2ae34c26ac46a5f2f79813d9cdc51a9b01baedcd115c7"></a>UCS_NW_AV_TR_CA_ERR_SSO</em>&nbsp;</td><td>
+<p>Network is shutdown due to an error. In this case the shutdown reason was a sudden signal off. No shutdown flag is present. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggab4ec40bf01de998abc4f2ae34c26ac46a26a6a280eb53c98f5bb0cc7f753608c0"></a>UCS_NW_AV_TR_CA_ERR_CRIT_UNLOCK</em>&nbsp;</td><td>
+<p>Network is shutdown due to an error. In this case the shutdown reason was a critical unlock. No shutdown flag is present. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggab4ec40bf01de998abc4f2ae34c26ac46a163cc94df0ecbc01a5a0ad28ff0d2275"></a>UCS_NW_AV_TR_CA_ERR_SYSTEM</em>&nbsp;</td><td>
+<p>Network is shutdown due to a chip or system error. Possible reasons are: </p>
+<ul>
+<li>INIC enters ForcedNA state</li>
+<li>The AutoShutdownDownDelay time expires after the EHC has detached. </li>
+</ul>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggab4ec40bf01de998abc4f2ae34c26ac46a6b7b5cef497a453a98714f09d4b037be"></a>UCS_NW_AV_TR_CA_NO_TRANSITION</em>&nbsp;</td><td>
+<p>No transition. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s.html">Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___n_e_t___t_y_p_e_s_gab6ef28648a40efb679babf0a7a5173e6.html b/ucs2-lib/doc/html/group___g___u_c_s___n_e_t___t_y_p_e_s_gab6ef28648a40efb679babf0a7a5173e6.html
new file mode 100644
index 0000000..c0e7343
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___n_e_t___t_y_p_e_s_gab6ef28648a40efb679babf0a7a5173e6.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: UCS_EXC_SIGNATURE_VERSION_LIMIT</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___n_e_t___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gab6ef28648a40efb679babf0a7a5173e6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define UCS_EXC_SIGNATURE_VERSION_LIMIT&#160;&#160;&#160;1U</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Signature version limit of EXC commands. Denotes the maximum signature version number the INIC can handle. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s.html">Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___n_e_t___t_y_p_e_s_gad5ed0387c3c156602826d50ce94c9df7.html b/ucs2-lib/doc/html/group___g___u_c_s___n_e_t___t_y_p_e_s_gad5ed0387c3c156602826d50ce94c9df7.html
new file mode 100644
index 0000000..334fb14
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___n_e_t___t_y_p_e_s_gad5ed0387c3c156602826d50ce94c9df7.html
@@ -0,0 +1,158 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Network_AvailInfo_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___n_e_t___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gad5ed0387c3c156602826d50ce94c9df7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s_gad5ed0387c3c156602826d50ce94c9df7.html#gad5ed0387c3c156602826d50ce94c9df7">Ucs_Network_AvailInfo_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>MOST Network Availability Information. </p>
+<p>AvailabilityInfo is a sub state of Availability (<a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s_ga6b0bec2ae9e4d0fb93eefd65752f0c74.html#ga6b0bec2ae9e4d0fb93eefd65752f0c74">Ucs_Network_Availability_t</a>) Possible pairs of Availability and Availability Information </p>
+<table class="doxtable">
+<tr>
+<th>Availability </th><th>Availability Information</th></tr>
+<tr>
+<td>UCS_NW_NOT_AVAILABLE </td><td>UCS_NW_AVAIL_INFO_REGULAR </td></tr>
+<tr>
+<td>UCS_NW_NOT_AVAILABLE </td><td>UCS_NW_AVAIL_INFO_DIAGNOSIS </td></tr>
+<tr>
+<td>UCS_NW_NOT_AVAILABLE </td><td>UCS_NW_AVAIL_INFO_FORCED_NA </td></tr>
+<tr>
+<td>UCS_NW_AVAILABLE </td><td>UCS_NW_AVAIL_INFO_UNSTABLE </td></tr>
+<tr>
+<td>UCS_NW_AVAILABLE </td><td>UCS_NW_AVAIL_INFO_STABLE </td></tr>
+</table>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="ggad5ed0387c3c156602826d50ce94c9df7ace556bfc10aa45dcd561a6c75680e99e"></a>UCS_NW_AVAIL_INFO_REGULAR</em>&nbsp;</td><td>
+<p>The network is not available because it is in NetInterface Off or Init state. It is pending to get available again. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggad5ed0387c3c156602826d50ce94c9df7a754bb411728af7ee41315b2257c9f409"></a>UCS_NW_AVAIL_INFO_DIAGNOSIS</em>&nbsp;</td><td>
+<p>The network is not available because it performs a ring break diagnosis or physical layer test. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggad5ed0387c3c156602826d50ce94c9df7a95e0a195f246b6c474781b42fda0e1cb"></a>UCS_NW_AVAIL_INFO_FORCED_NA</em>&nbsp;</td><td>
+<p>The INIC forces the network to stay in "not available" state. The application may enter or leave this state by calling <a class="el" href="group___g___u_c_s___n_e_t_ga3a71b7772ce265a77eefa7ad069c4819.html#ga3a71b7772ce265a77eefa7ad069c4819" title="Triggers the INIC to force the NotAvailable state.">Ucs_Network_ForceNotAvailable()</a>. Also see <a class="el" href="group___g___u_c_s___n_e_t_ga83c2e74a4cc216aa10d7c6a1a517d459.html#ga83c2e74a4cc216aa10d7c6a1a517d459" title="Starts up the MOST Network.">Ucs_Network_Startup()</a>. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggad5ed0387c3c156602826d50ce94c9df7a1e35e06faaf9537517a3b77c172c9e6a"></a>UCS_NW_AVAIL_INFO_UNSTABLE</em>&nbsp;</td><td>
+<p>Network is available. Unlocks have been detected. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggad5ed0387c3c156602826d50ce94c9df7aac87fccc7041c51b30c04dbd42c963ba"></a>UCS_NW_AVAIL_INFO_STABLE</em>&nbsp;</td><td>
+<p>Network is available. Network is in Stable Lock. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s.html">Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___n_e_t_ga1e49ce81a42f09bcecc2202edc2b93fc.html b/ucs2-lib/doc/html/group___g___u_c_s___n_e_t_ga1e49ce81a42f09bcecc2202edc2b93fc.html
new file mode 100644
index 0000000..b150daa
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___n_e_t_ga1e49ce81a42f09bcecc2202edc2b93fc.html
@@ -0,0 +1,158 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Network_Shutdown</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___n_e_t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga1e49ce81a42f09bcecc2202edc2b93fc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a> Ucs_Network_Shutdown </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *&#160;</td>
+ <td class="paramname"><em>self</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gaa573fbe79f76f263a17e51d6de99036d.html#gaa573fbe79f76f263a17e51d6de99036d">Ucs_StdResultCb_t</a>&#160;</td>
+ <td class="paramname"><em>result_fptr</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Switches of the MOST Network. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>The instance </td></tr>
+ <tr><td class="paramname">result_fptr</td><td>Optional result callback </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible return values are shown in the table below. <table class="doxtable">
+<tr>
+<th>Value </th><th>Description</th></tr>
+<tr>
+<td>UCS_RET_SUCCESS </td><td>No error </td></tr>
+<tr>
+<td>UCS_RET_ERR_BUFFER_OVERFLOW </td><td>No message buffer available </td></tr>
+<tr>
+<td>UCS_RET_ERR_API_LOCKED </td><td>API is currently locked </td></tr>
+<tr>
+<td>UCS_RET_ERR_NOT_INITIALIZED </td><td>UNICENS is not initialized </td></tr>
+</table>
+</dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___n_e_t.html">Network</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___n_e_t_ga3360b1585b5a9b54d24a934c22a44281.html b/ucs2-lib/doc/html/group___g___u_c_s___n_e_t_ga3360b1585b5a9b54d24a934c22a44281.html
new file mode 100644
index 0000000..3c5766e
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___n_e_t_ga3360b1585b5a9b54d24a934c22a44281.html
@@ -0,0 +1,173 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Network_GetFrameCounter</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___n_e_t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga3360b1585b5a9b54d24a934c22a44281"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a> Ucs_Network_GetFrameCounter </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *&#160;</td>
+ <td class="paramname"><em>self</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint32_t&#160;</td>
+ <td class="paramname"><em>reference</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___n_e_t_ga43fb9c04d5ad142f6abbf9566af82f8c.html#ga43fb9c04d5ad142f6abbf9566af82f8c">Ucs_Network_FrameCounterCb_t</a>&#160;</td>
+ <td class="paramname"><em>result_fptr</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Retrieves the Network Frame Counter, which is the number of frames since reset. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This function corresponds with the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-MOSTNetworkFrameCounter523">INIC.MOSTNetworkFrameCounter</a>.</td></tr>
+</table>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>The instance </td></tr>
+ <tr><td class="paramname">reference</td><td>Reference value that shall be delivered by <code>result_fptr</code>.<table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>Reference</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">result_fptr</td><td>Result callback. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible return values are shown in the table below. <table class="doxtable">
+<tr>
+<th>Value </th><th>Description</th></tr>
+<tr>
+<td>MNS_RET_SUCCESS </td><td>No error </td></tr>
+<tr>
+<td>MNS_RET_ERR_BUFFER_OVERFLOW </td><td>No message buffer available </td></tr>
+<tr>
+<td>MNS_RET_ERR_API_LOCKED </td><td>API is currently locked </td></tr>
+<tr>
+<td>MNS_RET_ERR_NOT_INITIALIZED </td><td>UNICENS is not initialized </td></tr>
+</table>
+</dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___n_e_t.html">Network</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___n_e_t_ga3a71b7772ce265a77eefa7ad069c4819.html b/ucs2-lib/doc/html/group___g___u_c_s___n_e_t_ga3a71b7772ce265a77eefa7ad069c4819.html
new file mode 100644
index 0000000..9a41501
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___n_e_t_ga3a71b7772ce265a77eefa7ad069c4819.html
@@ -0,0 +1,165 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Network_ForceNotAvailable</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___n_e_t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga3a71b7772ce265a77eefa7ad069c4819"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a> Ucs_Network_ForceNotAvailable </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *&#160;</td>
+ <td class="paramname"><em>self</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">bool&#160;</td>
+ <td class="paramname"><em>force</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gaa573fbe79f76f263a17e51d6de99036d.html#gaa573fbe79f76f263a17e51d6de99036d">Ucs_StdResultCb_t</a>&#160;</td>
+ <td class="paramname"><em>result_fptr</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Triggers the INIC to force the NotAvailable state. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>The instance </td></tr>
+ <tr><td class="paramname">force</td><td>Is <code>true</code> if the INIC shall force the network in NotAvailable state. If <code>false</code> the INIC shall no no longer force the network to NotAvailable state. </td></tr>
+ <tr><td class="paramname">result_fptr</td><td>Optional result callback </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible return values are shown in the table below. <table class="doxtable">
+<tr>
+<th>Value </th><th>Description</th></tr>
+<tr>
+<td>UCS_RET_SUCCESS </td><td>No error </td></tr>
+<tr>
+<td>UCS_RET_ERR_BUFFER_OVERFLOW </td><td>No message buffer available </td></tr>
+<tr>
+<td>UCS_RET_ERR_API_LOCKED </td><td>API is currently locked </td></tr>
+<tr>
+<td>UCS_RET_ERR_NOT_INITIALIZED </td><td>UNICENS is not initialized </td></tr>
+</table>
+</dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___n_e_t.html">Network</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___n_e_t_ga43fb9c04d5ad142f6abbf9566af82f8c.html b/ucs2-lib/doc/html/group___g___u_c_s___n_e_t_ga43fb9c04d5ad142f6abbf9566af82f8c.html
new file mode 100644
index 0000000..74c3cc7
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___n_e_t_ga43fb9c04d5ad142f6abbf9566af82f8c.html
@@ -0,0 +1,150 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Network_FrameCounterCb_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___n_e_t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga43fb9c04d5ad142f6abbf9566af82f8c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* Ucs_Network_FrameCounterCb_t)(uint32_t reference, uint32_t frame_counter, bool frame_lock, <a class="el" href="struct_ucs___std_result__t.html">Ucs_StdResult_t</a> result, void *user_pointer)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Function signature of result callback used by <a class="el" href="group___g___u_c_s___n_e_t_ga3360b1585b5a9b54d24a934c22a44281.html#ga3360b1585b5a9b54d24a934c22a44281" title="Retrieves the Network Frame Counter, which is the number of frames since reset.">Ucs_Network_GetFrameCounter()</a>. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>The arguments of the result callback function correspond with the INIC's result for the function <a href="_p__u_m__o_s81118.html#MNSH3-MOSTNetworkFrameCounter523">INIC.MOSTNetworkFrameCounter</a>.</td></tr>
+</table>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_manual">&#160;</td><td>See also <em>User Manual</em>, section <a class="el" href="_p__u_m__s_y_n_c__a_n_d__a_s_y_n_c__r_e_s_u_l_t_s.html">Synchronous vs. Asynchronous Results</a>. </td></tr>
+</table>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">frame_counter</td><td>The MOST network frame count.<table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>FrameCounter</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">reference</td><td>Reference value that was passed to Mns_Network_GetFrameCounter().<table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>Reference</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">lock</td><td>Indicates if the TimingSlave device is locked to the MOST network. For a TimingMaster device this value is always True. </td></tr>
+ <tr><td class="paramname">result</td><td>Returned result of the operation </td></tr>
+ <tr><td class="paramname">user_pter</td><td>User reference provided in <a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t::user_ptr</a> </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___n_e_t.html">Network</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___n_e_t_ga83c2e74a4cc216aa10d7c6a1a517d459.html b/ucs2-lib/doc/html/group___g___u_c_s___n_e_t_ga83c2e74a4cc216aa10d7c6a1a517d459.html
new file mode 100644
index 0000000..b1643f5
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___n_e_t_ga83c2e74a4cc216aa10d7c6a1a517d459.html
@@ -0,0 +1,181 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Network_Startup</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___n_e_t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga83c2e74a4cc216aa10d7c6a1a517d459"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a> Ucs_Network_Startup </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *&#160;</td>
+ <td class="paramname"><em>self</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>packet_bw</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>forced_na_timeout</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gaa573fbe79f76f263a17e51d6de99036d.html#gaa573fbe79f76f263a17e51d6de99036d">Ucs_StdResultCb_t</a>&#160;</td>
+ <td class="paramname"><em>result_fptr</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Starts up the MOST Network. </p>
+<dl class="section note"><dt>Note</dt><dd>There is no predefined timeout for this operation. I.e., the startup process is performed by the INIC until <code>result_fptr</code> is invoked or the application calls <a class="el" href="group___g___u_c_s___n_e_t_ga1e49ce81a42f09bcecc2202edc2b93fc.html#ga1e49ce81a42f09bcecc2202edc2b93fc" title="Switches of the MOST Network.">Ucs_Network_Shutdown()</a> to abort the startup process. </dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>The instance </td></tr>
+ <tr><td class="paramname">packet_bw</td><td>The desired packet bandwidth.<table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>PacketBW</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">forced_na_timeout</td><td>The delay time in milliseconds to shutdown the network after the INIC has entered the protected mode.<table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>AutoForcedNotAvailable</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">result_fptr</td><td>Optional result callback. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible return values are shown in the table below. <table class="doxtable">
+<tr>
+<th>Value </th><th>Description</th></tr>
+<tr>
+<td>UCS_RET_SUCCESS </td><td>No error </td></tr>
+<tr>
+<td>UCS_RET_ERR_BUFFER_OVERFLOW </td><td>No message buffer available </td></tr>
+<tr>
+<td>UCS_RET_ERR_API_LOCKED </td><td>API is currently locked </td></tr>
+<tr>
+<td>UCS_RET_ERR_NOT_INITIALIZED </td><td>UNICENS is not initialized </td></tr>
+</table>
+</dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___n_e_t.html">Network</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___n_e_t_gaf08bc0be54565e30143166d675866f87.html b/ucs2-lib/doc/html/group___g___u_c_s___n_e_t_gaf08bc0be54565e30143166d675866f87.html
new file mode 100644
index 0000000..cb7c4b9
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___n_e_t_gaf08bc0be54565e30143166d675866f87.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Network_GetNodesCount</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___n_e_t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gaf08bc0be54565e30143166d675866f87"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t Ucs_Network_GetNodesCount </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *&#160;</td>
+ <td class="paramname"><em>self</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Retrieves the number of nodes within the MOST network. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>The instance </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Returns the number of nodes within the MOST network. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___n_e_t.html">Network</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___n_e_t_gaf195e8ae396bc1fc358666fe50bf3f51.html b/ucs2-lib/doc/html/group___g___u_c_s___n_e_t_gaf195e8ae396bc1fc358666fe50bf3f51.html
new file mode 100644
index 0000000..b6cbfe0
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___n_e_t_gaf195e8ae396bc1fc358666fe50bf3f51.html
@@ -0,0 +1,195 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Network_StatusCb_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___n_e_t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gaf195e8ae396bc1fc358666fe50bf3f51"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* Ucs_Network_StatusCb_t)(uint16_t change_mask, uint16_t events, <a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s_ga6b0bec2ae9e4d0fb93eefd65752f0c74.html#ga6b0bec2ae9e4d0fb93eefd65752f0c74">Ucs_Network_Availability_t</a> availability, <a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s_gad5ed0387c3c156602826d50ce94c9df7.html#gad5ed0387c3c156602826d50ce94c9df7">Ucs_Network_AvailInfo_t</a> avail_info, <a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#gab4ec40bf01de998abc4f2ae34c26ac46">Ucs_Network_AvailTransCause_t</a> avail_trans_cause, uint16_t node_address, uint8_t node_position, uint8_t max_position, uint16_t packet_bw, void *user_ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Function signature used for the Network Status callback function. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>The arguments of the result callback function correspond with the INIC's result for the function <a href="_p__u_m__o_s81118.html#MNSH3-MOSTNetworkStatus520">INIC.MOSTNetworkStatus</a>.</td></tr>
+</table>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">change_mask</td><td>Indicates which parameters have been changed since the last function call. If a bit is set the corresponding parameter has been changed since the last update. <table class="doxtable">
+<tr>
+<th align="center">Bit Index </th><th align="center">Value (Hex) </th><th>Parameter</th></tr>
+<tr>
+<td align="center">0 </td><td align="center">0x01 </td><td>events </td></tr>
+<tr>
+<td align="center">1 </td><td align="center">0x02 </td><td>availability </td></tr>
+<tr>
+<td align="center">2 </td><td align="center">0x04 </td><td>avail_info </td></tr>
+<tr>
+<td align="center">3 </td><td align="center">0x08 </td><td>avail_trans_cause </td></tr>
+<tr>
+<td align="center">4 </td><td align="center">0x10 </td><td>node_address </td></tr>
+<tr>
+<td align="center">5 </td><td align="center">0x20 </td><td>node_position </td></tr>
+<tr>
+<td align="center">6 </td><td align="center">0x40 </td><td>max_position </td></tr>
+<tr>
+<td align="center">7 </td><td align="center">0x80 </td><td>packet_bw </td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">events</td><td>The occurred network events. Events are only indicated once they occurred. I.e., the value is not handled as a continuous state. You can use the bitmask <a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s_ga5f170c3358fc47999f969ee868d113ef.html#ga5f170c3358fc47999f969ee868d113ef">UCS_NETWORK_EVENT_NCE</a> to identify received events. <table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>Events</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">availability</td><td>The network availability.<table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>Availability</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">avail_info</td><td>The availability information.<table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>AvailabilityInfo</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">avail_trans_cause</td><td>The availability transition cause.<table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>AvailabilityTransitionCause</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">node_address</td><td>The current node address.<table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>NodeAddress</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">node_position</td><td>The current node position.<table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>NodePosition</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">max_position</td><td>The number of available nodes.<table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>MaxPosition</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">packet_bw</td><td>The packet bandwidth.<table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>PacketBW</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">user_ptr</td><td>User reference provided in <a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t::user_ptr</a> </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___n_e_t.html">Network</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y.html b/ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y.html
new file mode 100644
index 0000000..7e2752e
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y.html
@@ -0,0 +1,150 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Node Discovery</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#groups">Topics</a> &#124;
+<a href="#typedef-members">Callback Functions</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">Node Discovery</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Node Discovery Service.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+Topics</h2></td></tr>
+<tr class="memitem:group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s.html">Referred Types</a></td></tr>
+<tr class="memdesc:group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s"><td class="mdescLeft">&#160;</td><td class="mdescRight">Referred Types used by Node Discovery Service. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Callback Functions</h2></td></tr>
+<tr class="memitem:ga61b182f93d2815857f62ea51782bb13d"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_gae1f89dbd75e3d76917273450df37ff66.html#gae1f89dbd75e3d76917273450df37ff66">Ucs_Nd_CheckResult_t</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_ga61b182f93d2815857f62ea51782bb13d.html#ga61b182f93d2815857f62ea51782bb13d">Ucs_Nd_EvalCb_t</a> )(<a class="el" href="struct_ucs___signature__t.html">Ucs_Signature_t</a> *signature, void *user_ptr)</td></tr>
+<tr class="memdesc:ga61b182f93d2815857f62ea51782bb13d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function signature of node evaluation callback used by Node Discovery service. <a href="#ga61b182f93d2815857f62ea51782bb13d"></a><br/></td></tr>
+<tr class="separator:ga61b182f93d2815857f62ea51782bb13d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab3c981bc09b0e5033e5163b8e5aafca7"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_gab3c981bc09b0e5033e5163b8e5aafca7.html#gab3c981bc09b0e5033e5163b8e5aafca7">Ucs_Nd_ReportCb_t</a> )(<a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#ga6736f9abd905dafe99d1337ac672f94e">Ucs_Nd_ResCode_t</a> code, <a class="el" href="struct_ucs___signature__t.html">Ucs_Signature_t</a> *signature, void *user_ptr)</td></tr>
+<tr class="memdesc:gab3c981bc09b0e5033e5163b8e5aafca7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function signature of result callback used by Node Discovery service. <a href="#gab3c981bc09b0e5033e5163b8e5aafca7"></a><br/></td></tr>
+<tr class="separator:gab3c981bc09b0e5033e5163b8e5aafca7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga50a5b00d5bbd1ad324478509dc524eec"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_ga50a5b00d5bbd1ad324478509dc524eec.html#ga50a5b00d5bbd1ad324478509dc524eec">Ucs_Nd_Start</a> (<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *self)</td></tr>
+<tr class="memdesc:ga50a5b00d5bbd1ad324478509dc524eec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Starts the Node Discovery service. <a href="#ga50a5b00d5bbd1ad324478509dc524eec"></a><br/></td></tr>
+<tr class="separator:ga50a5b00d5bbd1ad324478509dc524eec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga637e441520f7b203e551274f17febfb6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_ga637e441520f7b203e551274f17febfb6.html#ga637e441520f7b203e551274f17febfb6">Ucs_Nd_Stop</a> (<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *self)</td></tr>
+<tr class="memdesc:ga637e441520f7b203e551274f17febfb6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stops the Node Discovery service. <a href="#ga637e441520f7b203e551274f17febfb6"></a><br/></td></tr>
+<tr class="separator:ga637e441520f7b203e551274f17febfb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabab6c431e235fe0211f5f1525f9cff2e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_gabab6c431e235fe0211f5f1525f9cff2e.html#gabab6c431e235fe0211f5f1525f9cff2e">Ucs_Nd_InitAll</a> (<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *self)</td></tr>
+<tr class="memdesc:gabab6c431e235fe0211f5f1525f9cff2e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes all nodes. <a href="#gabab6c431e235fe0211f5f1525f9cff2e"></a><br/></td></tr>
+<tr class="separator:gabab6c431e235fe0211f5f1525f9cff2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Node Discovery Service. </p>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y.js b/ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y.js
new file mode 100644
index 0000000..1a71248
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y.js
@@ -0,0 +1,9 @@
+var group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y =
+[
+ [ "Referred Types", "group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s.html", "group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s" ],
+ [ "Ucs_Nd_EvalCb_t", "group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_ga61b182f93d2815857f62ea51782bb13d.html#ga61b182f93d2815857f62ea51782bb13d", null ],
+ [ "Ucs_Nd_ReportCb_t", "group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_gab3c981bc09b0e5033e5163b8e5aafca7.html#gab3c981bc09b0e5033e5163b8e5aafca7", null ],
+ [ "Ucs_Nd_InitAll", "group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_gabab6c431e235fe0211f5f1525f9cff2e.html#gabab6c431e235fe0211f5f1525f9cff2e", null ],
+ [ "Ucs_Nd_Start", "group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_ga50a5b00d5bbd1ad324478509dc524eec.html#ga50a5b00d5bbd1ad324478509dc524eec", null ],
+ [ "Ucs_Nd_Stop", "group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_ga637e441520f7b203e551274f17febfb6.html#ga637e441520f7b203e551274f17febfb6", null ]
+]; \ No newline at end of file
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s.html b/ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s.html
new file mode 100644
index 0000000..81455ff
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s.html
@@ -0,0 +1,150 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Referred Types</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#enum-members">Enumerations</a> </div>
+ <div class="headertitle">
+<div class="title">Referred Types</div> </div>
+<div class="ingroups"><a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y.html">Node Discovery</a></div></div><!--header-->
+<div class="contents">
+
+<p>Referred Types used by Node Discovery Service.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:ga6736f9abd905dafe99d1337ac672f94e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#ga6736f9abd905dafe99d1337ac672f94e">Ucs_Nd_ResCode_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#gga6736f9abd905dafe99d1337ac672f94ea5bbe1036a7d23ba01e57c0a1f81875cf">UCS_ND_RES_WELCOME_SUCCESS</a> = 0x01U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#gga6736f9abd905dafe99d1337ac672f94ea9c00fd1653c0246f2a13a435186f13f2">UCS_ND_RES_UNKNOWN</a> = 0x02U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#gga6736f9abd905dafe99d1337ac672f94ea2cc431bce680f2c35dd55da8a7946a42">UCS_ND_RES_MULTI</a> = 0x03U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#gga6736f9abd905dafe99d1337ac672f94ea6a027a5f3ac858db61db8867da370bb1">UCS_ND_RES_STOPPED</a> = 0x04U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#gga6736f9abd905dafe99d1337ac672f94ead82683dc383edac131c5d4edaa3743ee">UCS_ND_RES_NETOFF</a> = 0x05U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#gga6736f9abd905dafe99d1337ac672f94ea6012ff8c839a76de8761723d08e7fe60">UCS_ND_RES_ERROR</a> = 0x06U
+<br/>
+ }</td></tr>
+<tr class="memdesc:ga6736f9abd905dafe99d1337ac672f94e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Result values of the Node Discovery service. <a href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#ga6736f9abd905dafe99d1337ac672f94e">More...</a><br/></td></tr>
+<tr class="separator:ga6736f9abd905dafe99d1337ac672f94e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae1f89dbd75e3d76917273450df37ff66"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_gae1f89dbd75e3d76917273450df37ff66.html#gae1f89dbd75e3d76917273450df37ff66">Ucs_Nd_CheckResult_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_gae1f89dbd75e3d76917273450df37ff66.html#ggae1f89dbd75e3d76917273450df37ff66a0c15fbb8aa9ee8dbf0362b9e9a8b6942">UCS_ND_CHK_WELCOME</a> = 0x01U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_gae1f89dbd75e3d76917273450df37ff66.html#ggae1f89dbd75e3d76917273450df37ff66acdbc82cdd701e67cdd7520172767ba75">UCS_ND_CHK_UNIQUE</a> = 0x02U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_gae1f89dbd75e3d76917273450df37ff66.html#ggae1f89dbd75e3d76917273450df37ff66a4ed7307250366668604925bf3650be4c">UCS_ND_CHK_UNKNOWN</a> = 0x03U
+<br/>
+ }</td></tr>
+<tr class="memdesc:gae1f89dbd75e3d76917273450df37ff66"><td class="mdescLeft">&#160;</td><td class="mdescRight">Result values of the application's evaluation function (type <a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_ga61b182f93d2815857f62ea51782bb13d.html#ga61b182f93d2815857f62ea51782bb13d">Ucs_Nd_EvalCb_t</a>). <a href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_gae1f89dbd75e3d76917273450df37ff66.html#gae1f89dbd75e3d76917273450df37ff66">More...</a><br/></td></tr>
+<tr class="separator:gae1f89dbd75e3d76917273450df37ff66"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Referred Types used by Node Discovery Service. </p>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s.js b/ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s.js
new file mode 100644
index 0000000..b0af80c
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s.js
@@ -0,0 +1,16 @@
+var group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s =
+[
+ [ "Ucs_Nd_CheckResult_t", "group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_gae1f89dbd75e3d76917273450df37ff66.html#gae1f89dbd75e3d76917273450df37ff66", [
+ [ "UCS_ND_CHK_WELCOME", "group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_gae1f89dbd75e3d76917273450df37ff66.html#ggae1f89dbd75e3d76917273450df37ff66a0c15fbb8aa9ee8dbf0362b9e9a8b6942", null ],
+ [ "UCS_ND_CHK_UNIQUE", "group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_gae1f89dbd75e3d76917273450df37ff66.html#ggae1f89dbd75e3d76917273450df37ff66acdbc82cdd701e67cdd7520172767ba75", null ],
+ [ "UCS_ND_CHK_UNKNOWN", "group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_gae1f89dbd75e3d76917273450df37ff66.html#ggae1f89dbd75e3d76917273450df37ff66a4ed7307250366668604925bf3650be4c", null ]
+ ] ],
+ [ "Ucs_Nd_ResCode_t", "group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#ga6736f9abd905dafe99d1337ac672f94e", [
+ [ "UCS_ND_RES_WELCOME_SUCCESS", "group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#gga6736f9abd905dafe99d1337ac672f94ea5bbe1036a7d23ba01e57c0a1f81875cf", null ],
+ [ "UCS_ND_RES_UNKNOWN", "group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#gga6736f9abd905dafe99d1337ac672f94ea9c00fd1653c0246f2a13a435186f13f2", null ],
+ [ "UCS_ND_RES_MULTI", "group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#gga6736f9abd905dafe99d1337ac672f94ea2cc431bce680f2c35dd55da8a7946a42", null ],
+ [ "UCS_ND_RES_STOPPED", "group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#gga6736f9abd905dafe99d1337ac672f94ea6a027a5f3ac858db61db8867da370bb1", null ],
+ [ "UCS_ND_RES_NETOFF", "group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#gga6736f9abd905dafe99d1337ac672f94ead82683dc383edac131c5d4edaa3743ee", null ],
+ [ "UCS_ND_RES_ERROR", "group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#gga6736f9abd905dafe99d1337ac672f94ea6012ff8c839a76de8761723d08e7fe60", null ]
+ ] ]
+]; \ No newline at end of file
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html b/ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html
new file mode 100644
index 0000000..3c9a469
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html
@@ -0,0 +1,146 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Nd_ResCode_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga6736f9abd905dafe99d1337ac672f94e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#ga6736f9abd905dafe99d1337ac672f94e">Ucs_Nd_ResCode_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Result values of the Node Discovery service. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga6736f9abd905dafe99d1337ac672f94ea5bbe1036a7d23ba01e57c0a1f81875cf"></a>UCS_ND_RES_WELCOME_SUCCESS</em>&nbsp;</td><td>
+<p>Node was successfully added to the network. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga6736f9abd905dafe99d1337ac672f94ea9c00fd1653c0246f2a13a435186f13f2"></a>UCS_ND_RES_UNKNOWN</em>&nbsp;</td><td>
+<p>Node signature is unknown to the application, node will be ignored. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga6736f9abd905dafe99d1337ac672f94ea2cc431bce680f2c35dd55da8a7946a42"></a>UCS_ND_RES_MULTI</em>&nbsp;</td><td>
+<p>A node with the same signature is already part of the system. The new node will be ignored. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga6736f9abd905dafe99d1337ac672f94ea6a027a5f3ac858db61db8867da370bb1"></a>UCS_ND_RES_STOPPED</em>&nbsp;</td><td>
+<p>The Node Discovery service was stopped by API function <a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_ga637e441520f7b203e551274f17febfb6.html#ga637e441520f7b203e551274f17febfb6" title="Stops the Node Discovery service.">Ucs_Nd_Stop()</a>. <a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_ga50a5b00d5bbd1ad324478509dc524eec.html#ga50a5b00d5bbd1ad324478509dc524eec" title="Starts the Node Discovery service.">Ucs_Nd_Start()</a> has to be called to start again. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga6736f9abd905dafe99d1337ac672f94ead82683dc383edac131c5d4edaa3743ee"></a>UCS_ND_RES_NETOFF</em>&nbsp;</td><td>
+<p>The Node Discovery service detected a NetOff event and pauses . It resumes automatically as soon as NetOn occurs. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga6736f9abd905dafe99d1337ac672f94ea6012ff8c839a76de8761723d08e7fe60"></a>UCS_ND_RES_ERROR</em>&nbsp;</td><td>
+<p>An unexpected error occurred. Node Discovery service was stopped. <a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_ga50a5b00d5bbd1ad324478509dc524eec.html#ga50a5b00d5bbd1ad324478509dc524eec" title="Starts the Node Discovery service.">Ucs_Nd_Start()</a> has to be called to start again. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s.html">Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_gae1f89dbd75e3d76917273450df37ff66.html b/ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_gae1f89dbd75e3d76917273450df37ff66.html
new file mode 100644
index 0000000..dac16a3
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_gae1f89dbd75e3d76917273450df37ff66.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Nd_CheckResult_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gae1f89dbd75e3d76917273450df37ff66"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_gae1f89dbd75e3d76917273450df37ff66.html#gae1f89dbd75e3d76917273450df37ff66">Ucs_Nd_CheckResult_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Result values of the application's evaluation function (type <a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_ga61b182f93d2815857f62ea51782bb13d.html#ga61b182f93d2815857f62ea51782bb13d">Ucs_Nd_EvalCb_t</a>). </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="ggae1f89dbd75e3d76917273450df37ff66a0c15fbb8aa9ee8dbf0362b9e9a8b6942"></a>UCS_ND_CHK_WELCOME</em>&nbsp;</td><td>
+<p>Node is ok, try to add it to the network. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggae1f89dbd75e3d76917273450df37ff66acdbc82cdd701e67cdd7520172767ba75"></a>UCS_ND_CHK_UNIQUE</em>&nbsp;</td><td>
+<p>Test if this node is unique. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggae1f89dbd75e3d76917273450df37ff66a4ed7307250366668604925bf3650be4c"></a>UCS_ND_CHK_UNKNOWN</em>&nbsp;</td><td>
+<p>The node is unknown, no further action. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s.html">Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_ga50a5b00d5bbd1ad324478509dc524eec.html b/ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_ga50a5b00d5bbd1ad324478509dc524eec.html
new file mode 100644
index 0000000..f14b32b
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_ga50a5b00d5bbd1ad324478509dc524eec.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Nd_Start</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga50a5b00d5bbd1ad324478509dc524eec"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a> Ucs_Nd_Start </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *&#160;</td>
+ <td class="paramname"><em>self</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Starts the Node Discovery service. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>The instance </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible return values are shown in the table below. <table class="doxtable">
+<tr>
+<th>Value </th><th>Description</th></tr>
+<tr>
+<td>UCS_RET_SUCCESS </td><td>No error </td></tr>
+<tr>
+<td>UCS_RET_ERR_API_LOCKED </td><td>Node Discovery was already started </td></tr>
+</table>
+</dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y.html">Node Discovery</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_ga61b182f93d2815857f62ea51782bb13d.html b/ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_ga61b182f93d2815857f62ea51782bb13d.html
new file mode 100644
index 0000000..bc7f695
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_ga61b182f93d2815857f62ea51782bb13d.html
@@ -0,0 +1,151 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Nd_EvalCb_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga61b182f93d2815857f62ea51782bb13d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_gae1f89dbd75e3d76917273450df37ff66.html#gae1f89dbd75e3d76917273450df37ff66">Ucs_Nd_CheckResult_t</a>(* Ucs_Nd_EvalCb_t)(<a class="el" href="struct_ucs___signature__t.html">Ucs_Signature_t</a> *signature, void *user_ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Function signature of node evaluation callback used by Node Discovery service. </p>
+<p>The Node Discovery service announces the signature of each node it has found to the application via the evaluation function. In this function the application decides how the Node Discovery service shall proceed with the node. The application maintains two lists:</p>
+<dl>
+<dt><em>set_list</em> </dt>
+<dd><p class="startdd">Contains the signatures of the nodes the system shall contain</p>
+<p class="enddd"></p>
+</dd>
+<dt><em>device_list</em> </dt>
+<dd>Contains the signatures of the nodes detected in the system </dd>
+</dl>
+<p>The evaluation has to follow these rules:</p>
+<ul>
+<li>If the node is not part of the <em>set_list</em>, it is regarded as unknown (<a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_gae1f89dbd75e3d76917273450df37ff66.html#ggae1f89dbd75e3d76917273450df37ff66a4ed7307250366668604925bf3650be4c">UCS_ND_CHK_UNKNOWN</a>) and will be ignored.</li>
+<li>If the node is part of the <em>set_list</em> and is not yet in the <em>device_list</em>, the Node Discovery Service shall try to add the node to network (<a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_gae1f89dbd75e3d76917273450df37ff66.html#ggae1f89dbd75e3d76917273450df37ff66a0c15fbb8aa9ee8dbf0362b9e9a8b6942">UCS_ND_CHK_WELCOME</a>).</li>
+<li>If the node is already part of the <em>device_list</em>, there are two possibilities: the node in the <em>device_list</em> experienced a reset or there are two nodes with the same signature. Evaluation result is <a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_gae1f89dbd75e3d76917273450df37ff66.html#ggae1f89dbd75e3d76917273450df37ff66acdbc82cdd701e67cdd7520172767ba75">UCS_ND_CHK_UNIQUE</a>. The Node Discovery service will perform further tests.</li>
+</ul>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">signature</td><td>Signature of the respective node </td></tr>
+ <tr><td class="paramname">user_ptr</td><td>User reference provided in <a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t::user_ptr</a> </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>UCS_ND_CHK_WELCOME Node is ok, try to add it to the network. </dd>
+<dd>
+UCS_ND_CHK_UNIQUE Test if this node is unique. </dd>
+<dd>
+UCS_ND_CHK_UNKNOWN Node is unknown, no further action. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y.html">Node Discovery</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_ga637e441520f7b203e551274f17febfb6.html b/ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_ga637e441520f7b203e551274f17febfb6.html
new file mode 100644
index 0000000..d5ca2bd
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_ga637e441520f7b203e551274f17febfb6.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Nd_Stop</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga637e441520f7b203e551274f17febfb6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a> Ucs_Nd_Stop </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *&#160;</td>
+ <td class="paramname"><em>self</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Stops the Node Discovery service. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>The instance </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible return values are shown in the table below. <table class="doxtable">
+<tr>
+<th>Value </th><th>Description</th></tr>
+<tr>
+<td>UCS_RET_SUCCESS </td><td>No error </td></tr>
+<tr>
+<td>UCS_RET_ERR_NOT_AVAILABLE </td><td>Node Discovery not running </td></tr>
+</table>
+</dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y.html">Node Discovery</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_gab3c981bc09b0e5033e5163b8e5aafca7.html b/ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_gab3c981bc09b0e5033e5163b8e5aafca7.html
new file mode 100644
index 0000000..d266b98
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_gab3c981bc09b0e5033e5163b8e5aafca7.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Nd_ReportCb_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gab3c981bc09b0e5033e5163b8e5aafca7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* Ucs_Nd_ReportCb_t)(<a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#ga6736f9abd905dafe99d1337ac672f94e">Ucs_Nd_ResCode_t</a> code, <a class="el" href="struct_ucs___signature__t.html">Ucs_Signature_t</a> *signature, void *user_ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Function signature of result callback used by Node Discovery service. </p>
+<p>The Node Discovery service reports the result of each node and some system events by this callback function.</p>
+<dl class="section note"><dt>Note</dt><dd>The parameter <b>signature</b> will be NULL, if parameter <b>code</b> is <a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#gga6736f9abd905dafe99d1337ac672f94ea6a027a5f3ac858db61db8867da370bb1">UCS_ND_RES_STOPPED</a>, <a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#gga6736f9abd905dafe99d1337ac672f94ead82683dc383edac131c5d4edaa3743ee">UCS_ND_RES_NETOFF</a> or <a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#gga6736f9abd905dafe99d1337ac672f94ea6012ff8c839a76de8761723d08e7fe60">UCS_ND_RES_ERROR</a>.</dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">code</td><td>Result code </td></tr>
+ <tr><td class="paramname">signature</td><td>Signature of the respective node </td></tr>
+ <tr><td class="paramname">user_ptr</td><td>User reference provided in <a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t::user_ptr</a> </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y.html">Node Discovery</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_gabab6c431e235fe0211f5f1525f9cff2e.html b/ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_gabab6c431e235fe0211f5f1525f9cff2e.html
new file mode 100644
index 0000000..23af9f8
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_gabab6c431e235fe0211f5f1525f9cff2e.html
@@ -0,0 +1,144 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Nd_InitAll</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gabab6c431e235fe0211f5f1525f9cff2e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a> Ucs_Nd_InitAll </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *&#160;</td>
+ <td class="paramname"><em>self</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Initializes all nodes. </p>
+<dl class="section note"><dt>Note</dt><dd><b>Must not be used when Node Discovery service is started.</b> </dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>The instance </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible return values are shown in the table below. <table class="doxtable">
+<tr>
+<th>Value </th><th>Description</th></tr>
+<tr>
+<td>UCS_RET_SUCCESS </td><td>No error </td></tr>
+<tr>
+<td>UCS_RET_ERR_NOT_INITIALIZED </td><td>UNICENS is not initialized </td></tr>
+</table>
+</dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y.html">Node Discovery</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___p_b_i.html b/ucs2-lib/doc/html/group___g___u_c_s___p_b_i.html
new file mode 100644
index 0000000..dc150d6
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___p_b_i.html
@@ -0,0 +1,130 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Peripheral Bus Interface</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___p_b_i.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#groups">Topics</a> </div>
+ <div class="headertitle">
+<div class="title">Peripheral Bus Interface</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides service functions to manage data communication over the peripheral bus interfaces I2C and GPIO.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+Topics</h2></td></tr>
+<tr class="memitem:group___g___u_c_s___g_p_i_o"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___g_p_i_o.html">GPIO</a></td></tr>
+<tr class="memdesc:group___g___u_c_s___g_p_i_o"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides service functions to handle data communication over GPIO. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group___g___u_c_s___i2_c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i2_c.html">I2C</a></td></tr>
+<tr class="memdesc:group___g___u_c_s___i2_c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides service functions to handle data communication over I2C. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Provides service functions to manage data communication over the peripheral bus interfaces I2C and GPIO. </p>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___p_b_i.js b/ucs2-lib/doc/html/group___g___u_c_s___p_b_i.js
new file mode 100644
index 0000000..ed9ae7c
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___p_b_i.js
@@ -0,0 +1,5 @@
+var group___g___u_c_s___p_b_i =
+[
+ [ "GPIO", "group___g___u_c_s___g_p_i_o.html", "group___g___u_c_s___g_p_i_o" ],
+ [ "I2C", "group___g___u_c_s___i2_c.html", "group___g___u_c_s___i2_c" ]
+]; \ No newline at end of file
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___p_r_o_g___m_o_d_e.html b/ucs2-lib/doc/html/group___g___u_c_s___p_r_o_g___m_o_d_e.html
new file mode 100644
index 0000000..38ed724
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___p_r_o_g___m_o_d_e.html
@@ -0,0 +1,140 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Programming</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___p_r_o_g___m_o_d_e.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#groups">Topics</a> &#124;
+<a href="#typedef-members">Callback Functions</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">Programming</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Programming Service.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+Topics</h2></td></tr>
+<tr class="memitem:group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s.html">Referred Types</a></td></tr>
+<tr class="memdesc:group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s"><td class="mdescLeft">&#160;</td><td class="mdescRight">Referred Types used by Programming Service. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Callback Functions</h2></td></tr>
+<tr class="memitem:ga15045bde4d6a35f1b1e20eb6e3c688ab"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e_ga15045bde4d6a35f1b1e20eb6e3c688ab.html#ga15045bde4d6a35f1b1e20eb6e3c688ab">Ucs_Prg_ReportCb_t</a> )(<a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html#gaa998005dc2e710169a39af0c3739ade2">Ucs_Prg_ResCode_t</a> code, <a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#ga25cd4c3a9113e0a25b65136fec561c83">Ucs_Prg_Func_t</a> function, uint8_t ret_len, uint8_t parm[], void *user_ptr)</td></tr>
+<tr class="memdesc:ga15045bde4d6a35f1b1e20eb6e3c688ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function signature of result callback used by Programming service. <a href="#ga15045bde4d6a35f1b1e20eb6e3c688ab"></a><br/></td></tr>
+<tr class="separator:ga15045bde4d6a35f1b1e20eb6e3c688ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga12071385b86ab6375472db80c00b80c7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e_ga12071385b86ab6375472db80c00b80c7.html#ga12071385b86ab6375472db80c00b80c7">Ucs_Prog_Start</a> (<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *self, uint16_t node_id, <a class="el" href="struct_ucs___signature__t.html">Ucs_Signature_t</a> *signature, <a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gab29d4eadce18cb68209671a44c1eaa3a.html#gab29d4eadce18cb68209671a44c1eaa3a">Ucs_Prg_SessionType_t</a> session_type, <a class="el" href="struct_ucs___prg___command__t.html">Ucs_Prg_Command_t</a> *command_list, <a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e_ga15045bde4d6a35f1b1e20eb6e3c688ab.html#ga15045bde4d6a35f1b1e20eb6e3c688ab">Ucs_Prg_ReportCb_t</a> result_fptr)</td></tr>
+<tr class="separator:ga12071385b86ab6375472db80c00b80c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Programming Service. </p>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___p_r_o_g___m_o_d_e.js b/ucs2-lib/doc/html/group___g___u_c_s___p_r_o_g___m_o_d_e.js
new file mode 100644
index 0000000..a0ff5fd
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___p_r_o_g___m_o_d_e.js
@@ -0,0 +1,6 @@
+var group___g___u_c_s___p_r_o_g___m_o_d_e =
+[
+ [ "Referred Types", "group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s.html", "group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s" ],
+ [ "Ucs_Prg_ReportCb_t", "group___g___u_c_s___p_r_o_g___m_o_d_e_ga15045bde4d6a35f1b1e20eb6e3c688ab.html#ga15045bde4d6a35f1b1e20eb6e3c688ab", null ],
+ [ "Ucs_Prog_Start", "group___g___u_c_s___p_r_o_g___m_o_d_e_ga12071385b86ab6375472db80c00b80c7.html#ga12071385b86ab6375472db80c00b80c7", null ]
+]; \ No newline at end of file
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s.html b/ucs2-lib/doc/html/group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s.html
new file mode 100644
index 0000000..47ee2a8
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s.html
@@ -0,0 +1,191 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Referred Types</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#enum-members">Enumerations</a> </div>
+ <div class="headertitle">
+<div class="title">Referred Types</div> </div>
+<div class="ingroups"><a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e.html">Programming</a></div></div><!--header-->
+<div class="contents">
+
+<p>Referred Types used by Programming Service.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___prg___command__t.html">Ucs_Prg_Command_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Represents a programming task. <a href="struct_ucs___prg___command__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:gab29d4eadce18cb68209671a44c1eaa3a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gab29d4eadce18cb68209671a44c1eaa3a.html#gab29d4eadce18cb68209671a44c1eaa3a">Ucs_Prg_SessionType_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gab29d4eadce18cb68209671a44c1eaa3a.html#ggab29d4eadce18cb68209671a44c1eaa3aa755ae5dbb2894e672423f34fcf94d4fe">UCS_PRG_ST_CS</a> = 0x01U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gab29d4eadce18cb68209671a44c1eaa3a.html#ggab29d4eadce18cb68209671a44c1eaa3aa1301855aa66797f8170b86d61a0240dd">UCS_PRG_ST_IS</a> = 0x02U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gab29d4eadce18cb68209671a44c1eaa3a.html#ggab29d4eadce18cb68209671a44c1eaa3aa344e76565c336dc329af00a8757242db">UCS_PRG_ST_CS_IS</a> = 0x04U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gab29d4eadce18cb68209671a44c1eaa3a.html#ggab29d4eadce18cb68209671a44c1eaa3aa520aca46c3115f7cef0d37e084f68cd2">UCS_PRG_ST_ERASE_EM</a> = 0x08U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gab29d4eadce18cb68209671a44c1eaa3a.html#ggab29d4eadce18cb68209671a44c1eaa3aae957e9ff8674900c12d4ced7f317bf83">UCS_PRG_ST_CFG_READ</a> = 0x10U
+<br/>
+ }</td></tr>
+<tr class="memdesc:gab29d4eadce18cb68209671a44c1eaa3a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the set of MemIDs and the memory access types. <a href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gab29d4eadce18cb68209671a44c1eaa3a.html#gab29d4eadce18cb68209671a44c1eaa3a">More...</a><br/></td></tr>
+<tr class="separator:gab29d4eadce18cb68209671a44c1eaa3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae01f703f9ca91d9d1b9efdcfddfe8464"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gae01f703f9ca91d9d1b9efdcfddfe8464.html#gae01f703f9ca91d9d1b9efdcfddfe8464">Ucs_Prg_MemId_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gae01f703f9ca91d9d1b9efdcfddfe8464.html#ggae01f703f9ca91d9d1b9efdcfddfe8464a7b9d362953b3eb6650b502e0a2de1d87">UCS_PRG_MID_CS</a> = 0x00U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gae01f703f9ca91d9d1b9efdcfddfe8464.html#ggae01f703f9ca91d9d1b9efdcfddfe8464a7aec4bc748bba83bc72b20589dbb8187">UCS_PRG_MID_IS</a> = 0x01U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gae01f703f9ca91d9d1b9efdcfddfe8464.html#ggae01f703f9ca91d9d1b9efdcfddfe8464aee7f85fb6df6f70f6f09757f41a1ff3e">UCS_PRG_MID_CSTEST</a> = 0x0CU,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gae01f703f9ca91d9d1b9efdcfddfe8464.html#ggae01f703f9ca91d9d1b9efdcfddfe8464a6aebc0c00f88f30ddfcea30b9a1d79bd">UCS_PRG_MID_ISTEST</a> = 0x0DU
+<br/>
+ }</td></tr>
+<tr class="memdesc:gae01f703f9ca91d9d1b9efdcfddfe8464"><td class="mdescLeft">&#160;</td><td class="mdescRight">Represents the memory resource to be written. <a href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gae01f703f9ca91d9d1b9efdcfddfe8464.html#gae01f703f9ca91d9d1b9efdcfddfe8464">More...</a><br/></td></tr>
+<tr class="separator:gae01f703f9ca91d9d1b9efdcfddfe8464"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa998005dc2e710169a39af0c3739ade2"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html#gaa998005dc2e710169a39af0c3739ade2">Ucs_Prg_ResCode_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html#ggaa998005dc2e710169a39af0c3739ade2a9fa199d254d8b56a36b83bdefc5e213e">UCS_PRG_RES_SUCCESS</a> = 0x01U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html#ggaa998005dc2e710169a39af0c3739ade2a4895d31da9d98951666b8bebf31dd316">UCS_PRG_RES_TIMEOUT</a> = 0x02U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html#ggaa998005dc2e710169a39af0c3739ade2a960ff74b4fab89700a44087c8f51a546">UCS_PRG_RES_NET_OFF</a> = 0x03U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html#ggaa998005dc2e710169a39af0c3739ade2a47fc805dfdab644983d36b195e6de5e9">UCS_PRG_RES_FKT_SYNCH</a> = 0x04U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html#ggaa998005dc2e710169a39af0c3739ade2ae99cf57eece62df6910adeafbb900a49">UCS_PRG_RES_FKT_ASYNCH</a> = 0x05U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html#ggaa998005dc2e710169a39af0c3739ade2afd20cb6be3412f26421e5878d4123fc0">UCS_PRG_RES_ERROR</a> = 0x06U
+<br/>
+ }</td></tr>
+<tr class="memdesc:gaa998005dc2e710169a39af0c3739ade2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Result values of the Programming service. <a href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html#gaa998005dc2e710169a39af0c3739ade2">More...</a><br/></td></tr>
+<tr class="separator:gaa998005dc2e710169a39af0c3739ade2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga25cd4c3a9113e0a25b65136fec561c83"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#ga25cd4c3a9113e0a25b65136fec561c83">Ucs_Prg_Func_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#gga25cd4c3a9113e0a25b65136fec561c83a571bfec1b0e2f178223e6ad468ecfb92">UCS_PRG_FKT_DUMMY</a> = 0x00U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#gga25cd4c3a9113e0a25b65136fec561c83a6bc3776ea617b865cde396fac4df9a5a">UCS_PRG_FKT_WELCOME</a> = 0x01U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#gga25cd4c3a9113e0a25b65136fec561c83a308862104fb675865f9ae6d9670ec40b">UCS_PRG_FKT_WELCOME_NOSUCCESS</a> = 0x02U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#gga25cd4c3a9113e0a25b65136fec561c83a062c6eb1a133b3b61dd24244121fda4b">UCS_PRG_FKT_MEM_OPEN</a> = 0x03U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#gga25cd4c3a9113e0a25b65136fec561c83a359370a24ff37bdde070efc8c887599f">UCS_PRG_FKT_MEM_WRITE</a> = 0x04U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#gga25cd4c3a9113e0a25b65136fec561c83a0071da47fdc967e0c6ce18cc464c3c1c">UCS_PRG_FKT_MEM_CLOSE</a> = 0x05U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#gga25cd4c3a9113e0a25b65136fec561c83a1cefbe47e784b8a872bec98922a7d1f6">UCS_PRG_FKT_INIT</a> = 0x06U
+<br/>
+ }</td></tr>
+<tr class="memdesc:ga25cd4c3a9113e0a25b65136fec561c83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Denotes the function where an error occurred. <a href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#ga25cd4c3a9113e0a25b65136fec561c83">More...</a><br/></td></tr>
+<tr class="separator:ga25cd4c3a9113e0a25b65136fec561c83"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Referred Types used by Programming Service. </p>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s.js b/ucs2-lib/doc/html/group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s.js
new file mode 100644
index 0000000..ce5e861
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s.js
@@ -0,0 +1,40 @@
+var group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s =
+[
+ [ "Ucs_Prg_Command_t", "struct_ucs___prg___command__t.html", [
+ [ "address", "struct_ucs___prg___command__t_ac0d31ca829f934cccd89f8054e02773e.html#ac0d31ca829f934cccd89f8054e02773e", null ],
+ [ "data", "struct_ucs___prg___command__t_abe222f6d3581e7920dcad5306cc906a8.html#abe222f6d3581e7920dcad5306cc906a8", null ],
+ [ "data_length", "struct_ucs___prg___command__t_ad97c802f66f41e937c3f8b33337b8c6d.html#ad97c802f66f41e937c3f8b33337b8c6d", null ],
+ [ "mem_id", "struct_ucs___prg___command__t_ac6e0813f6e305faff5b36579a4d1d727.html#ac6e0813f6e305faff5b36579a4d1d727", null ],
+ [ "unit_length", "struct_ucs___prg___command__t_aaeb273d8c806cdbebcb5d61a58b3a77d.html#aaeb273d8c806cdbebcb5d61a58b3a77d", null ]
+ ] ],
+ [ "Ucs_Prg_Func_t", "group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#ga25cd4c3a9113e0a25b65136fec561c83", [
+ [ "UCS_PRG_FKT_DUMMY", "group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#gga25cd4c3a9113e0a25b65136fec561c83a571bfec1b0e2f178223e6ad468ecfb92", null ],
+ [ "UCS_PRG_FKT_WELCOME", "group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#gga25cd4c3a9113e0a25b65136fec561c83a6bc3776ea617b865cde396fac4df9a5a", null ],
+ [ "UCS_PRG_FKT_WELCOME_NOSUCCESS", "group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#gga25cd4c3a9113e0a25b65136fec561c83a308862104fb675865f9ae6d9670ec40b", null ],
+ [ "UCS_PRG_FKT_MEM_OPEN", "group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#gga25cd4c3a9113e0a25b65136fec561c83a062c6eb1a133b3b61dd24244121fda4b", null ],
+ [ "UCS_PRG_FKT_MEM_WRITE", "group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#gga25cd4c3a9113e0a25b65136fec561c83a359370a24ff37bdde070efc8c887599f", null ],
+ [ "UCS_PRG_FKT_MEM_CLOSE", "group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#gga25cd4c3a9113e0a25b65136fec561c83a0071da47fdc967e0c6ce18cc464c3c1c", null ],
+ [ "UCS_PRG_FKT_INIT", "group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#gga25cd4c3a9113e0a25b65136fec561c83a1cefbe47e784b8a872bec98922a7d1f6", null ]
+ ] ],
+ [ "Ucs_Prg_MemId_t", "group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gae01f703f9ca91d9d1b9efdcfddfe8464.html#gae01f703f9ca91d9d1b9efdcfddfe8464", [
+ [ "UCS_PRG_MID_CS", "group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gae01f703f9ca91d9d1b9efdcfddfe8464.html#ggae01f703f9ca91d9d1b9efdcfddfe8464a7b9d362953b3eb6650b502e0a2de1d87", null ],
+ [ "UCS_PRG_MID_IS", "group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gae01f703f9ca91d9d1b9efdcfddfe8464.html#ggae01f703f9ca91d9d1b9efdcfddfe8464a7aec4bc748bba83bc72b20589dbb8187", null ],
+ [ "UCS_PRG_MID_CSTEST", "group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gae01f703f9ca91d9d1b9efdcfddfe8464.html#ggae01f703f9ca91d9d1b9efdcfddfe8464aee7f85fb6df6f70f6f09757f41a1ff3e", null ],
+ [ "UCS_PRG_MID_ISTEST", "group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gae01f703f9ca91d9d1b9efdcfddfe8464.html#ggae01f703f9ca91d9d1b9efdcfddfe8464a6aebc0c00f88f30ddfcea30b9a1d79bd", null ]
+ ] ],
+ [ "Ucs_Prg_ResCode_t", "group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html#gaa998005dc2e710169a39af0c3739ade2", [
+ [ "UCS_PRG_RES_SUCCESS", "group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html#ggaa998005dc2e710169a39af0c3739ade2a9fa199d254d8b56a36b83bdefc5e213e", null ],
+ [ "UCS_PRG_RES_TIMEOUT", "group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html#ggaa998005dc2e710169a39af0c3739ade2a4895d31da9d98951666b8bebf31dd316", null ],
+ [ "UCS_PRG_RES_NET_OFF", "group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html#ggaa998005dc2e710169a39af0c3739ade2a960ff74b4fab89700a44087c8f51a546", null ],
+ [ "UCS_PRG_RES_FKT_SYNCH", "group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html#ggaa998005dc2e710169a39af0c3739ade2a47fc805dfdab644983d36b195e6de5e9", null ],
+ [ "UCS_PRG_RES_FKT_ASYNCH", "group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html#ggaa998005dc2e710169a39af0c3739ade2ae99cf57eece62df6910adeafbb900a49", null ],
+ [ "UCS_PRG_RES_ERROR", "group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html#ggaa998005dc2e710169a39af0c3739ade2afd20cb6be3412f26421e5878d4123fc0", null ]
+ ] ],
+ [ "Ucs_Prg_SessionType_t", "group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gab29d4eadce18cb68209671a44c1eaa3a.html#gab29d4eadce18cb68209671a44c1eaa3a", [
+ [ "UCS_PRG_ST_CS", "group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gab29d4eadce18cb68209671a44c1eaa3a.html#ggab29d4eadce18cb68209671a44c1eaa3aa755ae5dbb2894e672423f34fcf94d4fe", null ],
+ [ "UCS_PRG_ST_IS", "group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gab29d4eadce18cb68209671a44c1eaa3a.html#ggab29d4eadce18cb68209671a44c1eaa3aa1301855aa66797f8170b86d61a0240dd", null ],
+ [ "UCS_PRG_ST_CS_IS", "group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gab29d4eadce18cb68209671a44c1eaa3a.html#ggab29d4eadce18cb68209671a44c1eaa3aa344e76565c336dc329af00a8757242db", null ],
+ [ "UCS_PRG_ST_ERASE_EM", "group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gab29d4eadce18cb68209671a44c1eaa3a.html#ggab29d4eadce18cb68209671a44c1eaa3aa520aca46c3115f7cef0d37e084f68cd2", null ],
+ [ "UCS_PRG_ST_CFG_READ", "group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gab29d4eadce18cb68209671a44c1eaa3a.html#ggab29d4eadce18cb68209671a44c1eaa3aae957e9ff8674900c12d4ced7f317bf83", null ]
+ ] ]
+]; \ No newline at end of file
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html b/ucs2-lib/doc/html/group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html
new file mode 100644
index 0000000..bda52e7
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html
@@ -0,0 +1,149 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Prg_Func_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga25cd4c3a9113e0a25b65136fec561c83"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#ga25cd4c3a9113e0a25b65136fec561c83">Ucs_Prg_Func_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Denotes the function where an error occurred. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga25cd4c3a9113e0a25b65136fec561c83a571bfec1b0e2f178223e6ad468ecfb92"></a>UCS_PRG_FKT_DUMMY</em>&nbsp;</td><td>
+<p>Dummy value, used in case of UCS_PRG_RES_SUCCESS. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga25cd4c3a9113e0a25b65136fec561c83a6bc3776ea617b865cde396fac4df9a5a"></a>UCS_PRG_FKT_WELCOME</em>&nbsp;</td><td>
+<p>Error occurred in the context of function Welcome. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga25cd4c3a9113e0a25b65136fec561c83a308862104fb675865f9ae6d9670ec40b"></a>UCS_PRG_FKT_WELCOME_NOSUCCESS</em>&nbsp;</td><td>
+<p>Welcome result was No Success. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga25cd4c3a9113e0a25b65136fec561c83a062c6eb1a133b3b61dd24244121fda4b"></a>UCS_PRG_FKT_MEM_OPEN</em>&nbsp;</td><td>
+<p>Error occurred in the context of function MemorySessionOpen. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga25cd4c3a9113e0a25b65136fec561c83a359370a24ff37bdde070efc8c887599f"></a>UCS_PRG_FKT_MEM_WRITE</em>&nbsp;</td><td>
+<p>Error occurred in the context of function MemoryWrite. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga25cd4c3a9113e0a25b65136fec561c83a0071da47fdc967e0c6ce18cc464c3c1c"></a>UCS_PRG_FKT_MEM_CLOSE</em>&nbsp;</td><td>
+<p>Error occurred in the context of function MemorySessionClose. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga25cd4c3a9113e0a25b65136fec561c83a1cefbe47e784b8a872bec98922a7d1f6"></a>UCS_PRG_FKT_INIT</em>&nbsp;</td><td>
+<p>Error occurred in the context of function Init. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s.html">Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html b/ucs2-lib/doc/html/group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html
new file mode 100644
index 0000000..ca4f293
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html
@@ -0,0 +1,146 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Prg_ResCode_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gaa998005dc2e710169a39af0c3739ade2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html#gaa998005dc2e710169a39af0c3739ade2">Ucs_Prg_ResCode_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Result values of the Programming service. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="ggaa998005dc2e710169a39af0c3739ade2a9fa199d254d8b56a36b83bdefc5e213e"></a>UCS_PRG_RES_SUCCESS</em>&nbsp;</td><td>
+<p>Node was successfully programmed. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggaa998005dc2e710169a39af0c3739ade2a4895d31da9d98951666b8bebf31dd316"></a>UCS_PRG_RES_TIMEOUT</em>&nbsp;</td><td>
+<p>Node did not answer timely. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggaa998005dc2e710169a39af0c3739ade2a960ff74b4fab89700a44087c8f51a546"></a>UCS_PRG_RES_NET_OFF</em>&nbsp;</td><td>
+<p>A NetOff event occurred during programming. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggaa998005dc2e710169a39af0c3739ade2a47fc805dfdab644983d36b195e6de5e9"></a>UCS_PRG_RES_FKT_SYNCH</em>&nbsp;</td><td>
+<p>The call of the internal API function returned an error, so the command was not sent to the node. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggaa998005dc2e710169a39af0c3739ade2ae99cf57eece62df6910adeafbb900a49"></a>UCS_PRG_RES_FKT_ASYNCH</em>&nbsp;</td><td>
+<p>Node returned an error message as result. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggaa998005dc2e710169a39af0c3739ade2afd20cb6be3412f26421e5878d4123fc0"></a>UCS_PRG_RES_ERROR</em>&nbsp;</td><td>
+<p>An unexcpected error occurred. Programming service was stopped. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s.html">Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gab29d4eadce18cb68209671a44c1eaa3a.html b/ucs2-lib/doc/html/group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gab29d4eadce18cb68209671a44c1eaa3a.html
new file mode 100644
index 0000000..6c60164
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gab29d4eadce18cb68209671a44c1eaa3a.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Prg_SessionType_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gab29d4eadce18cb68209671a44c1eaa3a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gab29d4eadce18cb68209671a44c1eaa3a.html#gab29d4eadce18cb68209671a44c1eaa3a">Ucs_Prg_SessionType_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Defines the set of MemIDs and the memory access types. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="ggab29d4eadce18cb68209671a44c1eaa3aa755ae5dbb2894e672423f34fcf94d4fe"></a>UCS_PRG_ST_CS</em>&nbsp;</td><td>
+<p>Writes to configuration string. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggab29d4eadce18cb68209671a44c1eaa3aa1301855aa66797f8170b86d61a0240dd"></a>UCS_PRG_ST_IS</em>&nbsp;</td><td>
+<p>Writes to identification string. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggab29d4eadce18cb68209671a44c1eaa3aa344e76565c336dc329af00a8757242db"></a>UCS_PRG_ST_CS_IS</em>&nbsp;</td><td>
+<p>Writes to configuration and identification string. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggab29d4eadce18cb68209671a44c1eaa3aa520aca46c3115f7cef0d37e084f68cd2"></a>UCS_PRG_ST_ERASE_EM</em>&nbsp;</td><td>
+<p>Erases the error memory. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggab29d4eadce18cb68209671a44c1eaa3aae957e9ff8674900c12d4ced7f317bf83"></a>UCS_PRG_ST_CFG_READ</em>&nbsp;</td><td>
+<p>Reads data from all configuration memories. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s.html">Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gae01f703f9ca91d9d1b9efdcfddfe8464.html b/ucs2-lib/doc/html/group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gae01f703f9ca91d9d1b9efdcfddfe8464.html
new file mode 100644
index 0000000..5a7f24f
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gae01f703f9ca91d9d1b9efdcfddfe8464.html
@@ -0,0 +1,140 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Prg_MemId_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gae01f703f9ca91d9d1b9efdcfddfe8464"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gae01f703f9ca91d9d1b9efdcfddfe8464.html#gae01f703f9ca91d9d1b9efdcfddfe8464">Ucs_Prg_MemId_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Represents the memory resource to be written. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="ggae01f703f9ca91d9d1b9efdcfddfe8464a7b9d362953b3eb6650b502e0a2de1d87"></a>UCS_PRG_MID_CS</em>&nbsp;</td><td>
+<p>Writes the configuration string. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggae01f703f9ca91d9d1b9efdcfddfe8464a7aec4bc748bba83bc72b20589dbb8187"></a>UCS_PRG_MID_IS</em>&nbsp;</td><td>
+<p>Writes the identification string. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggae01f703f9ca91d9d1b9efdcfddfe8464aee7f85fb6df6f70f6f09757f41a1ff3e"></a>UCS_PRG_MID_CSTEST</em>&nbsp;</td><td>
+<p>Writes the test configuration string. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggae01f703f9ca91d9d1b9efdcfddfe8464a6aebc0c00f88f30ddfcea30b9a1d79bd"></a>UCS_PRG_MID_ISTEST</em>&nbsp;</td><td>
+<p>Writes the test identification string. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s.html">Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___p_r_o_g___m_o_d_e_ga12071385b86ab6375472db80c00b80c7.html b/ucs2-lib/doc/html/group___g___u_c_s___p_r_o_g___m_o_d_e_ga12071385b86ab6375472db80c00b80c7.html
new file mode 100644
index 0000000..e64aec8
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___p_r_o_g___m_o_d_e_ga12071385b86ab6375472db80c00b80c7.html
@@ -0,0 +1,173 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Prog_Start</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___p_r_o_g___m_o_d_e.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga12071385b86ab6375472db80c00b80c7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a> Ucs_Prog_Start </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *&#160;</td>
+ <td class="paramname"><em>self</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>node_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="struct_ucs___signature__t.html">Ucs_Signature_t</a> *&#160;</td>
+ <td class="paramname"><em>signature</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gab29d4eadce18cb68209671a44c1eaa3a.html#gab29d4eadce18cb68209671a44c1eaa3a">Ucs_Prg_SessionType_t</a>&#160;</td>
+ <td class="paramname"><em>session_type</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="struct_ucs___prg___command__t.html">Ucs_Prg_Command_t</a> *&#160;</td>
+ <td class="paramname"><em>command_list</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e_ga15045bde4d6a35f1b1e20eb6e3c688ab.html#ga15045bde4d6a35f1b1e20eb6e3c688ab">Ucs_Prg_ReportCb_t</a>&#160;</td>
+ <td class="paramname"><em>result_fptr</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Starts the Programming service and processes the command list</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">*self</td><td>The instance </td></tr>
+ <tr><td class="paramname">node_id</td><td>The node position address of the the node to be programmed </td></tr>
+ <tr><td class="paramname">signature</td><td>Signature of the the node to be programmed </td></tr>
+ <tr><td class="paramname">session_type</td><td>Memory access type </td></tr>
+ <tr><td class="paramname">command_list</td><td>List of programming tasks. It has to end with a NULL entry. </td></tr>
+ <tr><td class="paramname">result_fptr</td><td>Result callback </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd></dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e.html">Programming</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___p_r_o_g___m_o_d_e_ga15045bde4d6a35f1b1e20eb6e3c688ab.html b/ucs2-lib/doc/html/group___g___u_c_s___p_r_o_g___m_o_d_e_ga15045bde4d6a35f1b1e20eb6e3c688ab.html
new file mode 100644
index 0000000..d491a24
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___p_r_o_g___m_o_d_e_ga15045bde4d6a35f1b1e20eb6e3c688ab.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Prg_ReportCb_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___p_r_o_g___m_o_d_e.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga15045bde4d6a35f1b1e20eb6e3c688ab"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* Ucs_Prg_ReportCb_t)(<a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html#gaa998005dc2e710169a39af0c3739ade2">Ucs_Prg_ResCode_t</a> code, <a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#ga25cd4c3a9113e0a25b65136fec561c83">Ucs_Prg_Func_t</a> function, uint8_t ret_len, uint8_t parm[], void *user_ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Function signature of result callback used by Programming service. </p>
+<p>The Programming service reports the result of programming a certain device by this callback function.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">code</td><td>Result values of the Programming service </td></tr>
+ <tr><td class="paramname">function</td><td>Signature of the node to be programmed. </td></tr>
+ <tr><td class="paramname">ret_len</td><td>Length of the error parameter field parm. It is 0 if no error occurred. </td></tr>
+ <tr><td class="paramname">parm</td><td>Pointer to the parameters of a potential error message. </td></tr>
+ <tr><td class="paramname">user_ptr</td><td>User reference provided in <a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t::user_ptr</a> </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e.html">Programming</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g.html b/ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g.html
new file mode 100644
index 0000000..8a4b169
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g.html
@@ -0,0 +1,169 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Routing Management</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___r_o_u_t_i_n_g.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#groups">Topics</a> &#124;
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#typedef-members">Callback Functions</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">Routing Management</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides service functions to handle connection routes.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+Topics</h2></td></tr>
+<tr class="memitem:group___g___u_c_s___i_r_m"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___i_r_m.html">Extended Resources Management</a></td></tr>
+<tr class="memdesc:group___g___u_c_s___i_r_m"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides data type to manage MOST data resources. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s.html">Referred Types</a></td></tr>
+<tr class="memdesc:group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s"><td class="mdescLeft">&#160;</td><td class="mdescRight">Referred types used by Routing service functions. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___rm___init_data__t.html">Ucs_Rm_InitData_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The initialization structure of the Routing Management. <a href="struct_ucs___rm___init_data__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Callback Functions</h2></td></tr>
+<tr class="memitem:ga91d851f4665839e2aac982565b007805"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g_ga91d851f4665839e2aac982565b007805.html#ga91d851f4665839e2aac982565b007805">Ucs_Rm_ReportCb_t</a> )(<a class="el" href="struct_ucs___rm___route__t.html">Ucs_Rm_Route_t</a> *route_ptr, <a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#ga75ffbf28e4afc99a6abdbff0887baf9b">Ucs_Rm_RouteInfos_t</a> route_infos, void *user_ptr)</td></tr>
+<tr class="memdesc:ga91d851f4665839e2aac982565b007805"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function signature used for the results and reports of the Routing Manager. <a href="#ga91d851f4665839e2aac982565b007805"></a><br/></td></tr>
+<tr class="separator:ga91d851f4665839e2aac982565b007805"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaefde5a8fbaeb6e5937e94b9e74ae70cb"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g_gaefde5a8fbaeb6e5937e94b9e74ae70cb.html#gaefde5a8fbaeb6e5937e94b9e74ae70cb">Ucs_Rm_XrmResDebugCb_t</a> )(<a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc">Ucs_Xrm_ResourceType_t</a> resource_type, <a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173">Ucs_Xrm_ResObject_t</a> *resource_ptr, <a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#ga5299ac232aaeba37eb6fceb53e32b2ea">Ucs_Xrm_ResourceInfos_t</a> resource_infos, <a class="el" href="struct_ucs___rm___end_point__t.html">Ucs_Rm_EndPoint_t</a> *endpoint_inst_ptr, void *user_ptr)</td></tr>
+<tr class="memdesc:gaefde5a8fbaeb6e5937e94b9e74ae70cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function signature used for monitoring the XRM resources. <a href="#gaefde5a8fbaeb6e5937e94b9e74ae70cb"></a><br/></td></tr>
+<tr class="separator:gaefde5a8fbaeb6e5937e94b9e74ae70cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gaaa23aca8279da197192210fe11889452"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g_gaaa23aca8279da197192210fe11889452.html#gaaa23aca8279da197192210fe11889452">Ucs_Rm_Start</a> (<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *self, <a class="el" href="struct_ucs___rm___route__t.html">Ucs_Rm_Route_t</a> *routes_list, uint16_t list_size)</td></tr>
+<tr class="memdesc:gaaa23aca8279da197192210fe11889452"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the routing process with the given routes list information and starts the process to handle the route(s). <a href="#gaaa23aca8279da197192210fe11889452"></a><br/></td></tr>
+<tr class="separator:gaaa23aca8279da197192210fe11889452"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabb9185254132bb29ee0af137c36f50b8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g_gabb9185254132bb29ee0af137c36f50b8.html#gabb9185254132bb29ee0af137c36f50b8">Ucs_Rm_SetRouteActive</a> (<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *self, <a class="el" href="struct_ucs___rm___route__t.html">Ucs_Rm_Route_t</a> *route_ptr, bool active)</td></tr>
+<tr class="memdesc:gabb9185254132bb29ee0af137c36f50b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the given route to <code>active</code> respectively <code>inactive</code> and triggers the routing process to handle the route. <a href="#gabb9185254132bb29ee0af137c36f50b8"></a><br/></td></tr>
+<tr class="separator:gabb9185254132bb29ee0af137c36f50b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga57ca34a488f06d57f2219be23fa0259f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g_ga57ca34a488f06d57f2219be23fa0259f.html#ga57ca34a488f06d57f2219be23fa0259f">Ucs_Rm_SetNodeAvailable</a> (<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *self, <a class="el" href="struct_ucs___rm___node__t.html">Ucs_Rm_Node_t</a> *node_ptr, bool available)</td></tr>
+<tr class="memdesc:ga57ca34a488f06d57f2219be23fa0259f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the availability attribute (<code>available</code> or <code>not</code> <code>available</code>) of the given node and triggers the routing process to handle attached route(s). <a href="#ga57ca34a488f06d57f2219be23fa0259f"></a><br/></td></tr>
+<tr class="separator:ga57ca34a488f06d57f2219be23fa0259f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga32d004eb96f434f379614b29fe2a486a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g_ga32d004eb96f434f379614b29fe2a486a.html#ga32d004eb96f434f379614b29fe2a486a">Ucs_Rm_GetNodeAvailable</a> (<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *self, <a class="el" href="struct_ucs___rm___node__t.html">Ucs_Rm_Node_t</a> *node_ptr)</td></tr>
+<tr class="memdesc:ga32d004eb96f434f379614b29fe2a486a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves the <code>"available"</code> flag information of the given node. <a href="#ga32d004eb96f434f379614b29fe2a486a"></a><br/></td></tr>
+<tr class="separator:ga32d004eb96f434f379614b29fe2a486a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf34398118f6a683a7e295f2fb89c5940"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g_gaf34398118f6a683a7e295f2fb89c5940.html#gaf34398118f6a683a7e295f2fb89c5940">Ucs_Rm_GetAttachedRoutes</a> (<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *self, <a class="el" href="struct_ucs___rm___end_point__t.html">Ucs_Rm_EndPoint_t</a> *ep_inst, <a class="el" href="struct_ucs___rm___route__t.html">Ucs_Rm_Route_t</a> *ls_found_routes[], uint16_t ls_size)</td></tr>
+<tr class="memdesc:gaf34398118f6a683a7e295f2fb89c5940"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves the reference(s) of the route(s) currently attached to the given endpoint and stores It into the (external) table provided by user application. <a href="#gaf34398118f6a683a7e295f2fb89c5940"></a><br/></td></tr>
+<tr class="separator:gaf34398118f6a683a7e295f2fb89c5940"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga87a46a3aa0657e13f5884e5a04d16e17"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g_ga87a46a3aa0657e13f5884e5a04d16e17.html#ga87a46a3aa0657e13f5884e5a04d16e17">Ucs_Rm_GetConnectionLabel</a> (<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *self, <a class="el" href="struct_ucs___rm___route__t.html">Ucs_Rm_Route_t</a> *route_ptr)</td></tr>
+<tr class="memdesc:ga87a46a3aa0657e13f5884e5a04d16e17"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves the <code>ConnectionLabel</code> of the given route. <a href="#ga87a46a3aa0657e13f5884e5a04d16e17"></a><br/></td></tr>
+<tr class="separator:ga87a46a3aa0657e13f5884e5a04d16e17"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Provides service functions to handle connection routes. </p>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g.js b/ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g.js
new file mode 100644
index 0000000..88da222
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g.js
@@ -0,0 +1,18 @@
+var group___g___u_c_s___r_o_u_t_i_n_g =
+[
+ [ "Extended Resources Management", "group___g___u_c_s___i_r_m.html", "group___g___u_c_s___i_r_m" ],
+ [ "Referred Types", "group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s.html", "group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s" ],
+ [ "Ucs_Rm_InitData_t", "struct_ucs___rm___init_data__t.html", [
+ [ "debug_resource_status_fptr", "struct_ucs___rm___init_data__t_a68590d8712353f94f2e9ccec1e21baa5.html#a68590d8712353f94f2e9ccec1e21baa5", null ],
+ [ "report_fptr", "struct_ucs___rm___init_data__t_a2420c468d89e6f991f68189ba2f61d15.html#a2420c468d89e6f991f68189ba2f61d15", null ],
+ [ "xrm", "struct_ucs___rm___init_data__t_ab3de88c423837727c463947f57895e49.html#ab3de88c423837727c463947f57895e49", null ]
+ ] ],
+ [ "Ucs_Rm_ReportCb_t", "group___g___u_c_s___r_o_u_t_i_n_g_ga91d851f4665839e2aac982565b007805.html#ga91d851f4665839e2aac982565b007805", null ],
+ [ "Ucs_Rm_XrmResDebugCb_t", "group___g___u_c_s___r_o_u_t_i_n_g_gaefde5a8fbaeb6e5937e94b9e74ae70cb.html#gaefde5a8fbaeb6e5937e94b9e74ae70cb", null ],
+ [ "Ucs_Rm_GetAttachedRoutes", "group___g___u_c_s___r_o_u_t_i_n_g_gaf34398118f6a683a7e295f2fb89c5940.html#gaf34398118f6a683a7e295f2fb89c5940", null ],
+ [ "Ucs_Rm_GetConnectionLabel", "group___g___u_c_s___r_o_u_t_i_n_g_ga87a46a3aa0657e13f5884e5a04d16e17.html#ga87a46a3aa0657e13f5884e5a04d16e17", null ],
+ [ "Ucs_Rm_GetNodeAvailable", "group___g___u_c_s___r_o_u_t_i_n_g_ga32d004eb96f434f379614b29fe2a486a.html#ga32d004eb96f434f379614b29fe2a486a", null ],
+ [ "Ucs_Rm_SetNodeAvailable", "group___g___u_c_s___r_o_u_t_i_n_g_ga57ca34a488f06d57f2219be23fa0259f.html#ga57ca34a488f06d57f2219be23fa0259f", null ],
+ [ "Ucs_Rm_SetRouteActive", "group___g___u_c_s___r_o_u_t_i_n_g_gabb9185254132bb29ee0af137c36f50b8.html#gabb9185254132bb29ee0af137c36f50b8", null ],
+ [ "Ucs_Rm_Start", "group___g___u_c_s___r_o_u_t_i_n_g_gaaa23aca8279da197192210fe11889452.html#gaaa23aca8279da197192210fe11889452", null ]
+]; \ No newline at end of file
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s.html b/ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s.html
new file mode 100644
index 0000000..ca10e3c
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s.html
@@ -0,0 +1,157 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Referred Types</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#enum-members">Enumerations</a> </div>
+ <div class="headertitle">
+<div class="title">Referred Types</div> </div>
+<div class="ingroups"><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g.html">Routing Management</a></div></div><!--header-->
+<div class="contents">
+
+<p>Referred types used by Routing service functions.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___rm___node__t.html">Ucs_Rm_Node_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configuration structure of a Node. <a href="struct_ucs___rm___node__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___rm___end_point__t.html">Ucs_Rm_EndPoint_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configuration structure of a Connection EndPoint. <a href="struct_ucs___rm___end_point__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___rm___route__t.html">Ucs_Rm_Route_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configuration structure of a Route. <a href="struct_ucs___rm___route__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:ga127a72f023d3c0289ab74b001f6edc25"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga127a72f023d3c0289ab74b001f6edc25.html#ga127a72f023d3c0289ab74b001f6edc25">Ucs_Rm_EndPointType_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga127a72f023d3c0289ab74b001f6edc25.html#gga127a72f023d3c0289ab74b001f6edc25ac1244d5bc6a569137f6f9132b8b0a3da">UCS_RM_EP_SOURCE</a> = 0x00U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga127a72f023d3c0289ab74b001f6edc25.html#gga127a72f023d3c0289ab74b001f6edc25a63c4dfa3683ce8122d760c4e2d580138">UCS_RM_EP_SINK</a> = 0x01U
+<br/>
+ }</td></tr>
+<tr class="memdesc:ga127a72f023d3c0289ab74b001f6edc25"><td class="mdescLeft">&#160;</td><td class="mdescRight">This enumerator specifies the type of an EndPoint object. <a href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga127a72f023d3c0289ab74b001f6edc25.html#ga127a72f023d3c0289ab74b001f6edc25">More...</a><br/></td></tr>
+<tr class="separator:ga127a72f023d3c0289ab74b001f6edc25"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga75ffbf28e4afc99a6abdbff0887baf9b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#ga75ffbf28e4afc99a6abdbff0887baf9b">Ucs_Rm_RouteInfos_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#gga75ffbf28e4afc99a6abdbff0887baf9ba5778af29569eb74e7546749e93ed9c1e">UCS_RM_ROUTE_INFOS_BUILT</a> = 0x00U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#gga75ffbf28e4afc99a6abdbff0887baf9ba5458da57325825b8922710a90a9ea4d5">UCS_RM_ROUTE_INFOS_DESTROYED</a> = 0x01U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#gga75ffbf28e4afc99a6abdbff0887baf9ba0a444b476e91de5d0954a007a78a387b">UCS_RM_ROUTE_INFOS_SUSPENDED</a> = 0x02U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#gga75ffbf28e4afc99a6abdbff0887baf9bace1ac2f05b198d3d223baa33ca71493a">UCS_RM_ROUTE_INFOS_PROCESS_STOP</a> = 0x03U
+<br/>
+ }</td></tr>
+<tr class="memdesc:ga75ffbf28e4afc99a6abdbff0887baf9b"><td class="mdescLeft">&#160;</td><td class="mdescRight">This enumerator specifies the possible route information returned via User callback function of <a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g_gaaa23aca8279da197192210fe11889452.html#gaaa23aca8279da197192210fe11889452">Ucs_Rm_Start()</a>. <a href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#ga75ffbf28e4afc99a6abdbff0887baf9b">More...</a><br/></td></tr>
+<tr class="separator:ga75ffbf28e4afc99a6abdbff0887baf9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Referred types used by Routing service functions. </p>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s.js b/ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s.js
new file mode 100644
index 0000000..fc3e2ee
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s.js
@@ -0,0 +1,32 @@
+var group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s =
+[
+ [ "Ucs_Rm_Node_t", "struct_ucs___rm___node__t.html", [
+ [ "internal_infos", "struct_ucs___rm___node__t_a83b42042de7afe0e4e421de3e82ba5d6.html#a83b42042de7afe0e4e421de3e82ba5d6", null ],
+ [ "script_list_ptr", "struct_ucs___rm___node__t_a321da5e56aadf970749f66cfd284bb04.html#a321da5e56aadf970749f66cfd284bb04", null ],
+ [ "script_list_size", "struct_ucs___rm___node__t_a12545084e0e46ea49b48c93385f75650.html#a12545084e0e46ea49b48c93385f75650", null ],
+ [ "signature_ptr", "struct_ucs___rm___node__t_ae619e45bed87dee01aaf280635cf3911.html#ae619e45bed87dee01aaf280635cf3911", null ]
+ ] ],
+ [ "Ucs_Rm_EndPoint_t", "struct_ucs___rm___end_point__t.html", [
+ [ "endpoint_type", "struct_ucs___rm___end_point__t_a7e46feb849d169800b21d689de273901.html#a7e46feb849d169800b21d689de273901", null ],
+ [ "internal_infos", "struct_ucs___rm___end_point__t_afb41e308e548fde7dd754172cfb44ccf.html#afb41e308e548fde7dd754172cfb44ccf", null ],
+ [ "jobs_list_ptr", "struct_ucs___rm___end_point__t_a1022525e5f766bcdbcd0046c3313d3ac.html#a1022525e5f766bcdbcd0046c3313d3ac", null ],
+ [ "node_obj_ptr", "struct_ucs___rm___end_point__t_aeba772076fc522f4d27dfb647457bb6d.html#aeba772076fc522f4d27dfb647457bb6d", null ]
+ ] ],
+ [ "Ucs_Rm_Route_t", "struct_ucs___rm___route__t.html", [
+ [ "active", "struct_ucs___rm___route__t_a05c940dbc220f5a723afd70071aebff8.html#a05c940dbc220f5a723afd70071aebff8", null ],
+ [ "internal_infos", "struct_ucs___rm___route__t_abd3ce7c042005f4f8713f6c5359c1633.html#abd3ce7c042005f4f8713f6c5359c1633", null ],
+ [ "route_id", "struct_ucs___rm___route__t_af45aa1590137605530f1757465709d39.html#af45aa1590137605530f1757465709d39", null ],
+ [ "sink_endpoint_ptr", "struct_ucs___rm___route__t_a5553fda80c8780a9e42916d87a0e82dd.html#a5553fda80c8780a9e42916d87a0e82dd", null ],
+ [ "source_endpoint_ptr", "struct_ucs___rm___route__t_a8e5e3175ae36f8c87c22e2382d0bba4a.html#a8e5e3175ae36f8c87c22e2382d0bba4a", null ]
+ ] ],
+ [ "Ucs_Rm_EndPointType_t", "group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga127a72f023d3c0289ab74b001f6edc25.html#ga127a72f023d3c0289ab74b001f6edc25", [
+ [ "UCS_RM_EP_SOURCE", "group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga127a72f023d3c0289ab74b001f6edc25.html#gga127a72f023d3c0289ab74b001f6edc25ac1244d5bc6a569137f6f9132b8b0a3da", null ],
+ [ "UCS_RM_EP_SINK", "group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga127a72f023d3c0289ab74b001f6edc25.html#gga127a72f023d3c0289ab74b001f6edc25a63c4dfa3683ce8122d760c4e2d580138", null ]
+ ] ],
+ [ "Ucs_Rm_RouteInfos_t", "group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#ga75ffbf28e4afc99a6abdbff0887baf9b", [
+ [ "UCS_RM_ROUTE_INFOS_BUILT", "group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#gga75ffbf28e4afc99a6abdbff0887baf9ba5778af29569eb74e7546749e93ed9c1e", null ],
+ [ "UCS_RM_ROUTE_INFOS_DESTROYED", "group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#gga75ffbf28e4afc99a6abdbff0887baf9ba5458da57325825b8922710a90a9ea4d5", null ],
+ [ "UCS_RM_ROUTE_INFOS_SUSPENDED", "group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#gga75ffbf28e4afc99a6abdbff0887baf9ba0a444b476e91de5d0954a007a78a387b", null ],
+ [ "UCS_RM_ROUTE_INFOS_PROCESS_STOP", "group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#gga75ffbf28e4afc99a6abdbff0887baf9bace1ac2f05b198d3d223baa33ca71493a", null ]
+ ] ]
+]; \ No newline at end of file
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga127a72f023d3c0289ab74b001f6edc25.html b/ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga127a72f023d3c0289ab74b001f6edc25.html
new file mode 100644
index 0000000..0dcba25
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga127a72f023d3c0289ab74b001f6edc25.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Rm_EndPointType_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga127a72f023d3c0289ab74b001f6edc25"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga127a72f023d3c0289ab74b001f6edc25.html#ga127a72f023d3c0289ab74b001f6edc25">Ucs_Rm_EndPointType_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>This enumerator specifies the type of an EndPoint object. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga127a72f023d3c0289ab74b001f6edc25ac1244d5bc6a569137f6f9132b8b0a3da"></a>UCS_RM_EP_SOURCE</em>&nbsp;</td><td>
+<p>Specifies the source endpoint. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga127a72f023d3c0289ab74b001f6edc25a63c4dfa3683ce8122d760c4e2d580138"></a>UCS_RM_EP_SINK</em>&nbsp;</td><td>
+<p>Specifies the sink endpoint. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s.html">Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html b/ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html
new file mode 100644
index 0000000..ea56d2f
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html
@@ -0,0 +1,140 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Rm_RouteInfos_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga75ffbf28e4afc99a6abdbff0887baf9b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#ga75ffbf28e4afc99a6abdbff0887baf9b">Ucs_Rm_RouteInfos_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>This enumerator specifies the possible route information returned via User callback function of <a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g_gaaa23aca8279da197192210fe11889452.html#gaaa23aca8279da197192210fe11889452">Ucs_Rm_Start()</a>. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga75ffbf28e4afc99a6abdbff0887baf9ba5778af29569eb74e7546749e93ed9c1e"></a>UCS_RM_ROUTE_INFOS_BUILT</em>&nbsp;</td><td>
+<p>Specifies that the route has been built. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga75ffbf28e4afc99a6abdbff0887baf9ba5458da57325825b8922710a90a9ea4d5"></a>UCS_RM_ROUTE_INFOS_DESTROYED</em>&nbsp;</td><td>
+<p>Specifies that the route has been destroyed. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga75ffbf28e4afc99a6abdbff0887baf9ba0a444b476e91de5d0954a007a78a387b"></a>UCS_RM_ROUTE_INFOS_SUSPENDED</em>&nbsp;</td><td>
+<p>Specifies that the route has been suspended. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga75ffbf28e4afc99a6abdbff0887baf9bace1ac2f05b198d3d223baa33ca71493a"></a>UCS_RM_ROUTE_INFOS_PROCESS_STOP</em>&nbsp;</td><td>
+<p>Specifies that the route cannot be processed anymore because of UNICENS Termination. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s.html">Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g_ga32d004eb96f434f379614b29fe2a486a.html b/ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g_ga32d004eb96f434f379614b29fe2a486a.html
new file mode 100644
index 0000000..1d5562e
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g_ga32d004eb96f434f379614b29fe2a486a.html
@@ -0,0 +1,159 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Rm_GetNodeAvailable</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___r_o_u_t_i_n_g.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga32d004eb96f434f379614b29fe2a486a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool Ucs_Rm_GetNodeAvailable </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *&#160;</td>
+ <td class="paramname"><em>self</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="struct_ucs___rm___node__t.html">Ucs_Rm_Node_t</a> *&#160;</td>
+ <td class="paramname"><em>node_ptr</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Retrieves the <code>"available"</code> flag information of the given node. </p>
+<p>This function can be used to check whether the given node has been set to <code>"available"</code> or <code>"not available"</code>.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>The UNICENS instance pointer. </td></tr>
+ <tr><td class="paramname">node_ptr</td><td>Reference to the node to be looked for. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The <code>"availability"</code> flag of the given node.</dd></dl>
+<p><br/>
+<br/>
+<b>Example</b> </p>
+<div class="fragment"><div class="line"><span class="comment">// Main function</span></div>
+<div class="line"><span class="keywordtype">void</span> main(uint8_t argc, <span class="keywordtype">char</span> *argv[])</div>
+<div class="line">{</div>
+<div class="line"> <span class="comment">// ...</span></div>
+<div class="line"> <span class="keywordflow">if</span> (<a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g_ga32d004eb96f434f379614b29fe2a486a.html#ga32d004eb96f434f379614b29fe2a486a" title="Retrieves the &quot;available&quot; flag information of the given node.">Ucs_Rm_GetNodeAvailable</a>(ucs_inst_ptr, &amp;slim_mic_node))</div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">// Do whatever is necessary to be done</span></div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g.html">Routing Management</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g_ga57ca34a488f06d57f2219be23fa0259f.html b/ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g_ga57ca34a488f06d57f2219be23fa0259f.html
new file mode 100644
index 0000000..01bbe55
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g_ga57ca34a488f06d57f2219be23fa0259f.html
@@ -0,0 +1,201 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Rm_SetNodeAvailable</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___r_o_u_t_i_n_g.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga57ca34a488f06d57f2219be23fa0259f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a> Ucs_Rm_SetNodeAvailable </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *&#160;</td>
+ <td class="paramname"><em>self</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="struct_ucs___rm___node__t.html">Ucs_Rm_Node_t</a> *&#160;</td>
+ <td class="paramname"><em>node_ptr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">bool&#160;</td>
+ <td class="paramname"><em>available</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Sets the availability attribute (<code>available</code> or <code>not</code> <code>available</code>) of the given node and triggers the routing process to handle attached route(s). </p>
+<p>In case of <code>available</code> the function starts the routing process that checks whether there are endpoints to build on this node. In case of <code>unavailable</code> the function informs sub modules like XRM to check whether there are resources to release and simultaneously unlock <code>suspended</code> routes that link to this node. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>The UNICENS instance </td></tr>
+ <tr><td class="paramname">node_ptr</td><td>Reference to the node to be looked for. </td></tr>
+ <tr><td class="paramname">available</td><td>Specifies whether the node is available or not </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible return values are shown in the table below. <table class="doxtable">
+<tr>
+<th>Value </th><th>Description</th></tr>
+<tr>
+<td>UCS_RET_SUCCESS </td><td>No error </td></tr>
+<tr>
+<td>UCS_RET_ERR_ALREADY_SET </td><td>Node is already set to "available" or "not available" </td></tr>
+<tr>
+<td>UCS_RET_ERR_PARAM </td><td>At least one parameter is NULL. </td></tr>
+<tr>
+<td>UCS_RET_ERR_NOT_INITIALIZED </td><td>UNICENS is not initialized </td></tr>
+<tr>
+<td>UCS_RET_ERR_NOT_AVAILABLE </td><td>The function cannot be processed because the network is not available </td></tr>
+</table>
+</dd></dl>
+<dl class="section note"><dt>Note</dt><dd>All nodes present in the routing system will be automatically set to <code>Unavailable</code> after the network has been shutdown respectively after transition from <code>Available</code> to <code>Not</code> <code>available</code>. This in turn means that the user has to set the corresponding nodes to <code>Available</code> after network started up respectively after the network transition from <code>NotAvailable</code> to <code>Available</code>.</dd></dl>
+<p><br/>
+<br/>
+<b>Example</b> </p>
+<div class="fragment"><div class="line"><span class="comment">// Sets the amplifier node to &quot;available&quot; or &quot;not available&quot;</span></div>
+<div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> App_SetAmplNodeAvailability(<span class="keywordtype">bool</span> available)</div>
+<div class="line">{</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd" title="Standard return codes used for synchronous response.">Ucs_Return_t</a> ret_value;</div>
+<div class="line"></div>
+<div class="line"> ret_value = <a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g_ga57ca34a488f06d57f2219be23fa0259f.html#ga57ca34a488f06d57f2219be23fa0259f" title="Sets the availability attribute (available or not available) of the given node and triggers the routi...">Ucs_Rm_SetNodeAvailable</a>(ucs_inst_ptr, &amp;ampl_node, available);</div>
+<div class="line"> <span class="keywordflow">if</span> (ret_value != <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda3fb51656e17ee4802f23706f35e349bc" title="Operation successfully completed.">UCS_RET_SUCCESS</a>)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">// Do whatever is necessary here</span></div>
+<div class="line"> }</div>
+<div class="line">}</div>
+<div class="line"></div>
+<div class="line"><span class="comment">// Main function</span></div>
+<div class="line"><span class="keywordtype">void</span> main(uint8_t argc, <span class="keywordtype">char</span> *argv[])</div>
+<div class="line">{</div>
+<div class="line"> <span class="comment">// ...</span></div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">if</span> (amplifier_programming_completed)</div>
+<div class="line"> {</div>
+<div class="line"> App_SetAmplNodeAvailability(<span class="keyword">true</span>);</div>
+<div class="line"> }</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">// ...</span></div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">if</span> (amplifier_is_unavailable)</div>
+<div class="line"> {</div>
+<div class="line"> App_SetAmplNodeAvailability(<span class="keyword">false</span>); </div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g.html">Routing Management</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g_ga87a46a3aa0657e13f5884e5a04d16e17.html b/ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g_ga87a46a3aa0657e13f5884e5a04d16e17.html
new file mode 100644
index 0000000..3e171ff
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g_ga87a46a3aa0657e13f5884e5a04d16e17.html
@@ -0,0 +1,174 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Rm_GetConnectionLabel</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___r_o_u_t_i_n_g.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga87a46a3aa0657e13f5884e5a04d16e17"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t Ucs_Rm_GetConnectionLabel </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *&#160;</td>
+ <td class="paramname"><em>self</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="struct_ucs___rm___route__t.html">Ucs_Rm_Route_t</a> *&#160;</td>
+ <td class="paramname"><em>route_ptr</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Retrieves the <code>ConnectionLabel</code> of the given route. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>The UNICENS instance pointer. </td></tr>
+ <tr><td class="paramname">route_ptr</td><td>Reference to the route to be looked for. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The <code>ConnectionLabel</code> of the route. The <code>ConnectionLabel</code> value falls within the range [0x000C...0x017F] when route is built. Otherwise, 0 is returned.</dd></dl>
+<p><br/>
+<br/>
+<b>Example</b> </p>
+<div class="fragment"><div class="line"><span class="comment">// Source and Sink Endpoints</span></div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___rm___end_point__t.html" title="Configuration structure of a Connection EndPoint.">Ucs_Rm_EndPoint_t</a> endpoint_src = { <a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga127a72f023d3c0289ab74b001f6edc25.html#gga127a72f023d3c0289ab74b001f6edc25ac1244d5bc6a569137f6f9132b8b0a3da" title="Specifies the source endpoint.">UCS_RM_EP_SOURCE</a>, &amp;xrm_job_out[0], &amp;node_src };</div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___rm___end_point__t.html" title="Configuration structure of a Connection EndPoint.">Ucs_Rm_EndPoint_t</a> endpoint_sink = { <a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga127a72f023d3c0289ab74b001f6edc25.html#gga127a72f023d3c0289ab74b001f6edc25a63c4dfa3683ce8122d760c4e2d580138" title="Specifies the sink endpoint.">UCS_RM_EP_SINK</a>, &amp;xrm_job_in[0], &amp;node_sink };</div>
+<div class="line"></div>
+<div class="line"><span class="comment">// Routes Specification</span></div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___rm___route__t.html" title="Configuration structure of a Route.">Ucs_Rm_Route_t</a> route_66[] = { {&amp;endpoint_src, &amp;endpoint_sink, is_active, 0x066U} };</div>
+<div class="line"></div>
+<div class="line"><span class="comment">// Main function</span></div>
+<div class="line"><span class="keywordtype">void</span> main(uint8_t argc, <span class="keywordtype">char</span> *argv[])</div>
+<div class="line">{</div>
+<div class="line"> uint16_t rt66_cl;</div>
+<div class="line"> <span class="keywordtype">bool</span> rt66_is_built;</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">// Starts routes processing</span></div>
+<div class="line"> (void)<a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g_gaaa23aca8279da197192210fe11889452.html#gaaa23aca8279da197192210fe11889452" title="Initializes the routing process with the given routes list information and starts the process to hand...">Ucs_Rm_Start</a>(ucs_inst_ptr, &amp;route_66[0], 1U);</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">// ... </span></div>
+<div class="line"></div>
+<div class="line"> <span class="comment">// Retrieve &quot;ConnectionLabel&quot; of route_66.</span></div>
+<div class="line"> <span class="keywordflow">if</span> (rt66_is_built)</div>
+<div class="line"> {</div>
+<div class="line"> rt66_cl = <a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g_ga87a46a3aa0657e13f5884e5a04d16e17.html#ga87a46a3aa0657e13f5884e5a04d16e17" title="Retrieves the ConnectionLabel of the given route.">Ucs_Rm_GetConnectionLabel</a>(ucs_inst_ptr, &amp;route_66[0]);</div>
+<div class="line"> <span class="comment">//printf(&quot;CL:route_0x%02X --&gt; {0x%X}\r\n&quot;, (&amp;route_66[0])-&gt;route_id, rt66_cl);</span></div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g.html">Routing Management</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g_ga91d851f4665839e2aac982565b007805.html b/ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g_ga91d851f4665839e2aac982565b007805.html
new file mode 100644
index 0000000..d54f675
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g_ga91d851f4665839e2aac982565b007805.html
@@ -0,0 +1,132 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Rm_ReportCb_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___r_o_u_t_i_n_g.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga91d851f4665839e2aac982565b007805"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* Ucs_Rm_ReportCb_t)(<a class="el" href="struct_ucs___rm___route__t.html">Ucs_Rm_Route_t</a> *route_ptr, <a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#ga75ffbf28e4afc99a6abdbff0887baf9b">Ucs_Rm_RouteInfos_t</a> route_infos, void *user_ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Function signature used for the results and reports of the Routing Manager. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">route_ptr</td><td>Reference to the route to be looked for </td></tr>
+ <tr><td class="paramname">route_infos</td><td>Information about the current route id. </td></tr>
+ <tr><td class="paramname">user_ptr</td><td>User reference provided in <a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t::user_ptr</a> </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g.html">Routing Management</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g_gaaa23aca8279da197192210fe11889452.html b/ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g_gaaa23aca8279da197192210fe11889452.html
new file mode 100644
index 0000000..29bc7c6
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g_gaaa23aca8279da197192210fe11889452.html
@@ -0,0 +1,253 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Rm_Start</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___r_o_u_t_i_n_g.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gaaa23aca8279da197192210fe11889452"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a> Ucs_Rm_Start </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *&#160;</td>
+ <td class="paramname"><em>self</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="struct_ucs___rm___route__t.html">Ucs_Rm_Route_t</a> *&#160;</td>
+ <td class="paramname"><em>routes_list</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>list_size</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Initializes the routing process with the given routes list information and starts the process to handle the route(s). </p>
+<p>When calling this function the routing management will be initialized and the process to handle the given routes list started. The result of each route is reported via the reference to the user callback function <a class="el" href="struct_ucs___rm___init_data__t_a2420c468d89e6f991f68189ba2f61d15.html#a2420c468d89e6f991f68189ba2f61d15">report_fptr</a> in <a class="el" href="struct_ucs___init_data__t.html" title="UNICENS initialization structure used by function Ucs_Init().">Ucs_InitData_t</a> (if It has been set by user).</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>The UNICENS instance pointer. </td></tr>
+ <tr><td class="paramname">routes_list</td><td>List of routes to be handled. </td></tr>
+ <tr><td class="paramname">list_size</td><td>Size of the given routes list. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible return values are shown in the table below. <table class="doxtable">
+<tr>
+<th>Value </th><th>Description</th></tr>
+<tr>
+<td>UCS_RET_SUCCESS </td><td>No error </td></tr>
+<tr>
+<td>UCS_RET_ERR_PARAM </td><td>At least one parameter is NULL </td></tr>
+<tr>
+<td>UCS_RET_ERR_API_LOCKED </td><td>API is currently locked </td></tr>
+<tr>
+<td>UCS_RET_ERR_NOT_INITIALIZED </td><td>UNICENS is not initialized </td></tr>
+</table>
+</dd></dl>
+<dl class="section note"><dt>Note</dt><dd>This function must be called once and can only be called once. Otherwise, the function returns the error code <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cdad4a30091202638c890abbdb682ca4fe5">UCS_RET_ERR_API_LOCKED</a>. </dd>
+<dd>
+The build up of routes can take some times in case the routing process may need to perform retries when uncritical errors occur (e.g.: transmission error, processing error, etc.) or when certain conditions are not met yet (e.g. network not available, node not available, etc.). By the way, the maximum number of retries is <code>0xFF</code> and the minimum time between the retries is <code>50ms</code>.</dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>To suit your specific system needs and setup, change the default values of the following Resources Management macros:<ul>
+<li><a class="el" href="group___g___u_c_s___x_r_m___c_f_g_ga70720ac0fdcbbbc7f4742654c8f8abc1.html#ga70720ac0fdcbbbc7f4742654c8f8abc1">UCS_NUM_REMOTE_DEVICES</a> in <code>ucs_cfg.h</code> </li>
+<li><a class="el" href="group___g___u_c_s___x_r_m___c_f_g_gaddc205bcdb37b435fddb292c416f605b.html#gaddc205bcdb37b435fddb292c416f605b">UCS_XRM_NUM_JOBS</a> in <code>ucs_xrm_cfg.h</code> </li>
+<li><a class="el" href="group___g___u_c_s___x_r_m___c_f_g_ga9bbd7e20bff0c7ea54699df5969e933a.html#ga9bbd7e20bff0c7ea54699df5969e933a">UCS_XRM_NUM_RESOURCES</a> in <code>ucs_xrm_cfg.h</code> </li>
+</ul>
+</dd>
+<dd>
+Use the <code>UCS_ADDR_LOCAL_DEV</code> macro to address the local device when specifying connection routes to or from this device. <br/>
+ The following address ranges are supported:<ul>
+<li>[0x10 ... 0x2FF]</li>
+<li>[0x500 ... 0xFEF]</li>
+<li>UCS_ADDR_LOCAL_DEV</li>
+</ul>
+</dd></dl>
+<p><br/>
+<br/>
+<b>Example</b> </p>
+<div class="fragment"><div class="line"><span class="comment">// Forward declaration of result callback function</span></div>
+<div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> App_OnRoutingResult(uint16_t route_id, <a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#ga75ffbf28e4afc99a6abdbff0887baf9b" title="This enumerator specifies the possible route information returned via User callback function of Ucs_R...">Ucs_Rm_RouteInfos_t</a> route_infos, <span class="keywordtype">void</span> *user_ptr);</div>
+<div class="line"></div>
+<div class="line"><span class="comment">// Set route Activity Flag</span></div>
+<div class="line"><span class="keyword">static</span> uint8_t is_active = 0x01U; </div>
+<div class="line"></div>
+<div class="line"><span class="comment">// XRM jobs lists</span></div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173" title="INIC Resource Object used for Extended Resource Manager jobs.">Ucs_Xrm_ResObject_t</a> * xrm_job_out[] = { &amp;Xrm_Most_Sckt_Out, &amp;Xrm_Usb_Port_1, &amp;Xrm_Usb_Sckt_In, &amp;Xrm_Sync_Conn_1, NULL };</div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173" title="INIC Resource Object used for Extended Resource Manager jobs.">Ucs_Xrm_ResObject_t</a> * xrm_job_in [] = { &amp;Xrm_Most_Sckt_In, &amp;Xrm_Usb_Port_2, &amp;Xrm_Usb_Sckt_Out, &amp;Xrm_Sync_Conn_2, NULL };</div>
+<div class="line"></div>
+<div class="line"><span class="comment">// Signatures specification</span></div>
+<div class="line"><a class="code" href="struct_ucs___signature__t.html" title="This structure holds the signature of the Hello, Welcome and Signature messages. It supports the sign...">Ucs_Signature_t</a> src_sig = { 0x555U };</div>
+<div class="line"><a class="code" href="struct_ucs___signature__t.html" title="This structure holds the signature of the Hello, Welcome and Signature messages. It supports the sign...">Ucs_Signature_t</a> sink_sig = { 0x556U };</div>
+<div class="line"></div>
+<div class="line"><span class="comment">// Nodes objects</span></div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___rm___node__t.html" title="Configuration structure of a Node.">Ucs_Rm_Node_t</a> node_src = { &amp;src_sig };</div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___rm___node__t.html" title="Configuration structure of a Node.">Ucs_Rm_Node_t</a> node_sink = { &amp;sink_sig };</div>
+<div class="line"></div>
+<div class="line"><span class="comment">// Source and Sink Endpoints</span></div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___rm___end_point__t.html" title="Configuration structure of a Connection EndPoint.">Ucs_Rm_EndPoint_t</a> endpoint_src = { <a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga127a72f023d3c0289ab74b001f6edc25.html#gga127a72f023d3c0289ab74b001f6edc25ac1244d5bc6a569137f6f9132b8b0a3da" title="Specifies the source endpoint.">UCS_RM_EP_SOURCE</a>, &amp;xrm_job_out[0], &amp;node_src };</div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___rm___end_point__t.html" title="Configuration structure of a Connection EndPoint.">Ucs_Rm_EndPoint_t</a> endpoint_sink = { <a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga127a72f023d3c0289ab74b001f6edc25.html#gga127a72f023d3c0289ab74b001f6edc25a63c4dfa3683ce8122d760c4e2d580138" title="Specifies the sink endpoint.">UCS_RM_EP_SINK</a>, &amp;xrm_job_in[0], &amp;node_sink };</div>
+<div class="line"></div>
+<div class="line"><span class="comment">// Routes Specification</span></div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___rm___route__t.html" title="Configuration structure of a Route.">Ucs_Rm_Route_t</a> route_66[] = { {&amp;endpoint_src, &amp;endpoint_sink, is_active, 66U} };</div>
+<div class="line"></div>
+<div class="line"><span class="comment">// Main function</span></div>
+<div class="line"><span class="keywordtype">void</span> main ()</div>
+<div class="line">{</div>
+<div class="line"></div>
+<div class="line"> <a class="code" href="struct_ucs___init_data__t.html" title="UNICENS initialization structure used by function Ucs_Init().">Ucs_InitData_t</a> ucs_init_data;</div>
+<div class="line"> (void)<a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga64b50780725a0dc8693b5b73f8345ad6.html#ga64b50780725a0dc8693b5b73f8345ad6" title="Assigns default values to a provided UNICENS init structure.">Ucs_SetDefaultConfig</a>(&amp;ucs_init_data);</div>
+<div class="line"> ucs_init_data.<a class="code" href="struct_ucs___init_data__t_a8619aaf795810b7508046fbfef6d6907.html#a8619aaf795810b7508046fbfef6d6907" title="The initialization data of the Routing Management.">rm</a>.<a class="code" href="struct_ucs___rm___init_data__t_a2420c468d89e6f991f68189ba2f61d15.html#a2420c468d89e6f991f68189ba2f61d15" title="Optional report callback function pointer for all routes.">report_fptr</a> = &amp;App_OnRoutingResult;</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">// Starts routes processing</span></div>
+<div class="line"> <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd" title="Standard return codes used for synchronous response.">Ucs_Return_t</a> ret_value = <a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g_gaaa23aca8279da197192210fe11889452.html#gaaa23aca8279da197192210fe11889452" title="Initializes the routing process with the given routes list information and starts the process to hand...">Ucs_Rm_Start</a>(ucs_inst_ptr, &amp;route_66[0], 1U);</div>
+<div class="line"> <span class="keywordflow">if</span> (ret_value != <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda3fb51656e17ee4802f23706f35e349bc" title="Operation successfully completed.">UCS_RET_SUCCESS</a>)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">// Do whatever is necessary here</span></div>
+<div class="line"> }</div>
+<div class="line"> </div>
+<div class="line"> <span class="comment">// Set corresponding Nodes to &quot;available&quot; if they are ready</span></div>
+<div class="line"> <span class="comment">// (void)Ucs_Rm_SetNodeAvailable(ucs_inst_ptr, &amp;node_src, true);</span></div>
+<div class="line"> <span class="comment">// (void)Ucs_Rm_SetNodeAvailable(ucs_inst_ptr, &amp;node_sink, true);</span></div>
+<div class="line"></div>
+<div class="line">}</div>
+<div class="line"></div>
+<div class="line"><span class="comment">// The report callback function for all routes</span></div>
+<div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> App_OnRoutingResult(<a class="code" href="struct_ucs___rm___route__t.html" title="Configuration structure of a Route.">Ucs_Rm_Route_t</a>* route_ptr, <a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#ga75ffbf28e4afc99a6abdbff0887baf9b" title="This enumerator specifies the possible route information returned via User callback function of Ucs_R...">Ucs_Rm_RouteInfos_t</a> route_infos, <span class="keywordtype">void</span> *user_ptr)</div>
+<div class="line">{</div>
+<div class="line"> <span class="comment">// Do whatever is necessary here</span></div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">switch</span> (route_infos)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#gga75ffbf28e4afc99a6abdbff0887baf9ba5778af29569eb74e7546749e93ed9c1e" title="Specifies that the route has been built.">UCS_RM_ROUTE_INFOS_BUILT</a>:</div>
+<div class="line"> <span class="comment">// Route has been built</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#gga75ffbf28e4afc99a6abdbff0887baf9ba5458da57325825b8922710a90a9ea4d5" title="Specifies that the route has been destroyed.">UCS_RM_ROUTE_INFOS_DESTROYED</a>:</div>
+<div class="line"> <span class="comment">// Route has been destroyed</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#gga75ffbf28e4afc99a6abdbff0887baf9bace1ac2f05b198d3d223baa33ca71493a" title="Specifies that the route cannot be processed anymore because of UNICENS Termination.">UCS_RM_ROUTE_INFOS_PROCESS_STOP</a>:</div>
+<div class="line"> <span class="comment">// Route cannot be processed anymore due to UNICENS Termination</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> <span class="keywordflow">default</span>:</div>
+<div class="line"> <span class="comment">// Route has been suspended.</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g.html">Routing Management</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g_gabb9185254132bb29ee0af137c36f50b8.html b/ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g_gabb9185254132bb29ee0af137c36f50b8.html
new file mode 100644
index 0000000..45adf0d
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g_gabb9185254132bb29ee0af137c36f50b8.html
@@ -0,0 +1,220 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Rm_SetRouteActive</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___r_o_u_t_i_n_g.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gabb9185254132bb29ee0af137c36f50b8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a> Ucs_Rm_SetRouteActive </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *&#160;</td>
+ <td class="paramname"><em>self</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="struct_ucs___rm___route__t.html">Ucs_Rm_Route_t</a> *&#160;</td>
+ <td class="paramname"><em>route_ptr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">bool&#160;</td>
+ <td class="paramname"><em>active</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Sets the given route to <code>active</code> respectively <code>inactive</code> and triggers the routing process to handle the route. </p>
+<p>When setting a route to <code>active</code> the routing process will start building the route and all related resources and return the result to the user callback function (Refer to Routing Management Init Structure). When setting a route to <code>inactive</code> the routing process will start destroying the route and all related resources and return the result to the user callback function. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>The UNICENS instance. </td></tr>
+ <tr><td class="paramname">route_ptr</td><td>Reference to the routes to be destroyed. </td></tr>
+ <tr><td class="paramname">active</td><td>Specifies whether the route should be activated or not. <code>true</code> is active and <code>false</code> inactive. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible return values are shown in the table below. <table class="doxtable">
+<tr>
+<th>Value </th><th>Description</th></tr>
+<tr>
+<td>UCS_RET_SUCCESS </td><td>No error </td></tr>
+<tr>
+<td>UCS_RET_ERR_PARAM </td><td>At least one parameter is NULL. </td></tr>
+<tr>
+<td>UCS_RET_ERR_ALREADY_SET </td><td>The given route is already active or inactive </td></tr>
+<tr>
+<td>UCS_RET_ERR_NOT_INITIALIZED </td><td>UNICENS is not initialized </td></tr>
+</table>
+</dd></dl>
+<dl class="section note"><dt>Note</dt><dd>The build up or the destruction of a route can take some times in case the routing process may need to perform retries when uncritical errors occur (e.g.: transmission error, processing error, etc.) or when certain conditions are not met yet (e.g. network not available, node not available, etc.). By the way, the maximum number of retries is 0xFF and the minimum time between the retries is 50ms. This results in a minimum time of ca. 13s to get a route built or suspended (if the maximum retries are reached).</dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>To suit your specific system needs and setup, change the default values of the following Resources Management macros:<ul>
+<li><a class="el" href="group___g___u_c_s___x_r_m___c_f_g_ga70720ac0fdcbbbc7f4742654c8f8abc1.html#ga70720ac0fdcbbbc7f4742654c8f8abc1">UCS_NUM_REMOTE_DEVICES</a> in <code>ucs_cfg.h</code> </li>
+<li><a class="el" href="group___g___u_c_s___x_r_m___c_f_g_gaddc205bcdb37b435fddb292c416f605b.html#gaddc205bcdb37b435fddb292c416f605b">UCS_XRM_NUM_JOBS</a> in <code>ucs_xrm_cfg.h</code> </li>
+<li><a class="el" href="group___g___u_c_s___x_r_m___c_f_g_ga9bbd7e20bff0c7ea54699df5969e933a.html#ga9bbd7e20bff0c7ea54699df5969e933a">UCS_XRM_NUM_RESOURCES</a> in <code>ucs_xrm_cfg.h</code> </li>
+</ul>
+</dd>
+<dd>
+Use the <code>UCS_ADDR_LOCAL_DEV</code> macro to address the local device when specifying connection routes to or from this device. <br/>
+ The following address ranges are supported:<ul>
+<li>[0x10 ... 0x2FF]</li>
+<li>[0x500 ... 0xFEF]</li>
+<li>UCS_ADDR_LOCAL_DEV</li>
+</ul>
+</dd></dl>
+<p><br/>
+<br/>
+<b>Example</b> </p>
+<div class="fragment"><div class="line"><span class="comment">// The report callback function for all routes</span></div>
+<div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> App_OnRoutingResult(uint16_t route_id, <a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#ga75ffbf28e4afc99a6abdbff0887baf9b" title="This enumerator specifies the possible route information returned via User callback function of Ucs_R...">Ucs_Rm_RouteInfos_t</a> route_infos, <span class="keywordtype">void</span> *user_ptr)</div>
+<div class="line">{</div>
+<div class="line"> <span class="comment">// Print whatever needs to be printed here</span></div>
+<div class="line">}</div>
+<div class="line"></div>
+<div class="line"><span class="comment">// Activates or deactivates the route with Index 2 of the routes list.</span></div>
+<div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> App_SetRouteId2_OnOff(<span class="keywordtype">bool</span> active)</div>
+<div class="line">{</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd" title="Standard return codes used for synchronous response.">Ucs_Return_t</a> ret_value;</div>
+<div class="line"></div>
+<div class="line"> ret_value = <a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g_gabb9185254132bb29ee0af137c36f50b8.html#gabb9185254132bb29ee0af137c36f50b8" title="Sets the given route to active respectively inactive and triggers the routing process to handle the r...">Ucs_Rm_SetRouteActive</a>(ucs_inst_ptr, &amp;routes_list[2], active);</div>
+<div class="line"> <span class="keywordflow">if</span> (ret_value != <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda3fb51656e17ee4802f23706f35e349bc" title="Operation successfully completed.">UCS_RET_SUCCESS</a>)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">// Do whatever is necessary</span></div>
+<div class="line"> }</div>
+<div class="line">}</div>
+<div class="line"></div>
+<div class="line"><span class="comment">// Main function</span></div>
+<div class="line"><span class="keywordtype">void</span> main(uint8_t argc, <span class="keywordtype">char</span> *argv[])</div>
+<div class="line">{</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">// Starts routes processing</span></div>
+<div class="line"> <a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g_gaaa23aca8279da197192210fe11889452.html#gaaa23aca8279da197192210fe11889452" title="Initializes the routing process with the given routes list information and starts the process to hand...">Ucs_Rm_Start</a>(ucs_inst_ptr, &amp;routes_list[0], routes_list_size);</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">// ...</span></div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">if</span> (mic2_btn_pressed)</div>
+<div class="line"> {</div>
+<div class="line"> App_SetRouteId2_OnOff(<span class="keyword">true</span>);</div>
+<div class="line"> }</div>
+<div class="line"> <span class="keywordflow">else</span></div>
+<div class="line"> {</div>
+<div class="line"> App_SetRouteId2_OnOff(<span class="keyword">false</span>);</div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g.html">Routing Management</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g_gaefde5a8fbaeb6e5937e94b9e74ae70cb.html b/ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g_gaefde5a8fbaeb6e5937e94b9e74ae70cb.html
new file mode 100644
index 0000000..79d9d69
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g_gaefde5a8fbaeb6e5937e94b9e74ae70cb.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Rm_XrmResDebugCb_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___r_o_u_t_i_n_g.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gaefde5a8fbaeb6e5937e94b9e74ae70cb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* Ucs_Rm_XrmResDebugCb_t)(<a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc">Ucs_Xrm_ResourceType_t</a> resource_type, <a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173">Ucs_Xrm_ResObject_t</a> *resource_ptr, <a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#ga5299ac232aaeba37eb6fceb53e32b2ea">Ucs_Xrm_ResourceInfos_t</a> resource_infos, <a class="el" href="struct_ucs___rm___end_point__t.html">Ucs_Rm_EndPoint_t</a> *endpoint_inst_ptr, void *user_ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Function signature used for monitoring the XRM resources. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">resource_type</td><td>The XRM resource type to be looked for </td></tr>
+ <tr><td class="paramname">resource_ptr</td><td>Reference to the resource to be looked for </td></tr>
+ <tr><td class="paramname">resource_infos</td><td>Resource information </td></tr>
+ <tr><td class="paramname">endpoint_inst_ptr</td><td>Reference to the endpoint object that encapsulates the resource. </td></tr>
+ <tr><td class="paramname">user_ptr</td><td>User reference provided in <a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t::user_ptr</a> </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g.html">Routing Management</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g_gaf34398118f6a683a7e295f2fb89c5940.html b/ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g_gaf34398118f6a683a7e295f2fb89c5940.html
new file mode 100644
index 0000000..618a144
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___r_o_u_t_i_n_g_gaf34398118f6a683a7e295f2fb89c5940.html
@@ -0,0 +1,215 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Rm_GetAttachedRoutes</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___r_o_u_t_i_n_g.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gaf34398118f6a683a7e295f2fb89c5940"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a> Ucs_Rm_GetAttachedRoutes </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *&#160;</td>
+ <td class="paramname"><em>self</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="struct_ucs___rm___end_point__t.html">Ucs_Rm_EndPoint_t</a> *&#160;</td>
+ <td class="paramname"><em>ep_inst</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="struct_ucs___rm___route__t.html">Ucs_Rm_Route_t</a> *&#160;</td>
+ <td class="paramname"><em>ls_found_routes</em>[], </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>ls_size</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Retrieves the reference(s) of the route(s) currently attached to the given endpoint and stores It into the (external) table provided by user application. </p>
+<p>Thus, User application should provide an external reference to an empty routes table where the potential routes will be stored. That is, user application is responsible to allocate enough space to store the found routes. Refer to the <b>Note</b> below for more details.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>The UNICENS instance pointer. </td></tr>
+ <tr><td class="paramname">ep_inst</td><td>Reference to the endpoint instance to be looked for. </td></tr>
+ <tr><td class="paramname">ls_found_routes</td><td>List to store references to the found routes. It should be allocated by user application. </td></tr>
+ <tr><td class="paramname">ls_size</td><td>Size of the provided list. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible return values are shown in the table below. <table class="doxtable">
+<tr>
+<th>Value </th><th>Description</th></tr>
+<tr>
+<td>UCS_RET_SUCCESS </td><td>No error </td></tr>
+<tr>
+<td>UCS_RET_ERR_PARAM </td><td>At least one parameter is NULL. </td></tr>
+<tr>
+<td>UCS_RET_ERR_NOT_INITIALIZED </td><td>UNICENS is not initialized </td></tr>
+</table>
+</dd></dl>
+<dl class="section note"><dt>Note</dt><dd>The function will add a <b>NULL</b> <b>pointer</b> to the external table (provided by user application) to mark the end of the found routes. This can be helpful when user application doesn't exactly known the number of routes referred to the endpoint. That is, User application should allocate enough space to store the found routes plus the NULL-terminated pointer. Otherwise, the number of associated routes found will <b>precisely</b> <b>equal</b> the size of the list.</dd></dl>
+<p><br/>
+<br/>
+<b>Example</b> </p>
+<div class="fragment"><div class="line"><span class="comment">// Source and Sink Endpoints</span></div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___rm___end_point__t.html" title="Configuration structure of a Connection EndPoint.">Ucs_Rm_EndPoint_t</a> endpoint_src = { <a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga127a72f023d3c0289ab74b001f6edc25.html#gga127a72f023d3c0289ab74b001f6edc25ac1244d5bc6a569137f6f9132b8b0a3da" title="Specifies the source endpoint.">UCS_RM_EP_SOURCE</a>, &amp;xrm_job_out[0], &amp;node_src };</div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___rm___end_point__t.html" title="Configuration structure of a Connection EndPoint.">Ucs_Rm_EndPoint_t</a> endpoint_sink_west = { <a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga127a72f023d3c0289ab74b001f6edc25.html#gga127a72f023d3c0289ab74b001f6edc25a63c4dfa3683ce8122d760c4e2d580138" title="Specifies the sink endpoint.">UCS_RM_EP_SINK</a>, &amp;xrm_job_in_w[0], &amp;node_west };</div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___rm___end_point__t.html" title="Configuration structure of a Connection EndPoint.">Ucs_Rm_EndPoint_t</a> endpoint_sink_east = { <a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga127a72f023d3c0289ab74b001f6edc25.html#gga127a72f023d3c0289ab74b001f6edc25a63c4dfa3683ce8122d760c4e2d580138" title="Specifies the sink endpoint.">UCS_RM_EP_SINK</a>, &amp;xrm_job_in_e[0], &amp;node_east };</div>
+<div class="line"></div>
+<div class="line"><span class="comment">// Routes Specification</span></div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___rm___route__t.html" title="Configuration structure of a Route.">Ucs_Rm_Route_t</a> route_66_west[] = { {&amp;endpoint_src, &amp;endpoint_sink_west, is_active, 0x066U} };</div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___rm___route__t.html" title="Configuration structure of a Route.">Ucs_Rm_Route_t</a> route_66_east[] = { {&amp;endpoint_src, &amp;endpoint_sink_east, is_active, 0xE66U} };</div>
+<div class="line"></div>
+<div class="line"><span class="comment">// Main function</span></div>
+<div class="line"><span class="keywordtype">void</span> main(uint8_t argc, <span class="keywordtype">char</span> *argv[])</div>
+<div class="line">{</div>
+<div class="line"> <a class="code" href="struct_ucs___rm___route__t.html" title="Configuration structure of a Route.">Ucs_Rm_Route_t</a> * found_routes_ls[3];</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd" title="Standard return codes used for synchronous response.">Ucs_Return_t</a> ret_value;</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">// Starts routes processing</span></div>
+<div class="line"> (void)<a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g_gaaa23aca8279da197192210fe11889452.html#gaaa23aca8279da197192210fe11889452" title="Initializes the routing process with the given routes list information and starts the process to hand...">Ucs_Rm_Start</a>(ucs_inst_ptr, &amp;routes_list[0], routes_list_size);</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">// ... </span></div>
+<div class="line"></div>
+<div class="line"> <span class="comment">// Retrieve routes references to the given endpoint</span></div>
+<div class="line"> ret_value = <a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g_gaf34398118f6a683a7e295f2fb89c5940.html#gaf34398118f6a683a7e295f2fb89c5940" title="Retrieves the reference(s) of the route(s) currently attached to the given endpoint and stores It int...">Ucs_Rm_GetAttachedRoutes</a>(ucs_inst_ptr, &amp;endpoint_src, found_routes_ls, 3U);</div>
+<div class="line"> <span class="keywordflow">if</span> (ret_value == <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda3fb51656e17ee4802f23706f35e349bc" title="Operation successfully completed.">UCS_RET_SUCCESS</a>)</div>
+<div class="line"> {</div>
+<div class="line"> uint8_t k = 0U;</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">//printf(&quot;\rEp{0x%X}: Related route id(s) --&gt; &quot;, &amp;endpoint_src);</span></div>
+<div class="line"> <span class="keywordflow">do</span></div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">//printf(&quot;{0x%X} &quot;, found_routes_ls[k]-&gt;route_id);</span></div>
+<div class="line"> k++;</div>
+<div class="line"></div>
+<div class="line"> } <span class="keywordflow">while</span> ((k &lt; 3U) &amp;&amp; (found_routes_ls[k] != NULL));</div>
+<div class="line"> <span class="comment">//printf(&quot;\r\n&quot;);</span></div>
+<div class="line"> }</div>
+<div class="line"> <span class="keywordflow">else</span></div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">// Do whatever is necessary to be done</span></div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g.html">Routing Management</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___s_c_r_i_p_t_i_n_g.html b/ucs2-lib/doc/html/group___g___u_c_s___s_c_r_i_p_t_i_n_g.html
new file mode 100644
index 0000000..629aaeb
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___s_c_r_i_p_t_i_n_g.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Node Scripting</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___s_c_r_i_p_t_i_n_g.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#typedef-members">Callback Functions</a> &#124;
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">Node Scripting</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides service function to allow execution of custom scripts in remote Nodes.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___ns___config_msg__t.html">Ucs_Ns_ConfigMsg_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Structure of a ConfigMsg used in Node-Script. <a href="struct_ucs___ns___config_msg__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___ns___script__t.html">Ucs_Ns_Script_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Structure of a node-script used to configure a remote node. <a href="struct_ucs___ns___script__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Callback Functions</h2></td></tr>
+<tr class="memitem:gab0f1bc424462b8bbe0b2155d504025a5"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___s_c_r_i_p_t_i_n_g_gab0f1bc424462b8bbe0b2155d504025a5.html#gab0f1bc424462b8bbe0b2155d504025a5">Ucs_Ns_ResultCb_t</a> )(<a class="el" href="struct_ucs___rm___node__t.html">Ucs_Rm_Node_t</a> *node_ptr, <a class="el" href="group___g___u_c_s___s_c_r_i_p_t_i_n_g_gabd3ecc8ab539f3b9de3fc8045c083b60.html#gabd3ecc8ab539f3b9de3fc8045c083b60">Ucs_Ns_ResultCode_t</a> result, void *ucs_user_ptr)</td></tr>
+<tr class="memdesc:gab0f1bc424462b8bbe0b2155d504025a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function signature used for the results of the Scripting Manager. <a href="#gab0f1bc424462b8bbe0b2155d504025a5"></a><br/></td></tr>
+<tr class="separator:gab0f1bc424462b8bbe0b2155d504025a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:gabd3ecc8ab539f3b9de3fc8045c083b60"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___s_c_r_i_p_t_i_n_g_gabd3ecc8ab539f3b9de3fc8045c083b60.html#gabd3ecc8ab539f3b9de3fc8045c083b60">Ucs_Ns_ResultCode_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___s_c_r_i_p_t_i_n_g_gabd3ecc8ab539f3b9de3fc8045c083b60.html#ggabd3ecc8ab539f3b9de3fc8045c083b60af22bd910a1d7e2271b5b3cddf5892962">UCS_NS_RES_SUCCESS</a> = 0x00U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___s_c_r_i_p_t_i_n_g_gabd3ecc8ab539f3b9de3fc8045c083b60.html#ggabd3ecc8ab539f3b9de3fc8045c083b60ad0ba0f8f6ba494e7685980d490e48b72">UCS_NS_RES_ERROR</a> = 0x01U
+<br/>
+ }</td></tr>
+<tr class="memdesc:gabd3ecc8ab539f3b9de3fc8045c083b60"><td class="mdescLeft">&#160;</td><td class="mdescRight">Result codes of the Node Script Management. <a href="group___g___u_c_s___s_c_r_i_p_t_i_n_g_gabd3ecc8ab539f3b9de3fc8045c083b60.html#gabd3ecc8ab539f3b9de3fc8045c083b60">More...</a><br/></td></tr>
+<tr class="separator:gabd3ecc8ab539f3b9de3fc8045c083b60"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga2f2737e4d507b9c15e165918db3f1456"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___s_c_r_i_p_t_i_n_g_ga2f2737e4d507b9c15e165918db3f1456.html#ga2f2737e4d507b9c15e165918db3f1456">Ucs_Ns_Run</a> (<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *self, <a class="el" href="struct_ucs___rm___node__t.html">Ucs_Rm_Node_t</a> *node_ptr, <a class="el" href="group___g___u_c_s___s_c_r_i_p_t_i_n_g_gab0f1bc424462b8bbe0b2155d504025a5.html#gab0f1bc424462b8bbe0b2155d504025a5">Ucs_Ns_ResultCb_t</a> result_fptr)</td></tr>
+<tr class="memdesc:ga2f2737e4d507b9c15e165918db3f1456"><td class="mdescLeft">&#160;</td><td class="mdescRight">Runs the script(s) contained in the given node. <a href="#ga2f2737e4d507b9c15e165918db3f1456"></a><br/></td></tr>
+<tr class="separator:ga2f2737e4d507b9c15e165918db3f1456"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Provides service function to allow execution of custom scripts in remote Nodes. </p>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___s_c_r_i_p_t_i_n_g.js b/ucs2-lib/doc/html/group___g___u_c_s___s_c_r_i_p_t_i_n_g.js
new file mode 100644
index 0000000..2663d9d
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___s_c_r_i_p_t_i_n_g.js
@@ -0,0 +1,22 @@
+var group___g___u_c_s___s_c_r_i_p_t_i_n_g =
+[
+ [ "Ucs_Ns_ConfigMsg_t", "struct_ucs___ns___config_msg__t.html", [
+ [ "DataLen", "struct_ucs___ns___config_msg__t_ab81bc4284c46cfa5378520e45441ef32.html#ab81bc4284c46cfa5378520e45441ef32", null ],
+ [ "DataPtr", "struct_ucs___ns___config_msg__t_ad076d2b6eaae6f9b32363de4729e9349.html#ad076d2b6eaae6f9b32363de4729e9349", null ],
+ [ "FBlockId", "struct_ucs___ns___config_msg__t_aeb1ff6787da243b8d6ced7bce3ee46d5.html#aeb1ff6787da243b8d6ced7bce3ee46d5", null ],
+ [ "FunktId", "struct_ucs___ns___config_msg__t_ad758e0bb7d48d20f40d5acbfcf916eb1.html#ad758e0bb7d48d20f40d5acbfcf916eb1", null ],
+ [ "InstId", "struct_ucs___ns___config_msg__t_a08a6ee143e484d0a82593eb1ff632813.html#a08a6ee143e484d0a82593eb1ff632813", null ],
+ [ "OpCode", "struct_ucs___ns___config_msg__t_a4011d0b720d10f4eeacd939998ebe85d.html#a4011d0b720d10f4eeacd939998ebe85d", null ]
+ ] ],
+ [ "Ucs_Ns_Script_t", "struct_ucs___ns___script__t.html", [
+ [ "exp_result", "struct_ucs___ns___script__t_a916bebb6486ddd6e58ded2f18d97ee62.html#a916bebb6486ddd6e58ded2f18d97ee62", null ],
+ [ "pause", "struct_ucs___ns___script__t_a69ffffc951e73c7116876a2e908cf3ba.html#a69ffffc951e73c7116876a2e908cf3ba", null ],
+ [ "send_cmd", "struct_ucs___ns___script__t_a78234ed434c9f2e804d7466a45d0735d.html#a78234ed434c9f2e804d7466a45d0735d", null ]
+ ] ],
+ [ "Ucs_Ns_ResultCb_t", "group___g___u_c_s___s_c_r_i_p_t_i_n_g_gab0f1bc424462b8bbe0b2155d504025a5.html#gab0f1bc424462b8bbe0b2155d504025a5", null ],
+ [ "Ucs_Ns_ResultCode_t", "group___g___u_c_s___s_c_r_i_p_t_i_n_g_gabd3ecc8ab539f3b9de3fc8045c083b60.html#gabd3ecc8ab539f3b9de3fc8045c083b60", [
+ [ "UCS_NS_RES_SUCCESS", "group___g___u_c_s___s_c_r_i_p_t_i_n_g_gabd3ecc8ab539f3b9de3fc8045c083b60.html#ggabd3ecc8ab539f3b9de3fc8045c083b60af22bd910a1d7e2271b5b3cddf5892962", null ],
+ [ "UCS_NS_RES_ERROR", "group___g___u_c_s___s_c_r_i_p_t_i_n_g_gabd3ecc8ab539f3b9de3fc8045c083b60.html#ggabd3ecc8ab539f3b9de3fc8045c083b60ad0ba0f8f6ba494e7685980d490e48b72", null ]
+ ] ],
+ [ "Ucs_Ns_Run", "group___g___u_c_s___s_c_r_i_p_t_i_n_g_ga2f2737e4d507b9c15e165918db3f1456.html#ga2f2737e4d507b9c15e165918db3f1456", null ]
+]; \ No newline at end of file
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___s_c_r_i_p_t_i_n_g_ga2f2737e4d507b9c15e165918db3f1456.html b/ucs2-lib/doc/html/group___g___u_c_s___s_c_r_i_p_t_i_n_g_ga2f2737e4d507b9c15e165918db3f1456.html
new file mode 100644
index 0000000..1cd48b7
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___s_c_r_i_p_t_i_n_g_ga2f2737e4d507b9c15e165918db3f1456.html
@@ -0,0 +1,225 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Ns_Run</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___s_c_r_i_p_t_i_n_g.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga2f2737e4d507b9c15e165918db3f1456"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a> Ucs_Ns_Run </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *&#160;</td>
+ <td class="paramname"><em>self</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="struct_ucs___rm___node__t.html">Ucs_Rm_Node_t</a> *&#160;</td>
+ <td class="paramname"><em>node_ptr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___s_c_r_i_p_t_i_n_g_gab0f1bc424462b8bbe0b2155d504025a5.html#gab0f1bc424462b8bbe0b2155d504025a5">Ucs_Ns_ResultCb_t</a>&#160;</td>
+ <td class="paramname"><em>result_fptr</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Runs the script(s) contained in the given node. </p>
+<p>The function starts the process to transmit the script(s) contained in the given node and checks for the expected results (specified by customer). The Node Scripting module will start a timer of 2600ms before sending the Tx command of each script. That is, if no incoming messages match the expected result of the script during this time the result code <a class="el" href="group___g___u_c_s___s_c_r_i_p_t_i_n_g_gabd3ecc8ab539f3b9de3fc8045c083b60.html#ggabd3ecc8ab539f3b9de3fc8045c083b60ad0ba0f8f6ba494e7685980d490e48b72">UCS_NS_RES_ERROR</a> is returned via the <a class="el" href="group___g___u_c_s___s_c_r_i_p_t_i_n_g_gab0f1bc424462b8bbe0b2155d504025a5.html#gab0f1bc424462b8bbe0b2155d504025a5">Ucs_Ns_ResultCb_t</a> user callback function. This error code is also get when the script module couldn't perform the device synchronization of the remote device. Otherwise, if an incoming message matches the expected result, <a class="el" href="group___g___u_c_s___s_c_r_i_p_t_i_n_g_gabd3ecc8ab539f3b9de3fc8045c083b60.html#ggabd3ecc8ab539f3b9de3fc8045c083b60af22bd910a1d7e2271b5b3cddf5892962">UCS_NS_RES_SUCCESS</a> is returned. <br/>
+ The function will return <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cdad4a30091202638c890abbdb682ca4fe5">UCS_RET_ERR_API_LOCKED</a> when attempting to execute a script in a node that is currently busy with other(s) previous script(s). <a class="el" href="group___g___u_c_s___s_c_r_i_p_t_i_n_g_ga2f2737e4d507b9c15e165918db3f1456.html#ga2f2737e4d507b9c15e165918db3f1456" title="Runs the script(s) contained in the given node.">Ucs_Ns_Run()</a> is namely locked for a Node when running script(s) on this node and unlocked after reporting the operation's result. However processing scripts can be executed on different nodes in parallel.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>The UNICENS instance </td></tr>
+ <tr><td class="paramname">node_ptr</td><td>Reference to the node instance. </td></tr>
+ <tr><td class="paramname">result_fptr</td><td>Reference to the result function pointer </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible return values are shown in the table below. <table class="doxtable">
+<tr>
+<th>Value </th><th>Description</th></tr>
+<tr>
+<td>UCS_RET_SUCCESS </td><td>No error </td></tr>
+<tr>
+<td>UCS_RET_ERR_NOT_AVAILABLE </td><td>No internal resources allocated for the given node. <br/>
+ Check if value of <a class="el" href="group___g___u_c_s___x_r_m___c_f_g_ga70720ac0fdcbbbc7f4742654c8f8abc1.html#ga70720ac0fdcbbbc7f4742654c8f8abc1">UCS_NUM_REMOTE_DEVICES</a> is less than <br/>
+ the current number of remote devices in network. </td></tr>
+<tr>
+<td>UCS_RET_ERR_PARAM </td><td>At least one parameter is NULL. </td></tr>
+<tr>
+<td>UCS_RET_ERR_NOT_INITIALIZED </td><td>UNICENS is not initialized </td></tr>
+<tr>
+<td>UCS_RET_ERR_BUFFER_OVERFLOW </td><td>No TxBuffer Handles available </td></tr>
+<tr>
+<td>UCS_RET_ERR_API_LOCKED </td><td>The API is locked. </td></tr>
+</table>
+</dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>The Node Scripting module is designed and intended for the use of <b>I2C</b> and <b>GPIO</b> commands only. That is, using the Scripting for any other FBlock INIC commands (for example MOST, MediaLB, USB, Streaming, Connections, etc.) is expressly <b>prohibited</b>.</dd></dl>
+<p><br/>
+<br/>
+<b>Example</b> </p>
+<div class="fragment"><div class="line"><span class="comment">// Forward declaration of result callback function</span></div>
+<div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> App_OnScriptingResult(uint16_t node_address, <a class="code" href="group___g___u_c_s___s_c_r_i_p_t_i_n_g_gabd3ecc8ab539f3b9de3fc8045c083b60.html#gabd3ecc8ab539f3b9de3fc8045c083b60" title="Result codes of the Node Script Management.">Ucs_Ns_ResultCode_t</a> result, <span class="keywordtype">void</span> *user_ptr);</div>
+<div class="line"></div>
+<div class="line"><span class="comment">// Configuration Msg specification</span></div>
+<div class="line"><span class="keyword">static</span> uint8_t tx_data [] = { 0x00, 0x40, 0x01, 0x01 };</div>
+<div class="line"><span class="keyword">static</span> uint8_t rx_data [] = { 0x0F, 0x00 };</div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___ns___config_msg__t.html" title="Structure of a ConfigMsg used in Node-Script.">Ucs_Ns_ConfigMsg_t</a> tx_msg = { 0x00, 0x00, 0x6C1, 0x2, 4U, &amp;tx_data };</div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___ns___config_msg__t.html" title="Structure of a ConfigMsg used in Node-Script.">Ucs_Ns_ConfigMsg_t</a> rx_msg = { 0x00, 0x01, 0x6C1, 0xC, 2U, &amp;rx_data };</div>
+<div class="line"></div>
+<div class="line"><span class="comment">// Scripts specification</span></div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___ns___script__t.html" title="Structure of a node-script used to configure a remote node.">Ucs_Ns_Script_t</a> script_x = { 100U, &amp;tx_msg, &amp;rx_msg };</div>
+<div class="line"></div>
+<div class="line"><span class="comment">// Signature specification</span></div>
+<div class="line"><a class="code" href="struct_ucs___signature__t.html" title="This structure holds the signature of the Hello, Welcome and Signature messages. It supports the sign...">Ucs_Signature_t</a> sig_200 = { 200U };</div>
+<div class="line"></div>
+<div class="line"><span class="comment">// Nodes objects Specification</span></div>
+<div class="line"><span class="keyword">static</span> <a class="code" href="struct_ucs___rm___node__t.html" title="Configuration structure of a Node.">Ucs_Rm_Node_t</a> node_200 = { &amp;sig_200, &amp;script_x, 1U, 0U };</div>
+<div class="line"></div>
+<div class="line"><span class="comment">// Main function</span></div>
+<div class="line"><span class="keywordtype">void</span> main(uint8_t argc, <span class="keywordtype">char</span> *argv[])</div>
+<div class="line">{</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">// ...</span></div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">if</span> (node200_discovered)</div>
+<div class="line"> {</div>
+<div class="line"> (void)<a class="code" href="group___g___u_c_s___s_c_r_i_p_t_i_n_g_ga2f2737e4d507b9c15e165918db3f1456.html#ga2f2737e4d507b9c15e165918db3f1456" title="Runs the script(s) contained in the given node.">Ucs_Ns_Run</a>(ucs_inst_ptr, &amp;node_200, &amp;App_OnScriptingResult);</div>
+<div class="line"> }</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">// ...</span></div>
+<div class="line">}</div>
+<div class="line"></div>
+<div class="line"><span class="comment">// The result callback function</span></div>
+<div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> App_OnScriptingResult(<a class="code" href="struct_ucs___rm___node__t.html" title="Configuration structure of a Node.">Ucs_Rm_Node_t</a> * node_ptr, <a class="code" href="group___g___u_c_s___s_c_r_i_p_t_i_n_g_gabd3ecc8ab539f3b9de3fc8045c083b60.html#gabd3ecc8ab539f3b9de3fc8045c083b60" title="Result codes of the Node Script Management.">Ucs_Ns_ResultCode_t</a> result, <span class="keywordtype">void</span> *user_ptr)</div>
+<div class="line">{</div>
+<div class="line"> <span class="keywordflow">switch</span> (result)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="group___g___u_c_s___s_c_r_i_p_t_i_n_g_gabd3ecc8ab539f3b9de3fc8045c083b60.html#ggabd3ecc8ab539f3b9de3fc8045c083b60af22bd910a1d7e2271b5b3cddf5892962" title="Transmission of script(s) was successful.">UCS_NS_RES_SUCCESS</a>:</div>
+<div class="line"> <span class="comment">// Node can be set to &quot;Available&quot; for example</span></div>
+<div class="line"> <a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g_ga57ca34a488f06d57f2219be23fa0259f.html#ga57ca34a488f06d57f2219be23fa0259f" title="Sets the availability attribute (available or not available) of the given node and triggers the routi...">Ucs_Rm_SetNodeAvailable</a>(ucs_inst_ptr, node_ptr, <span class="keyword">true</span>);</div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="group___g___u_c_s___s_c_r_i_p_t_i_n_g_gabd3ecc8ab539f3b9de3fc8045c083b60.html#ggabd3ecc8ab539f3b9de3fc8045c083b60ad0ba0f8f6ba494e7685980d490e48b72" title="Transmission of script(s) failed.">UCS_NS_RES_ERROR</a>:</div>
+<div class="line"> <span class="keywordflow">default</span>:</div>
+<div class="line"> <span class="comment">// Do whatever is necessary here</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___s_c_r_i_p_t_i_n_g.html">Node Scripting</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___s_c_r_i_p_t_i_n_g_gab0f1bc424462b8bbe0b2155d504025a5.html b/ucs2-lib/doc/html/group___g___u_c_s___s_c_r_i_p_t_i_n_g_gab0f1bc424462b8bbe0b2155d504025a5.html
new file mode 100644
index 0000000..eb28666
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___s_c_r_i_p_t_i_n_g_gab0f1bc424462b8bbe0b2155d504025a5.html
@@ -0,0 +1,132 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Ns_ResultCb_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___s_c_r_i_p_t_i_n_g.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gab0f1bc424462b8bbe0b2155d504025a5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* Ucs_Ns_ResultCb_t)(<a class="el" href="struct_ucs___rm___node__t.html">Ucs_Rm_Node_t</a> *node_ptr, <a class="el" href="group___g___u_c_s___s_c_r_i_p_t_i_n_g_gabd3ecc8ab539f3b9de3fc8045c083b60.html#gabd3ecc8ab539f3b9de3fc8045c083b60">Ucs_Ns_ResultCode_t</a> result, void *ucs_user_ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Function signature used for the results of the Scripting Manager. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">node_ptr</td><td>Reference to the node instance </td></tr>
+ <tr><td class="paramname">result</td><td>Result of the scripting operation. </td></tr>
+ <tr><td class="paramname">ucs_user_ptr</td><td>User reference for API callback functions. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___s_c_r_i_p_t_i_n_g.html">Node Scripting</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___s_c_r_i_p_t_i_n_g_gabd3ecc8ab539f3b9de3fc8045c083b60.html b/ucs2-lib/doc/html/group___g___u_c_s___s_c_r_i_p_t_i_n_g_gabd3ecc8ab539f3b9de3fc8045c083b60.html
new file mode 100644
index 0000000..2edd760
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___s_c_r_i_p_t_i_n_g_gabd3ecc8ab539f3b9de3fc8045c083b60.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Ns_ResultCode_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___s_c_r_i_p_t_i_n_g.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gabd3ecc8ab539f3b9de3fc8045c083b60"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___s_c_r_i_p_t_i_n_g_gabd3ecc8ab539f3b9de3fc8045c083b60.html#gabd3ecc8ab539f3b9de3fc8045c083b60">Ucs_Ns_ResultCode_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Result codes of the Node Script Management. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="ggabd3ecc8ab539f3b9de3fc8045c083b60af22bd910a1d7e2271b5b3cddf5892962"></a>UCS_NS_RES_SUCCESS</em>&nbsp;</td><td>
+<p>Transmission of script(s) was successful. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggabd3ecc8ab539f3b9de3fc8045c083b60ad0ba0f8f6ba494e7685980d490e48b72"></a>UCS_NS_RES_ERROR</em>&nbsp;</td><td>
+<p>Transmission of script(s) failed. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___s_c_r_i_p_t_i_n_g.html">Node Scripting</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e.html b/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e.html
new file mode 100644
index 0000000..4847d75
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e.html
@@ -0,0 +1,152 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Tracing/Debugging</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___t_r_a_c_e.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#groups">Topics</a> &#124;
+<a href="#define-members">Macros</a> &#124;
+<a href="#typedef-members">Callback Functions</a> </div>
+ <div class="headertitle">
+<div class="title">Tracing/Debugging</div> </div>
+<div class="ingroups"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v.html">Initialization and Service</a></div></div><!--header-->
+<div class="contents">
+
+<p>Tracing/Debugging Interface.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+Topics</h2></td></tr>
+<tr class="memitem:group___g___u_c_s___t_r_a_c_e___t_y_p_e_s"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s.html">Tracing/Debugging Types</a></td></tr>
+<tr class="memdesc:group___g___u_c_s___t_r_a_c_e___t_y_p_e_s"><td class="mdescLeft">&#160;</td><td class="mdescRight">Referred types used by Tracing/Debugging Interface. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:gaebb5aec06a7196b1247805a53a96f926"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___t_r_a_c_e_gaebb5aec06a7196b1247805a53a96f926.html#gaebb5aec06a7196b1247805a53a96f926">UCS_TR_INFO</a></td></tr>
+<tr class="memdesc:gaebb5aec06a7196b1247805a53a96f926"><td class="mdescLeft">&#160;</td><td class="mdescRight">Trace macro to capture trace info events. <a href="#gaebb5aec06a7196b1247805a53a96f926"></a><br/></td></tr>
+<tr class="separator:gaebb5aec06a7196b1247805a53a96f926"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf7f45aee7bbbd7f4a58b71a5268ecdb6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___t_r_a_c_e_gaf7f45aee7bbbd7f4a58b71a5268ecdb6.html#gaf7f45aee7bbbd7f4a58b71a5268ecdb6">UCS_TR_ERROR</a></td></tr>
+<tr class="memdesc:gaf7f45aee7bbbd7f4a58b71a5268ecdb6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Trace macro to capture trace error events. <a href="#gaf7f45aee7bbbd7f4a58b71a5268ecdb6"></a><br/></td></tr>
+<tr class="separator:gaf7f45aee7bbbd7f4a58b71a5268ecdb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga038add4a7ca8adb0f60c34cedbfcf8b9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___t_r_a_c_e_ga038add4a7ca8adb0f60c34cedbfcf8b9.html#ga038add4a7ca8adb0f60c34cedbfcf8b9">UCS_TR_SIZE_BUFFER</a>&#160;&#160;&#160;256</td></tr>
+<tr class="memdesc:ga038add4a7ca8adb0f60c34cedbfcf8b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the needed buffer size to decode a trace entry. <a href="#ga038add4a7ca8adb0f60c34cedbfcf8b9"></a><br/></td></tr>
+<tr class="separator:ga038add4a7ca8adb0f60c34cedbfcf8b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Callback Functions</h2></td></tr>
+<tr class="memitem:gaf18b6867951fd06359788f6595b78195"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___t_r_a_c_e_gaf18b6867951fd06359788f6595b78195.html#gaf18b6867951fd06359788f6595b78195">Ucs_DebugErrorMsgCb_t</a> )(<a class="el" href="struct_msg___most_tel__t.html">Msg_MostTel_t</a> *msg_ptr, void *user_ptr)</td></tr>
+<tr class="memdesc:gaf18b6867951fd06359788f6595b78195"><td class="mdescLeft">&#160;</td><td class="mdescRight">Optional callback function used to debug received raw messages with OpType UCS_OP_ERROR and UCS_OP_ERRORACK. <a href="#gaf18b6867951fd06359788f6595b78195"></a><br/></td></tr>
+<tr class="separator:gaf18b6867951fd06359788f6595b78195"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Tracing/Debugging Interface. </p>
+<p>The UCS Trace Interface is intended for debugging and logging purpose. There are 2 different trace options:</p>
+<ul>
+<li>The definition of trace macros to print out internal states, messages and errors. This option provides two trace classes: <code>info</code> and <code>error</code>. Each trace class can be activated by defining the respective macro UCS_TR_INFO UCS_TR_ERROR in the configuration header file <code>ucs_cfg.h</code>. While the <code>info</code> class is intended only for debugging purpose during development, the <code>error</code> class can also be active for logging purpose in a production system.</li>
+<li>Implementation of the callback function Ucs_DebugErrorMsgCb_t which is assigned during initialization. The callback function is fired on every received Error message from a local or remote INIC. </li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e.js b/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e.js
new file mode 100644
index 0000000..a551460
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e.js
@@ -0,0 +1,8 @@
+var group___g___u_c_s___t_r_a_c_e =
+[
+ [ "Tracing/Debugging Types", "group___g___u_c_s___t_r_a_c_e___t_y_p_e_s.html", "group___g___u_c_s___t_r_a_c_e___t_y_p_e_s" ],
+ [ "UCS_TR_ERROR", "group___g___u_c_s___t_r_a_c_e_gaf7f45aee7bbbd7f4a58b71a5268ecdb6.html#gaf7f45aee7bbbd7f4a58b71a5268ecdb6", null ],
+ [ "UCS_TR_INFO", "group___g___u_c_s___t_r_a_c_e_gaebb5aec06a7196b1247805a53a96f926.html#gaebb5aec06a7196b1247805a53a96f926", null ],
+ [ "UCS_TR_SIZE_BUFFER", "group___g___u_c_s___t_r_a_c_e_ga038add4a7ca8adb0f60c34cedbfcf8b9.html#ga038add4a7ca8adb0f60c34cedbfcf8b9", null ],
+ [ "Ucs_DebugErrorMsgCb_t", "group___g___u_c_s___t_r_a_c_e_gaf18b6867951fd06359788f6595b78195.html#gaf18b6867951fd06359788f6595b78195", null ]
+]; \ No newline at end of file
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e___t_y_p_e_s.html b/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e___t_y_p_e_s.html
new file mode 100644
index 0000000..c3df609
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e___t_y_p_e_s.html
@@ -0,0 +1,224 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Tracing/Debugging Types</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___t_r_a_c_e___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#define-members">Macros</a> &#124;
+<a href="#enum-members">Enumerations</a> </div>
+ <div class="headertitle">
+<div class="title">Tracing/Debugging Types</div> </div>
+<div class="ingroups"><a class="el" href="group___g___u_c_s___t_r_a_c_e.html">Tracing/Debugging</a></div></div><!--header-->
+<div class="contents">
+
+<p>Referred types used by Tracing/Debugging Interface.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_msg___msg_id__t.html">Msg_MsgId_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">MOST message id "FBlockID.InstID.FktID.OPType". <a href="struct_msg___msg_id__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_msg___tx_options__t.html">Msg_TxOptions_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retry options. <a href="struct_msg___tx_options__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_msg___tel_data__t.html">Msg_TelData_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Most telegram data. <a href="struct_msg___tel_data__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_msg___most_tel__t.html">Msg_MostTel_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Common MOST message. <a href="struct_msg___most_tel__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:ga3d9b0fe84140fbc49ba03b685f6c0443"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga3d9b0fe84140fbc49ba03b685f6c0443.html#ga3d9b0fe84140fbc49ba03b685f6c0443">UCS_ADDR_BROADCAST_BLOCKING</a>&#160;&#160;&#160;0x03C8U</td></tr>
+<tr class="memdesc:ga3d9b0fe84140fbc49ba03b685f6c0443"><td class="mdescLeft">&#160;</td><td class="mdescRight">Blocking broadcast destination address. <a href="#ga3d9b0fe84140fbc49ba03b685f6c0443"></a><br/></td></tr>
+<tr class="separator:ga3d9b0fe84140fbc49ba03b685f6c0443"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaed7f13e95bb2324327de175834aa02ff"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gaed7f13e95bb2324327de175834aa02ff.html#gaed7f13e95bb2324327de175834aa02ff">UCS_ADDR_BROADCAST_UNBLOCKING</a>&#160;&#160;&#160;0x03FFU</td></tr>
+<tr class="memdesc:gaed7f13e95bb2324327de175834aa02ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unblocking broadcast destination address. <a href="#gaed7f13e95bb2324327de175834aa02ff"></a><br/></td></tr>
+<tr class="separator:gaed7f13e95bb2324327de175834aa02ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:gac5aa79eb466a98f645c0302f402294d6"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#gac5aa79eb466a98f645c0302f402294d6">Ucs_MsgTxStatus_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a86fbcae96541ea83f7a283fc973288f2">UCS_MSG_STAT_OK</a> = 0x00U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a9a33312cd89f2f2e917c30bd304a9e64">UCS_MSG_STAT_ERROR_CFG_NO_RCVR</a> = 0x01U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a4e0b2b5525b1de2e4305f95ecd39b652">UCS_MSG_STAT_ERROR_BF</a> = 0x08U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6ab82dfa03424d6bb820ccec46e51b3fa4">UCS_MSG_STAT_ERROR_CRC</a> = 0x09U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a451d05814d329a24ef6820b885569370">UCS_MSG_STAT_ERROR_ID</a> = 0x0AU,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a0b34261bd4e959454ee3b4eab0f72e4c">UCS_MSG_STAT_ERROR_ACK</a> = 0x0BU,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a9bc8c6ee18b2265f67413894e75073f1">UCS_MSG_STAT_ERROR_TIMEOUT</a> = 0x0CU,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a648be71e021d246fe90ce1b2cb4166b1">UCS_MSG_STAT_ERROR_FATAL_WT</a> = 0x10U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6aa86b80e9a990af483bf757fc147ba7c5">UCS_MSG_STAT_ERROR_FATAL_OA</a> = 0x11U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6ac6dbca4bb4f732e389d8b242eebc424e">UCS_MSG_STAT_ERROR_NA_TRANS</a> = 0x18U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a75e329b060753596c4102c798752f4da">UCS_MSG_STAT_ERROR_NA_OFF</a> = 0x19U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a2f33c4f038e0ddac2c4c4e10ddfe9ae6">UCS_MSG_STAT_ERROR_UNKNOWN</a> = 0xFEU,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a8e0466e6c50ca8200d3a5a60e6922769">UCS_MSG_STAT_ERROR_SYNC</a> = 0xFFU
+<br/>
+ }</td></tr>
+<tr class="memdesc:gac5aa79eb466a98f645c0302f402294d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Message transmission status for internal/debug use. <a href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#gac5aa79eb466a98f645c0302f402294d6">More...</a><br/></td></tr>
+<tr class="separator:gac5aa79eb466a98f645c0302f402294d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga02d4f5d689f2583ee620ff4c26a51afa"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#ga02d4f5d689f2583ee620ff4c26a51afa">Ucs_OpType_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaacedf024e681e29824a04eaaa8215ceec">UCS_OP_SET</a> = 0x0,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa3f69bc6e06a743468e1f1635d77adad8">UCS_OP_GET</a> = 0x1,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa30680ea01486e5729efd9b8a3a22313f">UCS_OP_SETGET</a> = 0x2,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa8d751c97bde87443c2259dffed699e1b">UCS_OP_INC</a> = 0x3,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa53d0fbdf31fa445a02e84ed4a494153d">UCS_OP_DEC</a> = 0x4,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaafc94e06298ee531eb4557a4a066dfb59">UCS_OP_STATUS</a> = 0xC,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaab4e6745410e913098b6fe8628337bd0b">UCS_OP_START</a> = 0x0,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa16fce7c1ed324daa8942b21951b805cb">UCS_OP_ABORT</a> = 0x1,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaae3056001809b7338835a44d0ffd5f6c5">UCS_OP_STARTRESULT</a> = 0x2,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa8c2b26389a77be12f491fc3154987c58">UCS_OP_PROCESSING</a> = 0xB,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa7fc5e535407db1fe019d6db6e89ffd66">UCS_OP_RESULT</a> = 0xC,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa7f78b7ab9308fc50de2b440efac06fea">UCS_OP_STARTACK</a> = 0x8,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa1ba506fde54dfb0ad969028ab16a6c98">UCS_OP_ABORTACK</a> = 0x7,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa9cd8321db02fe32bb577a3654487fba7">UCS_OP_STARTRESULTACK</a> = 0x6,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa289256756b3f271d04535462235b9d8a">UCS_OP_PROCESSINGACK</a> = 0xA,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa5b48c9460922585b8b25868e05cc6d6c">UCS_OP_RESULTACK</a> = 0xD,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa64c538f9ef7c103a2541c81ae4bd501d">UCS_OP_GETINTERFACE</a> = 0x5,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa3ffc2003b1ea184bfb36a8a50af424ba">UCS_OP_INTERFACE</a> = 0xE,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa7dca59717427fc0b806a2e5353cc2ece">UCS_OP_ERROR</a> = 0xF,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaac8a58af946fe576138bfb6fbb156700e">UCS_OP_ERRORACK</a> = 0x9
+<br/>
+ }</td></tr>
+<tr class="memdesc:ga02d4f5d689f2583ee620ff4c26a51afa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operation Types. <a href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#ga02d4f5d689f2583ee620ff4c26a51afa">More...</a><br/></td></tr>
+<tr class="separator:ga02d4f5d689f2583ee620ff4c26a51afa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Referred types used by Tracing/Debugging Interface. </p>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e___t_y_p_e_s.js b/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e___t_y_p_e_s.js
new file mode 100644
index 0000000..6c1b08f
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e___t_y_p_e_s.js
@@ -0,0 +1,66 @@
+var group___g___u_c_s___t_r_a_c_e___t_y_p_e_s =
+[
+ [ "Msg_MsgId_t", "struct_msg___msg_id__t.html", [
+ [ "fblock_id", "struct_msg___msg_id__t_afadabe68185500b54de12bf7701db13b.html#afadabe68185500b54de12bf7701db13b", null ],
+ [ "function_id", "struct_msg___msg_id__t_a6cb0848efba59a9a23dbbe0480f04c85.html#a6cb0848efba59a9a23dbbe0480f04c85", null ],
+ [ "instance_id", "struct_msg___msg_id__t_ab529e65a59b5c14626acf162f03fbfd4.html#ab529e65a59b5c14626acf162f03fbfd4", null ],
+ [ "op_type", "struct_msg___msg_id__t_ac3f5682d1affe8931b94fa90c28f6f31.html#ac3f5682d1affe8931b94fa90c28f6f31", null ]
+ ] ],
+ [ "Msg_TxOptions_t", "struct_msg___tx_options__t.html", [
+ [ "cancel_id", "struct_msg___tx_options__t_a454f250afc20ddc93a508bc004df753e.html#a454f250afc20ddc93a508bc004df753e", null ],
+ [ "llrbc", "struct_msg___tx_options__t_a82997e00f317333173aa610d0902ab04.html#a82997e00f317333173aa610d0902ab04", null ]
+ ] ],
+ [ "Msg_TelData_t", "struct_msg___tel_data__t.html", [
+ [ "tel_cnt", "struct_msg___tel_data__t_a0102c84947aadd0fd212a7972d2fb10d.html#a0102c84947aadd0fd212a7972d2fb10d", null ],
+ [ "tel_data_ptr", "struct_msg___tel_data__t_afb4f9db23cd1c16b44c1e479e3f5e1cf.html#afb4f9db23cd1c16b44c1e479e3f5e1cf", null ],
+ [ "tel_id", "struct_msg___tel_data__t_a880ca776e9ea8d0bbb714a7333da52cc.html#a880ca776e9ea8d0bbb714a7333da52cc", null ],
+ [ "tel_len", "struct_msg___tel_data__t_a92083234f7755755f06bb85b3a6f2ea4.html#a92083234f7755755f06bb85b3a6f2ea4", null ]
+ ] ],
+ [ "Msg_MostTel_t", "struct_msg___most_tel__t.html", [
+ [ "destination_addr", "struct_msg___most_tel__t_a67473c671719a1e3f3fe0ad16e95dd83.html#a67473c671719a1e3f3fe0ad16e95dd83", null ],
+ [ "id", "struct_msg___most_tel__t_a6d80d11eae3ae15f09cc8aff3dabb89b.html#a6d80d11eae3ae15f09cc8aff3dabb89b", null ],
+ [ "info_ptr", "struct_msg___most_tel__t_abc779299d755d192cd021eb2c2a68013.html#abc779299d755d192cd021eb2c2a68013", null ],
+ [ "opts", "struct_msg___most_tel__t_a9420136f5d99f8b6c48445b5eb048d60.html#a9420136f5d99f8b6c48445b5eb048d60", null ],
+ [ "source_addr", "struct_msg___most_tel__t_a703fce339153ac2b164c185137b59717.html#a703fce339153ac2b164c185137b59717", null ],
+ [ "tel", "struct_msg___most_tel__t_a3176fc4da0eba67428fa0627e15f86b6.html#a3176fc4da0eba67428fa0627e15f86b6", null ]
+ ] ],
+ [ "UCS_ADDR_BROADCAST_BLOCKING", "group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga3d9b0fe84140fbc49ba03b685f6c0443.html#ga3d9b0fe84140fbc49ba03b685f6c0443", null ],
+ [ "UCS_ADDR_BROADCAST_UNBLOCKING", "group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gaed7f13e95bb2324327de175834aa02ff.html#gaed7f13e95bb2324327de175834aa02ff", null ],
+ [ "Ucs_MsgTxStatus_t", "group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#gac5aa79eb466a98f645c0302f402294d6", [
+ [ "UCS_MSG_STAT_OK", "group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a86fbcae96541ea83f7a283fc973288f2", null ],
+ [ "UCS_MSG_STAT_ERROR_CFG_NO_RCVR", "group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a9a33312cd89f2f2e917c30bd304a9e64", null ],
+ [ "UCS_MSG_STAT_ERROR_BF", "group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a4e0b2b5525b1de2e4305f95ecd39b652", null ],
+ [ "UCS_MSG_STAT_ERROR_CRC", "group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6ab82dfa03424d6bb820ccec46e51b3fa4", null ],
+ [ "UCS_MSG_STAT_ERROR_ID", "group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a451d05814d329a24ef6820b885569370", null ],
+ [ "UCS_MSG_STAT_ERROR_ACK", "group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a0b34261bd4e959454ee3b4eab0f72e4c", null ],
+ [ "UCS_MSG_STAT_ERROR_TIMEOUT", "group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a9bc8c6ee18b2265f67413894e75073f1", null ],
+ [ "UCS_MSG_STAT_ERROR_FATAL_WT", "group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a648be71e021d246fe90ce1b2cb4166b1", null ],
+ [ "UCS_MSG_STAT_ERROR_FATAL_OA", "group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6aa86b80e9a990af483bf757fc147ba7c5", null ],
+ [ "UCS_MSG_STAT_ERROR_NA_TRANS", "group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6ac6dbca4bb4f732e389d8b242eebc424e", null ],
+ [ "UCS_MSG_STAT_ERROR_NA_OFF", "group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a75e329b060753596c4102c798752f4da", null ],
+ [ "UCS_MSG_STAT_ERROR_UNKNOWN", "group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a2f33c4f038e0ddac2c4c4e10ddfe9ae6", null ],
+ [ "UCS_MSG_STAT_ERROR_SYNC", "group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a8e0466e6c50ca8200d3a5a60e6922769", null ]
+ ] ],
+ [ "Ucs_OpType_t", "group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#ga02d4f5d689f2583ee620ff4c26a51afa", [
+ [ "UCS_OP_SET", "group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaacedf024e681e29824a04eaaa8215ceec", null ],
+ [ "UCS_OP_GET", "group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa3f69bc6e06a743468e1f1635d77adad8", null ],
+ [ "UCS_OP_SETGET", "group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa30680ea01486e5729efd9b8a3a22313f", null ],
+ [ "UCS_OP_INC", "group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa8d751c97bde87443c2259dffed699e1b", null ],
+ [ "UCS_OP_DEC", "group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa53d0fbdf31fa445a02e84ed4a494153d", null ],
+ [ "UCS_OP_STATUS", "group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaafc94e06298ee531eb4557a4a066dfb59", null ],
+ [ "UCS_OP_START", "group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaab4e6745410e913098b6fe8628337bd0b", null ],
+ [ "UCS_OP_ABORT", "group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa16fce7c1ed324daa8942b21951b805cb", null ],
+ [ "UCS_OP_STARTRESULT", "group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaae3056001809b7338835a44d0ffd5f6c5", null ],
+ [ "UCS_OP_PROCESSING", "group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa8c2b26389a77be12f491fc3154987c58", null ],
+ [ "UCS_OP_RESULT", "group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa7fc5e535407db1fe019d6db6e89ffd66", null ],
+ [ "UCS_OP_STARTACK", "group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa7f78b7ab9308fc50de2b440efac06fea", null ],
+ [ "UCS_OP_ABORTACK", "group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa1ba506fde54dfb0ad969028ab16a6c98", null ],
+ [ "UCS_OP_STARTRESULTACK", "group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa9cd8321db02fe32bb577a3654487fba7", null ],
+ [ "UCS_OP_PROCESSINGACK", "group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa289256756b3f271d04535462235b9d8a", null ],
+ [ "UCS_OP_RESULTACK", "group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa5b48c9460922585b8b25868e05cc6d6c", null ],
+ [ "UCS_OP_GETINTERFACE", "group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa64c538f9ef7c103a2541c81ae4bd501d", null ],
+ [ "UCS_OP_INTERFACE", "group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa3ffc2003b1ea184bfb36a8a50af424ba", null ],
+ [ "UCS_OP_ERROR", "group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa7dca59717427fc0b806a2e5353cc2ece", null ],
+ [ "UCS_OP_ERRORACK", "group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaac8a58af946fe576138bfb6fbb156700e", null ]
+ ] ]
+]; \ No newline at end of file
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html b/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html
new file mode 100644
index 0000000..e84cb11
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html
@@ -0,0 +1,188 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_OpType_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___t_r_a_c_e___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga02d4f5d689f2583ee620ff4c26a51afa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#ga02d4f5d689f2583ee620ff4c26a51afa">Ucs_OpType_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Operation Types. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga02d4f5d689f2583ee620ff4c26a51afaacedf024e681e29824a04eaaa8215ceec"></a>UCS_OP_SET</em>&nbsp;</td><td>
+<p>Operation Set (Property) </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga02d4f5d689f2583ee620ff4c26a51afaa3f69bc6e06a743468e1f1635d77adad8"></a>UCS_OP_GET</em>&nbsp;</td><td>
+<p>Operation Get (Property) </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga02d4f5d689f2583ee620ff4c26a51afaa30680ea01486e5729efd9b8a3a22313f"></a>UCS_OP_SETGET</em>&nbsp;</td><td>
+<p>Operation SetGet (Property) </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga02d4f5d689f2583ee620ff4c26a51afaa8d751c97bde87443c2259dffed699e1b"></a>UCS_OP_INC</em>&nbsp;</td><td>
+<p>Operation Increment (Property) </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga02d4f5d689f2583ee620ff4c26a51afaa53d0fbdf31fa445a02e84ed4a494153d"></a>UCS_OP_DEC</em>&nbsp;</td><td>
+<p>Operation Decrement (Property) </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga02d4f5d689f2583ee620ff4c26a51afaafc94e06298ee531eb4557a4a066dfb59"></a>UCS_OP_STATUS</em>&nbsp;</td><td>
+<p>Operation Status (Property) </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga02d4f5d689f2583ee620ff4c26a51afaab4e6745410e913098b6fe8628337bd0b"></a>UCS_OP_START</em>&nbsp;</td><td>
+<p>Operation Start (Method) </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga02d4f5d689f2583ee620ff4c26a51afaa16fce7c1ed324daa8942b21951b805cb"></a>UCS_OP_ABORT</em>&nbsp;</td><td>
+<p>Operation Abort (Method) </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga02d4f5d689f2583ee620ff4c26a51afaae3056001809b7338835a44d0ffd5f6c5"></a>UCS_OP_STARTRESULT</em>&nbsp;</td><td>
+<p>Operation StartResult (Method) </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga02d4f5d689f2583ee620ff4c26a51afaa8c2b26389a77be12f491fc3154987c58"></a>UCS_OP_PROCESSING</em>&nbsp;</td><td>
+<p>Operation Processing (Method) </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga02d4f5d689f2583ee620ff4c26a51afaa7fc5e535407db1fe019d6db6e89ffd66"></a>UCS_OP_RESULT</em>&nbsp;</td><td>
+<p>Operation Result (Method) </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga02d4f5d689f2583ee620ff4c26a51afaa7f78b7ab9308fc50de2b440efac06fea"></a>UCS_OP_STARTACK</em>&nbsp;</td><td>
+<p>Operation StartAck (Method) </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga02d4f5d689f2583ee620ff4c26a51afaa1ba506fde54dfb0ad969028ab16a6c98"></a>UCS_OP_ABORTACK</em>&nbsp;</td><td>
+<p>Operation AbortAck (Method) </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga02d4f5d689f2583ee620ff4c26a51afaa9cd8321db02fe32bb577a3654487fba7"></a>UCS_OP_STARTRESULTACK</em>&nbsp;</td><td>
+<p>Operation StartResultAck (Method) </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga02d4f5d689f2583ee620ff4c26a51afaa289256756b3f271d04535462235b9d8a"></a>UCS_OP_PROCESSINGACK</em>&nbsp;</td><td>
+<p>Operation ProcessingAck (Method) </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga02d4f5d689f2583ee620ff4c26a51afaa5b48c9460922585b8b25868e05cc6d6c"></a>UCS_OP_RESULTACK</em>&nbsp;</td><td>
+<p>Operation ResultAck (Method) </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga02d4f5d689f2583ee620ff4c26a51afaa64c538f9ef7c103a2541c81ae4bd501d"></a>UCS_OP_GETINTERFACE</em>&nbsp;</td><td>
+<p>Operation GetInterface (Property/Method) </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga02d4f5d689f2583ee620ff4c26a51afaa3ffc2003b1ea184bfb36a8a50af424ba"></a>UCS_OP_INTERFACE</em>&nbsp;</td><td>
+<p>Operation Interface (Property/Method) </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga02d4f5d689f2583ee620ff4c26a51afaa7dca59717427fc0b806a2e5353cc2ece"></a>UCS_OP_ERROR</em>&nbsp;</td><td>
+<p>Operation Error (Property/Method) </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga02d4f5d689f2583ee620ff4c26a51afaac8a58af946fe576138bfb6fbb156700e"></a>UCS_OP_ERRORACK</em>&nbsp;</td><td>
+<p>Operation ErrorAck (Property/Method) </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s.html">Tracing/Debugging Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga151ca26ee8e23168141b57c7c672733c.html b/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga151ca26ee8e23168141b57c7c672733c.html
new file mode 100644
index 0000000..8620d0d
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga151ca26ee8e23168141b57c7c672733c.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: UCS_ADDR_LOCAL_INIC</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___t_r_a_c_e___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s.html">Tracing/Debugging Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga2e80fc8516fc34b7a601103291fb155f.html b/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga2e80fc8516fc34b7a601103291fb155f.html
new file mode 100644
index 0000000..1be29c6
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga2e80fc8516fc34b7a601103291fb155f.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: UCS_ADDR_INTERNAL</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___t_r_a_c_e___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s.html">Tracing/Debugging Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga3d9b0fe84140fbc49ba03b685f6c0443.html b/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga3d9b0fe84140fbc49ba03b685f6c0443.html
new file mode 100644
index 0000000..23fdad8
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga3d9b0fe84140fbc49ba03b685f6c0443.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: UCS_ADDR_BROADCAST_BLOCKING</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___t_r_a_c_e___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga3d9b0fe84140fbc49ba03b685f6c0443"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define UCS_ADDR_BROADCAST_BLOCKING&#160;&#160;&#160;0x03C8U</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Blocking broadcast destination address. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s.html">Tracing/Debugging Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html b/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html
new file mode 100644
index 0000000..3b45892
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html
@@ -0,0 +1,167 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_MsgTxStatus_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___t_r_a_c_e___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gac5aa79eb466a98f645c0302f402294d6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#gac5aa79eb466a98f645c0302f402294d6">Ucs_MsgTxStatus_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Message transmission status for internal/debug use. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="ggac5aa79eb466a98f645c0302f402294d6a86fbcae96541ea83f7a283fc973288f2"></a>UCS_MSG_STAT_OK</em>&nbsp;</td><td>
+<p>Transmission succeeded. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggac5aa79eb466a98f645c0302f402294d6a9a33312cd89f2f2e917c30bd304a9e64"></a>UCS_MSG_STAT_ERROR_CFG_NO_RCVR</em>&nbsp;</td><td>
+<p>No internal receiver exists. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggac5aa79eb466a98f645c0302f402294d6a4e0b2b5525b1de2e4305f95ecd39b652"></a>UCS_MSG_STAT_ERROR_BF</em>&nbsp;</td><td>
+<p>Buffer full. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggac5aa79eb466a98f645c0302f402294d6ab82dfa03424d6bb820ccec46e51b3fa4"></a>UCS_MSG_STAT_ERROR_CRC</em>&nbsp;</td><td>
+<p>CRC. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggac5aa79eb466a98f645c0302f402294d6a451d05814d329a24ef6820b885569370"></a>UCS_MSG_STAT_ERROR_ID</em>&nbsp;</td><td>
+<p>Corrupted identifiers. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggac5aa79eb466a98f645c0302f402294d6a0b34261bd4e959454ee3b4eab0f72e4c"></a>UCS_MSG_STAT_ERROR_ACK</em>&nbsp;</td><td>
+<p>Corrupted PACK or CACK. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggac5aa79eb466a98f645c0302f402294d6a9bc8c6ee18b2265f67413894e75073f1"></a>UCS_MSG_STAT_ERROR_TIMEOUT</em>&nbsp;</td><td>
+<p>TX timeout. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggac5aa79eb466a98f645c0302f402294d6a648be71e021d246fe90ce1b2cb4166b1"></a>UCS_MSG_STAT_ERROR_FATAL_WT</em>&nbsp;</td><td>
+<p>Wrong target. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggac5aa79eb466a98f645c0302f402294d6aa86b80e9a990af483bf757fc147ba7c5"></a>UCS_MSG_STAT_ERROR_FATAL_OA</em>&nbsp;</td><td>
+<p>Own node address. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggac5aa79eb466a98f645c0302f402294d6ac6dbca4bb4f732e389d8b242eebc424e"></a>UCS_MSG_STAT_ERROR_NA_TRANS</em>&nbsp;</td><td>
+<p>Control channel was switched off and a pending transmission was canceled. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggac5aa79eb466a98f645c0302f402294d6a75e329b060753596c4102c798752f4da"></a>UCS_MSG_STAT_ERROR_NA_OFF</em>&nbsp;</td><td>
+<p>Control channel not available. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggac5aa79eb466a98f645c0302f402294d6a2f33c4f038e0ddac2c4c4e10ddfe9ae6"></a>UCS_MSG_STAT_ERROR_UNKNOWN</em>&nbsp;</td><td>
+<p>Unknown error status. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggac5aa79eb466a98f645c0302f402294d6a8e0466e6c50ca8200d3a5a60e6922769"></a>UCS_MSG_STAT_ERROR_SYNC</em>&nbsp;</td><td>
+<p>Internal error which is notified if communication link with INIC is lost. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s.html">Tracing/Debugging Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gacdfa5380b7e26d87ebe4f8d2478ce280.html b/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gacdfa5380b7e26d87ebe4f8d2478ce280.html
new file mode 100644
index 0000000..b96fce2
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gacdfa5380b7e26d87ebe4f8d2478ce280.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: UCS_ADDR_DEBUG</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___t_r_a_c_e___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s.html">Tracing/Debugging Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gaed7f13e95bb2324327de175834aa02ff.html b/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gaed7f13e95bb2324327de175834aa02ff.html
new file mode 100644
index 0000000..4ac80f5
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gaed7f13e95bb2324327de175834aa02ff.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: UCS_ADDR_BROADCAST_UNBLOCKING</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___t_r_a_c_e___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gaed7f13e95bb2324327de175834aa02ff"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define UCS_ADDR_BROADCAST_UNBLOCKING&#160;&#160;&#160;0x03FFU</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Unblocking broadcast destination address. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s.html">Tracing/Debugging Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e_ga038add4a7ca8adb0f60c34cedbfcf8b9.html b/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e_ga038add4a7ca8adb0f60c34cedbfcf8b9.html
new file mode 100644
index 0000000..9230a59
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e_ga038add4a7ca8adb0f60c34cedbfcf8b9.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: UCS_TR_SIZE_BUFFER</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___t_r_a_c_e.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga038add4a7ca8adb0f60c34cedbfcf8b9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define UCS_TR_SIZE_BUFFER&#160;&#160;&#160;256</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Defines the needed buffer size to decode a trace entry. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___t_r_a_c_e.html">Tracing/Debugging</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e_gaebb5aec06a7196b1247805a53a96f926.html b/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e_gaebb5aec06a7196b1247805a53a96f926.html
new file mode 100644
index 0000000..3fd6ea5
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e_gaebb5aec06a7196b1247805a53a96f926.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: UCS_TR_INFO</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___t_r_a_c_e.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gaebb5aec06a7196b1247805a53a96f926"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define UCS_TR_INFO</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Trace macro to capture trace info events. </p>
+<p>This macro is used to enable the capturing of trace info events. The macro must be mapped onto a user-defined function. To disable the trace info events, the macro must not be defined. The mapped user-defined function must adhere to the following function signature.</p>
+<p>void (*Ucs_TraceCb_t)(void * ucs_user_ptr, const char module_str[], const char entry_str[], uint16_t vargs_cnt, ...);</p>
+<ul>
+<li><b>ucs_user_ptr</b><br/>
+Reference to the User argument</li>
+<li><b>module_str</b><br/>
+The name of the software module that has posted the trace</li>
+<li><b>entry_str</b><br/>
+The trace entry as formatted string</li>
+<li><b>vargs_cnt</b><br/>
+Number of trace arguments which will be passed within the variable argument list</li>
+<li><b>[...]</b><br/>
+Variable argument list to pass trace arguments</li>
+</ul>
+<dl class="section warning"><dt>Warning</dt><dd>Do not assign UCS_TR_INFO in a production system. This has major effects on the CPU load and runtime. UCS_TR_INFO is intended for debugging software during development phase. Microchip Support might request you to assign of this macro to spy on internal events. Disable this macro definition after your support case is closed.</dd></dl>
+<p><b>Example:</b> </p>
+<div class="fragment"><div class="line"><span class="keyword">extern</span> <span class="keywordtype">void</span> App_UcsTraceInfo(<span class="keywordtype">void</span> * ucs_user_ptr,</div>
+<div class="line"> <span class="keyword">const</span> <span class="keywordtype">char</span> module_str[],</div>
+<div class="line"> <span class="keyword">const</span> <span class="keywordtype">char</span> entry_str[],</div>
+<div class="line"> uint16_t vargs_cnt,</div>
+<div class="line"> ...);</div>
+<div class="line"></div>
+<div class="line"><span class="preprocessor">#define UCS_TR_INFO App_UcsTraceInfo</span></div>
+</div><!-- fragment -->
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___t_r_a_c_e.html">Tracing/Debugging</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e_gaf18b6867951fd06359788f6595b78195.html b/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e_gaf18b6867951fd06359788f6595b78195.html
new file mode 100644
index 0000000..15f8ef6
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e_gaf18b6867951fd06359788f6595b78195.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_DebugErrorMsgCb_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___t_r_a_c_e.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gaf18b6867951fd06359788f6595b78195"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* Ucs_DebugErrorMsgCb_t)(<a class="el" href="struct_msg___most_tel__t.html">Msg_MostTel_t</a> *msg_ptr, void *user_ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Optional callback function used to debug received raw messages with OpType UCS_OP_ERROR and UCS_OP_ERRORACK. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">msg_ptr</td><td>Reference to an error messages received from network or the local INIC. It is not allowed to modify the message. The reference becomes invalid when the callback function returns. </td></tr>
+ <tr><td class="paramname">user_ptr</td><td>User reference provided in <a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t::user_ptr</a> </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___t_r_a_c_e.html">Tracing/Debugging</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e_gaf7f45aee7bbbd7f4a58b71a5268ecdb6.html b/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e_gaf7f45aee7bbbd7f4a58b71a5268ecdb6.html
new file mode 100644
index 0000000..d047311
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___t_r_a_c_e_gaf7f45aee7bbbd7f4a58b71a5268ecdb6.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: UCS_TR_ERROR</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___t_r_a_c_e.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gaf7f45aee7bbbd7f4a58b71a5268ecdb6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define UCS_TR_ERROR</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Trace macro to capture trace error events. </p>
+<p>This macro is used to enable the capturing of trace error events. The macro must be mapped onto a user-defined function. To disable the trace error events, the macro must not be defined. The mapped user-defined function must adhere to the following function signature.</p>
+<p>void (*Ucs_TraceCb_t)(void * ucs_user_ptr, const char module_str[], const char entry_str[], uint16_t vargs_cnt, ...);</p>
+<ul>
+<li><b>ucs_user_ptr</b><br/>
+Reference to the User argument</li>
+<li><b>module_str</b><br/>
+The name of the software module that has posted the trace</li>
+<li><b>entry_str</b><br/>
+The trace entry as formatted string</li>
+<li><b>vargs_cnt</b><br/>
+Number of trace arguments which will be passed within the variable argument list</li>
+<li><b>[...]</b><br/>
+Variable argument list to pass trace arguments</li>
+</ul>
+<dl class="section note"><dt>Note</dt><dd>The captured error events can be used for logging and as a first step for debugging unexpected behavior. However, the application must not derive any action when an error is indicated by the trace interface. An application must handle rely on result callback functions and handle "general.error_fptr()".</dd></dl>
+<p><b>Example:</b> </p>
+<div class="fragment"><div class="line"><span class="keyword">extern</span> <span class="keywordtype">void</span> App_UcsTraceError(<span class="keywordtype">void</span> * ucs_user_ptr,</div>
+<div class="line"> <span class="keyword">const</span> <span class="keywordtype">char</span> module_str[],</div>
+<div class="line"> <span class="keyword">const</span> <span class="keywordtype">char</span> entry_str[],</div>
+<div class="line"> uint16_t vargs_cnt,</div>
+<div class="line"> ...);</div>
+<div class="line"></div>
+<div class="line"><span class="preprocessor">#define UCS_TR_ERROR App_UcsTraceError</span></div>
+</div><!-- fragment -->
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___t_r_a_c_e.html">Tracing/Debugging</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___c_f_g.html b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___c_f_g.html
new file mode 100644
index 0000000..5aac773
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___c_f_g.html
@@ -0,0 +1,133 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: XRM Configuration Macros</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___x_r_m___c_f_g.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#define-members">Macros</a> </div>
+ <div class="headertitle">
+<div class="title">XRM Configuration Macros</div> </div>
+<div class="ingroups"><a class="el" href="group___g___u_c_s___i_r_m.html">Extended Resources Management</a></div></div><!--header-->
+<div class="contents">
+
+<p>Configurations Macros used by XRM service functions.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:ga70720ac0fdcbbbc7f4742654c8f8abc1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___x_r_m___c_f_g_ga70720ac0fdcbbbc7f4742654c8f8abc1.html#ga70720ac0fdcbbbc7f4742654c8f8abc1">UCS_NUM_REMOTE_DEVICES</a>&#160;&#160;&#160;0U</td></tr>
+<tr class="memdesc:ga70720ac0fdcbbbc7f4742654c8f8abc1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Customer assignment for number of remote devices required by Resources Management modules. <a href="#ga70720ac0fdcbbbc7f4742654c8f8abc1"></a><br/></td></tr>
+<tr class="separator:ga70720ac0fdcbbbc7f4742654c8f8abc1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaddc205bcdb37b435fddb292c416f605b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___x_r_m___c_f_g_gaddc205bcdb37b435fddb292c416f605b.html#gaddc205bcdb37b435fddb292c416f605b">UCS_XRM_NUM_JOBS</a></td></tr>
+<tr class="memdesc:gaddc205bcdb37b435fddb292c416f605b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the size of the internal job list. <a href="#gaddc205bcdb37b435fddb292c416f605b"></a><br/></td></tr>
+<tr class="separator:gaddc205bcdb37b435fddb292c416f605b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9bbd7e20bff0c7ea54699df5969e933a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___x_r_m___c_f_g_ga9bbd7e20bff0c7ea54699df5969e933a.html#ga9bbd7e20bff0c7ea54699df5969e933a">UCS_XRM_NUM_RESOURCES</a></td></tr>
+<tr class="memdesc:ga9bbd7e20bff0c7ea54699df5969e933a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the number of provided resources. <a href="#ga9bbd7e20bff0c7ea54699df5969e933a"></a><br/></td></tr>
+<tr class="separator:ga9bbd7e20bff0c7ea54699df5969e933a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Configurations Macros used by XRM service functions. </p>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___c_f_g.js b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___c_f_g.js
new file mode 100644
index 0000000..35c5edb
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___c_f_g.js
@@ -0,0 +1,6 @@
+var group___g___u_c_s___x_r_m___c_f_g =
+[
+ [ "UCS_NUM_REMOTE_DEVICES", "group___g___u_c_s___x_r_m___c_f_g_ga70720ac0fdcbbbc7f4742654c8f8abc1.html#ga70720ac0fdcbbbc7f4742654c8f8abc1", null ],
+ [ "UCS_XRM_NUM_JOBS", "group___g___u_c_s___x_r_m___c_f_g_gaddc205bcdb37b435fddb292c416f605b.html#gaddc205bcdb37b435fddb292c416f605b", null ],
+ [ "UCS_XRM_NUM_RESOURCES", "group___g___u_c_s___x_r_m___c_f_g_ga9bbd7e20bff0c7ea54699df5969e933a.html#ga9bbd7e20bff0c7ea54699df5969e933a", null ]
+]; \ No newline at end of file
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___c_f_g_ga70720ac0fdcbbbc7f4742654c8f8abc1.html b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___c_f_g_ga70720ac0fdcbbbc7f4742654c8f8abc1.html
new file mode 100644
index 0000000..d4c0c90
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___c_f_g_ga70720ac0fdcbbbc7f4742654c8f8abc1.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: UCS_NUM_REMOTE_DEVICES</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___x_r_m___c_f_g.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga70720ac0fdcbbbc7f4742654c8f8abc1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define UCS_NUM_REMOTE_DEVICES&#160;&#160;&#160;0U</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Customer assignment for number of remote devices required by Resources Management modules. </p>
+<p>If the macro is not defined, the UNICENS library will use a default value of 0. The user can overwrite this default value by defining the macro. Valid values are in the range from 0 to 63. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___x_r_m___c_f_g.html">XRM Configuration Macros</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___c_f_g_ga9bbd7e20bff0c7ea54699df5969e933a.html b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___c_f_g_ga9bbd7e20bff0c7ea54699df5969e933a.html
new file mode 100644
index 0000000..45011ae
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___c_f_g_ga9bbd7e20bff0c7ea54699df5969e933a.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: UCS_XRM_NUM_RESOURCES</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___x_r_m___c_f_g.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga9bbd7e20bff0c7ea54699df5969e933a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define UCS_XRM_NUM_RESOURCES</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Defines the number of provided resources. </p>
+<p>The number of required resources depends on the defined XRM jobs. The definition of the public macro UCS_XRM_NUM_RESOURCES must be part of the XRM configuration file ucs_xrm_cfg.h. Valid range: 1..254. Default value: 8. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___x_r_m___c_f_g.html">XRM Configuration Macros</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___c_f_g_gaddc205bcdb37b435fddb292c416f605b.html b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___c_f_g_gaddc205bcdb37b435fddb292c416f605b.html
new file mode 100644
index 0000000..2c9081e
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___c_f_g_gaddc205bcdb37b435fddb292c416f605b.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: UCS_XRM_NUM_JOBS</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___x_r_m___c_f_g.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gaddc205bcdb37b435fddb292c416f605b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define UCS_XRM_NUM_JOBS</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Defines the size of the internal job list. </p>
+<p>The number of XRM jobs to execute. The value is used to specify the size of the internal job list. The definition of this macro must be part of the XRM configuration file ucs_xrm_cfg.h. Valid range: 1..254. Default value: 1. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___x_r_m___c_f_g.html">XRM Configuration Macros</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m.html b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m.html
new file mode 100644
index 0000000..a0838c8
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m.html
@@ -0,0 +1,330 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: XRM SubTypes</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___x_r_m___e_n_u_m.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#enum-members">Enumerations</a> </div>
+ <div class="headertitle">
+<div class="title">XRM SubTypes</div> </div>
+<div class="ingroups"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s.html">XRM Referred Types</a></div></div><!--header-->
+<div class="contents">
+
+<p>Referred types used in XRM Sockets and Ports description.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:ga8836a818f79ff1315f7f76bcd8e50a4d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga8836a818f79ff1315f7f76bcd8e50a4d.html#ga8836a818f79ff1315f7f76bcd8e50a4d">Ucs_Avp_IsocPacketSize_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga8836a818f79ff1315f7f76bcd8e50a4d.html#gga8836a818f79ff1315f7f76bcd8e50a4da5b103421ef1b66b0f939bf1331070d31">UCS_ISOC_PCKT_SIZE_188</a> = 188U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga8836a818f79ff1315f7f76bcd8e50a4d.html#gga8836a818f79ff1315f7f76bcd8e50a4da25b3c21607a88231bab533a93b8d6849">UCS_ISOC_PCKT_SIZE_196</a> = 196U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga8836a818f79ff1315f7f76bcd8e50a4d.html#gga8836a818f79ff1315f7f76bcd8e50a4da36f9f325486cb5312551b573efdaae61">UCS_ISOC_PCKT_SIZE_206</a> = 206U
+<br/>
+ }</td></tr>
+<tr class="memdesc:ga8836a818f79ff1315f7f76bcd8e50a4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data packet size of the isochronous channel. <a href="group___g___u_c_s___x_r_m___e_n_u_m_ga8836a818f79ff1315f7f76bcd8e50a4d.html#ga8836a818f79ff1315f7f76bcd8e50a4d">More...</a><br/></td></tr>
+<tr class="separator:ga8836a818f79ff1315f7f76bcd8e50a4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaef12892b897a1cd1013357cfe63f2434"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gaef12892b897a1cd1013357cfe63f2434.html#gaef12892b897a1cd1013357cfe63f2434">Ucs_Sync_MuteMode_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gaef12892b897a1cd1013357cfe63f2434.html#ggaef12892b897a1cd1013357cfe63f2434a6e21656de3fa891d522f272307fca772">UCS_SYNC_MUTE_MODE_NO_MUTING</a> = 0x00U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gaef12892b897a1cd1013357cfe63f2434.html#ggaef12892b897a1cd1013357cfe63f2434a0648d4c524869e191575e69531947171">UCS_SYNC_MUTE_MODE_MUTE_SIGNAL</a> = 0x01U
+<br/>
+ }</td></tr>
+<tr class="memdesc:gaef12892b897a1cd1013357cfe63f2434"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mute Mode. <a href="group___g___u_c_s___x_r_m___e_n_u_m_gaef12892b897a1cd1013357cfe63f2434.html#gaef12892b897a1cd1013357cfe63f2434">More...</a><br/></td></tr>
+<tr class="separator:gaef12892b897a1cd1013357cfe63f2434"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga28477f727fe10f9d6fd21cfc98a9c115"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga28477f727fe10f9d6fd21cfc98a9c115.html#ga28477f727fe10f9d6fd21cfc98a9c115">Ucs_SocketDirection_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga28477f727fe10f9d6fd21cfc98a9c115.html#gga28477f727fe10f9d6fd21cfc98a9c115a02fdd605a809a4a660e25cfd888347c7">UCS_SOCKET_DIR_INPUT</a> = 0U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga28477f727fe10f9d6fd21cfc98a9c115.html#gga28477f727fe10f9d6fd21cfc98a9c115aa14fc95a1f8c5f54aa6d601614a887fe">UCS_SOCKET_DIR_OUTPUT</a> = 1U
+<br/>
+ }</td></tr>
+<tr class="memdesc:ga28477f727fe10f9d6fd21cfc98a9c115"><td class="mdescLeft">&#160;</td><td class="mdescRight">Direction of the data stream from the perspective of the INIC. <a href="group___g___u_c_s___x_r_m___e_n_u_m_ga28477f727fe10f9d6fd21cfc98a9c115.html#ga28477f727fe10f9d6fd21cfc98a9c115">More...</a><br/></td></tr>
+<tr class="separator:ga28477f727fe10f9d6fd21cfc98a9c115"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab29e10223e27331045485facbe4102ee"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gab29e10223e27331045485facbe4102ee.html#gab29e10223e27331045485facbe4102ee">Ucs_Most_SocketDataType_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gab29e10223e27331045485facbe4102ee.html#ggab29e10223e27331045485facbe4102eea345ad57d9919545fa5e5bf8393b0224f">UCS_MOST_SCKT_SYNC_DATA</a> = 0U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gab29e10223e27331045485facbe4102ee.html#ggab29e10223e27331045485facbe4102eeac9bedb4912676bc0a2fdca379f5dc9e7">UCS_MOST_SCKT_AV_PACKETIZED</a> = 3U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gab29e10223e27331045485facbe4102ee.html#ggab29e10223e27331045485facbe4102eeab11bbea636b1bbfbba10d9073ba09896">UCS_MOST_SCKT_QOS_IP</a> = 4U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gab29e10223e27331045485facbe4102ee.html#ggab29e10223e27331045485facbe4102eea17d7e05acbb595e6d96d985e90c874ba">UCS_MOST_SCKT_DISC_FRAME_PHASE</a> = 5U
+<br/>
+ }</td></tr>
+<tr class="memdesc:gab29e10223e27331045485facbe4102ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data type of MOST Sockets. <a href="group___g___u_c_s___x_r_m___e_n_u_m_gab29e10223e27331045485facbe4102ee.html#gab29e10223e27331045485facbe4102ee">More...</a><br/></td></tr>
+<tr class="separator:gab29e10223e27331045485facbe4102ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf3facaf3378409c31465c68380990b53"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html#gaf3facaf3378409c31465c68380990b53">Ucs_Mlb_SocketDataType_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html#ggaf3facaf3378409c31465c68380990b53a09527a2a481a353e06071b0d83a97fd9">UCS_MLB_SCKT_SYNC_DATA</a> = 0U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html#ggaf3facaf3378409c31465c68380990b53a8f7c19482d19a5e61d7f57a41f1605a5">UCS_MLB_SCKT_CONTROL_DATA</a> = 2U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html#ggaf3facaf3378409c31465c68380990b53a6b4873430ce4475a59af9c849238b8a1">UCS_MLB_SCKT_AV_PACKETIZED</a> = 3U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html#ggaf3facaf3378409c31465c68380990b53a093d3a85730728a90043a05ab042bd25">UCS_MLB_SCKT_QOS_IP</a> = 4U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html#ggaf3facaf3378409c31465c68380990b53aa26b21e1fb0aca35442102baa8f4a11a">UCS_MLB_SCKT_DISC_FRAME_PHASE</a> = 5U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html#ggaf3facaf3378409c31465c68380990b53ac365dd966ebfeeff2906e73f16c5e441">UCS_MLB_SCKT_IPC_PACKET</a> = 7U
+<br/>
+ }</td></tr>
+<tr class="memdesc:gaf3facaf3378409c31465c68380990b53"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data type of MediaLB Sockets. <a href="group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html#gaf3facaf3378409c31465c68380990b53">More...</a><br/></td></tr>
+<tr class="separator:gaf3facaf3378409c31465c68380990b53"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafd56377a5a1f782e64260d18caf17dc9"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gafd56377a5a1f782e64260d18caf17dc9.html#gafd56377a5a1f782e64260d18caf17dc9">Ucs_Usb_SocketDataType_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gafd56377a5a1f782e64260d18caf17dc9.html#ggafd56377a5a1f782e64260d18caf17dc9a4df4e4d4848358e18a3ef6386db80acf">UCS_USB_SCKT_SYNC_DATA</a> = 0U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gafd56377a5a1f782e64260d18caf17dc9.html#ggafd56377a5a1f782e64260d18caf17dc9a257142db7cda65de457ce1b5614de162">UCS_USB_SCKT_CONTROL_DATA</a> = 2U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gafd56377a5a1f782e64260d18caf17dc9.html#ggafd56377a5a1f782e64260d18caf17dc9afbd766c42efdcb7bb7f7dddbbe863f0b">UCS_USB_SCKT_AV_PACKETIZED</a> = 3U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gafd56377a5a1f782e64260d18caf17dc9.html#ggafd56377a5a1f782e64260d18caf17dc9a6a225da98d0fb6f08845c7b0c3480109">UCS_USB_SCKT_IPC_PACKET</a> = 7U
+<br/>
+ }</td></tr>
+<tr class="memdesc:gafd56377a5a1f782e64260d18caf17dc9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data type of USB Sockets. <a href="group___g___u_c_s___x_r_m___e_n_u_m_gafd56377a5a1f782e64260d18caf17dc9.html#gafd56377a5a1f782e64260d18caf17dc9">More...</a><br/></td></tr>
+<tr class="separator:gafd56377a5a1f782e64260d18caf17dc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa573e5854eb036998eec837e9fbf0ae1"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gaa573e5854eb036998eec837e9fbf0ae1.html#gaa573e5854eb036998eec837e9fbf0ae1">Ucs_Usb_PhysicalLayer_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gaa573e5854eb036998eec837e9fbf0ae1.html#ggaa573e5854eb036998eec837e9fbf0ae1aea428e9f9e380e629584c3989e4318b3">UCS_USB_PHY_LAYER_STANDARD</a> = 0U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gaa573e5854eb036998eec837e9fbf0ae1.html#ggaa573e5854eb036998eec837e9fbf0ae1a94962f9a6bce23c8ab29d9da551ef2c3">UCS_USB_PHY_LAYER_HSCI</a> = 1U
+<br/>
+ }</td></tr>
+<tr class="memdesc:gaa573e5854eb036998eec837e9fbf0ae1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Physical interface of the USB Port. <a href="group___g___u_c_s___x_r_m___e_n_u_m_gaa573e5854eb036998eec837e9fbf0ae1.html#gaa573e5854eb036998eec837e9fbf0ae1">More...</a><br/></td></tr>
+<tr class="separator:gaa573e5854eb036998eec837e9fbf0ae1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga12193f5b8d160e84ad8b9853b0308f63"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#ga12193f5b8d160e84ad8b9853b0308f63">Ucs_Mlb_ClockConfig_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63a25478748c90e08007550f3b6e069378a">UCS_MLB_CLK_CFG_256_FS</a> = 0U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63a13645115ff4864a09293ef5cdaaaf963">UCS_MLB_CLK_CFG_512_FS</a> = 1U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63a8da54fd7f88cdcea8971667824e2c5b7">UCS_MLB_CLK_CFG_1024_FS</a> = 2U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63afcdf9e1f4b0c6f42d1491384192f3578">UCS_MLB_CLK_CFG_2048_FS</a> = 3U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63a72d60c9e85da4923a494f394d8e644dd">UCS_MLB_CLK_CFG_3072_FS</a> = 4U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63ab1210db92ad1770f156c2686e0189024">UCS_MLB_CLK_CFG_4096_FS</a> = 5U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63abbb9505a7b8b38cd4a402a66adfba660">UCS_MLB_CLK_CFG_6144_FS</a> = 6U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63ade97fa17799ee97eebea56f563ef8e55">UCS_MLB_CLK_CFG_8192_FS</a> = 7U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63a0bd2aca9cfb3e4965d2a3b61aca9681f">UCS_MLB_CLK_CFG_WILDCARD</a> = 0xFFU
+<br/>
+ }</td></tr>
+<tr class="memdesc:ga12193f5b8d160e84ad8b9853b0308f63"><td class="mdescLeft">&#160;</td><td class="mdescRight">MediaLB clock speed configuration. <a href="group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#ga12193f5b8d160e84ad8b9853b0308f63">More...</a><br/></td></tr>
+<tr class="separator:ga12193f5b8d160e84ad8b9853b0308f63"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga793fd94e2e48ff7a7fce092e6e0039e4"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga793fd94e2e48ff7a7fce092e6e0039e4.html#ga793fd94e2e48ff7a7fce092e6e0039e4">Ucs_Rmck_PortClockSource_t</a> { <a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga793fd94e2e48ff7a7fce092e6e0039e4.html#gga793fd94e2e48ff7a7fce092e6e0039e4a0c106f34e8415ab3f01748a6bde15d8c">UCS_RMCK_PORT_CLK_SRC_NW_SYSTEM</a> = 0x01U
+ }</td></tr>
+<tr class="memdesc:ga793fd94e2e48ff7a7fce092e6e0039e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Source of the RMCK clock. <a href="group___g___u_c_s___x_r_m___e_n_u_m_ga793fd94e2e48ff7a7fce092e6e0039e4.html#ga793fd94e2e48ff7a7fce092e6e0039e4">More...</a><br/></td></tr>
+<tr class="separator:ga793fd94e2e48ff7a7fce092e6e0039e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga066850ed913a19025120619cca07fac6"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga066850ed913a19025120619cca07fac6.html#ga066850ed913a19025120619cca07fac6">Ucs_Pci_SocketDataType_t</a> { <a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga066850ed913a19025120619cca07fac6.html#gga066850ed913a19025120619cca07fac6a20039c896aa6b0c03a6e753040ae4db2">UCS_PCI_SCKT_AV_PACKETIZED</a> = 3U
+ }</td></tr>
+<tr class="memdesc:ga066850ed913a19025120619cca07fac6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data type of PCIe Sockets. <a href="group___g___u_c_s___x_r_m___e_n_u_m_ga066850ed913a19025120619cca07fac6.html#ga066850ed913a19025120619cca07fac6">More...</a><br/></td></tr>
+<tr class="separator:ga066850ed913a19025120619cca07fac6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6ea92012ace1c507dab36b727698a08e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga6ea92012ace1c507dab36b727698a08e.html#ga6ea92012ace1c507dab36b727698a08e">Ucs_Stream_PortOpMode_t</a> { <a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga6ea92012ace1c507dab36b727698a08e.html#gga6ea92012ace1c507dab36b727698a08ea10bf424b1ddb5c25b7659991fa761946">UCS_STREAM_PORT_OP_MODE_GENERIC</a> = 0x00U
+ }</td></tr>
+<tr class="memdesc:ga6ea92012ace1c507dab36b727698a08e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operation mode of the Streaming Port. <a href="group___g___u_c_s___x_r_m___e_n_u_m_ga6ea92012ace1c507dab36b727698a08e.html#ga6ea92012ace1c507dab36b727698a08e">More...</a><br/></td></tr>
+<tr class="separator:ga6ea92012ace1c507dab36b727698a08e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga83e210aa76632ea2191bd59ef7894432"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga83e210aa76632ea2191bd59ef7894432.html#ga83e210aa76632ea2191bd59ef7894432">Ucs_Stream_PortOption_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga83e210aa76632ea2191bd59ef7894432.html#gga83e210aa76632ea2191bd59ef7894432a5953e1aaabaaa5ae4a74fe0ec5842246">UCS_STREAM_PORT_OPT_IN_OUT</a> = 0x00U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga83e210aa76632ea2191bd59ef7894432.html#gga83e210aa76632ea2191bd59ef7894432ab2cb6fba4c684773db5ef4c7d4650311">UCS_STREAM_PORT_OPT_DUAL_IN</a> = 0x01U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga83e210aa76632ea2191bd59ef7894432.html#gga83e210aa76632ea2191bd59ef7894432a045ee94e54b8cb575ec5579ecded373a">UCS_STREAM_PORT_OPT_DUAL_OUT</a> = 0x02U
+<br/>
+ }</td></tr>
+<tr class="memdesc:ga83e210aa76632ea2191bd59ef7894432"><td class="mdescLeft">&#160;</td><td class="mdescRight">Direction of the physical pins of the indexed Streaming Port. <a href="group___g___u_c_s___x_r_m___e_n_u_m_ga83e210aa76632ea2191bd59ef7894432.html#ga83e210aa76632ea2191bd59ef7894432">More...</a><br/></td></tr>
+<tr class="separator:ga83e210aa76632ea2191bd59ef7894432"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3139c2b4d435622104235bd9fd9f478c"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga3139c2b4d435622104235bd9fd9f478c.html#ga3139c2b4d435622104235bd9fd9f478c">Ucs_Stream_PortClockMode_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga3139c2b4d435622104235bd9fd9f478c.html#gga3139c2b4d435622104235bd9fd9f478ca3c768bceb59f2b4ef488e285a9d11b20">UCS_STREAM_PORT_CLK_MODE_OUTPUT</a> = 0x00U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga3139c2b4d435622104235bd9fd9f478c.html#gga3139c2b4d435622104235bd9fd9f478ca3add1d998c379f1ece1dabd41e89d832">UCS_STREAM_PORT_CLK_MODE_INPUT</a> = 0x01U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga3139c2b4d435622104235bd9fd9f478c.html#gga3139c2b4d435622104235bd9fd9f478ca5614198d8e257bc689bcfccf09ad0d8f">UCS_STREAM_PORT_CLK_MODE_WILD</a> = 0xFFU
+<br/>
+ }</td></tr>
+<tr class="memdesc:ga3139c2b4d435622104235bd9fd9f478c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates if FSY/SCK signals are configured as outputs or inputs. <a href="group___g___u_c_s___x_r_m___e_n_u_m_ga3139c2b4d435622104235bd9fd9f478c.html#ga3139c2b4d435622104235bd9fd9f478c">More...</a><br/></td></tr>
+<tr class="separator:ga3139c2b4d435622104235bd9fd9f478c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga16d6cd08e925676dfade13e980f460b0"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga16d6cd08e925676dfade13e980f460b0.html#ga16d6cd08e925676dfade13e980f460b0">Ucs_Stream_PortClockDataDelay_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga16d6cd08e925676dfade13e980f460b0.html#gga16d6cd08e925676dfade13e980f460b0a4a03b7fe83667b4e5f2a355e2810ed6f">UCS_STREAM_PORT_CLK_DLY_NONE</a> = 0x00U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga16d6cd08e925676dfade13e980f460b0.html#gga16d6cd08e925676dfade13e980f460b0a57fd16fd3f918e55cb4fc665f4023c79">UCS_STREAM_PORT_CLK_DLY_DELAYED</a> = 0x01U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga16d6cd08e925676dfade13e980f460b0.html#gga16d6cd08e925676dfade13e980f460b0ae852c8c7676b739182f522d3ac1d54bd">UCS_STREAM_PORT_CLK_DLY_WILD</a> = 0xFFU
+<br/>
+ }</td></tr>
+<tr class="memdesc:ga16d6cd08e925676dfade13e980f460b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">This setting is only applicable to data pins used for Generic Streaming including any linked pins to Streaming Port B. All data pins share the same FSY / SCK signals, hence this setting applies to all data pins. <a href="group___g___u_c_s___x_r_m___e_n_u_m_ga16d6cd08e925676dfade13e980f460b0.html#ga16d6cd08e925676dfade13e980f460b0">More...</a><br/></td></tr>
+<tr class="separator:ga16d6cd08e925676dfade13e980f460b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0e856884fa1c7908c59718da0f396484"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#ga0e856884fa1c7908c59718da0f396484">Ucs_Stream_PortClockConfig_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#gga0e856884fa1c7908c59718da0f396484ae3b3cf726190fda9d105b4b7561cb455">UCS_STREAM_PORT_CLK_CFG_8FS</a> = 0x00U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#gga0e856884fa1c7908c59718da0f396484ad4d29b36625c2a20c585524b9bbeab10">UCS_STREAM_PORT_CLK_CFG_16FS</a> = 0x01U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#gga0e856884fa1c7908c59718da0f396484a23baa6e65f75b4b7bb11716bf01a2bda">UCS_STREAM_PORT_CLK_CFG_32FS</a> = 0x02U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#gga0e856884fa1c7908c59718da0f396484a6ecefb4d6d534dfc6225644bf6cb9823">UCS_STREAM_PORT_CLK_CFG_64FS</a> = 0x03U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#gga0e856884fa1c7908c59718da0f396484a070b6e6a42de4464e8c702b27fc56b26">UCS_STREAM_PORT_CLK_CFG_128FS</a> = 0x04U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#gga0e856884fa1c7908c59718da0f396484ab74d511c86daf3ce6aa90a98381c7e8a">UCS_STREAM_PORT_CLK_CFG_256FS</a> = 0x05U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#gga0e856884fa1c7908c59718da0f396484a5db76daf8c6e915500433b291457d2de">UCS_STREAM_PORT_CLK_CFG_512FS</a> = 0x06U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#gga0e856884fa1c7908c59718da0f396484ae8ea56789961bd68181d059180ecccd6">UCS_STREAM_PORT_CLK_CFG_WILD</a> = 0xFFU
+<br/>
+ }</td></tr>
+<tr class="memdesc:ga0e856884fa1c7908c59718da0f396484"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clock speed configuration of the SCK signal. <a href="group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#ga0e856884fa1c7908c59718da0f396484">More...</a><br/></td></tr>
+<tr class="separator:ga0e856884fa1c7908c59718da0f396484"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae12684f1b74844d622e59da79f1a23f8"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gae12684f1b74844d622e59da79f1a23f8.html#gae12684f1b74844d622e59da79f1a23f8">Ucs_Stream_SocketDataType_t</a> { <a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gae12684f1b74844d622e59da79f1a23f8.html#ggae12684f1b74844d622e59da79f1a23f8a547bb39c45cc5788c3e5352f2b7fa76f">UCS_STREAM_PORT_SCKT_SYNC_DATA</a> = 0x00U
+ }</td></tr>
+<tr class="memdesc:gae12684f1b74844d622e59da79f1a23f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data types of Streaming Sockets. <a href="group___g___u_c_s___x_r_m___e_n_u_m_gae12684f1b74844d622e59da79f1a23f8.html#gae12684f1b74844d622e59da79f1a23f8">More...</a><br/></td></tr>
+<tr class="separator:gae12684f1b74844d622e59da79f1a23f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaadbd9007127f39c3c257040adf063d07"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gaadbd9007127f39c3c257040adf063d07.html#gaadbd9007127f39c3c257040adf063d07">Ucs_Stream_PortPinId_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gaadbd9007127f39c3c257040adf063d07.html#ggaadbd9007127f39c3c257040adf063d07a16eeeaad94f4398034b16f32832b2b52">UCS_STREAM_PORT_PIN_ID_SRXA0</a> = 0x00U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gaadbd9007127f39c3c257040adf063d07.html#ggaadbd9007127f39c3c257040adf063d07a111c042a8036aef129575cee99766a50">UCS_STREAM_PORT_PIN_ID_SRXA1</a> = 0x01U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gaadbd9007127f39c3c257040adf063d07.html#ggaadbd9007127f39c3c257040adf063d07a9c838b934823acccb059f360dd23d4d3">UCS_STREAM_PORT_PIN_ID_SRXB0</a> = 0x10U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gaadbd9007127f39c3c257040adf063d07.html#ggaadbd9007127f39c3c257040adf063d07a743fac004ed325564161877611bdd074">UCS_STREAM_PORT_PIN_ID_SRXB1</a> = 0x11U
+<br/>
+ }</td></tr>
+<tr class="memdesc:gaadbd9007127f39c3c257040adf063d07"><td class="mdescLeft">&#160;</td><td class="mdescRight">ID of the serial interface pin of the addressed Streaming Port instance to which the socket should be attached to. <a href="group___g___u_c_s___x_r_m___e_n_u_m_gaadbd9007127f39c3c257040adf063d07.html#gaadbd9007127f39c3c257040adf063d07">More...</a><br/></td></tr>
+<tr class="separator:gaadbd9007127f39c3c257040adf063d07"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga02741bef1059621aaf6cf4fa956cfccf"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga02741bef1059621aaf6cf4fa956cfccf.html#ga02741bef1059621aaf6cf4fa956cfccf">Ucs_Stream_PortDataAlign_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga02741bef1059621aaf6cf4fa956cfccf.html#gga02741bef1059621aaf6cf4fa956cfccfa7505ae359df8d66ec68bacb78c049f52">UCS_STREAM_PORT_ALGN_LEFT16BIT</a> = 0x00U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga02741bef1059621aaf6cf4fa956cfccf.html#gga02741bef1059621aaf6cf4fa956cfccfa64ff85efa59d4760e4dba13678c7b802">UCS_STREAM_PORT_ALGN_LEFT24BIT</a> = 0x01U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga02741bef1059621aaf6cf4fa956cfccf.html#gga02741bef1059621aaf6cf4fa956cfccfae288dcb736db417e450f52b59da4efd6">UCS_STREAM_PORT_ALGN_RIGHT16BIT</a> = 0x02U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga02741bef1059621aaf6cf4fa956cfccf.html#gga02741bef1059621aaf6cf4fa956cfccfa1c36b204751eff3352215d86b703d9d6">UCS_STREAM_PORT_ALGN_RIGHT24BIT</a> = 0x03U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga02741bef1059621aaf6cf4fa956cfccf.html#gga02741bef1059621aaf6cf4fa956cfccfa8511f386d32e3e1eacfb7763528ae198">UCS_STREAM_PORT_ALGN_SEQ</a> = 0x04U
+<br/>
+ }</td></tr>
+<tr class="memdesc:ga02741bef1059621aaf6cf4fa956cfccf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the alignment of the data bytes within the streaming port frame. <a href="group___g___u_c_s___x_r_m___e_n_u_m_ga02741bef1059621aaf6cf4fa956cfccf.html#ga02741bef1059621aaf6cf4fa956cfccf">More...</a><br/></td></tr>
+<tr class="separator:ga02741bef1059621aaf6cf4fa956cfccf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga902951b9083ff58a88e19e151b57106a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga902951b9083ff58a88e19e151b57106a.html#ga902951b9083ff58a88e19e151b57106a">Ucs_Most_PortAvail_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga902951b9083ff58a88e19e151b57106a.html#gga902951b9083ff58a88e19e151b57106aaa0255a1f099a88d43d562c2c3f9e7307">UCS_MOST_PORT_AVAIL</a> = 0x01U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga902951b9083ff58a88e19e151b57106a.html#gga902951b9083ff58a88e19e151b57106aa367f9c085169b943f1084f48e2db430c">UCS_MOST_PORT_NOT_AVAIL</a> = 0x00U
+<br/>
+ }</td></tr>
+<tr class="memdesc:ga902951b9083ff58a88e19e151b57106a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates if the MOST Network Port is available and ready for streaming data connections. <a href="group___g___u_c_s___x_r_m___e_n_u_m_ga902951b9083ff58a88e19e151b57106a.html#ga902951b9083ff58a88e19e151b57106a">More...</a><br/></td></tr>
+<tr class="separator:ga902951b9083ff58a88e19e151b57106a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga24bf81b4e52fc1fb01deba9165d7c79e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga24bf81b4e52fc1fb01deba9165d7c79e.html#ga24bf81b4e52fc1fb01deba9165d7c79e">Ucs_Most_PortAvailInfo_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga24bf81b4e52fc1fb01deba9165d7c79e.html#gga24bf81b4e52fc1fb01deba9165d7c79eae407528edcdb4d1b773340cf024e7c30">UCS_MOST_PRT_AVL_INF_REGULAR</a> = 0x00U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga24bf81b4e52fc1fb01deba9165d7c79e.html#gga24bf81b4e52fc1fb01deba9165d7c79ea2c0ceb407c48e14845e2218c121dfeea">UCS_MOST_PRT_AVL_INF_UNSTABLE</a> = 0x10U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga24bf81b4e52fc1fb01deba9165d7c79e.html#gga24bf81b4e52fc1fb01deba9165d7c79ea0633c428576d7cd9411e2594166b9227">UCS_MOST_PRT_AVL_INF_STABLE</a> = 0x11U
+<br/>
+ }</td></tr>
+<tr class="memdesc:ga24bf81b4e52fc1fb01deba9165d7c79e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates the sub state to parameter Available. <a href="group___g___u_c_s___x_r_m___e_n_u_m_ga24bf81b4e52fc1fb01deba9165d7c79e.html#ga24bf81b4e52fc1fb01deba9165d7c79e">More...</a><br/></td></tr>
+<tr class="separator:ga24bf81b4e52fc1fb01deba9165d7c79e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Referred types used in XRM Sockets and Ports description. </p>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m.js b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m.js
new file mode 100644
index 0000000..c4ebdf1
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m.js
@@ -0,0 +1,110 @@
+var group___g___u_c_s___x_r_m___e_n_u_m =
+[
+ [ "Ucs_Avp_IsocPacketSize_t", "group___g___u_c_s___x_r_m___e_n_u_m_ga8836a818f79ff1315f7f76bcd8e50a4d.html#ga8836a818f79ff1315f7f76bcd8e50a4d", [
+ [ "UCS_ISOC_PCKT_SIZE_188", "group___g___u_c_s___x_r_m___e_n_u_m_ga8836a818f79ff1315f7f76bcd8e50a4d.html#gga8836a818f79ff1315f7f76bcd8e50a4da5b103421ef1b66b0f939bf1331070d31", null ],
+ [ "UCS_ISOC_PCKT_SIZE_196", "group___g___u_c_s___x_r_m___e_n_u_m_ga8836a818f79ff1315f7f76bcd8e50a4d.html#gga8836a818f79ff1315f7f76bcd8e50a4da25b3c21607a88231bab533a93b8d6849", null ],
+ [ "UCS_ISOC_PCKT_SIZE_206", "group___g___u_c_s___x_r_m___e_n_u_m_ga8836a818f79ff1315f7f76bcd8e50a4d.html#gga8836a818f79ff1315f7f76bcd8e50a4da36f9f325486cb5312551b573efdaae61", null ]
+ ] ],
+ [ "Ucs_Mlb_ClockConfig_t", "group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#ga12193f5b8d160e84ad8b9853b0308f63", [
+ [ "UCS_MLB_CLK_CFG_256_FS", "group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63a25478748c90e08007550f3b6e069378a", null ],
+ [ "UCS_MLB_CLK_CFG_512_FS", "group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63a13645115ff4864a09293ef5cdaaaf963", null ],
+ [ "UCS_MLB_CLK_CFG_1024_FS", "group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63a8da54fd7f88cdcea8971667824e2c5b7", null ],
+ [ "UCS_MLB_CLK_CFG_2048_FS", "group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63afcdf9e1f4b0c6f42d1491384192f3578", null ],
+ [ "UCS_MLB_CLK_CFG_3072_FS", "group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63a72d60c9e85da4923a494f394d8e644dd", null ],
+ [ "UCS_MLB_CLK_CFG_4096_FS", "group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63ab1210db92ad1770f156c2686e0189024", null ],
+ [ "UCS_MLB_CLK_CFG_6144_FS", "group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63abbb9505a7b8b38cd4a402a66adfba660", null ],
+ [ "UCS_MLB_CLK_CFG_8192_FS", "group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63ade97fa17799ee97eebea56f563ef8e55", null ],
+ [ "UCS_MLB_CLK_CFG_WILDCARD", "group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63a0bd2aca9cfb3e4965d2a3b61aca9681f", null ]
+ ] ],
+ [ "Ucs_Mlb_SocketDataType_t", "group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html#gaf3facaf3378409c31465c68380990b53", [
+ [ "UCS_MLB_SCKT_SYNC_DATA", "group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html#ggaf3facaf3378409c31465c68380990b53a09527a2a481a353e06071b0d83a97fd9", null ],
+ [ "UCS_MLB_SCKT_CONTROL_DATA", "group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html#ggaf3facaf3378409c31465c68380990b53a8f7c19482d19a5e61d7f57a41f1605a5", null ],
+ [ "UCS_MLB_SCKT_AV_PACKETIZED", "group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html#ggaf3facaf3378409c31465c68380990b53a6b4873430ce4475a59af9c849238b8a1", null ],
+ [ "UCS_MLB_SCKT_QOS_IP", "group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html#ggaf3facaf3378409c31465c68380990b53a093d3a85730728a90043a05ab042bd25", null ],
+ [ "UCS_MLB_SCKT_DISC_FRAME_PHASE", "group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html#ggaf3facaf3378409c31465c68380990b53aa26b21e1fb0aca35442102baa8f4a11a", null ],
+ [ "UCS_MLB_SCKT_IPC_PACKET", "group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html#ggaf3facaf3378409c31465c68380990b53ac365dd966ebfeeff2906e73f16c5e441", null ]
+ ] ],
+ [ "Ucs_Most_PortAvail_t", "group___g___u_c_s___x_r_m___e_n_u_m_ga902951b9083ff58a88e19e151b57106a.html#ga902951b9083ff58a88e19e151b57106a", [
+ [ "UCS_MOST_PORT_AVAIL", "group___g___u_c_s___x_r_m___e_n_u_m_ga902951b9083ff58a88e19e151b57106a.html#gga902951b9083ff58a88e19e151b57106aaa0255a1f099a88d43d562c2c3f9e7307", null ],
+ [ "UCS_MOST_PORT_NOT_AVAIL", "group___g___u_c_s___x_r_m___e_n_u_m_ga902951b9083ff58a88e19e151b57106a.html#gga902951b9083ff58a88e19e151b57106aa367f9c085169b943f1084f48e2db430c", null ]
+ ] ],
+ [ "Ucs_Most_PortAvailInfo_t", "group___g___u_c_s___x_r_m___e_n_u_m_ga24bf81b4e52fc1fb01deba9165d7c79e.html#ga24bf81b4e52fc1fb01deba9165d7c79e", [
+ [ "UCS_MOST_PRT_AVL_INF_REGULAR", "group___g___u_c_s___x_r_m___e_n_u_m_ga24bf81b4e52fc1fb01deba9165d7c79e.html#gga24bf81b4e52fc1fb01deba9165d7c79eae407528edcdb4d1b773340cf024e7c30", null ],
+ [ "UCS_MOST_PRT_AVL_INF_UNSTABLE", "group___g___u_c_s___x_r_m___e_n_u_m_ga24bf81b4e52fc1fb01deba9165d7c79e.html#gga24bf81b4e52fc1fb01deba9165d7c79ea2c0ceb407c48e14845e2218c121dfeea", null ],
+ [ "UCS_MOST_PRT_AVL_INF_STABLE", "group___g___u_c_s___x_r_m___e_n_u_m_ga24bf81b4e52fc1fb01deba9165d7c79e.html#gga24bf81b4e52fc1fb01deba9165d7c79ea0633c428576d7cd9411e2594166b9227", null ]
+ ] ],
+ [ "Ucs_Most_SocketDataType_t", "group___g___u_c_s___x_r_m___e_n_u_m_gab29e10223e27331045485facbe4102ee.html#gab29e10223e27331045485facbe4102ee", [
+ [ "UCS_MOST_SCKT_SYNC_DATA", "group___g___u_c_s___x_r_m___e_n_u_m_gab29e10223e27331045485facbe4102ee.html#ggab29e10223e27331045485facbe4102eea345ad57d9919545fa5e5bf8393b0224f", null ],
+ [ "UCS_MOST_SCKT_AV_PACKETIZED", "group___g___u_c_s___x_r_m___e_n_u_m_gab29e10223e27331045485facbe4102ee.html#ggab29e10223e27331045485facbe4102eeac9bedb4912676bc0a2fdca379f5dc9e7", null ],
+ [ "UCS_MOST_SCKT_QOS_IP", "group___g___u_c_s___x_r_m___e_n_u_m_gab29e10223e27331045485facbe4102ee.html#ggab29e10223e27331045485facbe4102eeab11bbea636b1bbfbba10d9073ba09896", null ],
+ [ "UCS_MOST_SCKT_DISC_FRAME_PHASE", "group___g___u_c_s___x_r_m___e_n_u_m_gab29e10223e27331045485facbe4102ee.html#ggab29e10223e27331045485facbe4102eea17d7e05acbb595e6d96d985e90c874ba", null ]
+ ] ],
+ [ "Ucs_Pci_SocketDataType_t", "group___g___u_c_s___x_r_m___e_n_u_m_ga066850ed913a19025120619cca07fac6.html#ga066850ed913a19025120619cca07fac6", [
+ [ "UCS_PCI_SCKT_AV_PACKETIZED", "group___g___u_c_s___x_r_m___e_n_u_m_ga066850ed913a19025120619cca07fac6.html#gga066850ed913a19025120619cca07fac6a20039c896aa6b0c03a6e753040ae4db2", null ]
+ ] ],
+ [ "Ucs_Rmck_PortClockSource_t", "group___g___u_c_s___x_r_m___e_n_u_m_ga793fd94e2e48ff7a7fce092e6e0039e4.html#ga793fd94e2e48ff7a7fce092e6e0039e4", [
+ [ "UCS_RMCK_PORT_CLK_SRC_NW_SYSTEM", "group___g___u_c_s___x_r_m___e_n_u_m_ga793fd94e2e48ff7a7fce092e6e0039e4.html#gga793fd94e2e48ff7a7fce092e6e0039e4a0c106f34e8415ab3f01748a6bde15d8c", null ]
+ ] ],
+ [ "Ucs_SocketDirection_t", "group___g___u_c_s___x_r_m___e_n_u_m_ga28477f727fe10f9d6fd21cfc98a9c115.html#ga28477f727fe10f9d6fd21cfc98a9c115", [
+ [ "UCS_SOCKET_DIR_INPUT", "group___g___u_c_s___x_r_m___e_n_u_m_ga28477f727fe10f9d6fd21cfc98a9c115.html#gga28477f727fe10f9d6fd21cfc98a9c115a02fdd605a809a4a660e25cfd888347c7", null ],
+ [ "UCS_SOCKET_DIR_OUTPUT", "group___g___u_c_s___x_r_m___e_n_u_m_ga28477f727fe10f9d6fd21cfc98a9c115.html#gga28477f727fe10f9d6fd21cfc98a9c115aa14fc95a1f8c5f54aa6d601614a887fe", null ]
+ ] ],
+ [ "Ucs_Stream_PortClockConfig_t", "group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#ga0e856884fa1c7908c59718da0f396484", [
+ [ "UCS_STREAM_PORT_CLK_CFG_8FS", "group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#gga0e856884fa1c7908c59718da0f396484ae3b3cf726190fda9d105b4b7561cb455", null ],
+ [ "UCS_STREAM_PORT_CLK_CFG_16FS", "group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#gga0e856884fa1c7908c59718da0f396484ad4d29b36625c2a20c585524b9bbeab10", null ],
+ [ "UCS_STREAM_PORT_CLK_CFG_32FS", "group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#gga0e856884fa1c7908c59718da0f396484a23baa6e65f75b4b7bb11716bf01a2bda", null ],
+ [ "UCS_STREAM_PORT_CLK_CFG_64FS", "group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#gga0e856884fa1c7908c59718da0f396484a6ecefb4d6d534dfc6225644bf6cb9823", null ],
+ [ "UCS_STREAM_PORT_CLK_CFG_128FS", "group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#gga0e856884fa1c7908c59718da0f396484a070b6e6a42de4464e8c702b27fc56b26", null ],
+ [ "UCS_STREAM_PORT_CLK_CFG_256FS", "group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#gga0e856884fa1c7908c59718da0f396484ab74d511c86daf3ce6aa90a98381c7e8a", null ],
+ [ "UCS_STREAM_PORT_CLK_CFG_512FS", "group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#gga0e856884fa1c7908c59718da0f396484a5db76daf8c6e915500433b291457d2de", null ],
+ [ "UCS_STREAM_PORT_CLK_CFG_WILD", "group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#gga0e856884fa1c7908c59718da0f396484ae8ea56789961bd68181d059180ecccd6", null ]
+ ] ],
+ [ "Ucs_Stream_PortClockDataDelay_t", "group___g___u_c_s___x_r_m___e_n_u_m_ga16d6cd08e925676dfade13e980f460b0.html#ga16d6cd08e925676dfade13e980f460b0", [
+ [ "UCS_STREAM_PORT_CLK_DLY_NONE", "group___g___u_c_s___x_r_m___e_n_u_m_ga16d6cd08e925676dfade13e980f460b0.html#gga16d6cd08e925676dfade13e980f460b0a4a03b7fe83667b4e5f2a355e2810ed6f", null ],
+ [ "UCS_STREAM_PORT_CLK_DLY_DELAYED", "group___g___u_c_s___x_r_m___e_n_u_m_ga16d6cd08e925676dfade13e980f460b0.html#gga16d6cd08e925676dfade13e980f460b0a57fd16fd3f918e55cb4fc665f4023c79", null ],
+ [ "UCS_STREAM_PORT_CLK_DLY_WILD", "group___g___u_c_s___x_r_m___e_n_u_m_ga16d6cd08e925676dfade13e980f460b0.html#gga16d6cd08e925676dfade13e980f460b0ae852c8c7676b739182f522d3ac1d54bd", null ]
+ ] ],
+ [ "Ucs_Stream_PortClockMode_t", "group___g___u_c_s___x_r_m___e_n_u_m_ga3139c2b4d435622104235bd9fd9f478c.html#ga3139c2b4d435622104235bd9fd9f478c", [
+ [ "UCS_STREAM_PORT_CLK_MODE_OUTPUT", "group___g___u_c_s___x_r_m___e_n_u_m_ga3139c2b4d435622104235bd9fd9f478c.html#gga3139c2b4d435622104235bd9fd9f478ca3c768bceb59f2b4ef488e285a9d11b20", null ],
+ [ "UCS_STREAM_PORT_CLK_MODE_INPUT", "group___g___u_c_s___x_r_m___e_n_u_m_ga3139c2b4d435622104235bd9fd9f478c.html#gga3139c2b4d435622104235bd9fd9f478ca3add1d998c379f1ece1dabd41e89d832", null ],
+ [ "UCS_STREAM_PORT_CLK_MODE_WILD", "group___g___u_c_s___x_r_m___e_n_u_m_ga3139c2b4d435622104235bd9fd9f478c.html#gga3139c2b4d435622104235bd9fd9f478ca5614198d8e257bc689bcfccf09ad0d8f", null ]
+ ] ],
+ [ "Ucs_Stream_PortDataAlign_t", "group___g___u_c_s___x_r_m___e_n_u_m_ga02741bef1059621aaf6cf4fa956cfccf.html#ga02741bef1059621aaf6cf4fa956cfccf", [
+ [ "UCS_STREAM_PORT_ALGN_LEFT16BIT", "group___g___u_c_s___x_r_m___e_n_u_m_ga02741bef1059621aaf6cf4fa956cfccf.html#gga02741bef1059621aaf6cf4fa956cfccfa7505ae359df8d66ec68bacb78c049f52", null ],
+ [ "UCS_STREAM_PORT_ALGN_LEFT24BIT", "group___g___u_c_s___x_r_m___e_n_u_m_ga02741bef1059621aaf6cf4fa956cfccf.html#gga02741bef1059621aaf6cf4fa956cfccfa64ff85efa59d4760e4dba13678c7b802", null ],
+ [ "UCS_STREAM_PORT_ALGN_RIGHT16BIT", "group___g___u_c_s___x_r_m___e_n_u_m_ga02741bef1059621aaf6cf4fa956cfccf.html#gga02741bef1059621aaf6cf4fa956cfccfae288dcb736db417e450f52b59da4efd6", null ],
+ [ "UCS_STREAM_PORT_ALGN_RIGHT24BIT", "group___g___u_c_s___x_r_m___e_n_u_m_ga02741bef1059621aaf6cf4fa956cfccf.html#gga02741bef1059621aaf6cf4fa956cfccfa1c36b204751eff3352215d86b703d9d6", null ],
+ [ "UCS_STREAM_PORT_ALGN_SEQ", "group___g___u_c_s___x_r_m___e_n_u_m_ga02741bef1059621aaf6cf4fa956cfccf.html#gga02741bef1059621aaf6cf4fa956cfccfa8511f386d32e3e1eacfb7763528ae198", null ]
+ ] ],
+ [ "Ucs_Stream_PortOpMode_t", "group___g___u_c_s___x_r_m___e_n_u_m_ga6ea92012ace1c507dab36b727698a08e.html#ga6ea92012ace1c507dab36b727698a08e", [
+ [ "UCS_STREAM_PORT_OP_MODE_GENERIC", "group___g___u_c_s___x_r_m___e_n_u_m_ga6ea92012ace1c507dab36b727698a08e.html#gga6ea92012ace1c507dab36b727698a08ea10bf424b1ddb5c25b7659991fa761946", null ]
+ ] ],
+ [ "Ucs_Stream_PortOption_t", "group___g___u_c_s___x_r_m___e_n_u_m_ga83e210aa76632ea2191bd59ef7894432.html#ga83e210aa76632ea2191bd59ef7894432", [
+ [ "UCS_STREAM_PORT_OPT_IN_OUT", "group___g___u_c_s___x_r_m___e_n_u_m_ga83e210aa76632ea2191bd59ef7894432.html#gga83e210aa76632ea2191bd59ef7894432a5953e1aaabaaa5ae4a74fe0ec5842246", null ],
+ [ "UCS_STREAM_PORT_OPT_DUAL_IN", "group___g___u_c_s___x_r_m___e_n_u_m_ga83e210aa76632ea2191bd59ef7894432.html#gga83e210aa76632ea2191bd59ef7894432ab2cb6fba4c684773db5ef4c7d4650311", null ],
+ [ "UCS_STREAM_PORT_OPT_DUAL_OUT", "group___g___u_c_s___x_r_m___e_n_u_m_ga83e210aa76632ea2191bd59ef7894432.html#gga83e210aa76632ea2191bd59ef7894432a045ee94e54b8cb575ec5579ecded373a", null ]
+ ] ],
+ [ "Ucs_Stream_PortPinId_t", "group___g___u_c_s___x_r_m___e_n_u_m_gaadbd9007127f39c3c257040adf063d07.html#gaadbd9007127f39c3c257040adf063d07", [
+ [ "UCS_STREAM_PORT_PIN_ID_SRXA0", "group___g___u_c_s___x_r_m___e_n_u_m_gaadbd9007127f39c3c257040adf063d07.html#ggaadbd9007127f39c3c257040adf063d07a16eeeaad94f4398034b16f32832b2b52", null ],
+ [ "UCS_STREAM_PORT_PIN_ID_SRXA1", "group___g___u_c_s___x_r_m___e_n_u_m_gaadbd9007127f39c3c257040adf063d07.html#ggaadbd9007127f39c3c257040adf063d07a111c042a8036aef129575cee99766a50", null ],
+ [ "UCS_STREAM_PORT_PIN_ID_SRXB0", "group___g___u_c_s___x_r_m___e_n_u_m_gaadbd9007127f39c3c257040adf063d07.html#ggaadbd9007127f39c3c257040adf063d07a9c838b934823acccb059f360dd23d4d3", null ],
+ [ "UCS_STREAM_PORT_PIN_ID_SRXB1", "group___g___u_c_s___x_r_m___e_n_u_m_gaadbd9007127f39c3c257040adf063d07.html#ggaadbd9007127f39c3c257040adf063d07a743fac004ed325564161877611bdd074", null ]
+ ] ],
+ [ "Ucs_Stream_SocketDataType_t", "group___g___u_c_s___x_r_m___e_n_u_m_gae12684f1b74844d622e59da79f1a23f8.html#gae12684f1b74844d622e59da79f1a23f8", [
+ [ "UCS_STREAM_PORT_SCKT_SYNC_DATA", "group___g___u_c_s___x_r_m___e_n_u_m_gae12684f1b74844d622e59da79f1a23f8.html#ggae12684f1b74844d622e59da79f1a23f8a547bb39c45cc5788c3e5352f2b7fa76f", null ]
+ ] ],
+ [ "Ucs_Sync_MuteMode_t", "group___g___u_c_s___x_r_m___e_n_u_m_gaef12892b897a1cd1013357cfe63f2434.html#gaef12892b897a1cd1013357cfe63f2434", [
+ [ "UCS_SYNC_MUTE_MODE_NO_MUTING", "group___g___u_c_s___x_r_m___e_n_u_m_gaef12892b897a1cd1013357cfe63f2434.html#ggaef12892b897a1cd1013357cfe63f2434a6e21656de3fa891d522f272307fca772", null ],
+ [ "UCS_SYNC_MUTE_MODE_MUTE_SIGNAL", "group___g___u_c_s___x_r_m___e_n_u_m_gaef12892b897a1cd1013357cfe63f2434.html#ggaef12892b897a1cd1013357cfe63f2434a0648d4c524869e191575e69531947171", null ]
+ ] ],
+ [ "Ucs_Usb_PhysicalLayer_t", "group___g___u_c_s___x_r_m___e_n_u_m_gaa573e5854eb036998eec837e9fbf0ae1.html#gaa573e5854eb036998eec837e9fbf0ae1", [
+ [ "UCS_USB_PHY_LAYER_STANDARD", "group___g___u_c_s___x_r_m___e_n_u_m_gaa573e5854eb036998eec837e9fbf0ae1.html#ggaa573e5854eb036998eec837e9fbf0ae1aea428e9f9e380e629584c3989e4318b3", null ],
+ [ "UCS_USB_PHY_LAYER_HSCI", "group___g___u_c_s___x_r_m___e_n_u_m_gaa573e5854eb036998eec837e9fbf0ae1.html#ggaa573e5854eb036998eec837e9fbf0ae1a94962f9a6bce23c8ab29d9da551ef2c3", null ]
+ ] ],
+ [ "Ucs_Usb_SocketDataType_t", "group___g___u_c_s___x_r_m___e_n_u_m_gafd56377a5a1f782e64260d18caf17dc9.html#gafd56377a5a1f782e64260d18caf17dc9", [
+ [ "UCS_USB_SCKT_SYNC_DATA", "group___g___u_c_s___x_r_m___e_n_u_m_gafd56377a5a1f782e64260d18caf17dc9.html#ggafd56377a5a1f782e64260d18caf17dc9a4df4e4d4848358e18a3ef6386db80acf", null ],
+ [ "UCS_USB_SCKT_CONTROL_DATA", "group___g___u_c_s___x_r_m___e_n_u_m_gafd56377a5a1f782e64260d18caf17dc9.html#ggafd56377a5a1f782e64260d18caf17dc9a257142db7cda65de457ce1b5614de162", null ],
+ [ "UCS_USB_SCKT_AV_PACKETIZED", "group___g___u_c_s___x_r_m___e_n_u_m_gafd56377a5a1f782e64260d18caf17dc9.html#ggafd56377a5a1f782e64260d18caf17dc9afbd766c42efdcb7bb7f7dddbbe863f0b", null ],
+ [ "UCS_USB_SCKT_IPC_PACKET", "group___g___u_c_s___x_r_m___e_n_u_m_gafd56377a5a1f782e64260d18caf17dc9.html#ggafd56377a5a1f782e64260d18caf17dc9a6a225da98d0fb6f08845c7b0c3480109", null ]
+ ] ]
+]; \ No newline at end of file
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga02741bef1059621aaf6cf4fa956cfccf.html b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga02741bef1059621aaf6cf4fa956cfccf.html
new file mode 100644
index 0000000..4bc67f3
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga02741bef1059621aaf6cf4fa956cfccf.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Stream_PortDataAlign_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___x_r_m___e_n_u_m.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga02741bef1059621aaf6cf4fa956cfccf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga02741bef1059621aaf6cf4fa956cfccf.html#ga02741bef1059621aaf6cf4fa956cfccf">Ucs_Stream_PortDataAlign_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Defines the alignment of the data bytes within the streaming port frame. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga02741bef1059621aaf6cf4fa956cfccfa7505ae359df8d66ec68bacb78c049f52"></a>UCS_STREAM_PORT_ALGN_LEFT16BIT</em>&nbsp;</td><td>
+<p>Left-justified, 16 bit, legacy. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga02741bef1059621aaf6cf4fa956cfccfa64ff85efa59d4760e4dba13678c7b802"></a>UCS_STREAM_PORT_ALGN_LEFT24BIT</em>&nbsp;</td><td>
+<p>Left-justified, 24 bit, legacy. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga02741bef1059621aaf6cf4fa956cfccfae288dcb736db417e450f52b59da4efd6"></a>UCS_STREAM_PORT_ALGN_RIGHT16BIT</em>&nbsp;</td><td>
+<p>Right-justified, 16 bit, legacy. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga02741bef1059621aaf6cf4fa956cfccfa1c36b204751eff3352215d86b703d9d6"></a>UCS_STREAM_PORT_ALGN_RIGHT24BIT</em>&nbsp;</td><td>
+<p>Right-justified, 16 bit, legacy. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga02741bef1059621aaf6cf4fa956cfccfa8511f386d32e3e1eacfb7763528ae198"></a>UCS_STREAM_PORT_ALGN_SEQ</em>&nbsp;</td><td>
+<p>Sequential. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m.html">XRM SubTypes</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga066850ed913a19025120619cca07fac6.html b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga066850ed913a19025120619cca07fac6.html
new file mode 100644
index 0000000..d55fb1a
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga066850ed913a19025120619cca07fac6.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Pci_SocketDataType_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___x_r_m___e_n_u_m.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga066850ed913a19025120619cca07fac6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga066850ed913a19025120619cca07fac6.html#ga066850ed913a19025120619cca07fac6">Ucs_Pci_SocketDataType_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Data type of PCIe Sockets. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga066850ed913a19025120619cca07fac6a20039c896aa6b0c03a6e753040ae4db2"></a>UCS_PCI_SCKT_AV_PACKETIZED</em>&nbsp;</td><td>
+<p>Specifies the A/V Packetized Isochronous streaming data type. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m.html">XRM SubTypes</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html
new file mode 100644
index 0000000..d017272
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html
@@ -0,0 +1,152 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Stream_PortClockConfig_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___x_r_m___e_n_u_m.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga0e856884fa1c7908c59718da0f396484"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#ga0e856884fa1c7908c59718da0f396484">Ucs_Stream_PortClockConfig_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Clock speed configuration of the SCK signal. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga0e856884fa1c7908c59718da0f396484ae3b3cf726190fda9d105b4b7561cb455"></a>UCS_STREAM_PORT_CLK_CFG_8FS</em>&nbsp;</td><td>
+<p>8 x Fs. All data pins must be configured for sequential routing. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga0e856884fa1c7908c59718da0f396484ad4d29b36625c2a20c585524b9bbeab10"></a>UCS_STREAM_PORT_CLK_CFG_16FS</em>&nbsp;</td><td>
+<p>16 x Fs. All data pins must be configured for sequential routing. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga0e856884fa1c7908c59718da0f396484a23baa6e65f75b4b7bb11716bf01a2bda"></a>UCS_STREAM_PORT_CLK_CFG_32FS</em>&nbsp;</td><td>
+<p>32 x Fs. All data pins must be configured for sequential routing. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga0e856884fa1c7908c59718da0f396484a6ecefb4d6d534dfc6225644bf6cb9823"></a>UCS_STREAM_PORT_CLK_CFG_64FS</em>&nbsp;</td><td>
+<p>64 x Fs </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga0e856884fa1c7908c59718da0f396484a070b6e6a42de4464e8c702b27fc56b26"></a>UCS_STREAM_PORT_CLK_CFG_128FS</em>&nbsp;</td><td>
+<p>128 x Fs </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga0e856884fa1c7908c59718da0f396484ab74d511c86daf3ce6aa90a98381c7e8a"></a>UCS_STREAM_PORT_CLK_CFG_256FS</em>&nbsp;</td><td>
+<p>256 x Fs </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga0e856884fa1c7908c59718da0f396484a5db76daf8c6e915500433b291457d2de"></a>UCS_STREAM_PORT_CLK_CFG_512FS</em>&nbsp;</td><td>
+<p>512 x Fs </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga0e856884fa1c7908c59718da0f396484ae8ea56789961bd68181d059180ecccd6"></a>UCS_STREAM_PORT_CLK_CFG_WILD</em>&nbsp;</td><td>
+<p>Wildcard. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m.html">XRM SubTypes</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html
new file mode 100644
index 0000000..933135f
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Mlb_ClockConfig_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___x_r_m___e_n_u_m.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga12193f5b8d160e84ad8b9853b0308f63"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#ga12193f5b8d160e84ad8b9853b0308f63">Ucs_Mlb_ClockConfig_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>MediaLB clock speed configuration. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga12193f5b8d160e84ad8b9853b0308f63a25478748c90e08007550f3b6e069378a"></a>UCS_MLB_CLK_CFG_256_FS</em>&nbsp;</td><td>
+<p>256 Fs </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga12193f5b8d160e84ad8b9853b0308f63a13645115ff4864a09293ef5cdaaaf963"></a>UCS_MLB_CLK_CFG_512_FS</em>&nbsp;</td><td>
+<p>512 Fs </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga12193f5b8d160e84ad8b9853b0308f63a8da54fd7f88cdcea8971667824e2c5b7"></a>UCS_MLB_CLK_CFG_1024_FS</em>&nbsp;</td><td>
+<p>1024 Fs </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga12193f5b8d160e84ad8b9853b0308f63afcdf9e1f4b0c6f42d1491384192f3578"></a>UCS_MLB_CLK_CFG_2048_FS</em>&nbsp;</td><td>
+<p>2048 Fs </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga12193f5b8d160e84ad8b9853b0308f63a72d60c9e85da4923a494f394d8e644dd"></a>UCS_MLB_CLK_CFG_3072_FS</em>&nbsp;</td><td>
+<p>3072 Fs </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga12193f5b8d160e84ad8b9853b0308f63ab1210db92ad1770f156c2686e0189024"></a>UCS_MLB_CLK_CFG_4096_FS</em>&nbsp;</td><td>
+<p>4096 Fs </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga12193f5b8d160e84ad8b9853b0308f63abbb9505a7b8b38cd4a402a66adfba660"></a>UCS_MLB_CLK_CFG_6144_FS</em>&nbsp;</td><td>
+<p>6144 Fs </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga12193f5b8d160e84ad8b9853b0308f63ade97fa17799ee97eebea56f563ef8e55"></a>UCS_MLB_CLK_CFG_8192_FS</em>&nbsp;</td><td>
+<p>8192 Fs </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga12193f5b8d160e84ad8b9853b0308f63a0bd2aca9cfb3e4965d2a3b61aca9681f"></a>UCS_MLB_CLK_CFG_WILDCARD</em>&nbsp;</td><td>
+<p>Uses the corresponding parameter in the INIC Configuration String. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m.html">XRM SubTypes</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga16d6cd08e925676dfade13e980f460b0.html b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga16d6cd08e925676dfade13e980f460b0.html
new file mode 100644
index 0000000..84f5568
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga16d6cd08e925676dfade13e980f460b0.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Stream_PortClockDataDelay_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___x_r_m___e_n_u_m.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga16d6cd08e925676dfade13e980f460b0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga16d6cd08e925676dfade13e980f460b0.html#ga16d6cd08e925676dfade13e980f460b0">Ucs_Stream_PortClockDataDelay_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>This setting is only applicable to data pins used for Generic Streaming including any linked pins to Streaming Port B. All data pins share the same FSY / SCK signals, hence this setting applies to all data pins. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga16d6cd08e925676dfade13e980f460b0a4a03b7fe83667b4e5f2a355e2810ed6f"></a>UCS_STREAM_PORT_CLK_DLY_NONE</em>&nbsp;</td><td>
+<p>Data is not delayed by a single SCK clock delay. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga16d6cd08e925676dfade13e980f460b0a57fd16fd3f918e55cb4fc665f4023c79"></a>UCS_STREAM_PORT_CLK_DLY_DELAYED</em>&nbsp;</td><td>
+<p>There is a single SCK clock delay between the start of frame (falling edge of FSY) and the start of the frame data on the data pins. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga16d6cd08e925676dfade13e980f460b0ae852c8c7676b739182f522d3ac1d54bd"></a>UCS_STREAM_PORT_CLK_DLY_WILD</em>&nbsp;</td><td>
+<p>Wildcard. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m.html">XRM SubTypes</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga24bf81b4e52fc1fb01deba9165d7c79e.html b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga24bf81b4e52fc1fb01deba9165d7c79e.html
new file mode 100644
index 0000000..5f4f340
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga24bf81b4e52fc1fb01deba9165d7c79e.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Most_PortAvailInfo_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___x_r_m___e_n_u_m.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga24bf81b4e52fc1fb01deba9165d7c79e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga24bf81b4e52fc1fb01deba9165d7c79e.html#ga24bf81b4e52fc1fb01deba9165d7c79e">Ucs_Most_PortAvailInfo_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Indicates the sub state to parameter Available. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga24bf81b4e52fc1fb01deba9165d7c79eae407528edcdb4d1b773340cf024e7c30"></a>UCS_MOST_PRT_AVL_INF_REGULAR</em>&nbsp;</td><td>
+<p>MOST Network Port is not available for streaming data. This is for instance the case if the MOST network is shut down or Ring Break Diagnosis is running. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga24bf81b4e52fc1fb01deba9165d7c79ea2c0ceb407c48e14845e2218c121dfeea"></a>UCS_MOST_PRT_AVL_INF_UNSTABLE</em>&nbsp;</td><td>
+<p>Unlocks have been detected at the port and streaming is temporarily not available. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga24bf81b4e52fc1fb01deba9165d7c79ea0633c428576d7cd9411e2594166b9227"></a>UCS_MOST_PRT_AVL_INF_STABLE</em>&nbsp;</td><td>
+<p>Port is in Stable Lock. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m.html">XRM SubTypes</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga28477f727fe10f9d6fd21cfc98a9c115.html b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga28477f727fe10f9d6fd21cfc98a9c115.html
new file mode 100644
index 0000000..e90e199
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga28477f727fe10f9d6fd21cfc98a9c115.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_SocketDirection_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___x_r_m___e_n_u_m.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga28477f727fe10f9d6fd21cfc98a9c115"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga28477f727fe10f9d6fd21cfc98a9c115.html#ga28477f727fe10f9d6fd21cfc98a9c115">Ucs_SocketDirection_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Direction of the data stream from the perspective of the INIC. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga28477f727fe10f9d6fd21cfc98a9c115a02fdd605a809a4a660e25cfd888347c7"></a>UCS_SOCKET_DIR_INPUT</em>&nbsp;</td><td>
+<p>Socket transfers data into INIC. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga28477f727fe10f9d6fd21cfc98a9c115aa14fc95a1f8c5f54aa6d601614a887fe"></a>UCS_SOCKET_DIR_OUTPUT</em>&nbsp;</td><td>
+<p>Socket transfers data out of INIC. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m.html">XRM SubTypes</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga3139c2b4d435622104235bd9fd9f478c.html b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga3139c2b4d435622104235bd9fd9f478c.html
new file mode 100644
index 0000000..5c97f3d
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga3139c2b4d435622104235bd9fd9f478c.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Stream_PortClockMode_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___x_r_m___e_n_u_m.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga3139c2b4d435622104235bd9fd9f478c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga3139c2b4d435622104235bd9fd9f478c.html#ga3139c2b4d435622104235bd9fd9f478c">Ucs_Stream_PortClockMode_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Indicates if FSY/SCK signals are configured as outputs or inputs. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga3139c2b4d435622104235bd9fd9f478ca3c768bceb59f2b4ef488e285a9d11b20"></a>UCS_STREAM_PORT_CLK_MODE_OUTPUT</em>&nbsp;</td><td>
+<p>INIC drives the FSY/SCK signals as outputs, frequency locked to the network clock. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga3139c2b4d435622104235bd9fd9f478ca3add1d998c379f1ece1dabd41e89d832"></a>UCS_STREAM_PORT_CLK_MODE_INPUT</em>&nbsp;</td><td>
+<p>FSY/SCK signals are configured as inputs and are driven from outside the INIC. Use RMCK, frequency locked to the network clock, as reference for clock generation. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga3139c2b4d435622104235bd9fd9f478ca5614198d8e257bc689bcfccf09ad0d8f"></a>UCS_STREAM_PORT_CLK_MODE_WILD</em>&nbsp;</td><td>
+<p>Wildcard. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m.html">XRM SubTypes</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga6ea92012ace1c507dab36b727698a08e.html b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga6ea92012ace1c507dab36b727698a08e.html
new file mode 100644
index 0000000..873ff6b
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga6ea92012ace1c507dab36b727698a08e.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Stream_PortOpMode_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___x_r_m___e_n_u_m.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga6ea92012ace1c507dab36b727698a08e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga6ea92012ace1c507dab36b727698a08e.html#ga6ea92012ace1c507dab36b727698a08e">Ucs_Stream_PortOpMode_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Operation mode of the Streaming Port. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga6ea92012ace1c507dab36b727698a08ea10bf424b1ddb5c25b7659991fa761946"></a>UCS_STREAM_PORT_OP_MODE_GENERIC</em>&nbsp;</td><td>
+<p>If Index = PortB, data pins are linked to PortA clock configuration. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m.html">XRM SubTypes</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga793fd94e2e48ff7a7fce092e6e0039e4.html b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga793fd94e2e48ff7a7fce092e6e0039e4.html
new file mode 100644
index 0000000..9f3b66a
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga793fd94e2e48ff7a7fce092e6e0039e4.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Rmck_PortClockSource_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___x_r_m___e_n_u_m.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga793fd94e2e48ff7a7fce092e6e0039e4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga793fd94e2e48ff7a7fce092e6e0039e4.html#ga793fd94e2e48ff7a7fce092e6e0039e4">Ucs_Rmck_PortClockSource_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Source of the RMCK clock. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga793fd94e2e48ff7a7fce092e6e0039e4a0c106f34e8415ab3f01748a6bde15d8c"></a>UCS_RMCK_PORT_CLK_SRC_NW_SYSTEM</em>&nbsp;</td><td>
+<p>RMCK is locked to the system clock. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m.html">XRM SubTypes</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga83e210aa76632ea2191bd59ef7894432.html b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga83e210aa76632ea2191bd59ef7894432.html
new file mode 100644
index 0000000..487bb8b
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga83e210aa76632ea2191bd59ef7894432.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Stream_PortOption_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___x_r_m___e_n_u_m.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga83e210aa76632ea2191bd59ef7894432"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga83e210aa76632ea2191bd59ef7894432.html#ga83e210aa76632ea2191bd59ef7894432">Ucs_Stream_PortOption_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Direction of the physical pins of the indexed Streaming Port. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga83e210aa76632ea2191bd59ef7894432a5953e1aaabaaa5ae4a74fe0ec5842246"></a>UCS_STREAM_PORT_OPT_IN_OUT</em>&nbsp;</td><td>
+<p>Two serial interface pins are available; one for direction IN and one for direction OUT. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga83e210aa76632ea2191bd59ef7894432ab2cb6fba4c684773db5ef4c7d4650311"></a>UCS_STREAM_PORT_OPT_DUAL_IN</em>&nbsp;</td><td>
+<p>Tow serial interface pins are available for direction IN. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga83e210aa76632ea2191bd59ef7894432a045ee94e54b8cb575ec5579ecded373a"></a>UCS_STREAM_PORT_OPT_DUAL_OUT</em>&nbsp;</td><td>
+<p>Tow serial interface pins are available for direction OUT. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m.html">XRM SubTypes</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga8836a818f79ff1315f7f76bcd8e50a4d.html b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga8836a818f79ff1315f7f76bcd8e50a4d.html
new file mode 100644
index 0000000..247c8da
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga8836a818f79ff1315f7f76bcd8e50a4d.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Avp_IsocPacketSize_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___x_r_m___e_n_u_m.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga8836a818f79ff1315f7f76bcd8e50a4d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga8836a818f79ff1315f7f76bcd8e50a4d.html#ga8836a818f79ff1315f7f76bcd8e50a4d">Ucs_Avp_IsocPacketSize_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Data packet size of the isochronous channel. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga8836a818f79ff1315f7f76bcd8e50a4da5b103421ef1b66b0f939bf1331070d31"></a>UCS_ISOC_PCKT_SIZE_188</em>&nbsp;</td><td>
+<p>Standard MPEG2 Transport Stream packet size, no encryption. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga8836a818f79ff1315f7f76bcd8e50a4da25b3c21607a88231bab533a93b8d6849"></a>UCS_ISOC_PCKT_SIZE_196</em>&nbsp;</td><td>
+<p>DTCP Supplement B, DTCP over MOST. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga8836a818f79ff1315f7f76bcd8e50a4da36f9f325486cb5312551b573efdaae61"></a>UCS_ISOC_PCKT_SIZE_206</em>&nbsp;</td><td>
+<p>DTCP Supplement E, DTCP over IP. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m.html">XRM SubTypes</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga902951b9083ff58a88e19e151b57106a.html b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga902951b9083ff58a88e19e151b57106a.html
new file mode 100644
index 0000000..0122145
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_ga902951b9083ff58a88e19e151b57106a.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Most_PortAvail_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___x_r_m___e_n_u_m.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga902951b9083ff58a88e19e151b57106a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga902951b9083ff58a88e19e151b57106a.html#ga902951b9083ff58a88e19e151b57106a">Ucs_Most_PortAvail_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Indicates if the MOST Network Port is available and ready for streaming data connections. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga902951b9083ff58a88e19e151b57106aaa0255a1f099a88d43d562c2c3f9e7307"></a>UCS_MOST_PORT_AVAIL</em>&nbsp;</td><td>
+<p>MOST Network Port is available and it is possible to have streaming data connections. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga902951b9083ff58a88e19e151b57106aa367f9c085169b943f1084f48e2db430c"></a>UCS_MOST_PORT_NOT_AVAIL</em>&nbsp;</td><td>
+<p>MOST Network Port is not available for streaming data. FreeStreamingBW gets 0. All created sockets on this port get invalid. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m.html">XRM SubTypes</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_gaa573e5854eb036998eec837e9fbf0ae1.html b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_gaa573e5854eb036998eec837e9fbf0ae1.html
new file mode 100644
index 0000000..2946a9e
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_gaa573e5854eb036998eec837e9fbf0ae1.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Usb_PhysicalLayer_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___x_r_m___e_n_u_m.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gaa573e5854eb036998eec837e9fbf0ae1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gaa573e5854eb036998eec837e9fbf0ae1.html#gaa573e5854eb036998eec837e9fbf0ae1">Ucs_Usb_PhysicalLayer_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Physical interface of the USB Port. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="ggaa573e5854eb036998eec837e9fbf0ae1aea428e9f9e380e629584c3989e4318b3"></a>UCS_USB_PHY_LAYER_STANDARD</em>&nbsp;</td><td>
+<p>Standard - USB uses the standard physical interface with analog transceivers for board communication. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggaa573e5854eb036998eec837e9fbf0ae1a94962f9a6bce23c8ab29d9da551ef2c3"></a>UCS_USB_PHY_LAYER_HSCI</em>&nbsp;</td><td>
+<p>HSIC - USB uses the High-Speed Inter-Chip interface without analog transceivers for board communication. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m.html">XRM SubTypes</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_gaadbd9007127f39c3c257040adf063d07.html b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_gaadbd9007127f39c3c257040adf063d07.html
new file mode 100644
index 0000000..c75b0ff
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_gaadbd9007127f39c3c257040adf063d07.html
@@ -0,0 +1,140 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Stream_PortPinId_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___x_r_m___e_n_u_m.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gaadbd9007127f39c3c257040adf063d07"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gaadbd9007127f39c3c257040adf063d07.html#gaadbd9007127f39c3c257040adf063d07">Ucs_Stream_PortPinId_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>ID of the serial interface pin of the addressed Streaming Port instance to which the socket should be attached to. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="ggaadbd9007127f39c3c257040adf063d07a16eeeaad94f4398034b16f32832b2b52"></a>UCS_STREAM_PORT_PIN_ID_SRXA0</em>&nbsp;</td><td>
+<p>PortA, pin 5. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggaadbd9007127f39c3c257040adf063d07a111c042a8036aef129575cee99766a50"></a>UCS_STREAM_PORT_PIN_ID_SRXA1</em>&nbsp;</td><td>
+<p>PortA, pin 6. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggaadbd9007127f39c3c257040adf063d07a9c838b934823acccb059f360dd23d4d3"></a>UCS_STREAM_PORT_PIN_ID_SRXB0</em>&nbsp;</td><td>
+<p>PortB, pin 7. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggaadbd9007127f39c3c257040adf063d07a743fac004ed325564161877611bdd074"></a>UCS_STREAM_PORT_PIN_ID_SRXB1</em>&nbsp;</td><td>
+<p>PortB, pin 8. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m.html">XRM SubTypes</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_gab29e10223e27331045485facbe4102ee.html b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_gab29e10223e27331045485facbe4102ee.html
new file mode 100644
index 0000000..c958888
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_gab29e10223e27331045485facbe4102ee.html
@@ -0,0 +1,140 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Most_SocketDataType_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___x_r_m___e_n_u_m.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gab29e10223e27331045485facbe4102ee"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gab29e10223e27331045485facbe4102ee.html#gab29e10223e27331045485facbe4102ee">Ucs_Most_SocketDataType_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Data type of MOST Sockets. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="ggab29e10223e27331045485facbe4102eea345ad57d9919545fa5e5bf8393b0224f"></a>UCS_MOST_SCKT_SYNC_DATA</em>&nbsp;</td><td>
+<p>Specifies the synchronous streaming data type. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggab29e10223e27331045485facbe4102eeac9bedb4912676bc0a2fdca379f5dc9e7"></a>UCS_MOST_SCKT_AV_PACKETIZED</em>&nbsp;</td><td>
+<p>Specifies the A/V Packetized Isochronous streaming data type. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggab29e10223e27331045485facbe4102eeab11bbea636b1bbfbba10d9073ba09896"></a>UCS_MOST_SCKT_QOS_IP</em>&nbsp;</td><td>
+<p>Specifies the Quality of Service IP streaming data type. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggab29e10223e27331045485facbe4102eea17d7e05acbb595e6d96d985e90c874ba"></a>UCS_MOST_SCKT_DISC_FRAME_PHASE</em>&nbsp;</td><td>
+<p>Specifies the DiscreteFrame Isochronous streaming phase data type. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m.html">XRM SubTypes</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_gae12684f1b74844d622e59da79f1a23f8.html b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_gae12684f1b74844d622e59da79f1a23f8.html
new file mode 100644
index 0000000..764611a
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_gae12684f1b74844d622e59da79f1a23f8.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Stream_SocketDataType_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___x_r_m___e_n_u_m.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gae12684f1b74844d622e59da79f1a23f8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gae12684f1b74844d622e59da79f1a23f8.html#gae12684f1b74844d622e59da79f1a23f8">Ucs_Stream_SocketDataType_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Data types of Streaming Sockets. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="ggae12684f1b74844d622e59da79f1a23f8a547bb39c45cc5788c3e5352f2b7fa76f"></a>UCS_STREAM_PORT_SCKT_SYNC_DATA</em>&nbsp;</td><td>
+<p>Specifies the synchronous streaming data type. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m.html">XRM SubTypes</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_gaef12892b897a1cd1013357cfe63f2434.html b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_gaef12892b897a1cd1013357cfe63f2434.html
new file mode 100644
index 0000000..f28c01f
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_gaef12892b897a1cd1013357cfe63f2434.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Sync_MuteMode_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___x_r_m___e_n_u_m.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gaef12892b897a1cd1013357cfe63f2434"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gaef12892b897a1cd1013357cfe63f2434.html#gaef12892b897a1cd1013357cfe63f2434">Ucs_Sync_MuteMode_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Mute Mode. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="ggaef12892b897a1cd1013357cfe63f2434a6e21656de3fa891d522f272307fca772"></a>UCS_SYNC_MUTE_MODE_NO_MUTING</em>&nbsp;</td><td>
+<p>No mute monitoring. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggaef12892b897a1cd1013357cfe63f2434a0648d4c524869e191575e69531947171"></a>UCS_SYNC_MUTE_MODE_MUTE_SIGNAL</em>&nbsp;</td><td>
+<p>Mute signal. The MUTE pin will be asserted if any registered connection may stream corrupted data. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m.html">XRM SubTypes</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html
new file mode 100644
index 0000000..f91c092
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html
@@ -0,0 +1,146 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Mlb_SocketDataType_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___x_r_m___e_n_u_m.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gaf3facaf3378409c31465c68380990b53"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html#gaf3facaf3378409c31465c68380990b53">Ucs_Mlb_SocketDataType_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Data type of MediaLB Sockets. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="ggaf3facaf3378409c31465c68380990b53a09527a2a481a353e06071b0d83a97fd9"></a>UCS_MLB_SCKT_SYNC_DATA</em>&nbsp;</td><td>
+<p>Specifies the synchronous streaming data type. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggaf3facaf3378409c31465c68380990b53a8f7c19482d19a5e61d7f57a41f1605a5"></a>UCS_MLB_SCKT_CONTROL_DATA</em>&nbsp;</td><td>
+<p>Specifies the control data type. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggaf3facaf3378409c31465c68380990b53a6b4873430ce4475a59af9c849238b8a1"></a>UCS_MLB_SCKT_AV_PACKETIZED</em>&nbsp;</td><td>
+<p>Specifies the A/V Packetized Isochronous streaming data type. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggaf3facaf3378409c31465c68380990b53a093d3a85730728a90043a05ab042bd25"></a>UCS_MLB_SCKT_QOS_IP</em>&nbsp;</td><td>
+<p>Specifies the Quality of Service IP streaming data type. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggaf3facaf3378409c31465c68380990b53aa26b21e1fb0aca35442102baa8f4a11a"></a>UCS_MLB_SCKT_DISC_FRAME_PHASE</em>&nbsp;</td><td>
+<p>Specifies the DiscreteFrame Isochronous streaming phase data type. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggaf3facaf3378409c31465c68380990b53ac365dd966ebfeeff2906e73f16c5e441"></a>UCS_MLB_SCKT_IPC_PACKET</em>&nbsp;</td><td>
+<p>Specifies the IPC packet data type. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m.html">XRM SubTypes</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_gafd56377a5a1f782e64260d18caf17dc9.html b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_gafd56377a5a1f782e64260d18caf17dc9.html
new file mode 100644
index 0000000..05f4862
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___e_n_u_m_gafd56377a5a1f782e64260d18caf17dc9.html
@@ -0,0 +1,140 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Usb_SocketDataType_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___x_r_m___e_n_u_m.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gafd56377a5a1f782e64260d18caf17dc9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gafd56377a5a1f782e64260d18caf17dc9.html#gafd56377a5a1f782e64260d18caf17dc9">Ucs_Usb_SocketDataType_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Data type of USB Sockets. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="ggafd56377a5a1f782e64260d18caf17dc9a4df4e4d4848358e18a3ef6386db80acf"></a>UCS_USB_SCKT_SYNC_DATA</em>&nbsp;</td><td>
+<p>Specifies the synchronous streaming data type. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggafd56377a5a1f782e64260d18caf17dc9a257142db7cda65de457ce1b5614de162"></a>UCS_USB_SCKT_CONTROL_DATA</em>&nbsp;</td><td>
+<p>Specifies the control data type. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggafd56377a5a1f782e64260d18caf17dc9afbd766c42efdcb7bb7f7dddbbe863f0b"></a>UCS_USB_SCKT_AV_PACKETIZED</em>&nbsp;</td><td>
+<p>Specifies the A/V Packetized Isochronous streaming data type. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggafd56377a5a1f782e64260d18caf17dc9a6a225da98d0fb6f08845c7b0c3480109"></a>UCS_USB_SCKT_IPC_PACKET</em>&nbsp;</td><td>
+<p>Specifies the IPC packet data type. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m.html">XRM SubTypes</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___s_t_r_e_a_m.html b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___s_t_r_e_a_m.html
new file mode 100644
index 0000000..3bdd769
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___s_t_r_e_a_m.html
@@ -0,0 +1,130 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Additional Streaming Port Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___x_r_m___s_t_r_e_a_m.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">Additional Streaming Port Functions</div> </div>
+<div class="ingroups"><a class="el" href="group___g___u_c_s___i_r_m.html">Extended Resources Management</a></div></div><!--header-->
+<div class="contents">
+
+<p>Additional Streaming Port functions of the Extended Resource Manager.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga481fb8455d6165c5913ead778765d46e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___x_r_m___s_t_r_e_a_m_ga481fb8455d6165c5913ead778765d46e.html#ga481fb8455d6165c5913ead778765d46e">Ucs_Xrm_Stream_SetPortConfig</a> (<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *self, uint16_t destination_address, uint8_t index, <a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga6ea92012ace1c507dab36b727698a08e.html#ga6ea92012ace1c507dab36b727698a08e">Ucs_Stream_PortOpMode_t</a> op_mode, <a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga83e210aa76632ea2191bd59ef7894432.html#ga83e210aa76632ea2191bd59ef7894432">Ucs_Stream_PortOption_t</a> port_option, <a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga3139c2b4d435622104235bd9fd9f478c.html#ga3139c2b4d435622104235bd9fd9f478c">Ucs_Stream_PortClockMode_t</a> clock_mode, <a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga16d6cd08e925676dfade13e980f460b0.html#ga16d6cd08e925676dfade13e980f460b0">Ucs_Stream_PortClockDataDelay_t</a> clock_data_delay, <a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gab2f4b821b24db0cec150d1b30fe18783.html#gab2f4b821b24db0cec150d1b30fe18783">Ucs_Xrm_Stream_PortCfgResCb_t</a> result_fptr)</td></tr>
+<tr class="memdesc:ga481fb8455d6165c5913ead778765d46e"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to configure a Streaming Port. <a href="#ga481fb8455d6165c5913ead778765d46e"></a><br/></td></tr>
+<tr class="separator:ga481fb8455d6165c5913ead778765d46e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga05e65cb477a3ff894de32425eb41294f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___x_r_m___s_t_r_e_a_m_ga05e65cb477a3ff894de32425eb41294f.html#ga05e65cb477a3ff894de32425eb41294f">Ucs_Xrm_Stream_GetPortConfig</a> (<a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *self, uint16_t destination_address, uint8_t index, <a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gab2f4b821b24db0cec150d1b30fe18783.html#gab2f4b821b24db0cec150d1b30fe18783">Ucs_Xrm_Stream_PortCfgResCb_t</a> result_fptr)</td></tr>
+<tr class="memdesc:ga05e65cb477a3ff894de32425eb41294f"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function requests the configurations of a Streaming Port. <a href="#ga05e65cb477a3ff894de32425eb41294f"></a><br/></td></tr>
+<tr class="separator:ga05e65cb477a3ff894de32425eb41294f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Additional Streaming Port functions of the Extended Resource Manager. </p>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___s_t_r_e_a_m.js b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___s_t_r_e_a_m.js
new file mode 100644
index 0000000..7fe1a40
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___s_t_r_e_a_m.js
@@ -0,0 +1,5 @@
+var group___g___u_c_s___x_r_m___s_t_r_e_a_m =
+[
+ [ "Ucs_Xrm_Stream_GetPortConfig", "group___g___u_c_s___x_r_m___s_t_r_e_a_m_ga05e65cb477a3ff894de32425eb41294f.html#ga05e65cb477a3ff894de32425eb41294f", null ],
+ [ "Ucs_Xrm_Stream_SetPortConfig", "group___g___u_c_s___x_r_m___s_t_r_e_a_m_ga481fb8455d6165c5913ead778765d46e.html#ga481fb8455d6165c5913ead778765d46e", null ]
+]; \ No newline at end of file
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___s_t_r_e_a_m_ga05e65cb477a3ff894de32425eb41294f.html b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___s_t_r_e_a_m_ga05e65cb477a3ff894de32425eb41294f.html
new file mode 100644
index 0000000..a1f839a
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___s_t_r_e_a_m_ga05e65cb477a3ff894de32425eb41294f.html
@@ -0,0 +1,211 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_Stream_GetPortConfig</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___x_r_m___s_t_r_e_a_m.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga05e65cb477a3ff894de32425eb41294f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a> Ucs_Xrm_Stream_GetPortConfig </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *&#160;</td>
+ <td class="paramname"><em>self</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>destination_address</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint8_t&#160;</td>
+ <td class="paramname"><em>index</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gab2f4b821b24db0cec150d1b30fe18783.html#gab2f4b821b24db0cec150d1b30fe18783">Ucs_Xrm_Stream_PortCfgResCb_t</a>&#160;</td>
+ <td class="paramname"><em>result_fptr</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>This function requests the configurations of a Streaming Port. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This function corresponds with the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-StreamPortConfiguration680">INIC.StreamPortConfiguration</a>.</td></tr>
+</table>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>The UNICENS instance pointer </td></tr>
+ <tr><td class="paramname">destination_address</td><td>Device address of the target. Use the <code>UCS_ADDR_LOCAL_DEV</code> macro to target the local device. <br/>
+ The following address ranges are supported:<ul>
+<li>[0x10 ... 0x2FF]</li>
+<li>[0x500 ... 0xFEF]</li>
+<li>UCS_ADDR_LOCAL_DEV </li>
+</ul>
+</td></tr>
+ <tr><td class="paramname">index</td><td>Streaming Port instance. <table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>Index</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">result_fptr</td><td>Required result callback </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible return values are shown in the table below. <table class="doxtable">
+<tr>
+<th>Value </th><th>Description</th></tr>
+<tr>
+<td>UCS_RET_SUCCESS </td><td>No error </td></tr>
+<tr>
+<td>UCS_RET_ERR_PARAM </td><td>At least one parameter is wrong </td></tr>
+<tr>
+<td>UCS_RET_ERR_BUFFER_OVERFLOW </td><td>No message buffer available </td></tr>
+<tr>
+<td>UCS_RET_ERR_API_LOCKED </td><td>API is currently locked </td></tr>
+<tr>
+<td>UCS_RET_ERR_NOT_INITIALIZED </td><td>UNICENS is not initialized </td></tr>
+</table>
+</dd></dl>
+<p><br/>
+ <b>Example</b> </p>
+<div class="fragment"><div class="line"><span class="comment">// Main function</span></div>
+<div class="line"><span class="keywordtype">void</span> main()</div>
+<div class="line">{</div>
+<div class="line"> (void)<a class="code" href="group___g___u_c_s___x_r_m___s_t_r_e_a_m_ga05e65cb477a3ff894de32425eb41294f.html#ga05e65cb477a3ff894de32425eb41294f" title="This function requests the configurations of a Streaming Port.">Ucs_Xrm_Stream_GetPortConfig</a>(ucs_inst_ptr, 0x555U, 0x0U, &amp;App_XrmStreamPortCfgResCb);</div>
+<div class="line">} </div>
+<div class="line"></div>
+<div class="line"><span class="comment">// The streaming port result callback function</span></div>
+<div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> App_XrmStreamPortCfgResCb(uint16_t node_address,</div>
+<div class="line"> uint8_t index,</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_ga6ea92012ace1c507dab36b727698a08e.html#ga6ea92012ace1c507dab36b727698a08e" title="Operation mode of the Streaming Port.">Ucs_Stream_PortOpMode_t</a> op_mode,</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_ga83e210aa76632ea2191bd59ef7894432.html#ga83e210aa76632ea2191bd59ef7894432" title="Direction of the physical pins of the indexed Streaming Port.">Ucs_Stream_PortOption_t</a> port_option,</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_ga3139c2b4d435622104235bd9fd9f478c.html#ga3139c2b4d435622104235bd9fd9f478c" title="Indicates if FSY/SCK signals are configured as outputs or inputs.">Ucs_Stream_PortClockMode_t</a> clock_mode,</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_ga16d6cd08e925676dfade13e980f460b0.html#ga16d6cd08e925676dfade13e980f460b0" title="This setting is only applicable to data pins used for Generic Streaming including any linked pins to ...">Ucs_Stream_PortClockDataDelay_t</a> clock_data_delay,</div>
+<div class="line"> <a class="code" href="struct_ucs___std_result__t.html" title="Standard result structure which provides fields for detailed status and error information.">Ucs_StdResult_t</a> result,</div>
+<div class="line"> <span class="keywordtype">void</span> *user_ptr)</div>
+<div class="line">{</div>
+<div class="line"> <span class="keywordflow">if</span> (result.<a class="code" href="struct_ucs___std_result__t_a02d8eefc721a797ac87f5030774972ef.html#a02d8eefc721a797ac87f5030774972ef" title="Result/Error code.">code</a> == <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540cae19d5a51de78bbf903a108a4e36a0fdf" title="Operation successfully completed.">UCS_RES_SUCCESS</a>)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">// Read Streaming ports configuration here...</span></div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___x_r_m___s_t_r_e_a_m.html">Additional Streaming Port Functions</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___s_t_r_e_a_m_ga481fb8455d6165c5913ead778765d46e.html b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___s_t_r_e_a_m_ga481fb8455d6165c5913ead778765d46e.html
new file mode 100644
index 0000000..8433b4c
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___s_t_r_e_a_m_ga481fb8455d6165c5913ead778765d46e.html
@@ -0,0 +1,265 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_Stream_SetPortConfig</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___x_r_m___s_t_r_e_a_m.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga481fb8455d6165c5913ead778765d46e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a> Ucs_Xrm_Stream_SetPortConfig </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *&#160;</td>
+ <td class="paramname"><em>self</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>destination_address</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint8_t&#160;</td>
+ <td class="paramname"><em>index</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga6ea92012ace1c507dab36b727698a08e.html#ga6ea92012ace1c507dab36b727698a08e">Ucs_Stream_PortOpMode_t</a>&#160;</td>
+ <td class="paramname"><em>op_mode</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga83e210aa76632ea2191bd59ef7894432.html#ga83e210aa76632ea2191bd59ef7894432">Ucs_Stream_PortOption_t</a>&#160;</td>
+ <td class="paramname"><em>port_option</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga3139c2b4d435622104235bd9fd9f478c.html#ga3139c2b4d435622104235bd9fd9f478c">Ucs_Stream_PortClockMode_t</a>&#160;</td>
+ <td class="paramname"><em>clock_mode</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga16d6cd08e925676dfade13e980f460b0.html#ga16d6cd08e925676dfade13e980f460b0">Ucs_Stream_PortClockDataDelay_t</a>&#160;</td>
+ <td class="paramname"><em>clock_data_delay</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gab2f4b821b24db0cec150d1b30fe18783.html#gab2f4b821b24db0cec150d1b30fe18783">Ucs_Xrm_Stream_PortCfgResCb_t</a>&#160;</td>
+ <td class="paramname"><em>result_fptr</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>This function is used to configure a Streaming Port. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This function corresponds with the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-StreamPortConfiguration680">INIC.StreamPortConfiguration</a>.</td></tr>
+</table>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>The UNICENS instance pointer </td></tr>
+ <tr><td class="paramname">destination_address</td><td>Device address of the target. Use the <code>UCS_ADDR_LOCAL_DEV</code> macro to target the local device. <br/>
+ The following address ranges are supported:<ul>
+<li>[0x10 ... 0x2FF]</li>
+<li>[0x500 ... 0xFEF]</li>
+<li>UCS_ADDR_LOCAL_DEV </li>
+</ul>
+</td></tr>
+ <tr><td class="paramname">index</td><td>Streaming Port instance. <table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>Index</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">op_mode</td><td>Operation mode of the Streaming Port. <table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>OperationMode</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">port_option</td><td>Direction of the Streaming Port. <table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>PortOptions</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">clock_mode</td><td>Configuration of the FSY/SCK signals. <table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>ClockMode</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">clock_data_delay</td><td>Configuration of the FSY/SCK signals for Generic Streaming. <table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>ClockDataDelay</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">result_fptr</td><td>Required result callback </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible return values are shown in the table below. <table class="doxtable">
+<tr>
+<th>Value </th><th>Description</th></tr>
+<tr>
+<td>UCS_RET_SUCCESS </td><td>No error </td></tr>
+<tr>
+<td>UCS_RET_ERR_PARAM </td><td>The given UNICENS instance pointer is NULL </td></tr>
+<tr>
+<td>UCS_RET_ERR_BUFFER_OVERFLOW </td><td>No message buffer available </td></tr>
+<tr>
+<td>UCS_RET_ERR_NOT_INITIALIZED </td><td>UNICENS is not initialized </td></tr>
+</table>
+</dd></dl>
+<p><br/>
+ <b>Example</b> </p>
+<div class="fragment"><div class="line"><span class="comment">// Main function</span></div>
+<div class="line"><span class="keywordtype">void</span> main()</div>
+<div class="line">{</div>
+<div class="line"> <span class="comment">// ...</span></div>
+<div class="line"></div>
+<div class="line"> <a class="code" href="group___g___u_c_s___x_r_m___s_t_r_e_a_m_ga481fb8455d6165c5913ead778765d46e.html#ga481fb8455d6165c5913ead778765d46e" title="This function is used to configure a Streaming Port.">Ucs_Xrm_Stream_SetPortConfig</a> (ucs_inst_ptr,</div>
+<div class="line"> 0x555U, </div>
+<div class="line"> 0x0U,</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_ga6ea92012ace1c507dab36b727698a08e.html#gga6ea92012ace1c507dab36b727698a08ea10bf424b1ddb5c25b7659991fa761946" title="If Index = PortB, data pins are linked to PortA clock configuration.">UCS_STREAM_PORT_OP_MODE_GENERIC</a>,</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_ga83e210aa76632ea2191bd59ef7894432.html#gga83e210aa76632ea2191bd59ef7894432a5953e1aaabaaa5ae4a74fe0ec5842246" title="Two serial interface pins are available; one for direction IN and one for direction OUT...">UCS_STREAM_PORT_OPT_IN_OUT</a>,</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_ga3139c2b4d435622104235bd9fd9f478c.html#gga3139c2b4d435622104235bd9fd9f478ca3c768bceb59f2b4ef488e285a9d11b20" title="INIC drives the FSY/SCK signals as outputs, frequency locked to the network clock.">UCS_STREAM_PORT_CLK_MODE_OUTPUT</a>,</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_ga16d6cd08e925676dfade13e980f460b0.html#gga16d6cd08e925676dfade13e980f460b0a4a03b7fe83667b4e5f2a355e2810ed6f" title="Data is not delayed by a single SCK clock delay.">UCS_STREAM_PORT_CLK_DLY_NONE</a>,</div>
+<div class="line"> &amp;App_XrmStreamPortCfgResCb);</div>
+<div class="line"> <span class="comment">// ...</span></div>
+<div class="line"></div>
+<div class="line">} </div>
+<div class="line"></div>
+<div class="line"></div>
+<div class="line"> <span class="comment">// The streaming port result callback function</span></div>
+<div class="line"> <span class="keyword">static</span> <span class="keywordtype">void</span> App_XrmStreamPortCfgResCb(uint16_t node_address,</div>
+<div class="line"> uint8_t index,</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_ga6ea92012ace1c507dab36b727698a08e.html#ga6ea92012ace1c507dab36b727698a08e" title="Operation mode of the Streaming Port.">Ucs_Stream_PortOpMode_t</a> op_mode,</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_ga83e210aa76632ea2191bd59ef7894432.html#ga83e210aa76632ea2191bd59ef7894432" title="Direction of the physical pins of the indexed Streaming Port.">Ucs_Stream_PortOption_t</a> port_option,</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_ga3139c2b4d435622104235bd9fd9f478c.html#ga3139c2b4d435622104235bd9fd9f478c" title="Indicates if FSY/SCK signals are configured as outputs or inputs.">Ucs_Stream_PortClockMode_t</a> clock_mode,</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_ga16d6cd08e925676dfade13e980f460b0.html#ga16d6cd08e925676dfade13e980f460b0" title="This setting is only applicable to data pins used for Generic Streaming including any linked pins to ...">Ucs_Stream_PortClockDataDelay_t</a> clock_data_delay,</div>
+<div class="line"> <a class="code" href="struct_ucs___std_result__t.html" title="Standard result structure which provides fields for detailed status and error information.">Ucs_StdResult_t</a> result,</div>
+<div class="line"> <span class="keywordtype">void</span> *user_ptr)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="keywordflow">if</span> (result.<a class="code" href="struct_ucs___std_result__t_a02d8eefc721a797ac87f5030774972ef.html#a02d8eefc721a797ac87f5030774972ef" title="Result/Error code.">code</a> != <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540cae19d5a51de78bbf903a108a4e36a0fdf" title="Operation successfully completed.">UCS_RES_SUCCESS</a>)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">// Do whatever is necessary here...</span></div>
+<div class="line"> }</div>
+<div class="line"> }</div>
+</div><!-- fragment -->
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___x_r_m___s_t_r_e_a_m.html">Additional Streaming Port Functions</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:52:59 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___t_y_p_e_s.html b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___t_y_p_e_s.html
new file mode 100644
index 0000000..5f6a70e
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___t_y_p_e_s.html
@@ -0,0 +1,293 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: XRM Referred Types</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___x_r_m___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#groups">Topics</a> &#124;
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#typedef-members">Callback Functions</a> &#124;
+<a href="#enum-members">Enumerations</a> </div>
+ <div class="headertitle">
+<div class="title">XRM Referred Types</div> </div>
+<div class="ingroups"><a class="el" href="group___g___u_c_s___i_r_m.html">Extended Resources Management</a></div></div><!--header-->
+<div class="contents">
+
+<p>Referred types used by XRM service functions.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+Topics</h2></td></tr>
+<tr class="memitem:group___g___u_c_s___x_r_m___e_n_u_m"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m.html">XRM SubTypes</a></td></tr>
+<tr class="memdesc:group___g___u_c_s___x_r_m___e_n_u_m"><td class="mdescLeft">&#160;</td><td class="mdescRight">Referred types used in XRM Sockets and Ports description. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___init_data__t.html">Ucs_Xrm_InitData_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The initialization structure of the Extended Resource Manager. <a href="struct_ucs___xrm___init_data__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___result_details__t.html">Ucs_Xrm_ResultDetails_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Detailed information used for Extended Resource Manager results. <a href="struct_ucs___xrm___result_details__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___result__t.html">Ucs_Xrm_Result_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Result structure of the Extended Resource Manager. <a href="struct_ucs___xrm___result__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___res_identity__t.html">Ucs_Xrm_ResIdentity_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resources Identity from user point of view. <a href="struct_ucs___xrm___res_identity__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___default_created_port__t.html">Ucs_Xrm_DefaultCreatedPort_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configuration structure of a default created port. This structure is used for ports that are configured via the INIC's Configuration String and are automatically created at startup. <a href="struct_ucs___xrm___default_created_port__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___most_socket__t.html">Ucs_Xrm_MostSocket_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configuration structure of a MOST socket. <a href="struct_ucs___xrm___most_socket__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___mlb_port__t.html">Ucs_Xrm_MlbPort_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configuration structure of a MediaLB port. <a href="struct_ucs___xrm___mlb_port__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___mlb_socket__t.html">Ucs_Xrm_MlbSocket_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configuration structure of a MediaLB socket. <a href="struct_ucs___xrm___mlb_socket__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___usb_port__t.html">Ucs_Xrm_UsbPort_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configuration structure of a USB port. <a href="struct_ucs___xrm___usb_port__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___usb_socket__t.html">Ucs_Xrm_UsbSocket_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configuration structure of a USB socket. <a href="struct_ucs___xrm___usb_socket__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___rmck_port__t.html">Ucs_Xrm_RmckPort_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configuration structure of a RMCK port. <a href="struct_ucs___xrm___rmck_port__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___strm_port__t.html">Ucs_Xrm_StrmPort_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configuration structure of a streaming port. <a href="struct_ucs___xrm___strm_port__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___strm_socket__t.html">Ucs_Xrm_StrmSocket_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configuration structure of a streaming data socket. <a href="struct_ucs___xrm___strm_socket__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___sync_con__t.html">Ucs_Xrm_SyncCon_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configuration structure of a synchronous data connection. <a href="struct_ucs___xrm___sync_con__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___dfi_phase_con__t.html">Ucs_Xrm_DfiPhaseCon_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configuration structure of a DiscreteFrame Isochronous streaming phase connection. <a href="struct_ucs___xrm___dfi_phase_con__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___combiner__t.html">Ucs_Xrm_Combiner_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configuration structure of a combiner resource. <a href="struct_ucs___xrm___combiner__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___splitter__t.html">Ucs_Xrm_Splitter_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configuration structure of a splitter resource. <a href="struct_ucs___xrm___splitter__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___avp_con__t.html">Ucs_Xrm_AvpCon_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configuration structure for a A/V Packetized isochronous streaming data connection. <a href="struct_ucs___xrm___avp_con__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___qo_s_con__t.html">Ucs_Xrm_QoSCon_t</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configuration structure for a Quality of Service IP streaming data connection. <a href="struct_ucs___xrm___qo_s_con__t.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Callback Functions</h2></td></tr>
+<tr class="memitem:ga74e06fedcde6bc971088b2cb21405173"><td class="memItemLeft" align="right" valign="top">typedef void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173">Ucs_Xrm_ResObject_t</a></td></tr>
+<tr class="memdesc:ga74e06fedcde6bc971088b2cb21405173"><td class="mdescLeft">&#160;</td><td class="mdescRight">INIC Resource Object used for Extended Resource Manager jobs. <a href="#ga74e06fedcde6bc971088b2cb21405173"></a><br/></td></tr>
+<tr class="separator:ga74e06fedcde6bc971088b2cb21405173"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab2f4b821b24db0cec150d1b30fe18783"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gab2f4b821b24db0cec150d1b30fe18783.html#gab2f4b821b24db0cec150d1b30fe18783">Ucs_Xrm_Stream_PortCfgResCb_t</a> )(uint16_t node_address, uint8_t index, <a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga6ea92012ace1c507dab36b727698a08e.html#ga6ea92012ace1c507dab36b727698a08e">Ucs_Stream_PortOpMode_t</a> op_mode, <a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga83e210aa76632ea2191bd59ef7894432.html#ga83e210aa76632ea2191bd59ef7894432">Ucs_Stream_PortOption_t</a> port_option, <a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga3139c2b4d435622104235bd9fd9f478c.html#ga3139c2b4d435622104235bd9fd9f478c">Ucs_Stream_PortClockMode_t</a> clock_mode, <a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga16d6cd08e925676dfade13e980f460b0.html#ga16d6cd08e925676dfade13e980f460b0">Ucs_Stream_PortClockDataDelay_t</a> clock_data_delay, <a class="el" href="struct_ucs___std_result__t.html">Ucs_StdResult_t</a> result, void *user_ptr)</td></tr>
+<tr class="memdesc:gab2f4b821b24db0cec150d1b30fe18783"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function signature of result callback used by <a class="el" href="group___g___u_c_s___x_r_m___s_t_r_e_a_m_ga481fb8455d6165c5913ead778765d46e.html#ga481fb8455d6165c5913ead778765d46e" title="This function is used to configure a Streaming Port.">Ucs_Xrm_Stream_SetPortConfig()</a> and <a class="el" href="group___g___u_c_s___x_r_m___s_t_r_e_a_m_ga05e65cb477a3ff894de32425eb41294f.html#ga05e65cb477a3ff894de32425eb41294f" title="This function requests the configurations of a Streaming Port.">Ucs_Xrm_Stream_GetPortConfig()</a>. <a href="#gab2f4b821b24db0cec150d1b30fe18783"></a><br/></td></tr>
+<tr class="separator:gab2f4b821b24db0cec150d1b30fe18783"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga10b22839e9b7b2fe0148713aeea0172c"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga10b22839e9b7b2fe0148713aeea0172c.html#ga10b22839e9b7b2fe0148713aeea0172c">Ucs_Xrm_ResourceDebugCb_t</a> )(<a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc">Ucs_Xrm_ResourceType_t</a> resource_type, <a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173">Ucs_Xrm_ResObject_t</a> *resource_ptr, <a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#ga5299ac232aaeba37eb6fceb53e32b2ea">Ucs_Xrm_ResourceInfos_t</a> resource_infos, void *endpoint_inst_ptr, void *user_ptr)</td></tr>
+<tr class="memdesc:ga10b22839e9b7b2fe0148713aeea0172c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function signature used for monitoring the XRM resources. <a href="#ga10b22839e9b7b2fe0148713aeea0172c"></a><br/></td></tr>
+<tr class="separator:ga10b22839e9b7b2fe0148713aeea0172c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:ga60bd3f9fa02e15fb8841236470502939"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#ga60bd3f9fa02e15fb8841236470502939">Ucs_Xrm_ResultCode_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a87626ffba05e93e00d937e02ffa6f11f">UCS_XRM_RES_SUCCESS_BUILD</a> = 0x00U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a5598f375b65cc34614b9da0fa26eac7b">UCS_XRM_RES_SUCCESS_DESTROY</a> = 0x01U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a1c701f3c6cf1906ec7b9ab128f716ddd">UCS_XRM_RES_RC_AUTO_DESTROYED</a> = 0x02U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a5be1bc94fb04a96c19169ced4b332c22">UCS_XRM_RES_ERR_CONFIG</a> = 0x03U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a919a5b68148cb601b4493861fc327cb4">UCS_XRM_RES_ERR_BUILD</a> = 0x04U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a98009aefa81c980cfd7271870a8f5935">UCS_XRM_RES_ERR_DESTROY</a> = 0x05U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a271d672a3235b37ade92cc90703e2818">UCS_XRM_RES_ERR_INV_LIST</a> = 0x06U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a8756918bcca4958921f4998e4279290a">UCS_XRM_RES_ERR_SYNC</a> = 0x07U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a9710ae95e40d16090a0c89db7dd2b17c">UCS_XRM_RES_UNKNOWN</a> = 0xFFU
+<br/>
+ }</td></tr>
+<tr class="memdesc:ga60bd3f9fa02e15fb8841236470502939"><td class="mdescLeft">&#160;</td><td class="mdescRight">Result codes of the Extended Resource Manager. <a href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#ga60bd3f9fa02e15fb8841236470502939">More...</a><br/></td></tr>
+<tr class="separator:ga60bd3f9fa02e15fb8841236470502939"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac238d98be8f9df6340eb4ee72de36ccc"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc">Ucs_Xrm_ResourceType_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36cccacf416b59b369504088ef6810b4c545e1">UCS_XRM_RC_TYPE_DC_PORT</a> = 0x00U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36cccaeebb673b9abc5172f688f8e9e692441c">UCS_XRM_RC_TYPE_MOST_SOCKET</a> = 0x01U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca2c31643fe2ccea0ecb44424ef0ba0472">UCS_XRM_RC_TYPE_MLB_PORT</a> = 0x02U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca51a0ec5a470cb37f90a79a73f0f83be4">UCS_XRM_RC_TYPE_MLB_SOCKET</a> = 0x03U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca0060f6125299f66c37b3b9111358caaf">UCS_XRM_RC_TYPE_USB_PORT</a> = 0x04U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca5e2f20f818f67af2502a600f06b9ab11">UCS_XRM_RC_TYPE_USB_SOCKET</a> = 0x05U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca1d473f725ad3b8c99a3aa7a7e4915695">UCS_XRM_RC_TYPE_RMCK_PORT</a> = 0x06U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca1956e37c3cfebc66ed6f5da75f67d589">UCS_XRM_RC_TYPE_STRM_PORT</a> = 0x07U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca42a35dfe6f0054952406aeb6cdcf5119">UCS_XRM_RC_TYPE_STRM_SOCKET</a> = 0x08U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca47342ee294555a9b7e738c9fc34b5265">UCS_XRM_RC_TYPE_SYNC_CON</a> = 0x09U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36cccafc1fc13e092cd54eebdfe81d709213ef">UCS_XRM_RC_TYPE_DFIPHASE_CON</a> = 0x0AU,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca7224e84dd09ec73062bfaf395d645669">UCS_XRM_RC_TYPE_COMBINER</a> = 0x0BU,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36cccade63ac4286473169114caa4b890c5a65">UCS_XRM_RC_TYPE_SPLITTER</a> = 0x0CU,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36cccad0ca5b1fdc6b922e235ba53c5e09b8fb">UCS_XRM_RC_TYPE_AVP_CON</a> = 0x0DU,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca23a015384da5963bcd03626084acd531">UCS_XRM_RC_TYPE_QOS_CON</a> = 0x0EU
+<br/>
+ }</td></tr>
+<tr class="memdesc:gac238d98be8f9df6340eb4ee72de36ccc"><td class="mdescLeft">&#160;</td><td class="mdescRight">INIC resource types used by the Extended Resource Manager. <a href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc">More...</a><br/></td></tr>
+<tr class="separator:gac238d98be8f9df6340eb4ee72de36ccc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga50384bb32b088e9cfd50c889ef562015"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga50384bb32b088e9cfd50c889ef562015.html#ga50384bb32b088e9cfd50c889ef562015">Ucs_Xrm_PortType_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga50384bb32b088e9cfd50c889ef562015.html#gga50384bb32b088e9cfd50c889ef562015af7f4a6893afb4f0f50a16a58e815f33e">UCS_XRM_PORT_TYPE_MLB</a> = 0x0AU,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga50384bb32b088e9cfd50c889ef562015.html#gga50384bb32b088e9cfd50c889ef562015a7b31f75e1806723739f4d7fd2bc483d3">UCS_XRM_PORT_TYPE_USB</a> = 0x12U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga50384bb32b088e9cfd50c889ef562015.html#gga50384bb32b088e9cfd50c889ef562015a9a8488efe5ea3c20d4a172ccc547951a">UCS_XRM_PORT_TYPE_STRM</a> = 0x16U
+<br/>
+ }</td></tr>
+<tr class="memdesc:ga50384bb32b088e9cfd50c889ef562015"><td class="mdescLeft">&#160;</td><td class="mdescRight">Port types use for default created ports. <a href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga50384bb32b088e9cfd50c889ef562015.html#ga50384bb32b088e9cfd50c889ef562015">More...</a><br/></td></tr>
+<tr class="separator:ga50384bb32b088e9cfd50c889ef562015"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga80967b5f9bca0e603511f6ae4f8ac80d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga80967b5f9bca0e603511f6ae4f8ac80d.html#ga80967b5f9bca0e603511f6ae4f8ac80d">Ucs_Xrm_ResultType_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga80967b5f9bca0e603511f6ae4f8ac80d.html#gga80967b5f9bca0e603511f6ae4f8ac80da5b4112471bfa589121d71a7a4a615488">UCS_XRM_RESULT_TYPE_INT</a> = 0x00U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga80967b5f9bca0e603511f6ae4f8ac80d.html#gga80967b5f9bca0e603511f6ae4f8ac80daf7685915f03d5f4d71146c0802ec0ca3">UCS_XRM_RESULT_TYPE_TGT</a> = 0x01U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga80967b5f9bca0e603511f6ae4f8ac80d.html#gga80967b5f9bca0e603511f6ae4f8ac80da5697459fe3277c55bcd1a733339bea9b">UCS_XRM_RESULT_TYPE_TX</a> = 0x02U
+<br/>
+ }</td></tr>
+<tr class="memdesc:ga80967b5f9bca0e603511f6ae4f8ac80d"><td class="mdescLeft">&#160;</td><td class="mdescRight">This enumerator specifies the kind of result - Internal, Target or Transmission. <a href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga80967b5f9bca0e603511f6ae4f8ac80d.html#ga80967b5f9bca0e603511f6ae4f8ac80d">More...</a><br/></td></tr>
+<tr class="separator:ga80967b5f9bca0e603511f6ae4f8ac80d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5299ac232aaeba37eb6fceb53e32b2ea"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#ga5299ac232aaeba37eb6fceb53e32b2ea">Ucs_Xrm_ResourceInfos_t</a> { <br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#gga5299ac232aaeba37eb6fceb53e32b2eaaf17abdbe8fab65a069b6a8af1079066a">UCS_XRM_INFOS_BUILT</a> = 0x00U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#gga5299ac232aaeba37eb6fceb53e32b2eaa6e7faa32a0cb82c3fdf4450d80188262">UCS_XRM_INFOS_DESTROYED</a> = 0x01U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#gga5299ac232aaeba37eb6fceb53e32b2eaac57d4f29bbfd2f62eefddc4e31a7ad81">UCS_XRM_INFOS_ERR_BUILT</a> = 0x02U,
+<br/>
+&#160;&#160;<a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#gga5299ac232aaeba37eb6fceb53e32b2eaa3506ba144d511cba046ed09d7de265d2">UCS_XRM_INFOS_ERR_DESTROYED</a> = 0x03U
+<br/>
+ }</td></tr>
+<tr class="memdesc:ga5299ac232aaeba37eb6fceb53e32b2ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">This enumerator specifies the type of resources information. <a href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#ga5299ac232aaeba37eb6fceb53e32b2ea">More...</a><br/></td></tr>
+<tr class="separator:ga5299ac232aaeba37eb6fceb53e32b2ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Referred types used by XRM service functions. </p>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___t_y_p_e_s.js b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___t_y_p_e_s.js
new file mode 100644
index 0000000..14c083e
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___t_y_p_e_s.js
@@ -0,0 +1,167 @@
+var group___g___u_c_s___x_r_m___t_y_p_e_s =
+[
+ [ "XRM SubTypes", "group___g___u_c_s___x_r_m___e_n_u_m.html", "group___g___u_c_s___x_r_m___e_n_u_m" ],
+ [ "Ucs_Xrm_InitData_t", "struct_ucs___xrm___init_data__t.html", [
+ [ "check_unmute_fptr", "struct_ucs___xrm___init_data__t_a7ad953f5414061df43df073ece15e25b.html#a7ad953f5414061df43df073ece15e25b", null ],
+ [ "most_port_status_fptr", "struct_ucs___xrm___init_data__t_a9497e039c582e7d2804ee470d6812e91.html#a9497e039c582e7d2804ee470d6812e91", null ]
+ ] ],
+ [ "Ucs_Xrm_ResultDetails_t", "struct_ucs___xrm___result_details__t.html", [
+ [ "inic_result", "struct_ucs___xrm___result_details__t_ac8f7bd459f5052601dbbab267d9d8067.html#ac8f7bd459f5052601dbbab267d9d8067", null ],
+ [ "int_result", "struct_ucs___xrm___result_details__t_aee65ac620e16fd7b0fe4135514394901.html#aee65ac620e16fd7b0fe4135514394901", null ],
+ [ "resource_index", "struct_ucs___xrm___result_details__t_a41ee1e9319711802cf5d79a2be7adcbf.html#a41ee1e9319711802cf5d79a2be7adcbf", null ],
+ [ "resource_type", "struct_ucs___xrm___result_details__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd", null ],
+ [ "result_type", "struct_ucs___xrm___result_details__t_a4cb5ea6dd91baf049cf7d682202df0f4.html#a4cb5ea6dd91baf049cf7d682202df0f4", null ],
+ [ "tx_result", "struct_ucs___xrm___result_details__t_abee2d1d2c9eebcbc9da920664e9eb248.html#abee2d1d2c9eebcbc9da920664e9eb248", null ]
+ ] ],
+ [ "Ucs_Xrm_Result_t", "struct_ucs___xrm___result__t.html", [
+ [ "code", "struct_ucs___xrm___result__t_a7d575938c9e5eed9032435e39b376e90.html#a7d575938c9e5eed9032435e39b376e90", null ],
+ [ "details", "struct_ucs___xrm___result__t_ac704c276d74638909521f29cc722c8db.html#ac704c276d74638909521f29cc722c8db", null ]
+ ] ],
+ [ "Ucs_Xrm_ResIdentity_t", "struct_ucs___xrm___res_identity__t.html", [
+ [ "resource_id", "struct_ucs___xrm___res_identity__t_ab557e7d7735054f8f7d8cf576d4521c3.html#ab557e7d7735054f8f7d8cf576d4521c3", null ],
+ [ "resource_store", "struct_ucs___xrm___res_identity__t_a4fe7fcd3cdb160c239e65543ac025953.html#a4fe7fcd3cdb160c239e65543ac025953", null ]
+ ] ],
+ [ "Ucs_Xrm_DefaultCreatedPort_t", "struct_ucs___xrm___default_created_port__t.html", [
+ [ "index", "struct_ucs___xrm___default_created_port__t_aae5a12e607d0f782506d9e6ec6179c64.html#aae5a12e607d0f782506d9e6ec6179c64", null ],
+ [ "port_type", "struct_ucs___xrm___default_created_port__t_a58cd72485f642399fb1815f026dbaae7.html#a58cd72485f642399fb1815f026dbaae7", null ],
+ [ "resource_type", "struct_ucs___xrm___default_created_port__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd", null ]
+ ] ],
+ [ "Ucs_Xrm_MostSocket_t", "struct_ucs___xrm___most_socket__t.html", [
+ [ "bandwidth", "struct_ucs___xrm___most_socket__t_a0008a6d765e7752725ad3dd2eb446033.html#a0008a6d765e7752725ad3dd2eb446033", null ],
+ [ "data_type", "struct_ucs___xrm___most_socket__t_a963061c04c4b780e3f9a11d61746904e.html#a963061c04c4b780e3f9a11d61746904e", null ],
+ [ "direction", "struct_ucs___xrm___most_socket__t_a6fc8b4a0550af42e193df56d3546108e.html#a6fc8b4a0550af42e193df56d3546108e", null ],
+ [ "most_port_handle", "struct_ucs___xrm___most_socket__t_a3d1f833dbb35db5fed7638006fda4138.html#a3d1f833dbb35db5fed7638006fda4138", null ],
+ [ "resource_type", "struct_ucs___xrm___most_socket__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd", null ]
+ ] ],
+ [ "Ucs_Xrm_MlbPort_t", "struct_ucs___xrm___mlb_port__t.html", [
+ [ "clock_config", "struct_ucs___xrm___mlb_port__t_a7b2f976567481f67b381300eb1816c3e.html#a7b2f976567481f67b381300eb1816c3e", null ],
+ [ "index", "struct_ucs___xrm___mlb_port__t_aae5a12e607d0f782506d9e6ec6179c64.html#aae5a12e607d0f782506d9e6ec6179c64", null ],
+ [ "resource_type", "struct_ucs___xrm___mlb_port__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd", null ]
+ ] ],
+ [ "Ucs_Xrm_MlbSocket_t", "struct_ucs___xrm___mlb_socket__t.html", [
+ [ "bandwidth", "struct_ucs___xrm___mlb_socket__t_a0008a6d765e7752725ad3dd2eb446033.html#a0008a6d765e7752725ad3dd2eb446033", null ],
+ [ "channel_address", "struct_ucs___xrm___mlb_socket__t_add5f2565470e3921623c880730abe765.html#add5f2565470e3921623c880730abe765", null ],
+ [ "data_type", "struct_ucs___xrm___mlb_socket__t_a983b482b6f4a0468e6e76e8a53e848ea.html#a983b482b6f4a0468e6e76e8a53e848ea", null ],
+ [ "direction", "struct_ucs___xrm___mlb_socket__t_a6fc8b4a0550af42e193df56d3546108e.html#a6fc8b4a0550af42e193df56d3546108e", null ],
+ [ "mlb_port_obj_ptr", "struct_ucs___xrm___mlb_socket__t_a37fe80d7da3769557b97ce02522623f0.html#a37fe80d7da3769557b97ce02522623f0", null ],
+ [ "resource_type", "struct_ucs___xrm___mlb_socket__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd", null ]
+ ] ],
+ [ "Ucs_Xrm_UsbPort_t", "struct_ucs___xrm___usb_port__t.html", [
+ [ "devices_interfaces", "struct_ucs___xrm___usb_port__t_a7d57b66daf059fcd226dc4b78be54e79.html#a7d57b66daf059fcd226dc4b78be54e79", null ],
+ [ "index", "struct_ucs___xrm___usb_port__t_aae5a12e607d0f782506d9e6ec6179c64.html#aae5a12e607d0f782506d9e6ec6179c64", null ],
+ [ "physical_layer", "struct_ucs___xrm___usb_port__t_aea7ae4f766b52f8f4fa492449ba24c14.html#aea7ae4f766b52f8f4fa492449ba24c14", null ],
+ [ "resource_type", "struct_ucs___xrm___usb_port__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd", null ],
+ [ "streaming_if_ep_in_count", "struct_ucs___xrm___usb_port__t_aa1e58aa745f43164a35bb10f76f27cf4.html#aa1e58aa745f43164a35bb10f76f27cf4", null ],
+ [ "streaming_if_ep_out_count", "struct_ucs___xrm___usb_port__t_a95973cbb7c525bbb846928066bebe8f8.html#a95973cbb7c525bbb846928066bebe8f8", null ]
+ ] ],
+ [ "Ucs_Xrm_UsbSocket_t", "struct_ucs___xrm___usb_socket__t.html", [
+ [ "data_type", "struct_ucs___xrm___usb_socket__t_a211077f7fcb5f6de9739ec4a6d0b0277.html#a211077f7fcb5f6de9739ec4a6d0b0277", null ],
+ [ "direction", "struct_ucs___xrm___usb_socket__t_a6fc8b4a0550af42e193df56d3546108e.html#a6fc8b4a0550af42e193df56d3546108e", null ],
+ [ "end_point_addr", "struct_ucs___xrm___usb_socket__t_a10acc74574f398d6b12989cc1ed95fe0.html#a10acc74574f398d6b12989cc1ed95fe0", null ],
+ [ "frames_per_transfer", "struct_ucs___xrm___usb_socket__t_a35a2e808843151ff172ad4ddd8ad5b8a.html#a35a2e808843151ff172ad4ddd8ad5b8a", null ],
+ [ "resource_type", "struct_ucs___xrm___usb_socket__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd", null ],
+ [ "usb_port_obj_ptr", "struct_ucs___xrm___usb_socket__t_a3fe892af2f377651d07638c52a163326.html#a3fe892af2f377651d07638c52a163326", null ]
+ ] ],
+ [ "Ucs_Xrm_RmckPort_t", "struct_ucs___xrm___rmck_port__t.html", [
+ [ "clock_source", "struct_ucs___xrm___rmck_port__t_abb3d396baa2a9ee33f499bf58c7ca8de.html#abb3d396baa2a9ee33f499bf58c7ca8de", null ],
+ [ "divisor", "struct_ucs___xrm___rmck_port__t_a43e498c160eab1409e0ebdeabe62d31b.html#a43e498c160eab1409e0ebdeabe62d31b", null ],
+ [ "index", "struct_ucs___xrm___rmck_port__t_aae5a12e607d0f782506d9e6ec6179c64.html#aae5a12e607d0f782506d9e6ec6179c64", null ],
+ [ "resource_type", "struct_ucs___xrm___rmck_port__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd", null ]
+ ] ],
+ [ "Ucs_Xrm_StrmPort_t", "struct_ucs___xrm___strm_port__t.html", [
+ [ "clock_config", "struct_ucs___xrm___strm_port__t_a62dd690bdc5ee223e9b91014df94614e.html#a62dd690bdc5ee223e9b91014df94614e", null ],
+ [ "data_alignment", "struct_ucs___xrm___strm_port__t_a924dbd8d86d71e043a36523760c368b4.html#a924dbd8d86d71e043a36523760c368b4", null ],
+ [ "index", "struct_ucs___xrm___strm_port__t_aae5a12e607d0f782506d9e6ec6179c64.html#aae5a12e607d0f782506d9e6ec6179c64", null ],
+ [ "resource_type", "struct_ucs___xrm___strm_port__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd", null ]
+ ] ],
+ [ "Ucs_Xrm_StrmSocket_t", "struct_ucs___xrm___strm_socket__t.html", [
+ [ "bandwidth", "struct_ucs___xrm___strm_socket__t_a0008a6d765e7752725ad3dd2eb446033.html#a0008a6d765e7752725ad3dd2eb446033", null ],
+ [ "data_type", "struct_ucs___xrm___strm_socket__t_a5a9618dfa6b3de3a36d0392911a4d421.html#a5a9618dfa6b3de3a36d0392911a4d421", null ],
+ [ "direction", "struct_ucs___xrm___strm_socket__t_a6fc8b4a0550af42e193df56d3546108e.html#a6fc8b4a0550af42e193df56d3546108e", null ],
+ [ "resource_type", "struct_ucs___xrm___strm_socket__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd", null ],
+ [ "stream_pin_id", "struct_ucs___xrm___strm_socket__t_ab9430187fbd36c83ef163a19dcdd735c.html#ab9430187fbd36c83ef163a19dcdd735c", null ],
+ [ "stream_port_obj_ptr", "struct_ucs___xrm___strm_socket__t_a2938957a0791aa899aaedcca5b8c0405.html#a2938957a0791aa899aaedcca5b8c0405", null ]
+ ] ],
+ [ "Ucs_Xrm_SyncCon_t", "struct_ucs___xrm___sync_con__t.html", [
+ [ "mute_mode", "struct_ucs___xrm___sync_con__t_ad24def4858c3013652eba166fe48d267.html#ad24def4858c3013652eba166fe48d267", null ],
+ [ "offset", "struct_ucs___xrm___sync_con__t_ac681806181c80437cfab37335f62ff39.html#ac681806181c80437cfab37335f62ff39", null ],
+ [ "resource_type", "struct_ucs___xrm___sync_con__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd", null ],
+ [ "socket_in_obj_ptr", "struct_ucs___xrm___sync_con__t_ace5ef1fb3bd4337998a8f538645f47ed.html#ace5ef1fb3bd4337998a8f538645f47ed", null ],
+ [ "socket_out_obj_ptr", "struct_ucs___xrm___sync_con__t_a21e5760677b48c43c5e4783306819f95.html#a21e5760677b48c43c5e4783306819f95", null ]
+ ] ],
+ [ "Ucs_Xrm_DfiPhaseCon_t", "struct_ucs___xrm___dfi_phase_con__t.html", [
+ [ "resource_type", "struct_ucs___xrm___dfi_phase_con__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd", null ],
+ [ "socket_in_obj_ptr", "struct_ucs___xrm___dfi_phase_con__t_ace5ef1fb3bd4337998a8f538645f47ed.html#ace5ef1fb3bd4337998a8f538645f47ed", null ],
+ [ "socket_out_obj_ptr", "struct_ucs___xrm___dfi_phase_con__t_a21e5760677b48c43c5e4783306819f95.html#a21e5760677b48c43c5e4783306819f95", null ]
+ ] ],
+ [ "Ucs_Xrm_Combiner_t", "struct_ucs___xrm___combiner__t.html", [
+ [ "bytes_per_frame", "struct_ucs___xrm___combiner__t_a155bb95b36c82e42f52872c92d49e102.html#a155bb95b36c82e42f52872c92d49e102", null ],
+ [ "most_port_handle", "struct_ucs___xrm___combiner__t_a3d1f833dbb35db5fed7638006fda4138.html#a3d1f833dbb35db5fed7638006fda4138", null ],
+ [ "port_socket_obj_ptr", "struct_ucs___xrm___combiner__t_ab4f0942e9c11cfa5e9db135b352c17a5.html#ab4f0942e9c11cfa5e9db135b352c17a5", null ],
+ [ "resource_type", "struct_ucs___xrm___combiner__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd", null ]
+ ] ],
+ [ "Ucs_Xrm_Splitter_t", "struct_ucs___xrm___splitter__t.html", [
+ [ "bytes_per_frame", "struct_ucs___xrm___splitter__t_a155bb95b36c82e42f52872c92d49e102.html#a155bb95b36c82e42f52872c92d49e102", null ],
+ [ "most_port_handle", "struct_ucs___xrm___splitter__t_a3d1f833dbb35db5fed7638006fda4138.html#a3d1f833dbb35db5fed7638006fda4138", null ],
+ [ "resource_type", "struct_ucs___xrm___splitter__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd", null ],
+ [ "socket_in_obj_ptr", "struct_ucs___xrm___splitter__t_ace5ef1fb3bd4337998a8f538645f47ed.html#ace5ef1fb3bd4337998a8f538645f47ed", null ]
+ ] ],
+ [ "Ucs_Xrm_AvpCon_t", "struct_ucs___xrm___avp_con__t.html", [
+ [ "isoc_packet_size", "struct_ucs___xrm___avp_con__t_a1e377eede69f95567f72835634ac6241.html#a1e377eede69f95567f72835634ac6241", null ],
+ [ "resource_type", "struct_ucs___xrm___avp_con__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd", null ],
+ [ "socket_in_obj_ptr", "struct_ucs___xrm___avp_con__t_ace5ef1fb3bd4337998a8f538645f47ed.html#ace5ef1fb3bd4337998a8f538645f47ed", null ],
+ [ "socket_out_obj_ptr", "struct_ucs___xrm___avp_con__t_a21e5760677b48c43c5e4783306819f95.html#a21e5760677b48c43c5e4783306819f95", null ]
+ ] ],
+ [ "Ucs_Xrm_QoSCon_t", "struct_ucs___xrm___qo_s_con__t.html", [
+ [ "resource_type", "struct_ucs___xrm___qo_s_con__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd", null ],
+ [ "socket_in_obj_ptr", "struct_ucs___xrm___qo_s_con__t_ace5ef1fb3bd4337998a8f538645f47ed.html#ace5ef1fb3bd4337998a8f538645f47ed", null ],
+ [ "socket_out_obj_ptr", "struct_ucs___xrm___qo_s_con__t_a21e5760677b48c43c5e4783306819f95.html#a21e5760677b48c43c5e4783306819f95", null ]
+ ] ],
+ [ "Ucs_Xrm_ResObject_t", "group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173", null ],
+ [ "Ucs_Xrm_ResourceDebugCb_t", "group___g___u_c_s___x_r_m___t_y_p_e_s_ga10b22839e9b7b2fe0148713aeea0172c.html#ga10b22839e9b7b2fe0148713aeea0172c", null ],
+ [ "Ucs_Xrm_Stream_PortCfgResCb_t", "group___g___u_c_s___x_r_m___t_y_p_e_s_gab2f4b821b24db0cec150d1b30fe18783.html#gab2f4b821b24db0cec150d1b30fe18783", null ],
+ [ "Ucs_Xrm_PortType_t", "group___g___u_c_s___x_r_m___t_y_p_e_s_ga50384bb32b088e9cfd50c889ef562015.html#ga50384bb32b088e9cfd50c889ef562015", [
+ [ "UCS_XRM_PORT_TYPE_MLB", "group___g___u_c_s___x_r_m___t_y_p_e_s_ga50384bb32b088e9cfd50c889ef562015.html#gga50384bb32b088e9cfd50c889ef562015af7f4a6893afb4f0f50a16a58e815f33e", null ],
+ [ "UCS_XRM_PORT_TYPE_USB", "group___g___u_c_s___x_r_m___t_y_p_e_s_ga50384bb32b088e9cfd50c889ef562015.html#gga50384bb32b088e9cfd50c889ef562015a7b31f75e1806723739f4d7fd2bc483d3", null ],
+ [ "UCS_XRM_PORT_TYPE_STRM", "group___g___u_c_s___x_r_m___t_y_p_e_s_ga50384bb32b088e9cfd50c889ef562015.html#gga50384bb32b088e9cfd50c889ef562015a9a8488efe5ea3c20d4a172ccc547951a", null ]
+ ] ],
+ [ "Ucs_Xrm_ResourceInfos_t", "group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#ga5299ac232aaeba37eb6fceb53e32b2ea", [
+ [ "UCS_XRM_INFOS_BUILT", "group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#gga5299ac232aaeba37eb6fceb53e32b2eaaf17abdbe8fab65a069b6a8af1079066a", null ],
+ [ "UCS_XRM_INFOS_DESTROYED", "group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#gga5299ac232aaeba37eb6fceb53e32b2eaa6e7faa32a0cb82c3fdf4450d80188262", null ],
+ [ "UCS_XRM_INFOS_ERR_BUILT", "group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#gga5299ac232aaeba37eb6fceb53e32b2eaac57d4f29bbfd2f62eefddc4e31a7ad81", null ],
+ [ "UCS_XRM_INFOS_ERR_DESTROYED", "group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#gga5299ac232aaeba37eb6fceb53e32b2eaa3506ba144d511cba046ed09d7de265d2", null ]
+ ] ],
+ [ "Ucs_Xrm_ResourceType_t", "group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc", [
+ [ "UCS_XRM_RC_TYPE_DC_PORT", "group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36cccacf416b59b369504088ef6810b4c545e1", null ],
+ [ "UCS_XRM_RC_TYPE_MOST_SOCKET", "group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36cccaeebb673b9abc5172f688f8e9e692441c", null ],
+ [ "UCS_XRM_RC_TYPE_MLB_PORT", "group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca2c31643fe2ccea0ecb44424ef0ba0472", null ],
+ [ "UCS_XRM_RC_TYPE_MLB_SOCKET", "group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca51a0ec5a470cb37f90a79a73f0f83be4", null ],
+ [ "UCS_XRM_RC_TYPE_USB_PORT", "group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca0060f6125299f66c37b3b9111358caaf", null ],
+ [ "UCS_XRM_RC_TYPE_USB_SOCKET", "group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca5e2f20f818f67af2502a600f06b9ab11", null ],
+ [ "UCS_XRM_RC_TYPE_RMCK_PORT", "group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca1d473f725ad3b8c99a3aa7a7e4915695", null ],
+ [ "UCS_XRM_RC_TYPE_STRM_PORT", "group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca1956e37c3cfebc66ed6f5da75f67d589", null ],
+ [ "UCS_XRM_RC_TYPE_STRM_SOCKET", "group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca42a35dfe6f0054952406aeb6cdcf5119", null ],
+ [ "UCS_XRM_RC_TYPE_SYNC_CON", "group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca47342ee294555a9b7e738c9fc34b5265", null ],
+ [ "UCS_XRM_RC_TYPE_DFIPHASE_CON", "group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36cccafc1fc13e092cd54eebdfe81d709213ef", null ],
+ [ "UCS_XRM_RC_TYPE_COMBINER", "group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca7224e84dd09ec73062bfaf395d645669", null ],
+ [ "UCS_XRM_RC_TYPE_SPLITTER", "group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36cccade63ac4286473169114caa4b890c5a65", null ],
+ [ "UCS_XRM_RC_TYPE_AVP_CON", "group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36cccad0ca5b1fdc6b922e235ba53c5e09b8fb", null ],
+ [ "UCS_XRM_RC_TYPE_QOS_CON", "group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca23a015384da5963bcd03626084acd531", null ]
+ ] ],
+ [ "Ucs_Xrm_ResultCode_t", "group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#ga60bd3f9fa02e15fb8841236470502939", [
+ [ "UCS_XRM_RES_SUCCESS_BUILD", "group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a87626ffba05e93e00d937e02ffa6f11f", null ],
+ [ "UCS_XRM_RES_SUCCESS_DESTROY", "group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a5598f375b65cc34614b9da0fa26eac7b", null ],
+ [ "UCS_XRM_RES_RC_AUTO_DESTROYED", "group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a1c701f3c6cf1906ec7b9ab128f716ddd", null ],
+ [ "UCS_XRM_RES_ERR_CONFIG", "group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a5be1bc94fb04a96c19169ced4b332c22", null ],
+ [ "UCS_XRM_RES_ERR_BUILD", "group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a919a5b68148cb601b4493861fc327cb4", null ],
+ [ "UCS_XRM_RES_ERR_DESTROY", "group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a98009aefa81c980cfd7271870a8f5935", null ],
+ [ "UCS_XRM_RES_ERR_INV_LIST", "group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a271d672a3235b37ade92cc90703e2818", null ],
+ [ "UCS_XRM_RES_ERR_SYNC", "group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a8756918bcca4958921f4998e4279290a", null ],
+ [ "UCS_XRM_RES_UNKNOWN", "group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a9710ae95e40d16090a0c89db7dd2b17c", null ]
+ ] ],
+ [ "Ucs_Xrm_ResultType_t", "group___g___u_c_s___x_r_m___t_y_p_e_s_ga80967b5f9bca0e603511f6ae4f8ac80d.html#ga80967b5f9bca0e603511f6ae4f8ac80d", [
+ [ "UCS_XRM_RESULT_TYPE_INT", "group___g___u_c_s___x_r_m___t_y_p_e_s_ga80967b5f9bca0e603511f6ae4f8ac80d.html#gga80967b5f9bca0e603511f6ae4f8ac80da5b4112471bfa589121d71a7a4a615488", null ],
+ [ "UCS_XRM_RESULT_TYPE_TGT", "group___g___u_c_s___x_r_m___t_y_p_e_s_ga80967b5f9bca0e603511f6ae4f8ac80d.html#gga80967b5f9bca0e603511f6ae4f8ac80daf7685915f03d5f4d71146c0802ec0ca3", null ],
+ [ "UCS_XRM_RESULT_TYPE_TX", "group___g___u_c_s___x_r_m___t_y_p_e_s_ga80967b5f9bca0e603511f6ae4f8ac80d.html#gga80967b5f9bca0e603511f6ae4f8ac80da5697459fe3277c55bcd1a733339bea9b", null ]
+ ] ]
+]; \ No newline at end of file
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___t_y_p_e_s_ga10b22839e9b7b2fe0148713aeea0172c.html b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___t_y_p_e_s_ga10b22839e9b7b2fe0148713aeea0172c.html
new file mode 100644
index 0000000..7ae281b
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___t_y_p_e_s_ga10b22839e9b7b2fe0148713aeea0172c.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_ResourceDebugCb_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___x_r_m___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga10b22839e9b7b2fe0148713aeea0172c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* Ucs_Xrm_ResourceDebugCb_t)(<a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc">Ucs_Xrm_ResourceType_t</a> resource_type, <a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173">Ucs_Xrm_ResObject_t</a> *resource_ptr, <a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#ga5299ac232aaeba37eb6fceb53e32b2ea">Ucs_Xrm_ResourceInfos_t</a> resource_infos, void *endpoint_inst_ptr, void *user_ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Function signature used for monitoring the XRM resources. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">resource_type</td><td>The XRM resource type to be looked for </td></tr>
+ <tr><td class="paramname">resource_ptr</td><td>Reference to the resource to be looked for </td></tr>
+ <tr><td class="paramname">resource_infos</td><td>Resource information </td></tr>
+ <tr><td class="paramname">endpoint_inst_ptr</td><td>Reference to the endpoint object that encapsulates the given resource. </td></tr>
+ <tr><td class="paramname">user_ptr</td><td>User reference provided in <a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t::user_ptr</a> </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s.html">XRM Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___t_y_p_e_s_ga50384bb32b088e9cfd50c889ef562015.html b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___t_y_p_e_s_ga50384bb32b088e9cfd50c889ef562015.html
new file mode 100644
index 0000000..7507bdd
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___t_y_p_e_s_ga50384bb32b088e9cfd50c889ef562015.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_PortType_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___x_r_m___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga50384bb32b088e9cfd50c889ef562015"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga50384bb32b088e9cfd50c889ef562015.html#ga50384bb32b088e9cfd50c889ef562015">Ucs_Xrm_PortType_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Port types use for default created ports. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga50384bb32b088e9cfd50c889ef562015af7f4a6893afb4f0f50a16a58e815f33e"></a>UCS_XRM_PORT_TYPE_MLB</em>&nbsp;</td><td>
+<p>MediaLB Port. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga50384bb32b088e9cfd50c889ef562015a7b31f75e1806723739f4d7fd2bc483d3"></a>UCS_XRM_PORT_TYPE_USB</em>&nbsp;</td><td>
+<p>USB Port. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga50384bb32b088e9cfd50c889ef562015a9a8488efe5ea3c20d4a172ccc547951a"></a>UCS_XRM_PORT_TYPE_STRM</em>&nbsp;</td><td>
+<p>Streaming Port. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s.html">XRM Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html
new file mode 100644
index 0000000..c258b51
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html
@@ -0,0 +1,140 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_ResourceInfos_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___x_r_m___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga5299ac232aaeba37eb6fceb53e32b2ea"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#ga5299ac232aaeba37eb6fceb53e32b2ea">Ucs_Xrm_ResourceInfos_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>This enumerator specifies the type of resources information. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga5299ac232aaeba37eb6fceb53e32b2eaaf17abdbe8fab65a069b6a8af1079066a"></a>UCS_XRM_INFOS_BUILT</em>&nbsp;</td><td>
+<p>Signals that the resource is built. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga5299ac232aaeba37eb6fceb53e32b2eaa6e7faa32a0cb82c3fdf4450d80188262"></a>UCS_XRM_INFOS_DESTROYED</em>&nbsp;</td><td>
+<p>Signals that the resource is destroyed. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga5299ac232aaeba37eb6fceb53e32b2eaac57d4f29bbfd2f62eefddc4e31a7ad81"></a>UCS_XRM_INFOS_ERR_BUILT</em>&nbsp;</td><td>
+<p>Signals that XRM fails to build the resource. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga5299ac232aaeba37eb6fceb53e32b2eaa3506ba144d511cba046ed09d7de265d2"></a>UCS_XRM_INFOS_ERR_DESTROYED</em>&nbsp;</td><td>
+<p>Signals that XRM fails to destroy the resource. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s.html">XRM Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html
new file mode 100644
index 0000000..c1b3140
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_ResultCode_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___x_r_m___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga60bd3f9fa02e15fb8841236470502939"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#ga60bd3f9fa02e15fb8841236470502939">Ucs_Xrm_ResultCode_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Result codes of the Extended Resource Manager. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga60bd3f9fa02e15fb8841236470502939a87626ffba05e93e00d937e02ffa6f11f"></a>UCS_XRM_RES_SUCCESS_BUILD</em>&nbsp;</td><td>
+<p>Build of connection succeeded. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga60bd3f9fa02e15fb8841236470502939a5598f375b65cc34614b9da0fa26eac7b"></a>UCS_XRM_RES_SUCCESS_DESTROY</em>&nbsp;</td><td>
+<p>Destruction of connection succeeded. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga60bd3f9fa02e15fb8841236470502939a1c701f3c6cf1906ec7b9ab128f716ddd"></a>UCS_XRM_RES_RC_AUTO_DESTROYED</em>&nbsp;</td><td>
+<p>Invalid resources have been successfully destroyed. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga60bd3f9fa02e15fb8841236470502939a5be1bc94fb04a96c19169ced4b332c22"></a>UCS_XRM_RES_ERR_CONFIG</em>&nbsp;</td><td>
+<p>Invalid user settings in the XRM configuration file. </p>
+<p>The number of jobs or resources exceeds the maximum allowed in your XRM configuration file. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga60bd3f9fa02e15fb8841236470502939a919a5b68148cb601b4493861fc327cb4"></a>UCS_XRM_RES_ERR_BUILD</em>&nbsp;</td><td>
+<p>Build of connection failed due to a function-specific error found on target device or a transmission error on the MOST network. </p>
+<p>The <em>result_type</em> section in <a class="el" href="struct_ucs___xrm___result_details__t.html" title="Detailed information used for Extended Resource Manager results.">Ucs_Xrm_ResultDetails_t</a> will provide you with more detailed information concerning the error type. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga60bd3f9fa02e15fb8841236470502939a98009aefa81c980cfd7271870a8f5935"></a>UCS_XRM_RES_ERR_DESTROY</em>&nbsp;</td><td>
+<p>Destruction of connection failed due to a function-specific error found on target device or a transmission error on the MOST network. </p>
+<p>The <em>result_type</em> section in <a class="el" href="struct_ucs___xrm___result_details__t.html" title="Detailed information used for Extended Resource Manager results.">Ucs_Xrm_ResultDetails_t</a> will provide you with more detailed information concerning the error type. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga60bd3f9fa02e15fb8841236470502939a271d672a3235b37ade92cc90703e2818"></a>UCS_XRM_RES_ERR_INV_LIST</em>&nbsp;</td><td>
+<p>Request of invalid resources failed due to a function-specific error found on target device or a transmission error on the MOST network. </p>
+<p>The <em>result_type</em> section in <a class="el" href="struct_ucs___xrm___result_details__t.html" title="Detailed information used for Extended Resource Manager results.">Ucs_Xrm_ResultDetails_t</a> will provide you with more detailed information concerning the error type. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga60bd3f9fa02e15fb8841236470502939a8756918bcca4958921f4998e4279290a"></a>UCS_XRM_RES_ERR_SYNC</em>&nbsp;</td><td>
+<p>The remote synchronization of target device failed due to a function-specific error a transmission error on the MOST network. </p>
+<p>The <em>result_type</em> section in <a class="el" href="struct_ucs___xrm___result_details__t.html" title="Detailed information used for Extended Resource Manager results.">Ucs_Xrm_ResultDetails_t</a> will provide you with more detailed information concerning the error type. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga60bd3f9fa02e15fb8841236470502939a9710ae95e40d16090a0c89db7dd2b17c"></a>UCS_XRM_RES_UNKNOWN</em>&nbsp;</td><td>
+<p>Result is unknown. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s.html">XRM Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html
new file mode 100644
index 0000000..ba060e4
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_ResObject_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___x_r_m___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga74e06fedcde6bc971088b2cb21405173"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void <a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173">Ucs_Xrm_ResObject_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>INIC Resource Object used for Extended Resource Manager jobs. </p>
+<dl class="section attention"><dt>Attention</dt><dd>This resource object must be <b>terminated</b> with a <b>NULL</b> <b>pointer</b> to mark the end of the list. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s.html">XRM Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___t_y_p_e_s_ga80967b5f9bca0e603511f6ae4f8ac80d.html b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___t_y_p_e_s_ga80967b5f9bca0e603511f6ae4f8ac80d.html
new file mode 100644
index 0000000..2227ab9
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___t_y_p_e_s_ga80967b5f9bca0e603511f6ae4f8ac80d.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_ResultType_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___x_r_m___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ga80967b5f9bca0e603511f6ae4f8ac80d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga80967b5f9bca0e603511f6ae4f8ac80d.html#ga80967b5f9bca0e603511f6ae4f8ac80d">Ucs_Xrm_ResultType_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>This enumerator specifies the kind of result - Internal, Target or Transmission. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga80967b5f9bca0e603511f6ae4f8ac80da5b4112471bfa589121d71a7a4a615488"></a>UCS_XRM_RESULT_TYPE_INT</em>&nbsp;</td><td>
+<p>Specifies the internal results, typically standard return codes of MNS used for synchronous response. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga80967b5f9bca0e603511f6ae4f8ac80daf7685915f03d5f4d71146c0802ec0ca3"></a>UCS_XRM_RESULT_TYPE_TGT</em>&nbsp;</td><td>
+<p>Specifies the target results, typically INIC function-specific error from target device. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga80967b5f9bca0e603511f6ae4f8ac80da5697459fe3277c55bcd1a733339bea9b"></a>UCS_XRM_RESULT_TYPE_TX</em>&nbsp;</td><td>
+<p>Specifies the transmission error information on the MOST network. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s.html">XRM Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___t_y_p_e_s_gab2f4b821b24db0cec150d1b30fe18783.html b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___t_y_p_e_s_gab2f4b821b24db0cec150d1b30fe18783.html
new file mode 100644
index 0000000..bb58ffe
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___t_y_p_e_s_gab2f4b821b24db0cec150d1b30fe18783.html
@@ -0,0 +1,161 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_Stream_PortCfgResCb_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___x_r_m___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gab2f4b821b24db0cec150d1b30fe18783"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* Ucs_Xrm_Stream_PortCfgResCb_t)(uint16_t node_address, uint8_t index, <a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga6ea92012ace1c507dab36b727698a08e.html#ga6ea92012ace1c507dab36b727698a08e">Ucs_Stream_PortOpMode_t</a> op_mode, <a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga83e210aa76632ea2191bd59ef7894432.html#ga83e210aa76632ea2191bd59ef7894432">Ucs_Stream_PortOption_t</a> port_option, <a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga3139c2b4d435622104235bd9fd9f478c.html#ga3139c2b4d435622104235bd9fd9f478c">Ucs_Stream_PortClockMode_t</a> clock_mode, <a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga16d6cd08e925676dfade13e980f460b0.html#ga16d6cd08e925676dfade13e980f460b0">Ucs_Stream_PortClockDataDelay_t</a> clock_data_delay, <a class="el" href="struct_ucs___std_result__t.html">Ucs_StdResult_t</a> result, void *user_ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Function signature of result callback used by <a class="el" href="group___g___u_c_s___x_r_m___s_t_r_e_a_m_ga481fb8455d6165c5913ead778765d46e.html#ga481fb8455d6165c5913ead778765d46e" title="This function is used to configure a Streaming Port.">Ucs_Xrm_Stream_SetPortConfig()</a> and <a class="el" href="group___g___u_c_s___x_r_m___s_t_r_e_a_m_ga05e65cb477a3ff894de32425eb41294f.html#ga05e65cb477a3ff894de32425eb41294f" title="This function requests the configurations of a Streaming Port.">Ucs_Xrm_Stream_GetPortConfig()</a>. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>The arguments of the result callback function correspond with the INIC's result for the function <a href="_p__u_m__o_s81118.html#MNSH3-StreamPortConfiguration680">INIC.StreamPortConfiguration</a>.</td></tr>
+</table>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">node_address</td><td>The node address from which the results come </td></tr>
+ <tr><td class="paramname">index</td><td>Streaming Port instance. <table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>Index</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">op_mode</td><td>Operation mode of the Streaming Port. <table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>OperationMode</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">port_option</td><td>Direction of the physical pins of the indexed Streaming Port. <table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>PortOption</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">clock_mode</td><td>Configuration of the FSY/SCK signals. <table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>ClockMode</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">clock_data_delay</td><td>Configuration of the FSY/SCK signals for Generic Streaming. <table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>ClockDataDelay</code></td></tr>
+</table>
+</td></tr>
+ <tr><td class="paramname">result</td><td>Returned result of the operation </td></tr>
+ <tr><td class="paramname">user_ptr</td><td>User reference provided in <a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t::user_ptr</a> </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s.html">XRM Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html
new file mode 100644
index 0000000..4dbb3ca
--- /dev/null
+++ b/ucs2-lib/doc/html/group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html
@@ -0,0 +1,173 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_ResourceType_t</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group___g___u_c_s___x_r_m___t_y_p_e_s.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="gac238d98be8f9df6340eb4ee72de36ccc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc">Ucs_Xrm_ResourceType_t</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>INIC resource types used by the Extended Resource Manager. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="ggac238d98be8f9df6340eb4ee72de36cccacf416b59b369504088ef6810b4c545e1"></a>UCS_XRM_RC_TYPE_DC_PORT</em>&nbsp;</td><td>
+<p>Default created port. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggac238d98be8f9df6340eb4ee72de36cccaeebb673b9abc5172f688f8e9e692441c"></a>UCS_XRM_RC_TYPE_MOST_SOCKET</em>&nbsp;</td><td>
+<p>MOST socket. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggac238d98be8f9df6340eb4ee72de36ccca2c31643fe2ccea0ecb44424ef0ba0472"></a>UCS_XRM_RC_TYPE_MLB_PORT</em>&nbsp;</td><td>
+<p>MediaLB port. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggac238d98be8f9df6340eb4ee72de36ccca51a0ec5a470cb37f90a79a73f0f83be4"></a>UCS_XRM_RC_TYPE_MLB_SOCKET</em>&nbsp;</td><td>
+<p>MediaLB socket. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggac238d98be8f9df6340eb4ee72de36ccca0060f6125299f66c37b3b9111358caaf"></a>UCS_XRM_RC_TYPE_USB_PORT</em>&nbsp;</td><td>
+<p>USB port. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggac238d98be8f9df6340eb4ee72de36ccca5e2f20f818f67af2502a600f06b9ab11"></a>UCS_XRM_RC_TYPE_USB_SOCKET</em>&nbsp;</td><td>
+<p>USB socket. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggac238d98be8f9df6340eb4ee72de36ccca1d473f725ad3b8c99a3aa7a7e4915695"></a>UCS_XRM_RC_TYPE_RMCK_PORT</em>&nbsp;</td><td>
+<p>RMCK port. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggac238d98be8f9df6340eb4ee72de36ccca1956e37c3cfebc66ed6f5da75f67d589"></a>UCS_XRM_RC_TYPE_STRM_PORT</em>&nbsp;</td><td>
+<p>Streaming port. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggac238d98be8f9df6340eb4ee72de36ccca42a35dfe6f0054952406aeb6cdcf5119"></a>UCS_XRM_RC_TYPE_STRM_SOCKET</em>&nbsp;</td><td>
+<p>Streaming socket. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggac238d98be8f9df6340eb4ee72de36ccca47342ee294555a9b7e738c9fc34b5265"></a>UCS_XRM_RC_TYPE_SYNC_CON</em>&nbsp;</td><td>
+<p>Synchronous data connection. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggac238d98be8f9df6340eb4ee72de36cccafc1fc13e092cd54eebdfe81d709213ef"></a>UCS_XRM_RC_TYPE_DFIPHASE_CON</em>&nbsp;</td><td>
+<p>DiscreteFrame Isochronous streaming phase connection. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggac238d98be8f9df6340eb4ee72de36ccca7224e84dd09ec73062bfaf395d645669"></a>UCS_XRM_RC_TYPE_COMBINER</em>&nbsp;</td><td>
+<p>Combiner. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggac238d98be8f9df6340eb4ee72de36cccade63ac4286473169114caa4b890c5a65"></a>UCS_XRM_RC_TYPE_SPLITTER</em>&nbsp;</td><td>
+<p>Splitter. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggac238d98be8f9df6340eb4ee72de36cccad0ca5b1fdc6b922e235ba53c5e09b8fb"></a>UCS_XRM_RC_TYPE_AVP_CON</em>&nbsp;</td><td>
+<p>A/V packetized isochronous streaming data connection. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ggac238d98be8f9df6340eb4ee72de36ccca23a015384da5963bcd03626084acd531"></a>UCS_XRM_RC_TYPE_QOS_CON</em>&nbsp;</td><td>
+<p>Quality of Service IP streaming data connection. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s.html">XRM Referred Types</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/header_bg.png b/ucs2-lib/doc/html/header_bg.png
new file mode 100644
index 0000000..c9e46cd
--- /dev/null
+++ b/ucs2-lib/doc/html/header_bg.png
Binary files differ
diff --git a/ucs2-lib/doc/html/icon_api_ref_120x120.png b/ucs2-lib/doc/html/icon_api_ref_120x120.png
new file mode 100644
index 0000000..08be8d8
--- /dev/null
+++ b/ucs2-lib/doc/html/icon_api_ref_120x120.png
Binary files differ
diff --git a/ucs2-lib/doc/html/icon_api_ref_32x32.png b/ucs2-lib/doc/html/icon_api_ref_32x32.png
new file mode 100644
index 0000000..ba4c5ce
--- /dev/null
+++ b/ucs2-lib/doc/html/icon_api_ref_32x32.png
Binary files differ
diff --git a/ucs2-lib/doc/html/icon_appendix_120x120.png b/ucs2-lib/doc/html/icon_appendix_120x120.png
new file mode 100644
index 0000000..4a9dcec
--- /dev/null
+++ b/ucs2-lib/doc/html/icon_appendix_120x120.png
Binary files differ
diff --git a/ucs2-lib/doc/html/icon_examples_32x32.png b/ucs2-lib/doc/html/icon_examples_32x32.png
new file mode 100644
index 0000000..38b795f
--- /dev/null
+++ b/ucs2-lib/doc/html/icon_examples_32x32.png
Binary files differ
diff --git a/ucs2-lib/doc/html/icon_inic_16x16.png b/ucs2-lib/doc/html/icon_inic_16x16.png
new file mode 100644
index 0000000..8ad7f97
--- /dev/null
+++ b/ucs2-lib/doc/html/icon_inic_16x16.png
Binary files differ
diff --git a/ucs2-lib/doc/html/icon_inic_32x32.png b/ucs2-lib/doc/html/icon_inic_32x32.png
new file mode 100644
index 0000000..acf6e40
--- /dev/null
+++ b/ucs2-lib/doc/html/icon_inic_32x32.png
Binary files differ
diff --git a/ucs2-lib/doc/html/icon_manual_32x32.png b/ucs2-lib/doc/html/icon_manual_32x32.png
new file mode 100644
index 0000000..cf9baf2
--- /dev/null
+++ b/ucs2-lib/doc/html/icon_manual_32x32.png
Binary files differ
diff --git a/ucs2-lib/doc/html/icon_overview_32x32.png b/ucs2-lib/doc/html/icon_overview_32x32.png
new file mode 100644
index 0000000..58ff4dc
--- /dev/null
+++ b/ucs2-lib/doc/html/icon_overview_32x32.png
Binary files differ
diff --git a/ucs2-lib/doc/html/icon_started_120x120.png b/ucs2-lib/doc/html/icon_started_120x120.png
new file mode 100644
index 0000000..de065b5
--- /dev/null
+++ b/ucs2-lib/doc/html/icon_started_120x120.png
Binary files differ
diff --git a/ucs2-lib/doc/html/icon_started_32x32.png b/ucs2-lib/doc/html/icon_started_32x32.png
new file mode 100644
index 0000000..3c36b14
--- /dev/null
+++ b/ucs2-lib/doc/html/icon_started_32x32.png
Binary files differ
diff --git a/ucs2-lib/doc/html/icon_sw_design_32x32.png b/ucs2-lib/doc/html/icon_sw_design_32x32.png
new file mode 100644
index 0000000..d1d3587
--- /dev/null
+++ b/ucs2-lib/doc/html/icon_sw_design_32x32.png
Binary files differ
diff --git a/ucs2-lib/doc/html/index.html b/ucs2-lib/doc/html/index.html
new file mode 100644
index 0000000..1ce1f6e
--- /dev/null
+++ b/ucs2-lib/doc/html/index.html
@@ -0,0 +1,174 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Main Page</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('index.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock"><h1>UNICENS API Documentation</h1>
+<p>This Help gives you a comprehensive overview of UNICENS V2.x. <br/>
+ An extraction of the most relevant topics is listed below - just click the links to get started.<br/>
+<br/>
+<br/>
+<br/>
+</p>
+<table border="1" class="overview_table">
+<tr>
+<td><div class="image">
+<img src="icon_api_ref_120x120.png" alt="icon_api_ref_120x120.png"/>
+</div>
+ </td><td><h1>API Reference</h1>
+<ul>
+<li><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v.html">Initialization and Service</a></li>
+<li><a class="el" href="group___g___u_c_s___i_n_i_c.html">INIC</a></li>
+<li><a class="el" href="group___g___u_c_s___n_e_t.html">Network</a></li>
+<li><a class="el" href="group___g___u_c_s___a_m_s.html">Application Message Service</a></li>
+<li><a class="el" href="group___g___u_c_s___c_m_d.html">Command Interpreter</a></li>
+<li><a class="el" href="group___g___u_c_s___m_g_r.html">Manager</a></li>
+<li><a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y.html">Node Discovery</a></li>
+<li><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g.html">Routing Management</a></li>
+<li><a class="el" href="group___g___u_c_s___s_c_r_i_p_t_i_n_g.html">Node Scripting</a></li>
+<li><a class="el" href="group___g___u_c_s___p_b_i.html">Peripheral Bus Interface</a></li>
+<li><a class="el" href="group___g___u_c_s___l_l_d.html">Low-Level Driver</a> </li>
+</ul>
+</td></tr>
+</table>
+<table border="1" class="overview_table">
+<tr>
+<td><div class="image">
+<img src="icon_started_120x120.png" alt="icon_started_120x120.png"/>
+</div>
+ </td><td><h1>Getting Started</h1>
+<div style="display:none"><a class="el" href="_p__u_m__g_e_t_t_i_n_g__s_t_a_r_t_e_d.html">Getting Started</a></div><ul>
+<li><a class="el" href="_p__u_m__s_t_a_r_t_e_d__p_r_e_p.html">Preparations</a></li>
+<li><a class="el" href="_p__u_m__s_t_a_r_t_e_d__i_n_i_t.html">Initialization</a></li>
+<li><a class="el" href="_p__u_m__s_t_a_r_t_e_d__s_r_v.html">Service</a></li>
+<li><a class="el" href="_p__u_m__s_y_n_c__a_n_d__a_s_y_n_c__r_e_s_u_l_t_s.html">Synchronous vs. Asynchronous Results</a></li>
+<li><a class="el" href="_p__u_m__s_t_a_r_t_e_d__a_m_s.html">Application Message Service</a></li>
+<li><a class="el" href="_p__u_m__s_t_a_r_t_e_d__c_m_d.html">Command Interpreter</a></li>
+<li><a class="el" href="_p__u_m__s_t_a_r_t_e_d__n_e_t.html">Networking Management</a></li>
+<li><a class="el" href="_p__u_m__s_t_a_r_t_e_d__m_g_r.html">Manager</a></li>
+<li><a class="el" href="_p__u_m__s_t_a_r_t_e_d__n_o_d_e__d_i_s.html">Node Discovery</a></li>
+<li><a class="el" href="_p__u_m__s_t_a_r_t_e_d__p_r_o_g_r_a_m_m_i_n_g.html">Programming</a></li>
+<li><a class="el" href="_p__u_m__b_a_c_k_c_h_a_n_n_e_l__d_i_a_g.html">BackChannel Diagnosis</a></li>
+<li><a class="el" href="_p__u_m__s_t_a_r_t_e_d__r_m.html">Routing Management</a></li>
+<li><a class="el" href="_p__u_m__s_t_a_r_t_e_d__n_o_d_e__s_c_r_i_p_t.html">Node Scripting</a></li>
+<li><a class="el" href="_p__u_m__s_t_a_r_t_e_d__l_l_d.html">Low-Level Driver</a></li>
+</ul>
+<p class="endtd"></p>
+</td></tr>
+</table>
+<table border="1" class="overview_table">
+<tr>
+<td><div class="image">
+<img src="icon_appendix_120x120.png" alt="icon_appendix_120x120.png"/>
+</div>
+ </td><td><h1>Appendix</h1>
+<div style="display:none"><a class="el" href="_p__d_o_c_u__a_p_p_e_n_d_i_x.html">Appendix</a></div><ul>
+<li><a class="el" href="_p__u_m__h_i_s_t_o_r_y.html">Release History</a></li>
+<li><a class="el" href="_p__u_m__o_s81118.html">OS81118 User's Guide</a> </li>
+</ul>
+</td></tr>
+</table>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/inic.css b/ucs2-lib/doc/html/inic.css
new file mode 100644
index 0000000..d3149cc
--- /dev/null
+++ b/ucs2-lib/doc/html/inic.css
@@ -0,0 +1,5337 @@
+A.link {
+ color: blue;
+ text-decoration: underline;
+}
+A.visited {
+ color: purple;
+ text-decoration: underline;
+}
+A.active {
+ color: red;
+ text-decoration: underline;
+}
+H1.FM2pt, H2.FM2pt, H3.FM2pt, H4.FM2pt, H5.FM2pt, H6.FM2pt {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 2.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: underline ;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+H1.FM7pt, H2.FM7pt, H3.FM7pt, H4.FM7pt, H5.FM7pt, H6.FM7pt {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 2.000000pt;
+ margin-bottom: 2.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 7.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.a-head1-no-num {
+ display: block;
+ text-align: left;
+ text-indent: -2.303986pt;
+ margin-top: 16.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 2.303986pt;
+ font-size: 14.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.ActiveIX {
+ display: block;
+ text-align: justify;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 8.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.ActiveTOC {
+ display: block;
+ text-align: justify;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 8.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.AD-Page-Bullet {
+ display: block;
+ text-align: left;
+ text-indent: -10.799988pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 1.500000pt;
+ margin-right: 0.000000pt;
+ margin-left: 10.799988pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.AD-Page-SubTitle {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 9.000000pt;
+ margin-bottom: 3.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 12.000000pt;
+ font-weight: Bold;
+ font-style: Italic;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.AD-Page-Title {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 22.000000pt;
+ font-weight: Bold;
+ font-style: Italic;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Address {
+ display: block;
+ text-align: justify;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 8.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+LI.Alpha {
+ display: block;
+ text-align: left;
+ text-indent: -18.000000pt;
+ margin-top: 2.000000pt;
+ margin-bottom: 2.000000pt;
+ margin-right: 9.000000pt;
+ margin-left: 18.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+LI.Alpha1 {
+ display: block;
+ text-align: left;
+ text-indent: -18.000000pt;
+ margin-top: 2.000000pt;
+ margin-bottom: 2.000000pt;
+ margin-right: 9.000000pt;
+ margin-left: 18.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+LI.Alpha1Indent {
+ display: block;
+ text-align: left;
+ text-indent: -18.000000pt;
+ margin-top: 2.000000pt;
+ margin-bottom: 2.000000pt;
+ margin-right: 9.000000pt;
+ margin-left: 36.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+LI.AlphaIndent {
+ display: block;
+ text-align: left;
+ text-indent: -18.000000pt;
+ margin-top: 2.000000pt;
+ margin-bottom: 2.000000pt;
+ margin-right: 9.000000pt;
+ margin-left: 36.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Anchor {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 4.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.AnchorTop {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 2.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+H1.Appendix, H2.Appendix, H3.Appendix, H4.Appendix, H5.Appendix, H6.Appendix {
+ display: block;
+ text-align: center;
+ text-indent: 0.000000pt;
+ margin-top: 24.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 18.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Times New Roman";
+}
+H1.Appendix-noSection, H2.Appendix-noSection, H3.Appendix-noSection, H4.Appendix-noSection, H5.Appendix-noSection, H6.Appendix-noSection {
+ display: block;
+ text-align: center;
+ text-indent: 0.000000pt;
+ margin-top: 24.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 18.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Times New Roman";
+}
+P.Appendix-noSectionTOC {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 6.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 12.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+H1.AppendixTOC, H2.AppendixTOC, H3.AppendixTOC, H4.AppendixTOC, H5.AppendixTOC, H6.AppendixTOC {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 6.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 12.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+LI.AppEquation {
+ display: block;
+ text-align: left;
+ text-indent: -90.000000pt;
+ margin-top: 12.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 90.000000pt;
+ font-size: 10.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+LI.AppExample {
+ display: block;
+ text-align: left;
+ text-indent: -90.000000pt;
+ margin-top: 12.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 90.000000pt;
+ font-size: 10.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+H1.AppFigureTitle, H2.AppFigureTitle, H3.AppFigureTitle, H4.AppFigureTitle, H5.AppFigureTitle, H6.AppFigureTitle {
+ display: block;
+ text-align: left;
+ text-indent: -72.000000pt;
+ margin-top: 12.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 72.000000pt;
+ font-size: 10.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+LI.AppFigureTitleaipd {
+ display: block;
+ text-align: left;
+ text-indent: -72.000000pt;
+ margin-top: 12.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 72.000000pt;
+ font-size: 10.000000pt;
+ font-weight: Bold;
+ font-style: Italic;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+P.AppFigureTitleLOF {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+LI.AppHeading1 {
+ display: block;
+ text-align: left;
+ text-indent: -90.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 90.000000pt;
+ font-size: 12.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+LI.AppHeading1TOC {
+ display: block;
+ text-align: justify;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 8.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+LI.AppHeading2 {
+ display: block;
+ text-align: left;
+ text-indent: -36.000000pt;
+ margin-top: 12.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 36.000000pt;
+ font-size: 11.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+LI.AppHeading3 {
+ display: block;
+ text-align: left;
+ text-indent: -46.799988pt;
+ margin-top: 9.000000pt;
+ margin-bottom: 4.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 46.799988pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+LI.AppHeading4 {
+ display: block;
+ text-align: left;
+ text-indent: -54.000000pt;
+ margin-top: 9.000000pt;
+ margin-bottom: 4.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 54.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+LI.AppRegister {
+ display: block;
+ text-align: left;
+ text-indent: -90.000000pt;
+ margin-top: 12.000000pt;
+ margin-bottom: 1.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 90.000000pt;
+ font-size: 10.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+H1.AppTableTitle, H2.AppTableTitle, H3.AppTableTitle, H4.AppTableTitle, H5.AppTableTitle, H6.AppTableTitle {
+ display: block;
+ text-align: left;
+ text-indent: -72.000000pt;
+ margin-top: 12.000000pt;
+ margin-bottom: 1.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 72.000000pt;
+ font-size: 10.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+LI.Author {
+ display: block;
+ text-align: left;
+ text-indent: -42.983994pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 42.983994pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Italic;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Bit-Description {
+ display: block;
+ text-align: left;
+ text-indent: -21.599991pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 75.599991pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Bit-Name {
+ display: block;
+ text-align: left;
+ text-indent: -54.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 54.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Bit-Name-Leadin {
+ display: block;
+ text-align: left;
+ text-indent: -54.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 1.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 54.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+LI.Bit- {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.BitName {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 2.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+H1.BitText, H2.BitText, H3.BitText, H4.BitText, H5.BitText, H6.BitText {
+ display: block;
+ text-align: justify;
+ text-indent: -18.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 18.000000pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Body {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 4.000000pt;
+ margin-bottom: 4.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Body-Note {
+ display: block;
+ text-align: justify;
+ text-indent: 0.000000pt;
+ margin-top: 6.000000pt;
+ margin-bottom: 9.000000pt;
+ margin-right: 36.000000pt;
+ margin-left: 36.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Body-Text {
+ display: block;
+ text-align: justify;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Body-Text-Left {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 3.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Body-1-625 {
+ display: block;
+ text-align: left;
+ text-indent: -117.000000pt;
+ margin-top: 4.000000pt;
+ margin-bottom: 4.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 117.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Body-Indent {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 3.000000pt;
+ margin-bottom: 3.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Courier New";
+}
+P.BodyIndent {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 4.000000pt;
+ margin-bottom: 4.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+LI.Bullet1 {
+ display: block;
+ text-align: left;
+ text-indent: -9.000000pt;
+ margin-top: 2.000000pt;
+ margin-bottom: 2.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 9.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Bullet1Indent {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 2.000000pt;
+ margin-bottom: 2.000000pt;
+ margin-right: 9.000000pt;
+ margin-left: 9.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+LI.Bullet1nospace {
+ display: block;
+ text-align: left;
+ text-indent: -9.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 9.000000pt;
+ margin-left: 9.000000pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+LI.Bullet2 {
+ display: block;
+ text-align: left;
+ text-indent: -9.000000pt;
+ margin-top: 2.000000pt;
+ margin-bottom: 2.000000pt;
+ margin-right: 18.000000pt;
+ margin-left: 18.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+LI.Bullet2nospace {
+ display: block;
+ text-align: left;
+ text-indent: -9.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 18.000000pt;
+ margin-left: 18.000000pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Bullet3 {
+ display: block;
+ text-align: left;
+ text-indent: -7.199997pt;
+ margin-top: 2.000000pt;
+ margin-bottom: 2.000000pt;
+ margin-right: 18.000000pt;
+ margin-left: 25.199997pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Bullet-In-Note {
+ display: block;
+ text-align: left;
+ text-indent: -5.759995pt;
+ margin-top: 2.000000pt;
+ margin-bottom: 2.000000pt;
+ margin-right: 18.000000pt;
+ margin-left: 48.959991pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Bulleted {
+ display: block;
+ text-align: left;
+ text-indent: -18.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 1.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 21.599991pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Bulleted-Sub {
+ display: block;
+ text-align: left;
+ text-indent: -18.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 1.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 32.399994pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Bulleted-Leadin {
+ display: block;
+ text-align: justify;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 1.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+LI.Cell-Body-Left-Bullet {
+ display: block;
+ text-align: left;
+ text-indent: -9.000000pt;
+ margin-top: 1.000000pt;
+ margin-bottom: 1.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 9.000000pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+LI.Cell-Bullet1 {
+ display: block;
+ text-align: left;
+ text-indent: -9.000000pt;
+ margin-top: 1.000000pt;
+ margin-bottom: 1.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 9.000000pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.CellBodleft {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Times New Roman";
+}
+P.CellBody {
+ display: block;
+ text-align: center;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.CellBody-middle {
+ display: block;
+ text-align: center;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 8.500000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.CellBodyCenter {
+ display: block;
+ text-align: center;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 8.500000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.CellBodyLeft {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.CellBodyLeft-middle {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 8.500000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.CellBodyLeft-middle-bullet {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 8.500000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.CellBodyLeftInd-Number {
+ display: block;
+ text-align: left;
+ text-indent: -10.040024pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 10.040024pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.CellBodyLeftIndent {
+ display: block;
+ text-align: left;
+ text-indent: -5.759995pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 5.759995pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.CellBodyRight {
+ display: block;
+ text-align: right;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+LI.CellBullet1 {
+ display: block;
+ text-align: left;
+ text-indent: -9.000000pt;
+ margin-top: 1.000000pt;
+ margin-bottom: 1.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 9.000000pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.CellHeading {
+ display: block;
+ text-align: center;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 9.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.CellHedLef {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Times New Roman";
+}
+H1.Chapter, H2.Chapter, H3.Chapter, H4.Chapter, H5.Chapter, H6.Chapter {
+ display: block;
+ text-align: center;
+ text-indent: 0.000000pt;
+ margin-top: 24.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 18.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Times New Roman";
+}
+H1.Chapter-NoSection, H2.Chapter-NoSection, H3.Chapter-NoSection, H4.Chapter-NoSection, H5.Chapter-NoSection, H6.Chapter-NoSection {
+ display: block;
+ text-align: center;
+ text-indent: 0.000000pt;
+ margin-top: 24.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 18.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Times New Roman";
+}
+P.Chapter-NoSectionTOC {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 6.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 12.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+H1.ChapterTOC, H2.ChapterTOC, H3.ChapterTOC, H4.ChapterTOC, H5.ChapterTOC, H6.ChapterTOC {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 6.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 12.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.ChapterTOC-w {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 6.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 12.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Code {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Courier New";
+}
+P.ComputerText {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Courier New";
+}
+H1.Country-State, H2.Country-State, H3.Country-State, H4.Country-State, H5.Country-State, H6.Country-State {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 3.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 8.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Cover-Body {
+ display: block;
+ text-align: right;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 14.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Cover-Media- {
+ display: block;
+ text-align: right;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 12.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Cover-MMedia {
+ display: block;
+ text-align: right;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 14.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Cover-Most {
+ display: block;
+ text-align: right;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 55.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Device {
+ display: block;
+ text-align: right;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 18.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+P.DirectiveHead {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 7.000000pt;
+ margin-bottom: 7.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 14.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.DRAFT {
+ display: block;
+ text-align: center;
+ text-indent: 0.000000pt;
+ margin-top: 10.000000pt;
+ margin-bottom: 10.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 24.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Equation {
+ display: block;
+ text-align: justify;
+ text-indent: -18.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 36.000000pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+H1.Equation-UGD, H2.Equation-UGD, H3.Equation-UGD, H4.Equation-UGD, H5.Equation-UGD, H6.Equation-UGD {
+ display: block;
+ text-align: left;
+ text-indent: -90.000000pt;
+ margin-top: 12.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 90.000000pt;
+ font-size: 10.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+LI.Equation-UGD-AIPD {
+ display: block;
+ text-align: left;
+ text-indent: -72.000000pt;
+ margin-top: 12.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 72.000000pt;
+ font-size: 10.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+LI.EquationAIPD {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 12.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+LI.EquationAN {
+ display: block;
+ text-align: left;
+ text-indent: -79.199997pt;
+ margin-top: 12.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 79.199997pt;
+ font-size: 10.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+LI.EquationDS {
+ display: block;
+ text-align: left;
+ text-indent: -90.000000pt;
+ margin-top: 12.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 90.000000pt;
+ font-size: 10.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+LI.Example {
+ display: block;
+ text-align: left;
+ text-indent: -90.000000pt;
+ margin-top: 12.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 90.000000pt;
+ font-size: 10.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+LI.ExampleAN {
+ display: block;
+ text-align: left;
+ text-indent: -79.199997pt;
+ margin-top: 12.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 79.199997pt;
+ font-size: 10.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+LI.ExampleDS {
+ display: block;
+ text-align: left;
+ text-indent: -90.000000pt;
+ margin-top: 12.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 90.000000pt;
+ font-size: 10.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+P.Figure- {
+ display: block;
+ text-align: center;
+ text-indent: 0.000000pt;
+ margin-top: 11.000000pt;
+ margin-bottom: 11.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Italic;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Figure-Apx {
+ display: block;
+ text-align: center;
+ text-indent: 0.000000pt;
+ margin-top: 11.000000pt;
+ margin-bottom: 11.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Italic;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Figure-ApxLOF {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Figure-LOF {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Figure-NO- {
+ display: block;
+ text-align: center;
+ text-indent: 0.000000pt;
+ margin-top: 11.000000pt;
+ margin-bottom: 11.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Italic;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+LI.Figure-UGD {
+ display: block;
+ text-align: left;
+ text-indent: -90.000000pt;
+ margin-top: 12.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 90.000000pt;
+ font-size: 10.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+LI.Figure-UGD-AIPD {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 4.000000pt;
+ margin-bottom: 5.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Italic;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Figure-UGD-AIPDLOF {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 12.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Times New Roman";
+}
+LI.FigureAN {
+ display: block;
+ text-align: left;
+ text-indent: -79.199997pt;
+ margin-top: 12.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 79.199997pt;
+ font-size: 10.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+LI.FigureANAIPD {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 4.000000pt;
+ margin-bottom: 5.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Italic;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+FigureDS {
+ display: block;
+ text-align: left;
+ text-indent: -90.000000pt;
+ margin-top: 12.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 90.000000pt;
+ font-size: 10.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+P.FigureDS-NO- {
+ display: block;
+ text-align: left;
+ text-indent: -50.399994pt;
+ margin-top: 12.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 50.399994pt;
+ font-size: 10.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+LI.FigureDSAIPD {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 4.000000pt;
+ margin-bottom: 5.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Italic;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.FigureDSLOF {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Footer {
+ display: block;
+ text-align: justify;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 8.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.FooterFirst {
+ display: block;
+ text-align: justify;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 8.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Footnote {
+ display: block;
+ text-align: justify;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 18.000000pt;
+ margin-left: 18.000000pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Formula {
+ display: block;
+ text-align: right;
+ text-indent: 0.000000pt;
+ margin-top: 5.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Italic;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.FormulaBar {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 2.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.FormulaDS {
+ display: block;
+ text-align: right;
+ text-indent: -90.000000pt;
+ margin-top: 12.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 90.000000pt;
+ font-size: 10.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+LI.FormulaDs {
+ display: block;
+ text-align: left;
+ text-indent: -90.000000pt;
+ margin-top: 12.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 90.000000pt;
+ font-size: 10.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+P.Function {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 12.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.GlossarySIX {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.GroupTitlesIOM {
+ display: block;
+ text-align: justify;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 12.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+H1.GroupTitlesIX, H2.GroupTitlesIX, H3.GroupTitlesIX, H4.GroupTitlesIX, H5.GroupTitlesIX, H6.GroupTitlesIX {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 5.000000pt;
+ margin-bottom: 2.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.GroupTitlesSIX {
+ display: block;
+ text-align: justify;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 12.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Times New Roman";
+}
+P.Header {
+ display: block;
+ text-align: justify;
+ text-indent: 0.000000pt;
+ margin-top: 10.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 14.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.HeaderLeft {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 18.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.HeaderRight {
+ display: block;
+ text-align: right;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 18.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+H1.Heading-1, H2.Heading-1, H3.Heading-1, H4.Heading-1, H5.Heading-1, H6.Heading-1 {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 12.000000pt;
+ margin-bottom: 12.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 18.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Heading-1TOC {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 6.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 12.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+H1.Heading-2, H2.Heading-2, H3.Heading-2, H4.Heading-2, H5.Heading-2, H6.Heading-2 {
+ display: block;
+ text-align: justify;
+ text-indent: 0.000000pt;
+ margin-top: 12.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 16.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Heading-2-Inst {
+ display: block;
+ text-align: justify;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 7.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Heading-2TOC {
+ display: block;
+ text-align: left;
+ text-indent: 14.399994pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 1.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+H1.Heading-3, H2.Heading-3, H3.Heading-3, H4.Heading-3, H5.Heading-3, H6.Heading-3 {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 12.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 14.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Heading-3TOC {
+ display: block;
+ text-align: left;
+ text-indent: 28.799988pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+H1.Heading-4, H2.Heading-4, H3.Heading-4, H4.Heading-4, H5.Heading-4, H6.Heading-4 {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 12.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 12.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Heading-4TOC {
+ display: block;
+ text-align: left;
+ text-indent: 43.199997pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+H1.Heading-5, H2.Heading-5, H3.Heading-5, H4.Heading-5, H5.Heading-5, H6.Heading-5 {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 12.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 12.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+H1.Heading-6, H2.Heading-6, H3.Heading-6, H4.Heading-6, H5.Heading-6, H6.Heading-6 {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 12.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 12.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+H1.Heading-7, H2.Heading-7, H3.Heading-7, H4.Heading-7, H5.Heading-7, H6.Heading-7 {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 5.000000pt;
+ margin-bottom: 7.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 11.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+H1.Heading-Apx1, H2.Heading-Apx1, H3.Heading-Apx1, H4.Heading-Apx1, H5.Heading-Apx1, H6.Heading-Apx1 {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 12.000000pt;
+ margin-bottom: 12.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 18.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Heading-Apx1TOC {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 6.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 12.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+H1.Heading-Apx2, H2.Heading-Apx2, H3.Heading-Apx2, H4.Heading-Apx2, H5.Heading-Apx2, H6.Heading-Apx2 {
+ display: block;
+ text-align: justify;
+ text-indent: 0.000000pt;
+ margin-top: 12.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 16.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Heading-Apx2TOC {
+ display: block;
+ text-align: left;
+ text-indent: 14.399994pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 1.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+H1.Heading-Apx3, H2.Heading-Apx3, H3.Heading-Apx3, H4.Heading-Apx3, H5.Heading-Apx3, H6.Heading-Apx3 {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 12.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 14.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Heading-Apx3TOC {
+ display: block;
+ text-align: left;
+ text-indent: 21.599991pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+H1.Heading-Apx4, H2.Heading-Apx4, H3.Heading-Apx4, H4.Heading-Apx4, H5.Heading-Apx4, H6.Heading-Apx4 {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 12.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 12.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Heading-Apx4TOC {
+ display: block;
+ text-align: left;
+ text-indent: 43.199997pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+H1.Heading-Apx5, H2.Heading-Apx5, H3.Heading-Apx5, H4.Heading-Apx5, H5.Heading-Apx5, H6.Heading-Apx5 {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 12.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 12.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Heading-Hidden {
+ display: block;
+ text-align: justify;
+ text-indent: 0.000000pt;
+ margin-top: 9.000000pt;
+ margin-bottom: 3.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 16.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Heading-InstTOC {
+ display: block;
+ text-align: left;
+ text-indent: 28.799988pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 1.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Heading-Lists {
+ display: block;
+ text-align: center;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 9.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 16.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+P.Heading-Lists-TOC-only {
+ display: block;
+ text-align: center;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 9.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 16.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+P.Heading-ListsTOC {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 12.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+P.Heading-Shaded {
+ display: block;
+ text-align: justify;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+H1.Heading1, H2.Heading1, H3.Heading1, H4.Heading1, H5.Heading1, H6.Heading1 {
+ display: block;
+ text-align: left;
+ text-indent: -36.000000pt;
+ margin-top: 14.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 36.000000pt;
+ font-size: 12.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+H1.Heading1NoNumber, H2.Heading1NoNumber, H3.Heading1NoNumber, H4.Heading1NoNumber, H5.Heading1NoNumber, H6.Heading1NoNumber {
+ display: block;
+ text-align: left;
+ text-indent: -36.000000pt;
+ margin-top: 14.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 36.000000pt;
+ font-size: 12.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+P.Heading1NoNumberTOC {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 4.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 72.000000pt;
+ font-size: 11.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Heading1TOC {
+ display: block;
+ text-align: left;
+ text-indent: -18.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 18.000000pt;
+ font-size: 8.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+H1.Heading2, H2.Heading2, H3.Heading2, H4.Heading2, H5.Heading2, H6.Heading2 {
+ display: block;
+ text-align: left;
+ text-indent: -46.799988pt;
+ margin-top: 9.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 46.799988pt;
+ font-size: 11.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Heading2NoNumber {
+ display: block;
+ text-align: left;
+ text-indent: -46.799988pt;
+ margin-top: 9.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 46.799988pt;
+ font-size: 11.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Heading2NoNumberTOC {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 1.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 108.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+LI.Heading2Split {
+ display: block;
+ text-align: left;
+ text-indent: -46.799988pt;
+ margin-top: 9.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 46.799988pt;
+ font-size: 11.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Heading2SplitTOC {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 1.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 108.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Heading2TOC {
+ display: block;
+ text-align: left;
+ text-indent: -40.032013pt;
+ margin-top: 2.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 144.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+H1.Heading3, H2.Heading3, H3.Heading3, H4.Heading3, H5.Heading3, H6.Heading3 {
+ display: block;
+ text-align: left;
+ text-indent: -46.799988pt;
+ margin-top: 9.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 46.799988pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+P.Heading3NoNumber {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 9.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+P.Heading3NoNumberTOC {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 1.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 144.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+LI.Heading3Split {
+ display: block;
+ text-align: left;
+ text-indent: -46.799988pt;
+ margin-top: 9.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 46.799988pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+P.Heading3SplitTOC {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 1.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 144.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Heading3TOC {
+ display: block;
+ text-align: left;
+ text-indent: -43.199997pt;
+ margin-top: 1.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 187.199997pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+H1.Heading4, H2.Heading4, H3.Heading4, H4.Heading4, H5.Heading4, H6.Heading4 {
+ display: block;
+ text-align: left;
+ text-indent: -54.000000pt;
+ margin-top: 8.000000pt;
+ margin-bottom: 4.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 54.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Heading4NoNumber {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 8.000000pt;
+ margin-bottom: 4.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.HiddenFootnote-for-Conditional-Text {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.IgnoreCharsIX {
+ display: block;
+ text-align: justify;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 8.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Indent {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 4.000000pt;
+ margin-bottom: 4.000000pt;
+ margin-right: 9.000000pt;
+ margin-left: 18.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+LI.Index {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 12.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+P.IndexIX {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 8.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+LI.IndexTOC {
+ display: block;
+ text-align: justify;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 8.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Inst-Example {
+ display: block;
+ text-align: left;
+ text-indent: -216.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 216.000000pt;
+ font-size: 9.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Courier New";
+}
+P.Inst-Intro {
+ display: block;
+ text-align: justify;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 9.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Inst-Syntax {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 8.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Courier New";
+}
+P.Inst-Syntax-Desc {
+ display: block;
+ text-align: left;
+ text-indent: -151.199997pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 151.199997pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Courier New";
+}
+P.Inst-Title {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 7.000000pt;
+ font-weight: Bold;
+ font-style: Italic;
+ color: #dcdcdc;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Instruction-Header {
+ display: block;
+ text-align: justify;
+ text-indent: 0.000000pt;
+ margin-top: 10.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 14.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+LI.legend {
+ display: block;
+ text-align: left;
+ text-indent: -43.199997pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 43.199997pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+LI.Legend {
+ display: block;
+ text-align: left;
+ text-indent: -39.599991pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 39.599991pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+H1.Level1IOM, H2.Level1IOM, H3.Level1IOM, H4.Level1IOM, H5.Level1IOM, H6.Level1IOM {
+ display: block;
+ text-align: justify;
+ text-indent: 0.000000pt;
+ margin-top: 13.000000pt;
+ margin-bottom: 13.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 11.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Level1IX {
+ display: block;
+ text-align: justify;
+ text-indent: -18.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 18.000000pt;
+ font-size: 8.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+H1.Level1SIX, H2.Level1SIX, H3.Level1SIX, H4.Level1SIX, H5.Level1SIX, H6.Level1SIX {
+ display: block;
+ text-align: justify;
+ text-indent: 0.000000pt;
+ margin-top: 12.000000pt;
+ margin-bottom: 5.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Level2IOM {
+ display: block;
+ text-align: justify;
+ text-indent: -36.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 54.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Level2IX {
+ display: block;
+ text-align: justify;
+ text-indent: -18.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 36.000000pt;
+ font-size: 8.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Level2SIX {
+ display: block;
+ text-align: justify;
+ text-indent: -36.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 54.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Level3IX {
+ display: block;
+ text-align: justify;
+ text-indent: -18.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 54.000000pt;
+ font-size: 8.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Level4IX {
+ display: block;
+ text-align: justify;
+ text-indent: -18.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 72.000000pt;
+ font-size: 8.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.LimitTopic {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 9.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 11.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Mapping-Table-Cell {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 2.000000pt;
+ margin-bottom: 2.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 12.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Times New Roman";
+}
+P.Mapping-Table-Title {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 2.000000pt;
+ margin-bottom: 2.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 14.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Times New Roman";
+}
+P.Microchip {
+ display: block;
+ text-align: center;
+ text-indent: 0.000000pt;
+ margin-top: 20.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 65.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "MICROCHIP";
+}
+Note-.Note {
+ display: block;
+ text-align: left;
+ text-indent: -36.000000pt;
+ margin-top: 4.000000pt;
+ margin-bottom: 4.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 45.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+LI.NoteNumbered {
+ display: block;
+ text-align: left;
+ text-indent: -19.800003pt;
+ margin-top: 4.000000pt;
+ margin-bottom: 4.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 54.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+LI.NoteNumbered1 {
+ display: block;
+ text-align: left;
+ text-indent: -45.000000pt;
+ margin-top: 4.000000pt;
+ margin-bottom: 4.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 54.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Notes-Page {
+ display: block;
+ text-align: justify;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+LI.Numbered {
+ display: block;
+ text-align: left;
+ text-indent: -18.000000pt;
+ margin-top: 2.000000pt;
+ margin-bottom: 2.000000pt;
+ margin-right: 9.000000pt;
+ margin-left: 18.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+LI.Numbered-List {
+ display: block;
+ text-align: left;
+ text-indent: -18.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 21.599991pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Numbered-List-First {
+ display: block;
+ text-align: left;
+ text-indent: -18.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 21.599991pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Numbered-List-Sub {
+ display: block;
+ text-align: left;
+ text-indent: -18.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 39.599991pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+H1.Numbered1, H2.Numbered1, H3.Numbered1, H4.Numbered1, H5.Numbered1, H6.Numbered1 {
+ display: block;
+ text-align: left;
+ text-indent: -18.000000pt;
+ margin-top: 2.000000pt;
+ margin-bottom: 2.000000pt;
+ margin-right: 9.000000pt;
+ margin-left: 18.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Offices {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 1.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.PageBreakCT {
+ display: block;
+ text-align: left;
+ text-indent: -54.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 54.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+H1.Parameter, H2.Parameter, H3.Parameter, H4.Parameter, H5.Parameter, H6.Parameter {
+ display: block;
+ text-align: justify;
+ text-indent: 0.000000pt;
+ margin-top: 6.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+H1.Parameter-Head, H2.Parameter-Head, H3.Parameter-Head, H4.Parameter-Head, H5.Parameter-Head, H6.Parameter-Head {
+ display: block;
+ text-align: justify;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+LI.PartTitle {
+ display: block;
+ text-align: center;
+ text-indent: 0.000000pt;
+ margin-top: 24.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 18.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Times New Roman";
+}
+P.PopupDef {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 4.000000pt;
+ margin-bottom: 4.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.PopupTerm {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 9.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 11.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.PrefaceNoticeBody {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 7.000000pt;
+ margin-bottom: 7.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+H1.PrefaceNoticeHeading, H2.PrefaceNoticeHeading, H3.PrefaceNoticeHeading, H4.PrefaceNoticeHeading, H5.PrefaceNoticeHeading, H6.PrefaceNoticeHeading {
+ display: block;
+ text-align: center;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 14.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #ffffff;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+H1.Reference-List, H2.Reference-List, H3.Reference-List, H4.Reference-List, H5.Reference-List, H6.Reference-List {
+ display: block;
+ text-align: left;
+ text-indent: -21.599991pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 3.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 21.599991pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+H1.Reference-List-Data, H2.Reference-List-Data, H3.Reference-List-Data, H4.Reference-List-Data, H5.Reference-List-Data, H6.Reference-List-Data {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 21.599991pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+H1.Region, H2.Region, H3.Region, H4.Region, H5.Region, H6.Region {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 2.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+LI.Register {
+ display: block;
+ text-align: left;
+ text-indent: -90.000000pt;
+ margin-top: 12.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 90.000000pt;
+ font-size: 10.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+P.Register-Name {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 9.000000pt;
+ margin-bottom: 3.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 11.000000pt;
+ font-weight: Bold;
+ font-style: Italic;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+LI.RegisterAN {
+ display: block;
+ text-align: left;
+ text-indent: -79.199997pt;
+ margin-top: 12.000000pt;
+ margin-bottom: 1.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 79.199997pt;
+ font-size: 10.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+P.RegisterDef {
+ display: block;
+ text-align: justify;
+ text-indent: -54.000000pt;
+ margin-top: 8.000000pt;
+ margin-bottom: 8.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 75.599991pt;
+ font-size: 11.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Times New Roman";
+}
+LI.RegisterDS {
+ display: block;
+ text-align: left;
+ text-indent: -90.000000pt;
+ margin-top: 12.000000pt;
+ margin-bottom: 1.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 90.000000pt;
+ font-size: 10.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+P.rot {
+ display: block;
+ text-align: justify;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 11.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #ff0000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+H1.SafetyBody, H2.SafetyBody, H3.SafetyBody, H4.SafetyBody, H5.SafetyBody, H6.SafetyBody {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 9.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+LI.SafetyCaution {
+ display: block;
+ text-align: center;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 12.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #ffffff;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+LI.SafetyDanger {
+ display: block;
+ text-align: center;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 12.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #ffffff;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+LI.SafetyNotice {
+ display: block;
+ text-align: center;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 12.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #ffffff;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+LI.SafetyWarning {
+ display: block;
+ text-align: center;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 12.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #ffffff;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+LI.SectionTitle {
+ display: block;
+ text-align: center;
+ text-indent: 0.000000pt;
+ margin-top: 24.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 18.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Times New Roman";
+}
+P.SectionTitleTOC {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 9.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 12.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.SeparatorsIX {
+ display: block;
+ text-align: justify;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 8.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.SortOrderIX {
+ display: block;
+ text-align: justify;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 8.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Status-Bits {
+ display: block;
+ text-align: left;
+ text-indent: -64.799988pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 3.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 64.799988pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Subhead {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 9.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 11.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Subhead1 {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 14.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 12.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+P.Subhead1TOC {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 8.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Subhead2 {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 12.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 11.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Subhead3 {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 9.000000pt;
+ margin-bottom: 4.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+P.Subhead4 {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 9.000000pt;
+ margin-bottom: 4.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Subitem {
+ display: block;
+ text-align: left;
+ text-indent: -15.983994pt;
+ margin-top: 1.000000pt;
+ margin-bottom: 1.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 51.983994pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.SubjectIOM {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Table- {
+ display: block;
+ text-align: center;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 11.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Italic;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Table-Apx {
+ display: block;
+ text-align: center;
+ text-indent: 0.000000pt;
+ margin-top: 11.000000pt;
+ margin-bottom: 11.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Italic;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Table-ApxLOT {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Table-LOT {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Table-Cell-Centered {
+ display: block;
+ text-align: center;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Table-Cell-Centered-Top {
+ display: block;
+ text-align: center;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Table-Cell-Left {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Table-Cell-Left-Decimal {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Table-Cell-Left-Inst {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Table-Cell-Left-Numbered {
+ display: block;
+ text-align: left;
+ text-indent: -14.399994pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 14.399994pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Table-Cell-Left-Top {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Table-Cell-Left-Indent {
+ display: block;
+ text-align: left;
+ text-indent: -5.039993pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 5.039993pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Table-Cell-Right {
+ display: block;
+ text-align: right;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Table-Head {
+ display: block;
+ text-align: center;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 9.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Table-Head-Opcode {
+ display: block;
+ text-align: center;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 8.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Table-Notes {
+ display: block;
+ text-align: left;
+ text-indent: -14.399994pt;
+ margin-top: 2.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 14.399994pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Table-Notes- {
+ display: block;
+ text-align: left;
+ text-indent: -14.399994pt;
+ margin-top: 2.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 14.399994pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Table-Notes-1 {
+ display: block;
+ text-align: left;
+ text-indent: -14.399994pt;
+ margin-top: 2.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 14.399994pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Table-Notes-Outside {
+ display: block;
+ text-align: left;
+ text-indent: -14.400009pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 18.000000pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Table-Sub-Header {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 1.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 9.000000pt;
+ font-weight: Bold;
+ font-style: Italic;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.TableCellLeft-Ind {
+ display: block;
+ text-align: left;
+ text-indent: -10.040024pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 10.040024pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.TableFootnote {
+ display: block;
+ text-align: left;
+ text-indent: -18.000000pt;
+ margin-top: 2.000000pt;
+ margin-bottom: 2.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 43.199997pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.TableFootnote1 {
+ display: block;
+ text-align: left;
+ text-indent: -43.199997pt;
+ margin-top: 2.000000pt;
+ margin-bottom: 2.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 43.199997pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+LI.Tablenote {
+ display: block;
+ text-align: left;
+ text-indent: -43.199997pt;
+ margin-top: 2.000000pt;
+ margin-bottom: 2.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 43.199997pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+LI.TablenoteDaggr {
+ display: block;
+ text-align: left;
+ text-indent: -12.960007pt;
+ margin-top: 2.000000pt;
+ margin-bottom: 2.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 43.199997pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+LI.TablenoteStar {
+ display: block;
+ text-align: left;
+ text-indent: -12.960007pt;
+ margin-top: 2.000000pt;
+ margin-bottom: 2.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 43.199997pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+H1.TableofContents, H2.TableofContents, H3.TableofContents, H4.TableofContents, H5.TableofContents, H6.TableofContents {
+ display: block;
+ text-align: center;
+ text-indent: 0.000000pt;
+ margin-top: 24.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 18.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Times New Roman";
+}
+P.TableSeperator {
+ display: block;
+ text-align: justify;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 2.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+TableTitle {
+ display: block;
+ text-align: left;
+ text-indent: -72.000000pt;
+ margin-top: 12.000000pt;
+ margin-bottom: 1.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 72.000000pt;
+ font-size: 10.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+P.TableTitle-LOT {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+LI.TableTitleAN {
+ display: block;
+ text-align: left;
+ text-indent: -64.799988pt;
+ margin-top: 12.000000pt;
+ margin-bottom: 1.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 64.799988pt;
+ font-size: 10.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+H1.TableTitleDocConv, H2.TableTitleDocConv, H3.TableTitleDocConv, H4.TableTitleDocConv, H5.TableTitleDocConv, H6.TableTitleDocConv {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 12.000000pt;
+ margin-bottom: 1.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+LI.TableTitleDS {
+ display: block;
+ text-align: left;
+ text-indent: -72.000000pt;
+ margin-top: 12.000000pt;
+ margin-bottom: 1.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 72.000000pt;
+ font-size: 10.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+P.TableTitleLOT {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Tabs {
+ display: block;
+ text-align: center;
+ text-indent: 0.000000pt;
+ margin-top: 5.000000pt;
+ margin-bottom: 5.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 12.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #ffffff;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.TemplateInfo {
+ display: block;
+ text-align: justify;
+ text-indent: 0.000000pt;
+ margin-top: 3.000000pt;
+ margin-bottom: 3.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 7.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+LI.TemplateInfoCN {
+ display: block;
+ text-align: justify;
+ text-indent: 0.000000pt;
+ margin-top: 3.000000pt;
+ margin-bottom: 3.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 7.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+LI.TemplateInfoPN {
+ display: block;
+ text-align: justify;
+ text-indent: 0.000000pt;
+ margin-top: 3.000000pt;
+ margin-bottom: 3.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 7.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+LI.TemplateInfoRD {
+ display: block;
+ text-align: justify;
+ text-indent: 0.000000pt;
+ margin-top: 3.000000pt;
+ margin-bottom: 3.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 7.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+LI.TemplateInfoRL {
+ display: block;
+ text-align: justify;
+ text-indent: 0.000000pt;
+ margin-top: 3.000000pt;
+ margin-bottom: 3.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 7.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Terms {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 4.000000pt;
+ margin-bottom: 4.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Timing-TableTop {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 1.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 5.759995pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+H1.Title, H2.Title, H3.Title, H4.Title, H5.Title, H6.Title {
+ display: block;
+ text-align: center;
+ text-indent: 0.000000pt;
+ margin-top: 24.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 18.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Times New Roman";
+}
+P.TitleDescription {
+ display: block;
+ text-align: right;
+ text-indent: 0.000000pt;
+ margin-top: 8.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 24.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Times New Roman";
+}
+P.TitleHeading {
+ display: block;
+ text-align: right;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 14.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 30.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Times New Roman";
+}
+P.TitleHeadingTOC {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 12.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Times New Roman";
+}
+H1.TitleTOC, H2.TitleTOC, H3.TitleTOC, H4.TitleTOC, H5.TitleTOC, H6.TitleTOC {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 6.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 12.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.To-Be-Added {
+ display: block;
+ text-align: justify;
+ text-indent: 0.000000pt;
+ margin-top: 5.000000pt;
+ margin-bottom: 6.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 8.000000pt;
+ font-weight: bold;
+ font-style: Regular;
+ color: #ba6300;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial Black";
+}
+P.Trademarks {
+ display: block;
+ text-align: justify;
+ text-indent: 0.000000pt;
+ margin-top: 2.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 7.500000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+H1.ZNotes, H2.ZNotes, H3.ZNotes, H4.ZNotes, H5.ZNotes, H6.ZNotes {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+H1.ZNotesPage, H2.ZNotesPage, H3.ZNotesPage, H4.ZNotesPage, H5.ZNotesPage, H6.ZNotesPage {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 10.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
+EM.FM-pagenum {
+ font-size: 8.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+EM.FM-paratext {
+}
+EM.FM10ptArial {
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+EM.FM7-arial {
+ font-size: 7.000000pt;
+ font-family: "Arial";
+}
+EM.FM7ptArial {
+ font-size: 7.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+EM.FM8-arial {
+ font-size: 8.000000pt;
+ font-family: "Arial";
+}
+EM.FM8ptArial {
+ font-size: 8.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+EM.FM9-arial {
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+EM.FM9ptArial {
+ font-size: 9.000000pt;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+EM.Arial {
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: underline ;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+EM.ArialDefault {
+ font-family: "Arial";
+}
+EM.BlackMarker {
+ color: #000000;
+}
+EM.Blue {
+ color: #0000ff;
+}
+EM.Bold {
+ font-weight: Bold;
+}
+EM.BoldItalic {
+ font-weight: Bold;
+ font-style: Italic;
+}
+EM.BoldUppercase {
+ font-weight: Bold;
+ text-transform: uppercase;
+}
+EM.ChngeBarOff {
+}
+EM.ChngeBarOn {
+}
+EM.Code {
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Courier New";
+}
+EM.Computer {
+ font-size: 9.000000pt;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Courier New";
+}
+EM.Computer-Indent {
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Courier New";
+}
+EM.ComputerItalic {
+ font-style: Italic;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Courier New";
+}
+EM.Condition {
+ font-size: 12.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #656565;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+EM.Conditional {
+ font-size: 12.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #656565;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+EM.CrossReference {
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #0000ff;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+EM.CrossRefNumSuper {
+ color: #0000ff;
+ vertical-align: super;
+ font-family: "Arial";
+}
+EM.Emphasis {
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Italic;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+EM.Emphasize {
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Italic;
+ color: #ff0000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+EM.Equation-Font {
+ font-family: "Arial";
+}
+EM.EquationVariables {
+ font-weight: medium;
+ font-style: Italic;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Times New Roman";
+}
+EM.EquationVariableText {
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Italic;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+EM.Grey {
+ font-size: 9.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #767676;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+EM.hoch {
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: super;
+ text-transform: none;
+ font-family: "Arial";
+}
+EM.hyperactive {
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+EM.Hyperlink {
+ color: #0000ff;
+ text-decoration: underline ;
+}
+EM.Italic {
+ font-style: Italic;
+}
+EM.ItalicNot {
+ font-style: Regular;
+}
+EM.Link {
+ color: #0000ff;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+}
+EM.Lowercase {
+ text-transform: lowercase;
+}
+EM.lowercase {
+ text-transform: lowercase;
+}
+EM.MenuPath {
+ font-style: Italic;
+ text-decoration: underline ;
+ vertical-align: baseline;
+ text-transform: none;
+}
+EM.Mnemonic {
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Courier New";
+}
+EM.MnemonicRef {
+ font-size: 9.000000pt;
+ color: #0000ff;
+ font-family: "Courier New";
+}
+EM.Normal {
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+EM.NoSpellChk {
+}
+EM.not-italics {
+ font-style: Regular;
+}
+EM.NotUnderline {
+ text-decoration: none;
+}
+EM.OverBar {
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: overline ;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+EM.Overline {
+ text-decoration: overline ;
+}
+EM.ParameterCrossRef {
+ color: #0000ff;
+ font-family: "Courier New";
+}
+EM.Pin-Name {
+ font-size: 9.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Times New Roman";
+}
+EM.Red {
+ color: #ff0000;
+}
+EM.Red-Marker {
+ color: #ff0000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+EM.Register-Bit {
+ font-size: 9.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+EM.Smallcaps {
+ text-transform: none;
+}
+EM.SmallCaps {
+ text-transform: none;
+}
+EM.Subscript {
+ vertical-align: sub;
+}
+EM.Superscript {
+ vertical-align: super;
+}
+EM.SuperscriptHeader {
+ font-size: 14.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: super;
+ text-transform: none;
+ font-family: "Arial";
+}
+EM.Symbol {
+ font-family: "Symbol";
+}
+EM.Times-New-Roman {
+ font-family: "Times New Roman";
+}
+EM.Underline {
+ text-decoration: underline ;
+}
+EM.UnderlineNot {
+ text-decoration: none;
+}
+EM.UpperCase {
+ text-transform: uppercase;
+}
+EM.Uppercase {
+ font-size: 10.000000pt;
+ font-weight: Bold;
+ font-style: Regular;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: uppercase;
+ font-family: "Arial";
+}
diff --git a/ucs2-lib/doc/html/jquery.js b/ucs2-lib/doc/html/jquery.js
new file mode 100644
index 0000000..78ad0bd
--- /dev/null
+++ b/ucs2-lib/doc/html/jquery.js
@@ -0,0 +1,77 @@
+/*! jQuery v1.7.1 jquery.com | jquery.org/license */
+(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>"),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function cb(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function ca(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bE.test(a)?d(a,e):ca(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)ca(a+"["+e+"]",b[e],c,d);else d(a,b)}function b_(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function b$(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bT,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=b$(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=b$(a,c,d,e,"*",g));return l}function bZ(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bP),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bC(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?bx:by,g=0,h=e.length;if(d>0){if(c!=="border")for(;g<h;g++)c||(d-=parseFloat(f.css(a,"padding"+e[g]))||0),c==="margin"?d+=parseFloat(f.css(a,c+e[g]))||0:d-=parseFloat(f.css(a,"border"+e[g]+"Width"))||0;return d+"px"}d=bz(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0;if(c)for(;g<h;g++)d+=parseFloat(f.css(a,"padding"+e[g]))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+e[g]+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+e[g]))||0);return d+"px"}function bp(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bo(a){var b=c.createElement("div");bh.appendChild(b),b.innerHTML=a.outerHTML;return b.firstChild}function bn(a){var b=(a.nodeName||"").toLowerCase();b==="input"?bm(a):b!=="script"&&typeof a.getElementsByTagName!="undefined"&&f.grep(a.getElementsByTagName("input"),bm)}function bm(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bl(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bk(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bj(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c,d,e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(c in i)for(d=0,e=i[c].length;d<e;d++)f.event.add(b,c+(i[c][d].namespace?".":"")+i[c][d].namespace,i[c][d],i[c][d].data)}h.data&&(h.data=f.extend({},h.data))}}function bi(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function U(a){var b=V.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function T(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(O.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c<d;c++)b[a[c]]=!0;return b}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:G?function(a){return a==null?"":G.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?E.call(c,a):e.merge(c,a)}return c},inArray:function(a,b,c){var d;if(b){if(H)return H.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=F.call(arguments,2),g=function(){return a.apply(c,f.concat(F.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){I["[object "+b+"]"]=b.toLowerCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=z.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventListener("DOMContentLoaded",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",B),e.ready())});return e}(),g={};f.Callbacks=function(a){a=a?g[a]||h(a):{};var c=[],d=[],e,i,j,k,l,m=function(b){var d,e,g,h,i;for(d=0,e=b.length;d<e;d++)g=b[d],h=f.type(g),h==="array"?m(g):h==="function"&&(!a.unique||!o.has(g))&&c.push(g)},n=function(b,f){f=f||[],e=!a.memory||[b,f],i=!0,l=j||0,j=0,k=c.length;for(;c&&l<k;l++)if(c[l].apply(b,f)===!1&&a.stopOnFalse){e=!0;break}i=!1,c&&(a.once?e===!0?o.disable():c=[]:d&&d.length&&(e=d.shift(),o.fireWith(e[0],e[1])))},o={add:function(){if(c){var a=c.length;m(arguments),i?k=c.length:e&&e!==!0&&(j=a,n(e[0],e[1]))}return this},remove:function(){if(c){var b=arguments,d=0,e=b.length;for(;d<e;d++)for(var f=0;f<c.length;f++)if(b[d]===c[f]){i&&f<=k&&(k--,f<=l&&l--),c.splice(f--,1);if(a.unique)break}}return this},has:function(a){if(c){var b=0,d=c.length;for(;b<d;b++)if(a===c[b])return!0}return!1},empty:function(){c=[];return this},disable:function(){c=d=e=b;return this},disabled:function(){return!c},lock:function(){d=b,(!e||e===!0)&&o.disable();return this},locked:function(){return!d},fireWith:function(b,c){d&&(i?a.once||d.push([b,c]):(!a.once||!e)&&n(b,c));return this},fire:function(){o.fireWith(this,arguments);return this},fired:function(){return!!e}};return o};var i=[].slice;f.extend({Deferred:function(a){var b=f.Callbacks("once memory"),c=f.Callbacks("once memory"),d=f.Callbacks("memory"),e="pending",g={resolve:b,reject:c,notify:d},h={done:b.add,fail:c.add,progress:d.add,state:function(){return e},isResolved:b.fired,isRejected:c.fired,then:function(a,b,c){i.done(a).fail(b).progress(c);return this},always:function(){i.done.apply(i,arguments).fail.apply(i,arguments);return this},pipe:function(a,b,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[b,"reject"],progress:[c,"notify"]},function(a,b){var c=b[0],e=b[1],g;f.isFunction(c)?i[a](function()
+{g=c.apply(this,arguments),g&&f.isFunction(g.promise)?g.promise().then(d.resolve,d.reject,d.notify):d[e+"With"](this===i?d:this,[g])}):i[a](d[e])})}).promise()},promise:function(a){if(a==null)a=h;else for(var b in h)a[b]=h[b];return a}},i=h.promise({}),j;for(j in g)i[j]=g[j].fire,i[j+"With"]=g[j].fireWith;i.done(function(){e="resolved"},c.disable,d.lock).fail(function(){e="rejected"},b.disable,d.lock),a&&a.call(i,i);return i},when:function(a){function m(a){return function(b){e[a]=arguments.length>1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c<d;c++)b[c]&&b[c].promise&&f.isFunction(b[c].promise)?b[c].promise().then(l(c),j.reject,m(c)):--g;g||j.resolveWith(j,b)}else j!==a&&j.resolveWith(j,d?[a]:[]);return k}}),f.support=function(){var b,d,e,g,h,i,j,k,l,m,n,o,p,q=c.createElement("div"),r=c.documentElement;q.setAttribute("className","t"),q.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="<div "+n+"><div></div></div>"+"<table "+n+" cellpadding='0' cellspacing='0'>"+"<tr><td></td></tr></table>",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="<div style='width:4px;'></div>",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e<g;e++)delete d[b[e]];if(!(c?m:f.isEmptyObject)(d))return}}if(!c){delete j[k].data;if(!m(j[k]))return}f.support.deleteExpando||!j.setInterval?delete j[k]:j[k]=null,i&&(f.support.deleteExpando?delete a[h]:a.removeAttribute?a.removeAttribute(h):a[h]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d,e,g,h=null;if(typeof a=="undefined"){if(this.length){h=f.data(this[0]);if(this[0].nodeType===1&&!f._data(this[0],"parsedAttrs")){e=this[0].attributes;for(var i=0,j=e.length;i<j;i++)g=e[i].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),l(this[0],g,h[g]));f._data(this[0],"parsedAttrs",!0)}}return h}if(typeof a=="object")return this.each(function(){f.data(this,a)});d=a.split("."),d[1]=d[1]?"."+d[1]:"";if(c===b){h=this.triggerHandler("getData"+d[1]+"!",[d[0]]),h===b&&this.length&&(h=f.data(this[0],a),h=l(this[0],a,h));return h===b&&d[1]?this.data(d[0]):h}return this.each(function(){var b=f(this),e=[d[0],c];b.triggerHandler("setData"+d[1]+"!",e),f.data(this,a,c),b.triggerHandler("changeData"+d[1]+"!",e)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f.Callbacks("once memory"),!0))h++,l.add(m);m();return d.promise()}});var o=/[\n\t\r]/g,p=/\s+/,q=/\r/g,r=/^(?:button|input)$/i,s=/^(?:button|input|object|select|textarea)$/i,t=/^a(?:rea)?$/i,u=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,v=f.support.getSetAttribute,w,x,y;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(p);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(o," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(p);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(o," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c<d;c++){e=i[c];if(e.selected&&(f.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!f.nodeName(e.parentNode,"optgroup"))){b=f(e).val();if(j)return b;h.push(b)}}if(j&&!h.length&&i.length)return f(i[g]).val();return h},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h<g;h++)e=d[h],e&&(c=f.propFix[e]||e,f.attr(a,e,""),a.removeAttribute(v?e:c),u.test(e)&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(r.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(w&&f.nodeName(a,"button"))return w.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(w&&f.nodeName(a,"button"))return w.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,g,h,i=a.nodeType;if(!!a&&i!==3&&i!==8&&i!==2){h=i!==1||!f.isXMLDoc(a),h&&(c=f.propFix[c]||c,g=f.propHooks[c]);return d!==b?g&&"set"in g&&(e=g.set(a,d,c))!==b?e:a[c]=d:g&&"get"in g&&(e=g.get(a,c))!==null?e:a[c]}},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):s.test(a.nodeName)||t.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabindex=f.propHooks.tabIndex,x={get:function(a,c){var d,e=f.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},v||(y={name:!0,id:!0},w=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&(y[c]?d.nodeValue!=="":d.specified)?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.attrHooks.tabindex.set=w.set,f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})}),f.attrHooks.contenteditable={get:w.get,set:function(a,b,c){b===""&&(b="false"),w.set(a,b,c)}}),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.enctype||(f.propFix.enctype="encoding"),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};
+f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k<c.length;k++){l=A.exec(c[k])||[],m=l[1],n=(l[2]||"").split(".").sort(),s=f.event.special[m]||{},m=(g?s.delegateType:s.bindType)||m,s=f.event.special[m]||{},o=f.extend({type:m,origType:l[1],data:e,handler:d,guid:d.guid,selector:g,quick:G(g),namespace:n.join(".")},p),r=j[m];if(!r){r=j[m]=[],r.delegateCount=0;if(!s.setup||s.setup.call(a,e,n,i)===!1)a.addEventListener?a.addEventListener(m,i,!1):a.attachEvent&&a.attachEvent("on"+m,i)}s.add&&(s.add.call(a,o),o.handler.guid||(o.handler.guid=d.guid)),g?r.splice(r.delegateCount++,0,o):r.push(o),f.event.global[m]=!0}a=null}},global:{},remove:function(a,b,c,d,e){var g=f.hasData(a)&&f._data(a),h,i,j,k,l,m,n,o,p,q,r,s;if(!!g&&!!(o=g.events)){b=f.trim(I(b||"")).split(" ");for(h=0;h<b.length;h++){i=A.exec(b[h])||[],j=k=i[1],l=i[2];if(!j){for(j in o)f.event.remove(a,j+b[h],c,d,!0);continue}p=f.event.special[j]||{},j=(d?p.delegateType:p.bindType)||j,r=o[j]||[],m=r.length,l=l?new RegExp("(^|\\.)"+l.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(n=0;n<r.length;n++)s=r[n],(e||k===s.origType)&&(!c||c.guid===s.guid)&&(!l||l.test(s.namespace))&&(!d||d===s.selector||d==="**"&&s.selector)&&(r.splice(n--,1),s.selector&&r.delegateCount--,p.remove&&p.remove.call(a,s));r.length===0&&m!==r.length&&((!p.teardown||p.teardown.call(a,l)===!1)&&f.removeEvent(a,j,g.handle),delete o[j])}f.isEmptyObject(o)&&(q=g.handle,q&&(q.elem=null),f.removeData(a,["events","handle"],!0))}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){if(!e||e.nodeType!==3&&e.nodeType!==8){var h=c.type||c,i=[],j,k,l,m,n,o,p,q,r,s;if(E.test(h+f.event.triggered))return;h.indexOf("!")>=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;l<r.length&&!c.isPropagationStopped();l++)m=r[l][0],c.type=r[l][1],q=(f._data(m,"events")||{})[c.type]&&f._data(m,"handle"),q&&q.apply(m,d),q=o&&m[o],q&&f.acceptData(m)&&q.apply(m,d)===!1&&c.preventDefault();c.type=h,!g&&!c.isDefaultPrevented()&&(!p._default||p._default.apply(e.ownerDocument,d)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)&&o&&e[h]&&(h!=="focus"&&h!=="blur"||c.target.offsetWidth!==0)&&!f.isWindow(e)&&(n=e[o],n&&(e[o]=null),f.event.triggered=h,e[h](),f.event.triggered=b,n&&(e[o]=n));return c.result}},dispatch:function(c){c=f.event.fix(c||a.event);var d=(f._data(this,"events")||{})[c.type]||[],e=d.delegateCount,g=[].slice.call(arguments,0),h=!c.exclusive&&!c.namespace,i=[],j,k,l,m,n,o,p,q,r,s,t;g[0]=c,c.delegateTarget=this;if(e&&!c.target.disabled&&(!c.button||c.type!=="click")){m=f(this),m.context=this.ownerDocument||this;for(l=c.target;l!=this;l=l.parentNode||this){o={},q=[],m[0]=l;for(j=0;j<e;j++)r=d[j],s=r.selector,o[s]===b&&(o[s]=r.quick?H(l,r.quick):m.is(s)),o[s]&&q.push(r);q.length&&i.push({elem:l,matches:q})}}d.length>e&&i.push({elem:this,matches:d.slice(e)});for(j=0;j<i.length&&!c.isPropagationStopped();j++){p=i[j],c.currentTarget=p.elem;for(k=0;k<p.matches.length&&!c.isImmediatePropagationStopped();k++){r=p.matches[k];if(h||!c.namespace&&!r.namespace||c.namespace_re&&c.namespace_re.test(r.namespace))c.data=r.data,c.handleObj=r,n=((f.event.special[r.origType]||{}).handle||r.handler).apply(p.elem,g),n!==b&&(c.result=n,n===!1&&(c.preventDefault(),c.stopPropagation()))}}return c.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode);return a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,d){var e,f,g,h=d.button,i=d.fromElement;a.pageX==null&&d.clientX!=null&&(e=a.target.ownerDocument||c,f=e.documentElement,g=e.body,a.pageX=d.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=d.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?d.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0);return a}},fix:function(a){if(a[f.expando])return a;var d,e,g=a,h=f.event.fixHooks[a.type]||{},i=h.props?this.props.concat(h.props):this.props;a=f.Event(g);for(d=i.length;d;)e=i[--d],a[e]=g[e];a.target||(a.target=g.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey===b&&(a.metaKey=a.ctrlKey);return h.filter?h.filter(a,g):a},special:{ready:{setup:f.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=f.extend(new f.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?f.event.trigger(e,null,b):f.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},f.event.handle=f.event.dispatch,f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!(this instanceof f.Event))return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?K:J):this.type=a,b&&f.extend(this,b),this.timeStamp=a&&a.timeStamp||f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=K;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=K;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=K,this.stopPropagation()},isDefaultPrevented:J,isPropagationStopped:J,isImmediatePropagationStopped:J},f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c=this,d=a.relatedTarget,e=a.handleObj,g=e.selector,h;if(!d||d!==c&&!f.contains(c,d))a.type=e.origType,h=e.handler.apply(this,arguments),a.type=b;return h}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(){if(f.nodeName(this,"form"))return!1;f.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=f.nodeName(c,"input")||f.nodeName(c,"button")?c.form:b;d&&!d._submit_attached&&(f.event.add(d,"submit._submit",function(a){this.parentNode&&!a.isTrigger&&f.event.simulate("submit",this.parentNode,a,!0)}),d._submit_attached=!0)})},teardown:function(){if(f.nodeName(this,"form"))return!1;f.event.remove(this,"._submit")}}),f.support.changeBubbles||(f.event.special.change={setup:function(){if(z.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")f.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),f.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1,f.event.simulate("change",this,a,!0))});return!1}f.event.add(this,"beforeactivate._change",function(a){var b=a.target;z.test(b.nodeName)&&!b._change_attached&&(f.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&f.event.simulate("change",this.parentNode,a,!0)}),b._change_attached=!0)})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){f.event.remove(this,"._change");return z.test(this.nodeName)}}),f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){var d=0,e=function(a){f.event.simulate(b,a.target,f.event.fix(a),!0)};f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.fn.extend({on:function(a,c,d,e,g){var h,i;if(typeof a=="object"){typeof c!="string"&&(d=c,c=b);for(i in a)this.on(i,c,d,a[i],g);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=J;else if(!e)return this;g===1&&(h=e,e=function(a){f().off(a);return h.apply(this,arguments)},e.guid=h.guid||(h.guid=f.guid++));return this.each(function(){f.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on.call(this,a,b,c,d,1)},off:function(a,c,d){if(a&&a.preventDefault&&a.handleObj){var e=a.handleObj;f(a.delegateTarget).off(e.namespace?e.type+"."+e.namespace:e.type,e.selector,e.handler);return this}if(typeof a=="object"){for(var g in a)this.off(g,c,a[g]);return this}if(c===!1||typeof c=="function")d=c,c=b;d===!1&&(d=J);return this.each(function(){f.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){f(this.context).on(a,this.selector,b,c);return this},die:function(a,b){f(this.context).off(a,this.selector||"**",b);return this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a,c)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f._data(this,"lastToggle"+a.guid)||0)%d;f._data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}if(j.nodeType===1){g||(j[d]=c,j.sizset=h);if(typeof b!="string"){if(j===b){k=!0;break}}else if(m.filter(b,[j]).length>0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}j.nodeType===1&&!g&&(j[d]=c,j.sizset=h);if(j.nodeName.toLowerCase()===b){k=j;break}j=j[a]}e[h]=k}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},m.matches=function(a,b){return m(a,null,null,b)},m.matchesSelector=function(a,b){return m(b,null,null,[a]).length>0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e<f;e++){h=o.order[e];if(g=o.leftMatch[h].exec(a)){i=g[1],g.splice(1,1);if(i.substr(i.length-1)!=="\\"){g[1]=(g[1]||"").replace(j,""),d=o.find[h](g,b,c);if(d!=null){a=a.replace(o.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},m.filter=function(a,c,d,e){var f,g,h,i,j,k,l,n,p,q=a,r=[],s=c,t=c&&c[0]&&m.isXML(c[0]);while(a&&c.length){for(h in o.filter)if((f=o.leftMatch[h].exec(a))!=null&&f[2]){k=o.filter[h],l=f[1],g=!1,f.splice(1,1);if(l.substr(l.length-1)==="\\")continue;s===r&&(r=[]);if(o.preFilter[h]){f=o.preFilter[h](f,s,d,r,e,t);if(!f)g=i=!0;else if(f===!0)continue}if(f)for(n=0;(j=s[n])!=null;n++)j&&(i=k(j,f,n,s),p=e^i,d&&i!=null?p?g=!0:s[n]=!1:p&&(r.push(j),g=!0));if(i!==b){d||(s=r),a=a.replace(o.match[h],"");if(!g)return[];break}}if(a===q)if(g==null)m.error(a);else break;q=a}return s},m.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)};var n=m.getText=function(a){var b,c,d=a.nodeType,e="";if(d){if(d===1||d===9){if(typeof a.textContent=="string")return a.textContent;if(typeof a.innerText=="string")return a.innerText.replace(k,"");for(a=a.firstChild;a;a=a.nextSibling)e+=n(a)}else if(d===3||d===4)return a.nodeValue}else for(b=0;c=a[b];b++)c.nodeType!==8&&(e+=n(c));return e},o=m.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!l.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&m.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d
+&&m.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(j,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}m.error(e)},CHILD:function(a,b){var c,e,f,g,h,i,j,k=b[1],l=a;switch(k){case"only":case"first":while(l=l.previousSibling)if(l.nodeType===1)return!1;if(k==="first")return!0;l=a;case"last":while(l=l.nextSibling)if(l.nodeType===1)return!1;return!0;case"nth":c=b[2],e=b[3];if(c===1&&e===0)return!0;f=b[0],g=a.parentNode;if(g&&(g[d]!==f||!a.nodeIndex)){i=0;for(l=g.firstChild;l;l=l.nextSibling)l.nodeType===1&&(l.nodeIndex=++i);g[d]=f}j=a.nodeIndex-e;return c===0?j===0:j%c===0&&j/c>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var u,v;c.documentElement.compareDocumentPosition?u=function(a,b){if(a===b){h=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(u=function(a,b){if(a===b){h=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],g=a.parentNode,i=b.parentNode,j=g;if(g===i)return v(a,b);if(!g)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return v(e[k],f[k]);return k===c?v(a,f[k],-1):v(e[k],b,1)},v=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h<i;h++)m(a,g[h],e,c);return m.filter(f,e)};m.attr=f.attr,m.selectors.attrMap={},f.find=m,f.expr=m.selectors,f.expr[":"]=f.expr.filters,f.unique=m.uniqueSort,f.text=m.getText,f.isXMLDoc=m.isXML,f.contains=m.contains}();var L=/Until$/,M=/^(?:parents|prevUntil|prevAll)/,N=/,/,O=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,Q=f.expr.match.POS,R={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(T(this,a,!1),"not",a)},filter:function(a){return this.pushStack(T(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?Q.test(a)?f(a,this.context).index(this[0])>=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d<a.length;d++)f(g).is(a[d])&&c.push({selector:a[d],elem:g,level:h});g=g.parentNode,h++}return c}var i=Q.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(i?i.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/<tbody/i,_=/<|&#?\w+;/,ba=/<(?:script|style)/i,bb=/<(?:script|object|embed|option|style)/i,bc=new RegExp("<(?:"+V+")","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),
+f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function()
+{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bd.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bi(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bp)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i,j=a[0];b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof j=="string"&&j.length<512&&i===c&&j.charAt(0)==="<"&&!bb.test(j)&&(f.support.checkClone||!bd.test(j))&&(f.support.html5Clone||!bc.test(j))&&(g=!0,h=f.fragments[j],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[j]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1></$2>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bn(k[i]);else bn(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||be.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.event.special,g=f.support.deleteExpando;for(var h=0,i;(i=a[h])!=null;h++){if(i.nodeName&&f.noData[i.nodeName.toLowerCase()])continue;c=i[f.expando];if(c){b=d[c];if(b&&b.events){for(var j in b.events)e[j]?f.event.remove(i,j):f.removeEvent(i,j,b.handle);b.handle&&(b.handle.elem=null)}g?delete i[f.expando]:i.removeAttribute&&i.removeAttribute(f.expando),delete d[c]}}}});var bq=/alpha\([^)]*\)/i,br=/opacity=([^)]*)/,bs=/([A-Z]|^ms)/g,bt=/^-?\d+(?:px)?$/i,bu=/^-?\d/,bv=/^([\-+])=([\-+.\de]+)/,bw={position:"absolute",visibility:"hidden",display:"block"},bx=["Left","Right"],by=["Top","Bottom"],bz,bA,bB;f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bz(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=bv.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bz)return bz(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){if(a.offsetWidth!==0)return bC(a,b,d);f.swap(a,bw,function(){e=bC(a,b,d)});return e}},set:function(a,b){if(!bt.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c)
+{if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cv(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cu("hide",3),a,b,c);var d,e,g=0,h=this.length;for(;g<h;g++)d=this[g],d.style&&(e=f.css(d,"display"),e!=="none"&&!f._data(d,"olddisplay")&&f._data(d,"olddisplay",e));for(g=0;g<h;g++)this[g].style&&(this[g].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cu("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){function g(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(!f.support.inlineBlockNeedsLayout||cv(this.nodeName)==="inline"?this.style.display="inline-block":this.style.zoom=1))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)j=new f.fx(this,b,i),h=a[i],cn.test(h)?(o=f._data(this,"toggle"+i)||(h==="toggle"?d?"show":"hide":0),o?(f._data(this,"toggle"+i,o==="show"?"hide":"show"),j[o]()):j[h]()):(k=co.exec(h),l=j.cur(),k?(m=parseFloat(k[2]),n=k[3]||(f.cssNumber[i]?"":"px"),n!=="px"&&(f.style(this,i,(m||1)+n),l=(m||1)/j.cur()*l,f.style(this,i,l+n)),k[1]&&(m=(k[1]==="-="?-1:1)*m+l),j.custom(l,m,n)):j.custom(l,h,""));return!0}var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return e.queue===!1?this.each(g):this.queue(e.queue,g)},stop:function(a,c,d){typeof a!="string"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||"fx",[]);return this.each(function(){function h(a,b,c){var e=b[c];f.removeData(a,c,!0),e.stop(d)}var b,c=!1,e=f.timers,g=f._data(this);d||f._unmark(!0,this);if(a==null)for(b in g)g[b]&&g[b].stop&&b.indexOf(".run")===b.length-4&&h(this,g,b);else g[b=a+".run"]&&g[b].stop&&h(this,g,b);for(b=e.length;b--;)e[b].elem===this&&(a==null||e[b].queue===a)&&(d?e[b](!0):e[b].saveState(),c=!0,e.splice(b,1));(!d||!c)&&f.dequeue(this,a)})}}),f.each({slideDown:cu("show",1),slideUp:cu("hide",1),slideToggle:cu("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default;if(d.queue==null||d.queue===!0)d.queue="fx";d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue?f.dequeue(this,d.queue):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,c,d){function h(a){return e.step(a)}var e=this,g=f.fx;this.startTime=cr||cs(),this.end=c,this.now=this.start=a,this.pos=this.state=0,this.unit=d||this.unit||(f.cssNumber[this.prop]?"":"px"),h.queue=this.options.queue,h.elem=this.elem,h.saveState=function(){e.options.hide&&f._data(e.elem,"fxshow"+e.prop)===b&&f._data(e.elem,"fxshow"+e.prop,e.start)},h()&&f.timers.push(h)&&!cp&&(cp=setInterval(g.tick,g.interval))},show:function(){var a=f._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=a||f.style(this.elem,this.prop),this.options.show=!0,a!==b?this.custom(this.cur(),a):this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f._data(this.elem,"fxshow"+this.prop)||f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b,c,d,e=cr||cs(),g=!0,h=this.elem,i=this.options;if(a||e>=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c<b.length;c++)a=b[c],!a()&&b[c]===a&&b.splice(c--,1);b.length||f.fx.stop()},interval:13,stop:function(){clearInterval(cp),cp=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=a.now+a.unit:a.elem[a.prop]=a.now}}}),f.each(["width","height"],function(a,b){f.fx.step[b]=function(a){f.style(a.elem,b,Math.max(0,a.now)+a.unit)}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cw=/^t(?:able|d|h)$/i,cx=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cy(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.support.fixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.support.doesNotAddBorder&&(!f.support.doesAddBorderForTableAndCells||!cw.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.support.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.support.fixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.support.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window);
+/*!
+ * jQuery UI 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI
+ */
+(function(a,b){function d(b){return!a(b).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}function c(b,c){var e=b.nodeName.toLowerCase();if("area"===e){var f=b.parentNode,g=f.name,h;if(!b.href||!g||f.nodeName.toLowerCase()!=="map")return!1;h=a("img[usemap=#"+g+"]")[0];return!!h&&d(h)}return(/input|select|textarea|button|object/.test(e)?!b.disabled:"a"==e?b.href||c:c)&&d(b)}a.ui=a.ui||{};a.ui.version||(a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}}),a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(b,c){return typeof b=="number"?this.each(function(){var d=this;setTimeout(function(){a(d).focus(),c&&c.call(d)},b)}):this._focus.apply(this,arguments)},scrollParent:function(){var b;a.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?b=this.parents().filter(function(){return/(relative|absolute|fixed)/.test(a.curCSS(this,"position",1))&&/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0):b=this.parents().filter(function(){return/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!b.length?a(document):b},zIndex:function(c){if(c!==b)return this.css("zIndex",c);if(this.length){var d=a(this[0]),e,f;while(d.length&&d[0]!==document){e=d.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){f=parseInt(d.css("zIndex"),10);if(!isNaN(f)&&f!==0)return f}d=d.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),a.each(["Width","Height"],function(c,d){function h(b,c,d,f){a.each(e,function(){c-=parseFloat(a.curCSS(b,"padding"+this,!0))||0,d&&(c-=parseFloat(a.curCSS(b,"border"+this+"Width",!0))||0),f&&(c-=parseFloat(a.curCSS(b,"margin"+this,!0))||0)});return c}var e=d==="Width"?["Left","Right"]:["Top","Bottom"],f=d.toLowerCase(),g={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};a.fn["inner"+d]=function(c){if(c===b)return g["inner"+d].call(this);return this.each(function(){a(this).css(f,h(this,c)+"px")})},a.fn["outer"+d]=function(b,c){if(typeof b!="number")return g["outer"+d].call(this,b);return this.each(function(){a(this).css(f,h(this,b,!0,c)+"px")})}}),a.extend(a.expr[":"],{data:function(b,c,d){return!!a.data(b,d[3])},focusable:function(b){return c(b,!isNaN(a.attr(b,"tabindex")))},tabbable:function(b){var d=a.attr(b,"tabindex"),e=isNaN(d);return(e||d>=0)&&c(b,!e)}}),a(function(){var b=document.body,c=b.appendChild(c=document.createElement("div"));c.offsetHeight,a.extend(c.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0}),a.support.minHeight=c.offsetHeight===100,a.support.selectstart="onselectstart"in c,b.removeChild(c).style.display="none"}),a.extend(a.ui,{plugin:{add:function(b,c,d){var e=a.ui[b].prototype;for(var f in d)e.plugins[f]=e.plugins[f]||[],e.plugins[f].push([c,d[f]])},call:function(a,b,c){var d=a.plugins[b];if(!!d&&!!a.element[0].parentNode)for(var e=0;e<d.length;e++)a.options[d[e][0]]&&d[e][1].apply(a.element,c)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(b,c){if(a(b).css("overflow")==="hidden")return!1;var d=c&&c==="left"?"scrollLeft":"scrollTop",e=!1;if(b[d]>0)return!0;b[d]=1,e=b[d]>0,b[d]=0;return e},isOverAxis:function(a,b,c){return a>b&&a<b+c},isOver:function(b,c,d,e,f,g){return a.ui.isOverAxis(b,d,f)&&a.ui.isOverAxis(c,e,g)}}))})(jQuery);
+/*!
+ * jQuery UI Widget 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Widget
+ */
+(function(a,b){if(a.cleanData){var c=a.cleanData;a.cleanData=function(b){for(var d=0,e;(e=b[d])!=null;d++)try{a(e).triggerHandler("remove")}catch(f){}c(b)}}else{var d=a.fn.remove;a.fn.remove=function(b,c){return this.each(function(){c||(!b||a.filter(b,[this]).length)&&a("*",this).add([this]).each(function(){try{a(this).triggerHandler("remove")}catch(b){}});return d.call(a(this),b,c)})}}a.widget=function(b,c,d){var e=b.split(".")[0],f;b=b.split(".")[1],f=e+"-"+b,d||(d=c,c=a.Widget),a.expr[":"][f]=function(c){return!!a.data(c,b)},a[e]=a[e]||{},a[e][b]=function(a,b){arguments.length&&this._createWidget(a,b)};var g=new c;g.options=a.extend(!0,{},g.options),a[e][b].prototype=a.extend(!0,g,{namespace:e,widgetName:b,widgetEventPrefix:a[e][b].prototype.widgetEventPrefix||b,widgetBaseClass:f},d),a.widget.bridge(b,a[e][b])},a.widget.bridge=function(c,d){a.fn[c]=function(e){var f=typeof e=="string",g=Array.prototype.slice.call(arguments,1),h=this;e=!f&&g.length?a.extend.apply(null,[!0,e].concat(g)):e;if(f&&e.charAt(0)==="_")return h;f?this.each(function(){var d=a.data(this,c),f=d&&a.isFunction(d[e])?d[e].apply(d,g):d;if(f!==d&&f!==b){h=f;return!1}}):this.each(function(){var b=a.data(this,c);b?b.option(e||{})._init():a.data(this,c,new d(e,this))});return h}},a.Widget=function(a,b){arguments.length&&this._createWidget(a,b)},a.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:!1},_createWidget:function(b,c){a.data(c,this.widgetName,this),this.element=a(c),this.options=a.extend(!0,{},this.options,this._getCreateOptions(),b);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()}),this._create(),this._trigger("create"),this._init()},_getCreateOptions:function(){return a.metadata&&a.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName),this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled "+"ui-state-disabled")},widget:function(){return this.element},option:function(c,d){var e=c;if(arguments.length===0)return a.extend({},this.options);if(typeof c=="string"){if(d===b)return this.options[c];e={},e[c]=d}this._setOptions(e);return this},_setOptions:function(b){var c=this;a.each(b,function(a,b){c._setOption(a,b)});return this},_setOption:function(a,b){this.options[a]=b,a==="disabled"&&this.widget()[b?"addClass":"removeClass"](this.widgetBaseClass+"-disabled"+" "+"ui-state-disabled").attr("aria-disabled",b);return this},enable:function(){return this._setOption("disabled",!1)},disable:function(){return this._setOption("disabled",!0)},_trigger:function(b,c,d){var e,f,g=this.options[b];d=d||{},c=a.Event(c),c.type=(b===this.widgetEventPrefix?b:this.widgetEventPrefix+b).toLowerCase(),c.target=this.element[0],f=c.originalEvent;if(f)for(e in f)e in c||(c[e]=f[e]);this.element.trigger(c,d);return!(a.isFunction(g)&&g.call(this.element[0],c,d)===!1||c.isDefaultPrevented())}}})(jQuery);
+/*!
+ * jQuery UI Mouse 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Mouse
+ *
+ * Depends:
+ * jquery.ui.widget.js
+ */
+(function(a,b){var c=!1;a(document).mouseup(function(a){c=!1}),a.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var b=this;this.element.bind("mousedown."+this.widgetName,function(a){return b._mouseDown(a)}).bind("click."+this.widgetName,function(c){if(!0===a.data(c.target,b.widgetName+".preventClickEvent")){a.removeData(c.target,b.widgetName+".preventClickEvent"),c.stopImmediatePropagation();return!1}}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(b){if(!c){this._mouseStarted&&this._mouseUp(b),this._mouseDownEvent=b;var d=this,e=b.which==1,f=typeof this.options.cancel=="string"&&b.target.nodeName?a(b.target).closest(this.options.cancel).length:!1;if(!e||f||!this._mouseCapture(b))return!0;this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){d.mouseDelayMet=!0},this.options.delay));if(this._mouseDistanceMet(b)&&this._mouseDelayMet(b)){this._mouseStarted=this._mouseStart(b)!==!1;if(!this._mouseStarted){b.preventDefault();return!0}}!0===a.data(b.target,this.widgetName+".preventClickEvent")&&a.removeData(b.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(a){return d._mouseMove(a)},this._mouseUpDelegate=function(a){return d._mouseUp(a)},a(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),b.preventDefault(),c=!0;return!0}},_mouseMove:function(b){if(a.browser.msie&&!(document.documentMode>=9)&&!b.button)return this._mouseUp(b);if(this._mouseStarted){this._mouseDrag(b);return b.preventDefault()}this._mouseDistanceMet(b)&&this._mouseDelayMet(b)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,b)!==!1,this._mouseStarted?this._mouseDrag(b):this._mouseUp(b));return!this._mouseStarted},_mouseUp:function(b){a(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,b.target==this._mouseDownEvent.target&&a.data(b.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(b));return!1},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(a){return this.mouseDelayMet},_mouseStart:function(a){},_mouseDrag:function(a){},_mouseStop:function(a){},_mouseCapture:function(a){return!0}})})(jQuery);
+/*
+ * jQuery UI Resizable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Resizables
+ *
+ * Depends:
+ * jquery.ui.core.js
+ * jquery.ui.mouse.js
+ * jquery.ui.widget.js
+ */
+(function(a,b){a.widget("ui.resizable",a.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1e3},_create:function(){var b=this,c=this.options;this.element.addClass("ui-resizable"),a.extend(this,{_aspectRatio:!!c.aspectRatio,aspectRatio:c.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:c.helper||c.ghost||c.animate?c.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)&&(this.element.wrap(a('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("resizable",this.element.data("resizable")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=c.handles||(a(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se");if(this.handles.constructor==String){this.handles=="all"&&(this.handles="n,e,s,w,se,sw,ne,nw");var d=this.handles.split(",");this.handles={};for(var e=0;e<d.length;e++){var f=a.trim(d[e]),g="ui-resizable-"+f,h=a('<div class="ui-resizable-handle '+g+'"></div>');/sw|se|ne|nw/.test(f)&&h.css({zIndex:++c.zIndex}),"se"==f&&h.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[f]=".ui-resizable-"+f,this.element.append(h)}}this._renderAxis=function(b){b=b||this.element;for(var c in this.handles){this.handles[c].constructor==String&&(this.handles[c]=a(this.handles[c],this.element).show());if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var d=a(this.handles[c],this.element),e=0;e=/sw|ne|nw|se|n|s/.test(c)?d.outerHeight():d.outerWidth();var f=["padding",/ne|nw|n/.test(c)?"Top":/se|sw|s/.test(c)?"Bottom":/^e$/.test(c)?"Right":"Left"].join("");b.css(f,e),this._proportionallyResize()}if(!a(this.handles[c]).length)continue}},this._renderAxis(this.element),this._handles=a(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){if(!b.resizing){if(this.className)var a=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=a&&a[1]?a[1]:"se"}}),c.autoHide&&(this._handles.hide(),a(this.element).addClass("ui-resizable-autohide").hover(function(){c.disabled||(a(this).removeClass("ui-resizable-autohide"),b._handles.show())},function(){c.disabled||b.resizing||(a(this).addClass("ui-resizable-autohide"),b._handles.hide())})),this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(b){a(b).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){b(this.element);var c=this.element;c.after(this.originalElement.css({position:c.css("position"),width:c.outerWidth(),height:c.outerHeight(),top:c.css("top"),left:c.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle),b(this.originalElement);return this},_mouseCapture:function(b){var c=!1;for(var d in this.handles)a(this.handles[d])[0]==b.target&&(c=!0);return!this.options.disabled&&c},_mouseStart:function(b){var d=this.options,e=this.element.position(),f=this.element;this.resizing=!0,this.documentScroll={top:a(document).scrollTop(),left:a(document).scrollLeft()},(f.is(".ui-draggable")||/absolute/.test(f.css("position")))&&f.css({position:"absolute",top:e.top,left:e.left}),this._renderProxy();var g=c(this.helper.css("left")),h=c(this.helper.css("top"));d.containment&&(g+=a(d.containment).scrollLeft()||0,h+=a(d.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:g,top:h},this.size=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalSize=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalPosition={left:g,top:h},this.sizeDiff={width:f.outerWidth()-f.width(),height:f.outerHeight()-f.height()},this.originalMousePosition={left:b.pageX,top:b.pageY},this.aspectRatio=typeof d.aspectRatio=="number"?d.aspectRatio:this.originalSize.width/this.originalSize.height||1;var i=a(".ui-resizable-"+this.axis).css("cursor");a("body").css("cursor",i=="auto"?this.axis+"-resize":i),f.addClass("ui-resizable-resizing"),this._propagate("start",b);return!0},_mouseDrag:function(b){var c=this.helper,d=this.options,e={},f=this,g=this.originalMousePosition,h=this.axis,i=b.pageX-g.left||0,j=b.pageY-g.top||0,k=this._change[h];if(!k)return!1;var l=k.apply(this,[b,i,j]),m=a.browser.msie&&a.browser.version<7,n=this.sizeDiff;this._updateVirtualBoundaries(b.shiftKey);if(this._aspectRatio||b.shiftKey)l=this._updateRatio(l,b);l=this._respectSize(l,b),this._propagate("resize",b),c.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"}),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),this._updateCache(l),this._trigger("resize",b,this.ui());return!1},_mouseStop:function(b){this.resizing=!1;var c=this.options,d=this;if(this._helper){var e=this._proportionallyResizeElements,f=e.length&&/textarea/i.test(e[0].nodeName),g=f&&a.ui.hasScroll(e[0],"left")?0:d.sizeDiff.height,h=f?0:d.sizeDiff.width,i={width:d.helper.width()-h,height:d.helper.height()-g},j=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,k=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;c.animate||this.element.css(a.extend(i,{top:k,left:j})),d.helper.height(d.size.height),d.helper.width(d.size.width),this._helper&&!c.animate&&this._proportionallyResize()}a("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",b),this._helper&&this.helper.remove();return!1},_updateVirtualBoundaries:function(a){var b=this.options,c,e,f,g,h;h={minWidth:d(b.minWidth)?b.minWidth:0,maxWidth:d(b.maxWidth)?b.maxWidth:Infinity,minHeight:d(b.minHeight)?b.minHeight:0,maxHeight:d(b.maxHeight)?b.maxHeight:Infinity};if(this._aspectRatio||a)c=h.minHeight*this.aspectRatio,f=h.minWidth/this.aspectRatio,e=h.maxHeight*this.aspectRatio,g=h.maxWidth/this.aspectRatio,c>h.minWidth&&(h.minWidth=c),f>h.minHeight&&(h.minHeight=f),e<h.maxWidth&&(h.maxWidth=e),g<h.maxHeight&&(h.maxHeight=g);this._vBoundaries=h},_updateCache:function(a){var b=this.options;this.offset=this.helper.offset(),d(a.left)&&(this.position.left=a.left),d(a.top)&&(this.position.top=a.top),d(a.height)&&(this.size.height=a.height),d(a.width)&&(this.size.width=a.width)},_updateRatio:function(a,b){var c=this.options,e=this.position,f=this.size,g=this.axis;d(a.height)?a.width=a.height*this.aspectRatio:d(a.width)&&(a.height=a.width/this.aspectRatio),g=="sw"&&(a.left=e.left+(f.width-a.width),a.top=null),g=="nw"&&(a.top=e.top+(f.height-a.height),a.left=e.left+(f.width-a.width));return a},_respectSize:function(a,b){var c=this.helper,e=this._vBoundaries,f=this._aspectRatio||b.shiftKey,g=this.axis,h=d(a.width)&&e.maxWidth&&e.maxWidth<a.width,i=d(a.height)&&e.maxHeight&&e.maxHeight<a.height,j=d(a.width)&&e.minWidth&&e.minWidth>a.width,k=d(a.height)&&e.minHeight&&e.minHeight>a.height;j&&(a.width=e.minWidth),k&&(a.height=e.minHeight),h&&(a.width=e.maxWidth),i&&(a.height=e.maxHeight);var l=this.originalPosition.left+this.originalSize.width,m=this.position.top+this.size.height,n=/sw|nw|w/.test(g),o=/nw|ne|n/.test(g);j&&n&&(a.left=l-e.minWidth),h&&n&&(a.left=l-e.maxWidth),k&&o&&(a.top=m-e.minHeight),i&&o&&(a.top=m-e.maxHeight);var p=!a.width&&!a.height;p&&!a.left&&a.top?a.top=null:p&&!a.top&&a.left&&(a.left=null);return a},_proportionallyResize:function(){var b=this.options;if(!!this._proportionallyResizeElements.length){var c=this.helper||this.element;for(var d=0;d<this._proportionallyResizeElements.length;d++){var e=this._proportionallyResizeElements[d];if(!this.borderDif){var f=[e.css("borderTopWidth"),e.css("borderRightWidth"),e.css("borderBottomWidth"),e.css("borderLeftWidth")],g=[e.css("paddingTop"),e.css("paddingRight"),e.css("paddingBottom"),e.css("paddingLeft")];this.borderDif=a.map(f,function(a,b){var c=parseInt(a,10)||0,d=parseInt(g[b],10)||0;return c+d})}if(a.browser.msie&&(!!a(c).is(":hidden")||!!a(c).parents(":hidden").length))continue;e.css({height:c.height()-this.borderDif[0]-this.borderDif[2]||0,width:c.width()-this.borderDif[1]-this.borderDif[3]||0})}}},_renderProxy:function(){var b=this.element,c=this.options;this.elementOffset=b.offset();if(this._helper){this.helper=this.helper||a('<div style="overflow:hidden;"></div>');var d=a.browser.msie&&a.browser.version<7,e=d?1:0,f=d?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+f,height:this.element.outerHeight()+f,position:"absolute",left:this.elementOffset.left-e+"px",top:this.elementOffset.top-e+"px",zIndex:++c.zIndex}),this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(a,b,c){return{width:this.originalSize.width+b}},w:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{left:f.left+b,width:e.width-b}},n:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{top:f.top+c,height:e.height-c}},s:function(a,b,c){return{height:this.originalSize.height+c}},se:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},sw:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,c,d]))},ne:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},nw:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,c,d]))}},_propagate:function(b,c){a.ui.plugin.call(this,b,[c,this.ui()]),b!="resize"&&this._trigger(b,c,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),a.extend(a.ui.resizable,{version:"1.8.18"}),a.ui.plugin.add("resizable","alsoResize",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=function(b){a(b).each(function(){var b=a(this);b.data("resizable-alsoresize",{width:parseInt(b.width(),10),height:parseInt(b.height(),10),left:parseInt(b.css("left"),10),top:parseInt(b.css("top"),10)})})};typeof e.alsoResize=="object"&&!e.alsoResize.parentNode?e.alsoResize.length?(e.alsoResize=e.alsoResize[0],f(e.alsoResize)):a.each(e.alsoResize,function(a){f(a)}):f(e.alsoResize)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.originalSize,g=d.originalPosition,h={height:d.size.height-f.height||0,width:d.size.width-f.width||0,top:d.position.top-g.top||0,left:d.position.left-g.left||0},i=function(b,d){a(b).each(function(){var b=a(this),e=a(this).data("resizable-alsoresize"),f={},g=d&&d.length?d:b.parents(c.originalElement[0]).length?["width","height"]:["width","height","top","left"];a.each(g,function(a,b){var c=(e[b]||0)+(h[b]||0);c&&c>=0&&(f[b]=c||null)}),b.css(f)})};typeof e.alsoResize=="object"&&!e.alsoResize.nodeType?a.each(e.alsoResize,function(a,b){i(a,b)}):i(e.alsoResize)},stop:function(b,c){a(this).removeData("resizable-alsoresize")}}),a.ui.plugin.add("resizable","animate",{stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d._proportionallyResizeElements,g=f.length&&/textarea/i.test(f[0].nodeName),h=g&&a.ui.hasScroll(f[0],"left")?0:d.sizeDiff.height,i=g?0:d.sizeDiff.width,j={width:d.size.width-i,height:d.size.height-h},k=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,l=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;d.element.animate(a.extend(j,l&&k?{top:l,left:k}:{}),{duration:e.animateDuration,easing:e.animateEasing,step:function(){var c={width:parseInt(d.element.css("width"),10),height:parseInt(d.element.css("height"),10),top:parseInt(d.element.css("top"),10),left:parseInt(d.element.css("left"),10)};f&&f.length&&a(f[0]).css({width:c.width,height:c.height}),d._updateCache(c),d._propagate("resize",b)}})}}),a.ui.plugin.add("resizable","containment",{start:function(b,d){var e=a(this).data("resizable"),f=e.options,g=e.element,h=f.containment,i=h instanceof a?h.get(0):/parent/.test(h)?g.parent().get(0):h;if(!!i){e.containerElement=a(i);if(/document/.test(h)||h==document)e.containerOffset={left:0,top:0},e.containerPosition={left:0,top:0},e.parentData={element:a(document),left:0,top:0,width:a(document).width(),height:a(document).height()||document.body.parentNode.scrollHeight};else{var j=a(i),k=[];a(["Top","Right","Left","Bottom"]).each(function(a,b){k[a]=c(j.css("padding"+b))}),e.containerOffset=j.offset(),e.containerPosition=j.position(),e.containerSize={height:j.innerHeight()-k[3],width:j.innerWidth()-k[1]};var l=e.containerOffset,m=e.containerSize.height,n=e.containerSize.width,o=a.ui.hasScroll(i,"left")?i.scrollWidth:n,p=a.ui.hasScroll(i)?i.scrollHeight:m;e.parentData={element:i,left:l.left,top:l.top,width:o,height:p}}}},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.containerSize,g=d.containerOffset,h=d.size,i=d.position,j=d._aspectRatio||b.shiftKey,k={top:0,left:0},l=d.containerElement;l[0]!=document&&/static/.test(l.css("position"))&&(k=g),i.left<(d._helper?g.left:0)&&(d.size.width=d.size.width+(d._helper?d.position.left-g.left:d.position.left-k.left),j&&(d.size.height=d.size.width/e.aspectRatio),d.position.left=e.helper?g.left:0),i.top<(d._helper?g.top:0)&&(d.size.height=d.size.height+(d._helper?d.position.top-g.top:d.position.top),j&&(d.size.width=d.size.height*e.aspectRatio),d.position.top=d._helper?g.top:0),d.offset.left=d.parentData.left+d.position.left,d.offset.top=d.parentData.top+d.position.top;var m=Math.abs((d._helper?d.offset.left-k.left:d.offset.left-k.left)+d.sizeDiff.width),n=Math.abs((d._helper?d.offset.top-k.top:d.offset.top-g.top)+d.sizeDiff.height),o=d.containerElement.get(0)==d.element.parent().get(0),p=/relative|absolute/.test(d.containerElement.css("position"));o&&p
+&&(m-=d.parentData.left),m+d.size.width>=d.parentData.width&&(d.size.width=d.parentData.width-m,j&&(d.size.height=d.size.width/d.aspectRatio)),n+d.size.height>=d.parentData.height&&(d.size.height=d.parentData.height-n,j&&(d.size.width=d.size.height*d.aspectRatio))},stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.position,g=d.containerOffset,h=d.containerPosition,i=d.containerElement,j=a(d.helper),k=j.offset(),l=j.outerWidth()-d.sizeDiff.width,m=j.outerHeight()-d.sizeDiff.height;d._helper&&!e.animate&&/relative/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m}),d._helper&&!e.animate&&/static/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m})}}),a.ui.plugin.add("resizable","ghost",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size;d.ghost=d.originalElement.clone(),d.ghost.css({opacity:.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof e.ghost=="string"?e.ghost:""),d.ghost.appendTo(d.helper)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})},stop:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.helper&&d.helper.get(0).removeChild(d.ghost.get(0))}}),a.ui.plugin.add("resizable","grid",{resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size,g=d.originalSize,h=d.originalPosition,i=d.axis,j=e._aspectRatio||b.shiftKey;e.grid=typeof e.grid=="number"?[e.grid,e.grid]:e.grid;var k=Math.round((f.width-g.width)/(e.grid[0]||1))*(e.grid[0]||1),l=Math.round((f.height-g.height)/(e.grid[1]||1))*(e.grid[1]||1);/^(se|s|e)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l):/^(ne)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l):/^(sw)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.left=h.left-k):(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l,d.position.left=h.left-k)}});var c=function(a){return parseInt(a,10)||0},d=function(a){return!isNaN(parseInt(a,10))}})(jQuery);
+/*
+ * jQuery hashchange event - v1.3 - 7/21/2010
+ * http://benalman.com/projects/jquery-hashchange-plugin/
+ *
+ * Copyright (c) 2010 "Cowboy" Ben Alman
+ * Dual licensed under the MIT and GPL licenses.
+ * http://benalman.com/about/license/
+ */
+(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$('<iframe tabindex="-1" title="empty"/>').hide().one("load",function(){r||l(a());n()}).attr("src",r||"javascript:0").insertAfter("body")[0].contentWindow;h.onpropertychange=function(){try{if(event.propertyName==="title"){q.document.title=h.title}}catch(s){}}}};j.stop=k;o=function(){return a(q.location.href)};l=function(v,s){var u=q.document,t=$.fn[c].domain;if(v!==s){u.title=h.title;u.open();t&&u.write('<script>document.domain="'+t+'"<\/script>');u.close();q.location.hash=v}}})();return j})()})(jQuery,this);
+/**
+ * jQuery.ScrollTo - Easy element scrolling using jQuery.
+ * Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
+ * Dual licensed under MIT and GPL.
+ * Date: 5/25/2009
+ * @author Ariel Flesler
+ * @version 1.4.2
+ *
+ * http://flesler.blogspot.com/2007/10/jqueryscrollto.html
+ */
+;(function(d){var k=d.scrollTo=function(a,i,e){d(window).scrollTo(a,i,e)};k.defaults={axis:'xy',duration:parseFloat(d.fn.jquery)>=1.3?0:1};k.window=function(a){return d(window)._scrollable()};d.fn._scrollable=function(){return this.map(function(){var a=this,i=!a.nodeName||d.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!i)return a;var e=(a.contentWindow||a).document||a.ownerDocument||a;return d.browser.safari||e.compatMode=='BackCompat'?e.body:e.documentElement})};d.fn.scrollTo=function(n,j,b){if(typeof j=='object'){b=j;j=0}if(typeof b=='function')b={onAfter:b};if(n=='max')n=9e9;b=d.extend({},k.defaults,b);j=j||b.speed||b.duration;b.queue=b.queue&&b.axis.length>1;if(b.queue)j/=2;b.offset=p(b.offset);b.over=p(b.over);return this._scrollable().each(function(){var q=this,r=d(q),f=n,s,g={},u=r.is('html,body');switch(typeof f){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(f)){f=p(f);break}f=d(f,this);case'object':if(f.is||f.style)s=(f=d(f)).offset()}d.each(b.axis.split(''),function(a,i){var e=i=='x'?'Left':'Top',h=e.toLowerCase(),c='scroll'+e,l=q[c],m=k.max(q,i);if(s){g[c]=s[h]+(u?0:l-r.offset()[h]);if(b.margin){g[c]-=parseInt(f.css('margin'+e))||0;g[c]-=parseInt(f.css('border'+e+'Width'))||0}g[c]+=b.offset[h]||0;if(b.over[h])g[c]+=f[i=='x'?'width':'height']()*b.over[h]}else{var o=f[h];g[c]=o.slice&&o.slice(-1)=='%'?parseFloat(o)/100*m:o}if(/^\d+$/.test(g[c]))g[c]=g[c]<=0?0:Math.min(g[c],m);if(!a&&b.queue){if(l!=g[c])t(b.onAfterFirst);delete g[c]}});t(b.onAfter);function t(a){r.animate(g,j,b.easing,a&&function(){a.call(this,n,b)})}}).end()};k.max=function(a,i){var e=i=='x'?'Width':'Height',h='scroll'+e;if(!d(a).is('html,body'))return a[h]-d(a)[e.toLowerCase()]();var c='client'+e,l=a.ownerDocument.documentElement,m=a.ownerDocument.body;return Math.max(l[h],m[h])-Math.min(l[c],m[c])};function p(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery);
diff --git a/ucs2-lib/doc/html/logo.png b/ucs2-lib/doc/html/logo.png
new file mode 100644
index 0000000..c176b18
--- /dev/null
+++ b/ucs2-lib/doc/html/logo.png
Binary files differ
diff --git a/ucs2-lib/doc/html/logo_mchp.png b/ucs2-lib/doc/html/logo_mchp.png
new file mode 100644
index 0000000..c176b18
--- /dev/null
+++ b/ucs2-lib/doc/html/logo_mchp.png
Binary files differ
diff --git a/ucs2-lib/doc/html/modules.html b/ucs2-lib/doc/html/modules.html
new file mode 100644
index 0000000..effc161
--- /dev/null
+++ b/ucs2-lib/doc/html/modules.html
@@ -0,0 +1,153 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: API Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('modules.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">API Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here is a list of all modules:</div><div class="directory">
+<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span><span onclick="javascript:toggleLevel(4);">4</span>]</div><table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><img id="arr_0_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('0_')"/><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v.html" target="_self">Initialization and Service</a></td><td class="desc">Provides initialization and service functions</td></tr>
+<tr id="row_0_0_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s.html" target="_self">Initialization and Service Types</a></td><td class="desc">Referred types used by basic functions</td></tr>
+<tr id="row_0_1_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_0_1_" src="ftv2mlastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('0_1_')"/><a class="el" href="group___g___u_c_s___t_r_a_c_e.html" target="_self">Tracing/Debugging</a></td><td class="desc">Tracing/Debugging Interface</td></tr>
+<tr id="row_0_1_0_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s.html" target="_self">Tracing/Debugging Types</a></td><td class="desc">Referred types used by Tracing/Debugging Interface</td></tr>
+<tr id="row_1_" class="even"><td class="entry"><img id="arr_1_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('1_')"/><a class="el" href="group___g___u_c_s___i_n_i_c.html" target="_self">INIC</a></td><td class="desc">INIC related functions</td></tr>
+<tr id="row_1_0_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s.html" target="_self">Referred Types</a></td><td class="desc">INIC related types</td></tr>
+<tr id="row_2_" class="even"><td class="entry"><img id="arr_2_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('2_')"/><a class="el" href="group___g___u_c_s___n_e_t.html" target="_self">Network</a></td><td class="desc">Provides network management functions</td></tr>
+<tr id="row_2_0_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s.html" target="_self">Referred Types</a></td><td class="desc">Provides network management functions</td></tr>
+<tr id="row_3_" class="even"><td class="entry"><img id="arr_3_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('3_')"/><a class="el" href="group___g___u_c_s___a_m_s.html" target="_self">Application Message Service</a></td><td class="desc">Application Message Service</td></tr>
+<tr id="row_3_0_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s.html" target="_self">Referred Types</a></td><td class="desc">Referred types used by Application Message Service</td></tr>
+<tr id="row_4_" class="even"><td class="entry"><img id="arr_4_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('4_')"/><a class="el" href="group___g___u_c_s___c_m_d.html" target="_self">Command Interpreter</a></td><td class="desc">Decodes received MOST messages</td></tr>
+<tr id="row_4_0_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a class="el" href="group___g___u_c_s___c_m_d___t_y_p_e_s.html" target="_self">Referred Types</a></td><td class="desc">Referred types used by the Command Interpreter</td></tr>
+<tr id="row_5_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="group___g___u_c_s___m_g_r.html" target="_self">Manager</a></td><td class="desc">The Manager is responsible to force the network to available and handle NodeDiscovery and RoutingManagement by a default logic</td></tr>
+<tr id="row_6_"><td class="entry"><img id="arr_6_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('6_')"/><a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y.html" target="_self">Node Discovery</a></td><td class="desc">Node Discovery Service</td></tr>
+<tr id="row_6_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s.html" target="_self">Referred Types</a></td><td class="desc">Referred Types used by Node Discovery Service</td></tr>
+<tr id="row_7_"><td class="entry"><img id="arr_7_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('7_')"/><a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e.html" target="_self">Programming</a></td><td class="desc">Programming Service</td></tr>
+<tr id="row_7_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s.html" target="_self">Referred Types</a></td><td class="desc">Referred Types used by Programming Service</td></tr>
+<tr id="row_8_"><td class="entry"><img id="arr_8_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('8_')"/><a class="el" href="group___g___u_c_s___b_c___d_i_a_g.html" target="_self">BackChannel Diagnosis</a></td><td class="desc">BackChannel Diagnosis</td></tr>
+<tr id="row_8_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a class="el" href="group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s.html" target="_self">Referred Types</a></td><td class="desc">Referred Types used by BackChannel Diagnosis</td></tr>
+<tr id="row_9_"><td class="entry"><img id="arr_9_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('9_')"/><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g.html" target="_self">Routing Management</a></td><td class="desc">Provides service functions to handle connection routes</td></tr>
+<tr id="row_9_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_9_0_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('9_0_')"/><a class="el" href="group___g___u_c_s___i_r_m.html" target="_self">Extended Resources Management</a></td><td class="desc">Provides data type to manage MOST data resources</td></tr>
+<tr id="row_9_0_0_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="group___g___u_c_s___x_r_m___s_t_r_e_a_m.html" target="_self">Additional Streaming Port Functions</a></td><td class="desc">Additional Streaming Port functions of the Extended Resource Manager</td></tr>
+<tr id="row_9_0_1_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_9_0_1_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('9_0_1_')"/><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s.html" target="_self">XRM Referred Types</a></td><td class="desc">Referred types used by XRM service functions</td></tr>
+<tr id="row_9_0_1_0_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m.html" target="_self">XRM SubTypes</a></td><td class="desc">Referred types used in XRM Sockets and Ports description</td></tr>
+<tr id="row_9_0_2_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a class="el" href="group___g___u_c_s___x_r_m___c_f_g.html" target="_self">XRM Configuration Macros</a></td><td class="desc">Configurations Macros used by XRM service functions</td></tr>
+<tr id="row_9_1_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s.html" target="_self">Referred Types</a></td><td class="desc">Referred types used by Routing service functions</td></tr>
+<tr id="row_10_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="group___g___u_c_s___s_c_r_i_p_t_i_n_g.html" target="_self">Node Scripting</a></td><td class="desc">Provides service function to allow execution of custom scripts in remote Nodes</td></tr>
+<tr id="row_11_"><td class="entry"><img id="arr_11_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('11_')"/><a class="el" href="group___g___u_c_s___p_b_i.html" target="_self">Peripheral Bus Interface</a></td><td class="desc">Provides service functions to manage data communication over the peripheral bus interfaces I2C and GPIO</td></tr>
+<tr id="row_11_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_11_0_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('11_0_')"/><a class="el" href="group___g___u_c_s___g_p_i_o.html" target="_self">GPIO</a></td><td class="desc">Provides service functions to handle data communication over GPIO</td></tr>
+<tr id="row_11_0_0_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s.html" target="_self">GPIO Referred Types</a></td><td class="desc">Referred types used by the Extended Resource Manager</td></tr>
+<tr id="row_11_1_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_11_1_" src="ftv2mlastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('11_1_')"/><a class="el" href="group___g___u_c_s___i2_c.html" target="_self">I2C</a></td><td class="desc">Provides service functions to handle data communication over I2C</td></tr>
+<tr id="row_11_1_0_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s.html" target="_self">I2C Referred Types</a></td><td class="desc">Referred types used by the Extended Resource Manager</td></tr>
+<tr id="row_12_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="group___g___u_c_s___m_i_s_c.html" target="_self">Miscellaneous</a></td><td class="desc">Miscellaneous features</td></tr>
+<tr id="row_13_"><td class="entry"><img id="arr_13_" src="ftv2mlastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('13_')"/><a class="el" href="group___g___u_c_s___l_l_d.html" target="_self">Low-Level Driver</a></td><td class="desc">Provides an interface for Port Message Exchange with the INIC</td></tr>
+<tr id="row_13_0_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="group___g___u_c_s___l_l_d___a_p_i.html" target="_self">Low-Level Driver API</a></td><td class="desc">Function pointers to be used by the low-level driver</td></tr>
+<tr id="row_13_1_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a class="el" href="group___g___u_c_s___l_l_d___t_y_p_e_s.html" target="_self">Referred Types</a></td><td class="desc">Referred types used by the low-level driver interface</td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/modules.js b/ucs2-lib/doc/html/modules.js
new file mode 100644
index 0000000..e270ef1
--- /dev/null
+++ b/ucs2-lib/doc/html/modules.js
@@ -0,0 +1,17 @@
+var modules =
+[
+ [ "Initialization and Service", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v.html", "group___g___u_c_s___i_n_i_t___a_n_d___s_r_v" ],
+ [ "INIC", "group___g___u_c_s___i_n_i_c.html", "group___g___u_c_s___i_n_i_c" ],
+ [ "Network", "group___g___u_c_s___n_e_t.html", "group___g___u_c_s___n_e_t" ],
+ [ "Application Message Service", "group___g___u_c_s___a_m_s.html", "group___g___u_c_s___a_m_s" ],
+ [ "Command Interpreter", "group___g___u_c_s___c_m_d.html", "group___g___u_c_s___c_m_d" ],
+ [ "Manager", "group___g___u_c_s___m_g_r.html", "group___g___u_c_s___m_g_r" ],
+ [ "Node Discovery", "group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y.html", "group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y" ],
+ [ "Programming", "group___g___u_c_s___p_r_o_g___m_o_d_e.html", "group___g___u_c_s___p_r_o_g___m_o_d_e" ],
+ [ "BackChannel Diagnosis", "group___g___u_c_s___b_c___d_i_a_g.html", "group___g___u_c_s___b_c___d_i_a_g" ],
+ [ "Routing Management", "group___g___u_c_s___r_o_u_t_i_n_g.html", "group___g___u_c_s___r_o_u_t_i_n_g" ],
+ [ "Node Scripting", "group___g___u_c_s___s_c_r_i_p_t_i_n_g.html", "group___g___u_c_s___s_c_r_i_p_t_i_n_g" ],
+ [ "Peripheral Bus Interface", "group___g___u_c_s___p_b_i.html", "group___g___u_c_s___p_b_i" ],
+ [ "Miscellaneous", "group___g___u_c_s___m_i_s_c.html", "group___g___u_c_s___m_i_s_c" ],
+ [ "Low-Level Driver", "group___g___u_c_s___l_l_d.html", "group___g___u_c_s___l_l_d" ]
+]; \ No newline at end of file
diff --git a/ucs2-lib/doc/html/nav_f.png b/ucs2-lib/doc/html/nav_f.png
new file mode 100644
index 0000000..c022f63
--- /dev/null
+++ b/ucs2-lib/doc/html/nav_f.png
Binary files differ
diff --git a/ucs2-lib/doc/html/nav_g.png b/ucs2-lib/doc/html/nav_g.png
new file mode 100644
index 0000000..2093a23
--- /dev/null
+++ b/ucs2-lib/doc/html/nav_g.png
Binary files differ
diff --git a/ucs2-lib/doc/html/nav_h.png b/ucs2-lib/doc/html/nav_h.png
new file mode 100644
index 0000000..0fc599e
--- /dev/null
+++ b/ucs2-lib/doc/html/nav_h.png
Binary files differ
diff --git a/ucs2-lib/doc/html/navtree.css b/ucs2-lib/doc/html/navtree.css
new file mode 100644
index 0000000..df2e44e
--- /dev/null
+++ b/ucs2-lib/doc/html/navtree.css
@@ -0,0 +1,143 @@
+#nav-tree .children_ul {
+ margin:0;
+ padding:4px;
+}
+
+#nav-tree ul {
+ list-style:none outside none;
+ margin:0px;
+ padding:0px;
+}
+
+#nav-tree li {
+ white-space:nowrap;
+ margin:0px;
+ padding:0px;
+}
+
+#nav-tree .plus {
+ margin:0px;
+}
+
+#nav-tree .selected {
+ background-image: url('tab_a.png');
+ background-repeat:repeat-x;
+ color: #fff;
+ text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+}
+
+#nav-tree img {
+ margin:0px;
+ padding:0px;
+ border:0px;
+ vertical-align: middle;
+}
+
+#nav-tree a {
+ text-decoration:none;
+ padding:0px;
+ margin:0px;
+ outline:none;
+}
+
+#nav-tree .label {
+ margin:0px;
+ padding:0px;
+ font: 12px 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+}
+
+#nav-tree .label a {
+ padding:2px;
+}
+
+#nav-tree .selected a {
+ text-decoration:none;
+ color:#fff;
+}
+
+#nav-tree .children_ul {
+ margin:0px;
+ padding:0px;
+}
+
+#nav-tree .item {
+ margin:0px;
+ padding:0px;
+}
+
+#nav-tree {
+ padding: 0px 0px;
+ background-color: #FAFAFF;
+ font-size:14px;
+ overflow:auto;
+}
+
+#doc-content {
+ overflow:auto;
+ display:block;
+ padding:0px;
+ margin:0px;
+ -webkit-overflow-scrolling : touch; /* iOS 5+ */
+}
+
+#side-nav {
+ padding:0 6px 0 0;
+ margin: 0px;
+ display:block;
+ position: absolute;
+ left: 0px;
+ width: 300px;
+}
+
+.ui-resizable .ui-resizable-handle {
+ display:block;
+}
+
+.ui-resizable-e {
+ background:url("ftv2splitbar.png") repeat scroll right center transparent;
+ cursor:e-resize;
+ height:100%;
+ right:0;
+ top:0;
+ width:6px;
+}
+
+.ui-resizable-handle {
+ display:none;
+ font-size:0.1px;
+ position:absolute;
+ z-index:1;
+}
+
+#nav-tree-contents {
+ margin: 6px 0px 0px 0px;
+}
+
+#nav-tree {
+ background-image:url('nav_h.png');
+ background-repeat:repeat-x;
+ background-color: #F8F8F8;
+ -webkit-overflow-scrolling : touch; /* iOS 5+ */
+}
+
+#nav-sync {
+ position:absolute;
+ top:5px;
+ right:24px;
+ z-index:0;
+}
+
+#nav-sync img {
+ opacity:0.3;
+}
+
+#nav-sync img:hover {
+ opacity:0.9;
+}
+
+@media print
+{
+ #nav-tree { display: none; }
+ div.ui-resizable-handle { display: none; position: relative; }
+}
+
diff --git a/ucs2-lib/doc/html/navtree.js b/ucs2-lib/doc/html/navtree.js
new file mode 100644
index 0000000..6079cf9
--- /dev/null
+++ b/ucs2-lib/doc/html/navtree.js
@@ -0,0 +1,515 @@
+var NAVTREE =
+[
+ [ "UNICENS", "index.html", [
+ [ "API Reference", "modules.html", "modules" ],
+ [ "Getting Started", "_p__u_m__g_e_t_t_i_n_g__s_t_a_r_t_e_d.html", "_p__u_m__g_e_t_t_i_n_g__s_t_a_r_t_e_d" ],
+ [ "Appendix", "_p__d_o_c_u__a_p_p_e_n_d_i_x.html", "_p__d_o_c_u__a_p_p_e_n_d_i_x" ]
+ ] ]
+];
+
+var NAVTREEINDEX =
+[
+"_p__d_o_c_u__a_p_p_e_n_d_i_x.html",
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_gaea8d7735d41853167a2befdc06febe43.html#gaea8d7735d41853167a2befdc06febe43",
+"group___g___u_c_s___x_r_m___e_n_u_m_gaadbd9007127f39c3c257040adf063d07.html#ggaadbd9007127f39c3c257040adf063d07a16eeeaad94f4398034b16f32832b2b52",
+"struct_ucs___std_result__t_ab89f4871a6526d4d409fca9ee58ce176.html#ab89f4871a6526d4d409fca9ee58ce176"
+];
+
+var SYNCONMSG = 'click to disable panel synchronisation';
+var SYNCOFFMSG = 'click to enable panel synchronisation';
+var navTreeSubIndices = new Array();
+
+function getData(varName)
+{
+ var i = varName.lastIndexOf('/');
+ var n = i>=0 ? varName.substring(i+1) : varName;
+ return eval(n.replace(/\-/g,'_'));
+}
+
+function stripPath(uri)
+{
+ return uri.substring(uri.lastIndexOf('/')+1);
+}
+
+function stripPath2(uri)
+{
+ var i = uri.lastIndexOf('/');
+ var s = uri.substring(i+1);
+ var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/);
+ return m ? uri.substring(i-6) : s;
+}
+
+function localStorageSupported()
+{
+ try {
+ return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem;
+ }
+ catch(e) {
+ return false;
+ }
+}
+
+
+function storeLink(link)
+{
+ if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) {
+ window.localStorage.setItem('navpath',link);
+ }
+}
+
+function deleteLink()
+{
+ if (localStorageSupported()) {
+ window.localStorage.setItem('navpath','');
+ }
+}
+
+function cachedLink()
+{
+ if (localStorageSupported()) {
+ return window.localStorage.getItem('navpath');
+ } else {
+ return '';
+ }
+}
+
+function getScript(scriptName,func,show)
+{
+ var head = document.getElementsByTagName("head")[0];
+ var script = document.createElement('script');
+ script.id = scriptName;
+ script.type = 'text/javascript';
+ script.onload = func;
+ script.src = scriptName+'.js';
+ if ($.browser.msie && $.browser.version<=8) {
+ // script.onload does work with older versions of IE
+ script.onreadystatechange = function() {
+ if (script.readyState=='complete' || script.readyState=='loaded') {
+ func(); if (show) showRoot();
+ }
+ }
+ }
+ head.appendChild(script);
+}
+
+function createIndent(o,domNode,node,level)
+{
+ if (node.parentNode && node.parentNode.parentNode) {
+ createIndent(o,domNode,node.parentNode,level+1);
+ }
+ var imgNode = document.createElement("img");
+ imgNode.width = 16;
+ imgNode.height = 22;
+ if (level==0 && node.childrenData) {
+ node.plus_img = imgNode;
+ node.expandToggle = document.createElement("a");
+ node.expandToggle.href = "javascript:void(0)";
+ node.expandToggle.onclick = function() {
+ if (node.expanded) {
+ $(node.getChildrenUL()).slideUp("fast");
+ if (node.isLast) {
+ node.plus_img.src = node.relpath+"ftv2plastnode.png";
+ } else {
+ node.plus_img.src = node.relpath+"ftv2pnode.png";
+ }
+ node.expanded = false;
+ } else {
+ expandNode(o, node, false, false);
+ }
+ }
+ node.expandToggle.appendChild(imgNode);
+ domNode.appendChild(node.expandToggle);
+ } else {
+ domNode.appendChild(imgNode);
+ }
+ if (level==0) {
+ if (node.isLast) {
+ if (node.childrenData) {
+ imgNode.src = node.relpath+"ftv2plastnode.png";
+ } else {
+ imgNode.src = node.relpath+"ftv2lastnode.png";
+ domNode.appendChild(imgNode);
+ }
+ } else {
+ if (node.childrenData) {
+ imgNode.src = node.relpath+"ftv2pnode.png";
+ } else {
+ imgNode.src = node.relpath+"ftv2node.png";
+ domNode.appendChild(imgNode);
+ }
+ }
+ } else {
+ if (node.isLast) {
+ imgNode.src = node.relpath+"ftv2blank.png";
+ } else {
+ imgNode.src = node.relpath+"ftv2vertline.png";
+ }
+ }
+ imgNode.border = "0";
+}
+
+function newNode(o, po, text, link, childrenData, lastNode)
+{
+ var node = new Object();
+ node.children = Array();
+ node.childrenData = childrenData;
+ node.depth = po.depth + 1;
+ node.relpath = po.relpath;
+ node.isLast = lastNode;
+
+ node.li = document.createElement("li");
+ po.getChildrenUL().appendChild(node.li);
+ node.parentNode = po;
+
+ node.itemDiv = document.createElement("div");
+ node.itemDiv.className = "item";
+
+ node.labelSpan = document.createElement("span");
+ node.labelSpan.className = "label";
+
+ createIndent(o,node.itemDiv,node,0);
+ node.itemDiv.appendChild(node.labelSpan);
+ node.li.appendChild(node.itemDiv);
+
+ var a = document.createElement("a");
+ node.labelSpan.appendChild(a);
+ node.label = document.createTextNode(text);
+ node.expanded = false;
+ a.appendChild(node.label);
+ if (link) {
+ var url;
+ if (link.substring(0,1)=='^') {
+ url = link.substring(1);
+ link = url;
+ } else {
+ url = node.relpath+link;
+ }
+ a.className = stripPath(link.replace('#',':'));
+ if (link.indexOf('#')!=-1) {
+ var aname = '#'+link.split('#')[1];
+ var srcPage = stripPath($(location).attr('pathname'));
+ var targetPage = stripPath(link.split('#')[0]);
+ a.href = srcPage!=targetPage ? url : '#';
+ a.onclick = function(){
+ storeLink(link);
+ if (!$(a).parent().parent().hasClass('selected'))
+ {
+ $('.item').removeClass('selected');
+ $('.item').removeAttr('id');
+ $(a).parent().parent().addClass('selected');
+ $(a).parent().parent().attr('id','selected');
+ }
+ var pos, anchor = $(aname), docContent = $('#doc-content');
+ if (anchor.parent().attr('class')=='memItemLeft') {
+ pos = anchor.parent().position().top;
+ } else if (anchor.position()) {
+ pos = anchor.position().top;
+ }
+ if (pos) {
+ var dist = Math.abs(Math.min(
+ pos-docContent.offset().top,
+ docContent[0].scrollHeight-
+ docContent.height()-docContent.scrollTop()));
+ docContent.animate({
+ scrollTop: pos + docContent.scrollTop() - docContent.offset().top
+ },Math.max(50,Math.min(500,dist)),function(){
+ window.location.replace(aname);
+ });
+ }
+ };
+ } else {
+ a.href = url;
+ a.onclick = function() { storeLink(link); }
+ }
+ } else {
+ if (childrenData != null)
+ {
+ a.className = "nolink";
+ a.href = "javascript:void(0)";
+ a.onclick = node.expandToggle.onclick;
+ }
+ }
+
+ node.childrenUL = null;
+ node.getChildrenUL = function() {
+ if (!node.childrenUL) {
+ node.childrenUL = document.createElement("ul");
+ node.childrenUL.className = "children_ul";
+ node.childrenUL.style.display = "none";
+ node.li.appendChild(node.childrenUL);
+ }
+ return node.childrenUL;
+ };
+
+ return node;
+}
+
+function showRoot()
+{
+ var headerHeight = $("#top").height();
+ var footerHeight = $("#nav-path").height();
+ var windowHeight = $(window).height() - headerHeight - footerHeight;
+ (function (){ // retry until we can scroll to the selected item
+ try {
+ var navtree=$('#nav-tree');
+ navtree.scrollTo('#selected',0,{offset:-windowHeight/2});
+ } catch (err) {
+ setTimeout(arguments.callee, 0);
+ }
+ })();
+}
+
+function expandNode(o, node, imm, showRoot)
+{
+ if (node.childrenData && !node.expanded) {
+ if (typeof(node.childrenData)==='string') {
+ var varName = node.childrenData;
+ getScript(node.relpath+varName,function(){
+ node.childrenData = getData(varName);
+ expandNode(o, node, imm, showRoot);
+ }, showRoot);
+ } else {
+ if (!node.childrenVisited) {
+ getNode(o, node);
+ } if (imm || ($.browser.msie && $.browser.version>8)) {
+ // somehow slideDown jumps to the start of tree for IE9 :-(
+ $(node.getChildrenUL()).show();
+ } else {
+ $(node.getChildrenUL()).slideDown("fast");
+ }
+ if (node.isLast) {
+ node.plus_img.src = node.relpath+"ftv2mlastnode.png";
+ } else {
+ node.plus_img.src = node.relpath+"ftv2mnode.png";
+ }
+ node.expanded = true;
+ }
+ }
+}
+
+function glowEffect(n,duration)
+{
+ n.addClass('glow').delay(duration).queue(function(next){
+ $(this).removeClass('glow');next();
+ });
+}
+
+function highlightAnchor()
+{
+ var anchor = $($(location).attr('hash'));
+ if (anchor.parent().attr('class')=='memItemLeft'){
+ var rows = $('.memberdecls tr[class$="'+
+ window.location.hash.substring(1)+'"]');
+ glowEffect(rows.children(),300); // member without details
+ } else if (anchor.parents().slice(2).prop('tagName')=='TR') {
+ glowEffect(anchor.parents('div.memitem'),1000); // enum value
+ } else if (anchor.parent().attr('class')=='fieldtype'){
+ glowEffect(anchor.parent().parent(),1000); // struct field
+ } else if (anchor.parent().is(":header")) {
+ glowEffect(anchor.parent(),1000); // section header
+ } else {
+ glowEffect(anchor.next(),1000); // normal member
+ }
+}
+
+function selectAndHighlight(hash,n)
+{
+ var a;
+ if (hash) {
+ var link=stripPath($(location).attr('pathname'))+':'+hash.substring(1);
+ a=$('.item a[class$="'+link+'"]');
+ }
+ if (a && a.length) {
+ a.parent().parent().addClass('selected');
+ a.parent().parent().attr('id','selected');
+ highlightAnchor();
+ } else if (n) {
+ $(n.itemDiv).addClass('selected');
+ $(n.itemDiv).attr('id','selected');
+ }
+ showRoot();
+}
+
+function showNode(o, node, index, hash)
+{
+ if (node && node.childrenData) {
+ if (typeof(node.childrenData)==='string') {
+ var varName = node.childrenData;
+ getScript(node.relpath+varName,function(){
+ node.childrenData = getData(varName);
+ showNode(o,node,index,hash);
+ },true);
+ } else {
+ if (!node.childrenVisited) {
+ getNode(o, node);
+ }
+ $(node.getChildrenUL()).show();
+ if (node.isLast) {
+ node.plus_img.src = node.relpath+"ftv2mlastnode.png";
+ } else {
+ node.plus_img.src = node.relpath+"ftv2mnode.png";
+ }
+ node.expanded = true;
+ var n = node.children[o.breadcrumbs[index]];
+ if (index+1<o.breadcrumbs.length) {
+ showNode(o,n,index+1,hash);
+ } else {
+ if (typeof(n.childrenData)==='string') {
+ var varName = n.childrenData;
+ getScript(n.relpath+varName,function(){
+ n.childrenData = getData(varName);
+ node.expanded=false;
+ showNode(o,node,index,hash); // retry with child node expanded
+ },true);
+ } else {
+ var rootBase = stripPath(o.toroot.replace(/\..+$/, ''));
+ if (rootBase=="index" || rootBase=="pages") {
+ expandNode(o, n, true, true);
+ }
+ selectAndHighlight(hash,n);
+ }
+ }
+ }
+ } else {
+ selectAndHighlight(hash);
+ }
+}
+
+function getNode(o, po)
+{
+ po.childrenVisited = true;
+ var l = po.childrenData.length-1;
+ for (var i in po.childrenData) {
+ var nodeData = po.childrenData[i];
+ po.children[i] = newNode(o, po, nodeData[0], nodeData[1], nodeData[2],
+ i==l);
+ }
+}
+
+function gotoNode(o,subIndex,root,hash,relpath)
+{
+ var nti = navTreeSubIndices[subIndex][root+hash];
+ o.breadcrumbs = $.extend(true, [], nti ? nti : navTreeSubIndices[subIndex][root]);
+ if (!o.breadcrumbs && root!=NAVTREE[0][1]) { // fallback: show index
+ navTo(o,NAVTREE[0][1],"",relpath);
+ $('.item').removeClass('selected');
+ $('.item').removeAttr('id');
+ }
+ if (o.breadcrumbs) {
+ o.breadcrumbs.unshift(0); // add 0 for root node
+ showNode(o, o.node, 0, hash);
+ }
+}
+
+function navTo(o,root,hash,relpath)
+{
+ var link = cachedLink();
+ if (link) {
+ var parts = link.split('#');
+ root = parts[0];
+ if (parts.length>1) hash = '#'+parts[1];
+ else hash='';
+ }
+ if (root==NAVTREE[0][1]) {
+ $('#nav-sync').css('top','30px');
+ } else {
+ $('#nav-sync').css('top','5px');
+ }
+ if (hash.match(/^#l\d+$/)) {
+ var anchor=$('a[name='+hash.substring(1)+']');
+ glowEffect(anchor.parent(),1000); // line number
+ hash=''; // strip line number anchors
+ //root=root.replace(/_source\./,'.'); // source link to doc link
+ }
+ var url=root+hash;
+ var i=-1;
+ while (NAVTREEINDEX[i+1]<=url) i++;
+ if (navTreeSubIndices[i]) {
+ gotoNode(o,i,root,hash,relpath)
+ } else {
+ getScript(relpath+'navtreeindex'+i,function(){
+ navTreeSubIndices[i] = eval('NAVTREEINDEX'+i);
+ if (navTreeSubIndices[i]) {
+ gotoNode(o,i,root,hash,relpath);
+ }
+ },true);
+ }
+}
+
+function showSyncOff(n,relpath)
+{
+ n.html('<img src="'+relpath+'sync_off.png" title="'+SYNCOFFMSG+'"/>');
+}
+
+function showSyncOn(n,relpath)
+{
+ n.html('<img src="'+relpath+'sync_on.png"/ title="'+SYNCONMSG+'">');
+}
+
+function toggleSyncButton(relpath)
+{
+ var navSync = $('#nav-sync');
+ if (navSync.hasClass('sync')) {
+ navSync.removeClass('sync');
+ showSyncOff(navSync,relpath);
+ storeLink(stripPath2($(location).attr('pathname'))+$(location).attr('hash'));
+ } else {
+ navSync.addClass('sync');
+ showSyncOn(navSync,relpath);
+ deleteLink();
+ }
+}
+
+function initNavTree(toroot,relpath)
+{
+ var o = new Object();
+ o.toroot = toroot;
+ o.node = new Object();
+ o.node.li = document.getElementById("nav-tree-contents");
+ o.node.childrenData = NAVTREE;
+ o.node.children = new Array();
+ o.node.childrenUL = document.createElement("ul");
+ o.node.getChildrenUL = function() { return o.node.childrenUL; };
+ o.node.li.appendChild(o.node.childrenUL);
+ o.node.depth = 0;
+ o.node.relpath = relpath;
+ o.node.expanded = false;
+ o.node.isLast = true;
+ o.node.plus_img = document.createElement("img");
+ o.node.plus_img.src = relpath+"ftv2pnode.png";
+ o.node.plus_img.width = 16;
+ o.node.plus_img.height = 22;
+
+ if (localStorageSupported()) {
+ var navSync = $('#nav-sync');
+ if (cachedLink()) {
+ showSyncOff(navSync,relpath);
+ navSync.removeClass('sync');
+ } else {
+ showSyncOn(navSync,relpath);
+ }
+ navSync.click(function(){ toggleSyncButton(relpath); });
+ }
+
+ navTo(o,toroot,window.location.hash,relpath);
+
+ $(window).bind('hashchange', function(){
+ if (window.location.hash && window.location.hash.length>1){
+ var a;
+ if ($(location).attr('hash')){
+ var clslink=stripPath($(location).attr('pathname'))+':'+
+ $(location).attr('hash').substring(1);
+ a=$('.item a[class$="'+clslink+'"]');
+ }
+ if (a==null || !$(a).parent().parent().hasClass('selected')){
+ $('.item').removeClass('selected');
+ $('.item').removeAttr('id');
+ }
+ var link=stripPath2($(location).attr('pathname'));
+ navTo(o,link,$(location).attr('hash'),relpath);
+ }
+ })
+
+ $(window).load(showRoot);
+}
+
diff --git a/ucs2-lib/doc/html/navtreeindex0.js b/ucs2-lib/doc/html/navtreeindex0.js
new file mode 100644
index 0000000..5b1c951
--- /dev/null
+++ b/ucs2-lib/doc/html/navtreeindex0.js
@@ -0,0 +1,253 @@
+var NAVTREEINDEX0 =
+{
+"_p__d_o_c_u__a_p_p_e_n_d_i_x.html":[2],
+"_p__u_m__b_a_c_k_c_h_a_n_n_e_l__d_i_a_g.html":[1,10],
+"_p__u_m__g_e_t_t_i_n_g__s_t_a_r_t_e_d.html":[1],
+"_p__u_m__h_i_s_t_o_r_y.html":[2,0],
+"_p__u_m__o_s81118.html":[2,1],
+"_p__u_m__o_s81118.html#SEC_OS81118_10":[2,1,7],
+"_p__u_m__o_s81118.html#SEC_OS81118_11":[2,1,8],
+"_p__u_m__o_s81118.html#SEC_OS81118_12":[2,1,9],
+"_p__u_m__o_s81118.html#SEC_OS81118_13":[2,1,10],
+"_p__u_m__o_s81118.html#SEC_OS81118_14":[2,1,11],
+"_p__u_m__o_s81118.html#SEC_OS81118_15":[2,1,12],
+"_p__u_m__o_s81118.html#SEC_OS81118_16":[2,1,13],
+"_p__u_m__o_s81118.html#SEC_OS81118_17":[2,1,14],
+"_p__u_m__o_s81118.html#SEC_OS81118_18":[2,1,15],
+"_p__u_m__o_s81118.html#SEC_OS81118_19":[2,1,16],
+"_p__u_m__o_s81118.html#SEC_OS81118_20":[2,1,17],
+"_p__u_m__o_s81118.html#SEC_OS81118_21":[2,1,18],
+"_p__u_m__o_s81118.html#SEC_OS81118_22":[2,1,19],
+"_p__u_m__o_s81118.html#SEC_OS81118_23":[2,1,20],
+"_p__u_m__o_s81118.html#SEC_OS81118_24":[2,1,21],
+"_p__u_m__o_s81118.html#SEC_OS81118_25":[2,1,22],
+"_p__u_m__o_s81118.html#SEC_OS81118_26":[2,1,23],
+"_p__u_m__o_s81118.html#SEC_OS81118_27":[2,1,24],
+"_p__u_m__o_s81118.html#SEC_OS81118_28":[2,1,25],
+"_p__u_m__o_s81118.html#SEC_OS81118_29":[2,1,26],
+"_p__u_m__o_s81118.html#SEC_OS81118_3":[2,1,0],
+"_p__u_m__o_s81118.html#SEC_OS81118_30":[2,1,27],
+"_p__u_m__o_s81118.html#SEC_OS81118_31":[2,1,28],
+"_p__u_m__o_s81118.html#SEC_OS81118_32":[2,1,29],
+"_p__u_m__o_s81118.html#SEC_OS81118_4":[2,1,1],
+"_p__u_m__o_s81118.html#SEC_OS81118_5":[2,1,2],
+"_p__u_m__o_s81118.html#SEC_OS81118_6":[2,1,3],
+"_p__u_m__o_s81118.html#SEC_OS81118_7":[2,1,4],
+"_p__u_m__o_s81118.html#SEC_OS81118_8":[2,1,5],
+"_p__u_m__o_s81118.html#SEC_OS81118_9":[2,1,6],
+"_p__u_m__s_t_a_r_t_e_d__a_m_s.html":[1,4],
+"_p__u_m__s_t_a_r_t_e_d__c_m_d.html":[1,5],
+"_p__u_m__s_t_a_r_t_e_d__i_n_i_t.html":[1,1],
+"_p__u_m__s_t_a_r_t_e_d__l_l_d.html":[1,13],
+"_p__u_m__s_t_a_r_t_e_d__m_g_r.html":[1,7],
+"_p__u_m__s_t_a_r_t_e_d__n_e_t.html":[1,6],
+"_p__u_m__s_t_a_r_t_e_d__n_o_d_e__d_i_s.html":[1,8],
+"_p__u_m__s_t_a_r_t_e_d__n_o_d_e__s_c_r_i_p_t.html":[1,12],
+"_p__u_m__s_t_a_r_t_e_d__p_r_e_p.html":[1,0],
+"_p__u_m__s_t_a_r_t_e_d__p_r_o_g_r_a_m_m_i_n_g.html":[1,9],
+"_p__u_m__s_t_a_r_t_e_d__r_m.html":[1,11],
+"_p__u_m__s_t_a_r_t_e_d__s_r_v.html":[1,2],
+"_p__u_m__s_y_n_c__a_n_d__a_s_y_n_c__r_e_s_u_l_t_s.html":[1,3],
+"group___g___u_c_s___a_m_s.html":[0,3],
+"group___g___u_c_s___a_m_s___t_y_p_e_s.html":[0,3,0],
+"group___g___u_c_s___a_m_s___t_y_p_e_s_ga113edf4cab85ce4e5e13ef257b5b7128.html#ga113edf4cab85ce4e5e13ef257b5b7128":[0,3,0,5],
+"group___g___u_c_s___a_m_s___t_y_p_e_s_ga113edf4cab85ce4e5e13ef257b5b7128.html#gga113edf4cab85ce4e5e13ef257b5b7128a3304f1288c4b154cbf9ebd2976ecca23":[0,3,0,5,2],
+"group___g___u_c_s___a_m_s___t_y_p_e_s_ga113edf4cab85ce4e5e13ef257b5b7128.html#gga113edf4cab85ce4e5e13ef257b5b7128a6a08727eaedc64a4b7505e10d02b8e59":[0,3,0,5,1],
+"group___g___u_c_s___a_m_s___t_y_p_e_s_ga113edf4cab85ce4e5e13ef257b5b7128.html#gga113edf4cab85ce4e5e13ef257b5b7128ae659af6679f35f9093306753d7993c78":[0,3,0,5,0],
+"group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#ga36b630c866dc0c03134f60e98be39f0b":[0,3,0,7],
+"group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0ba3213fda6aaa6f3b8caafcf08b75e4e65":[0,3,0,7,0],
+"group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0ba3c59ee9fddbf6377d012914c4d541c06":[0,3,0,7,1],
+"group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0ba5bb604d0c993b0b7aea0ed4b1e27041d":[0,3,0,7,4],
+"group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0ba99426ad75c697a377095fd16ac9f64dd":[0,3,0,7,2],
+"group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0baecaf2176f4c201d33f1e80bc8dcdc324":[0,3,0,7,5],
+"group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0baf5b7a5f9d422eaba98b23f4558cf83c4":[0,3,0,7,3],
+"group___g___u_c_s___a_m_s___t_y_p_e_s_ga60acfdd5b93a99906d751ac2f14623a9.html#ga60acfdd5b93a99906d751ac2f14623a9":[0,3,0,4],
+"group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#ga667b741121fdfbda2fe19fa23ffc7479":[0,3,0,6],
+"group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479a1cbc6f82e1b0b7e53e15132957a8fdb6":[0,3,0,6,0],
+"group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479a3524c39a558966db2d1e9278f339f982":[0,3,0,6,2],
+"group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479a38cdf07b2ead1b0ab1d85fba8c20cdf7":[0,3,0,6,10],
+"group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479a3a9611a4c6c74652c619b5c9ddea9170":[0,3,0,6,8],
+"group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479a456dfbf1fdb8a429118428e918e12557":[0,3,0,6,6],
+"group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479a4b8ca91b4ba4cf11df77c1ff8e2e1ba4":[0,3,0,6,1],
+"group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479a58170c6f84f3dd2130c84c314cfb2ffe":[0,3,0,6,12],
+"group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479a837045ee240df8ebba459f75afae65fc":[0,3,0,6,9],
+"group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479ac8bff0614950912c4eddc97b095055cb":[0,3,0,6,5],
+"group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479acd257b1602b92467f83896952de4b3c1":[0,3,0,6,3],
+"group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479ae8ca52f9ed225767ad2d62b195aeddf6":[0,3,0,6,4],
+"group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479aeed4e66ae7a3d132f97ea0c3620cc215":[0,3,0,6,11],
+"group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479aef54c664a83ff2d101d4036b420dd7f5":[0,3,0,6,7],
+"group___g___u_c_s___a_m_s_ga1305a1c706ece4772010c17734ab2f66.html#ga1305a1c706ece4772010c17734ab2f66":[0,3,3],
+"group___g___u_c_s___a_m_s_ga6486fc060d0aa8b1bb34851d2e63b755.html#ga6486fc060d0aa8b1bb34851d2e63b755":[0,3,13],
+"group___g___u_c_s___a_m_s_ga6f571e2e15fac1e4be068cdf0ccac44d.html#ga6f571e2e15fac1e4be068cdf0ccac44d":[0,3,10],
+"group___g___u_c_s___a_m_s_ga79608ce8c26f58a6875e72c30ac60bda.html#ga79608ce8c26f58a6875e72c30ac60bda":[0,3,7],
+"group___g___u_c_s___a_m_s_ga80fa395bc924dca9ae92c185656db089.html#ga80fa395bc924dca9ae92c185656db089":[0,3,6],
+"group___g___u_c_s___a_m_s_ga9e03946330dcc4ed4111b1d43714308d.html#ga9e03946330dcc4ed4111b1d43714308d":[0,3,12],
+"group___g___u_c_s___a_m_s_ga9fe2ca761b3856b5e7c3446cc49e90ad.html#ga9fe2ca761b3856b5e7c3446cc49e90ad":[0,3,8],
+"group___g___u_c_s___a_m_s_gab096e481474195cc57d4d801f1d295f2.html#gab096e481474195cc57d4d801f1d295f2":[0,3,9],
+"group___g___u_c_s___a_m_s_gade9da5d6f847265fc4a8613d5ba6da60.html#gade9da5d6f847265fc4a8613d5ba6da60":[0,3,4],
+"group___g___u_c_s___a_m_s_gae2eb8a7435144add2627537c6372ce69.html#gae2eb8a7435144add2627537c6372ce69":[0,3,2],
+"group___g___u_c_s___a_m_s_gae813e5093ce0bd11dd5ba9bd4fe77b77.html#gae813e5093ce0bd11dd5ba9bd4fe77b77":[0,3,5],
+"group___g___u_c_s___a_m_s_gafbcfeaaa6ff3d255609e404b16dbdf0f.html#gafbcfeaaa6ff3d255609e404b16dbdf0f":[0,3,11],
+"group___g___u_c_s___b_c___d_i_a_g.html":[0,8],
+"group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s.html":[0,8,0],
+"group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#ga08b88fcd49483ac8d0ce004c104a4c12":[0,8,0,1],
+"group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#gga08b88fcd49483ac8d0ce004c104a4c12a135f26c3f41683d98230208b952f238f":[0,8,0,1,2],
+"group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#gga08b88fcd49483ac8d0ce004c104a4c12a249b89261ce8db86eca6d76f43b84e1b":[0,8,0,1,3],
+"group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#gga08b88fcd49483ac8d0ce004c104a4c12a3a7748f1c2bab68f1c7969cfec95dabf":[0,8,0,1,5],
+"group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#gga08b88fcd49483ac8d0ce004c104a4c12a5782a90257b123278c8ebb4a17b2f264":[0,8,0,1,4],
+"group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#gga08b88fcd49483ac8d0ce004c104a4c12a9cde6e2034d4ab681bc6978edb671b1e":[0,8,0,1,6],
+"group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#gga08b88fcd49483ac8d0ce004c104a4c12a9efd7ed8009ce371525bd17ba8cd33bb":[0,8,0,1,0],
+"group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#gga08b88fcd49483ac8d0ce004c104a4c12aa33f4df6db0d7b979097f3ea10b680af":[0,8,0,1,1],
+"group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga8ea444dafcef542cfafee9ee0e74a104.html#ga8ea444dafcef542cfafee9ee0e74a104":[0,8,0,0],
+"group___g___u_c_s___b_c___d_i_a_g_ga9dcf9bd698b30335336ff78524866794.html#ga9dcf9bd698b30335336ff78524866794":[0,8,1],
+"group___g___u_c_s___b_c___d_i_a_g_gaaefed31b3c57ef52a29237c3f84fb566.html#gaaefed31b3c57ef52a29237c3f84fb566":[0,8,2],
+"group___g___u_c_s___c_m_d.html":[0,4],
+"group___g___u_c_s___c_m_d___t_y_p_e_s.html":[0,4,0],
+"group___g___u_c_s___c_m_d___t_y_p_e_s_ga5a43bcb8d64270611848455343857bc8.html#ga5a43bcb8d64270611848455343857bc8":[0,4,0,1],
+"group___g___u_c_s___c_m_d___t_y_p_e_s_ga88dfb52f565e25938a8162e67aecd580.html#ga88dfb52f565e25938a8162e67aecd580":[0,4,0,2],
+"group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#ga91f6db002b6fe98cdeb2969b19131cbb":[0,4,0,3],
+"group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#gga91f6db002b6fe98cdeb2969b19131cbba20d632ad52c0b2e0458849604f422dba":[0,4,0,3,2],
+"group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#gga91f6db002b6fe98cdeb2969b19131cbba30cf8ec25015b74f098bb0e1e501d7c6":[0,4,0,3,0],
+"group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#gga91f6db002b6fe98cdeb2969b19131cbba5e844ee693f7195bf00120c79e8235c5":[0,4,0,3,5],
+"group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#gga91f6db002b6fe98cdeb2969b19131cbba676c8302cdc00e5190d763b09dbe2e2f":[0,4,0,3,3],
+"group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#gga91f6db002b6fe98cdeb2969b19131cbbaa33605aae463493dea404f2d7390ec15":[0,4,0,3,1],
+"group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#gga91f6db002b6fe98cdeb2969b19131cbbab4d57d230971b9f73d85ddd19f3f06ee":[0,4,0,3,4],
+"group___g___u_c_s___c_m_d_ga70c8351102177badff83fe412c4962b7.html#ga70c8351102177badff83fe412c4962b7":[0,4,1],
+"group___g___u_c_s___c_m_d_gaaad9e557acfca6cc8c125c7b191515f1.html#gaaad9e557acfca6cc8c125c7b191515f1":[0,4,2],
+"group___g___u_c_s___c_m_d_gafe38ecf4cd5bc81074af03affa2374a4.html#gafe38ecf4cd5bc81074af03affa2374a4":[0,4,3],
+"group___g___u_c_s___g_p_i_o.html":[0,11,0],
+"group___g___u_c_s___g_p_i_o___t_y_p_e_s.html":[0,11,0,0],
+"group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga106c6afdd6f996c8bc5d632f08236912.html#ga106c6afdd6f996c8bc5d632f08236912":[0,11,0,0,4],
+"group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga14238b74c9e86db4e775461f2cf9b1cb.html#ga14238b74c9e86db4e775461f2cf9b1cb":[0,11,0,0,3],
+"group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga292134dc6bc30b6b4f0e3e8882c2e772.html#ga292134dc6bc30b6b4f0e3e8882c2e772":[0,11,0,0,8],
+"group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga292134dc6bc30b6b4f0e3e8882c2e772.html#gga292134dc6bc30b6b4f0e3e8882c2e772aa402809c65ce64324a827eb0ab4475b1":[0,11,0,0,8,1],
+"group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga292134dc6bc30b6b4f0e3e8882c2e772.html#gga292134dc6bc30b6b4f0e3e8882c2e772abd0caef5b4b9f4f2b75f65c7f67f65bc":[0,11,0,0,8,0],
+"group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga69f4d52dfc38232662abd4568e18e3c2.html#ga69f4d52dfc38232662abd4568e18e3c2":[0,11,0,0,2],
+"group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga7432b6d95eb2af7bce5fe5809b08d88b.html#ga7432b6d95eb2af7bce5fe5809b08d88b":[0,11,0,0,7],
+"group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga7432b6d95eb2af7bce5fe5809b08d88b.html#gga7432b6d95eb2af7bce5fe5809b08d88ba00b6d2bbc409c15ce1f4bbdd53dab993":[0,11,0,0,7,0],
+"group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga7432b6d95eb2af7bce5fe5809b08d88b.html#gga7432b6d95eb2af7bce5fe5809b08d88ba204d1c257b844f4ed9d31f2a614f7f24":[0,11,0,0,7,1],
+"group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga7432b6d95eb2af7bce5fe5809b08d88b.html#gga7432b6d95eb2af7bce5fe5809b08d88ba7a5b3cf49d177ac97cfbb4a2e7796d68":[0,11,0,0,7,2],
+"group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga99bb3bcb2b588bc66d41f3e03d478020.html#ga99bb3bcb2b588bc66d41f3e03d478020":[0,11,0,0,5],
+"group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#gacfcf034325bd7eff2f6fc78e8696ed49":[0,11,0,0,6],
+"group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a0097aaff89dc2390f8cb2538759e7dd1":[0,11,0,0,6,12],
+"group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a1879711b642763de0a241c05ef37a8d1":[0,11,0,0,6,3],
+"group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a2b1bbeedf9af00d3ca2ae66cb1c5e24e":[0,11,0,0,6,10],
+"group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a35d170a50162566d22e7060f332e1853":[0,11,0,0,6,19],
+"group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a3afeffaf0739a0c83b4a4f5c8b2819a9":[0,11,0,0,6,8],
+"group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a3b1cbb2c0c6d6b0cc2ffab0fca8c0db6":[0,11,0,0,6,0],
+"group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a40f39256ead895d688c6b4453dcc50fd":[0,11,0,0,6,4],
+"group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a58dd9cd05f9b030ea62b58a0a1d0466e":[0,11,0,0,6,9],
+"group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a6b3ef7f6a36417340134f8515ca3cacc":[0,11,0,0,6,11],
+"group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a70501fdc88378cf07868868fb90557fd":[0,11,0,0,6,17],
+"group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a7e3847141ff0ee6fd999d9fc1d87fbae":[0,11,0,0,6,13],
+"group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a8f4405ba3c6e04e5b753e716f923ebd2":[0,11,0,0,6,20],
+"group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a97eb6c69f81b2438926688ef447bf7ee":[0,11,0,0,6,14],
+"group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49aa2c5f837c034c9ac5fb048a7e9047d2f":[0,11,0,0,6,16],
+"group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49aa45d36ca2a1e7cf7784cf1a1c584f211":[0,11,0,0,6,5],
+"group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49abc808199f07f8d370cedf914243dc6a8":[0,11,0,0,6,18],
+"group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49ad873d79be503a0c950b11f9c2bb78005":[0,11,0,0,6,1],
+"group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49ad93bd4a0972f3b9d219d5ee944191adc":[0,11,0,0,6,7],
+"group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49ae2e19388cad9b8b469f01fcf28386282":[0,11,0,0,6,6],
+"group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49ae5cfa651166ae5731b1d2677ab20c32c":[0,11,0,0,6,15],
+"group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49ae900752d71b764e1d516d7f4851a5ad5":[0,11,0,0,6,2],
+"group___g___u_c_s___g_p_i_o_ga10b73bad28ba7e0f24d3676f082a11a1.html#ga10b73bad28ba7e0f24d3676f082a11a1":[0,11,0,3],
+"group___g___u_c_s___g_p_i_o_ga76f4de37c98b0cdd7cc25a22a9dac8a9.html#ga76f4de37c98b0cdd7cc25a22a9dac8a9":[0,11,0,2],
+"group___g___u_c_s___g_p_i_o_gaa2dc67622555e9e64e4bb524a8e18642.html#gaa2dc67622555e9e64e4bb524a8e18642":[0,11,0,4],
+"group___g___u_c_s___g_p_i_o_gaf9ecc1f20870bf49d40521db09854a68.html#gaf9ecc1f20870bf49d40521db09854a68":[0,11,0,5],
+"group___g___u_c_s___g_p_i_o_gaff68acc9fb26096cae9374694b43ae92.html#gaff68acc9fb26096cae9374694b43ae92":[0,11,0,6],
+"group___g___u_c_s___i2_c.html":[0,11,1],
+"group___g___u_c_s___i2_c___t_y_p_e_s.html":[0,11,1,0],
+"group___g___u_c_s___i2_c___t_y_p_e_s_ga3bdd3013545f8249a73c73e0d28713f7.html#ga3bdd3013545f8249a73c73e0d28713f7":[0,11,1,0,3],
+"group___g___u_c_s___i2_c___t_y_p_e_s_ga50029da1794f34d3ddac9df8d537c234.html#ga50029da1794f34d3ddac9df8d537c234":[0,11,1,0,5],
+"group___g___u_c_s___i2_c___t_y_p_e_s_ga631c2b70299a4c07ac77b6741b5b5e44.html#ga631c2b70299a4c07ac77b6741b5b5e44":[0,11,1,0,9],
+"group___g___u_c_s___i2_c___t_y_p_e_s_ga631c2b70299a4c07ac77b6741b5b5e44.html#gga631c2b70299a4c07ac77b6741b5b5e44a3380b0b2a253a389aec424ef348a34b7":[0,11,1,0,9,2],
+"group___g___u_c_s___i2_c___t_y_p_e_s_ga631c2b70299a4c07ac77b6741b5b5e44.html#gga631c2b70299a4c07ac77b6741b5b5e44ad5c54c3051eef15fbb36f003dc1633d4":[0,11,1,0,9,1],
+"group___g___u_c_s___i2_c___t_y_p_e_s_ga631c2b70299a4c07ac77b6741b5b5e44.html#gga631c2b70299a4c07ac77b6741b5b5e44ad6f21f4e04e8f755a59c8e7cef9cb7ad":[0,11,1,0,9,0],
+"group___g___u_c_s___i2_c___t_y_p_e_s_ga7c7b4521cb5391bd20c02104876a811d.html#ga7c7b4521cb5391bd20c02104876a811d":[0,11,1,0,7],
+"group___g___u_c_s___i2_c___t_y_p_e_s_ga7c7b4521cb5391bd20c02104876a811d.html#gga7c7b4521cb5391bd20c02104876a811da1e9f8a38a7bf67986bb52aae45326f0e":[0,11,1,0,7,1],
+"group___g___u_c_s___i2_c___t_y_p_e_s_ga7c7b4521cb5391bd20c02104876a811d.html#gga7c7b4521cb5391bd20c02104876a811da5f9dc425604e39a96af53cc4fb940cd6":[0,11,1,0,7,0],
+"group___g___u_c_s___i2_c___t_y_p_e_s_ga8492cc027b5b9e2f436a172e526e1d5e.html#ga8492cc027b5b9e2f436a172e526e1d5e":[0,11,1,0,8],
+"group___g___u_c_s___i2_c___t_y_p_e_s_ga8492cc027b5b9e2f436a172e526e1d5e.html#gga8492cc027b5b9e2f436a172e526e1d5ea577d5efdff88c202f2e2f43aed2b0391":[0,11,1,0,8,1],
+"group___g___u_c_s___i2_c___t_y_p_e_s_ga8492cc027b5b9e2f436a172e526e1d5e.html#gga8492cc027b5b9e2f436a172e526e1d5ea91d8d37db8f69a15ca3d6d19b3f5d981":[0,11,1,0,8,0],
+"group___g___u_c_s___i2_c___t_y_p_e_s_ga8dd5d3515acabc6a95e9bf32629eb644.html#ga8dd5d3515acabc6a95e9bf32629eb644":[0,11,1,0,4],
+"group___g___u_c_s___i2_c___t_y_p_e_s_ga930e829c3c689b8ead8f9fbf7f2ca237.html#ga930e829c3c689b8ead8f9fbf7f2ca237":[0,11,1,0,6],
+"group___g___u_c_s___i2_c___t_y_p_e_s_ga930e829c3c689b8ead8f9fbf7f2ca237.html#gga930e829c3c689b8ead8f9fbf7f2ca237a1f0bb0636d1fbe3a3c94541d3725b864":[0,11,1,0,6,0],
+"group___g___u_c_s___i2_c___t_y_p_e_s_ga930e829c3c689b8ead8f9fbf7f2ca237.html#gga930e829c3c689b8ead8f9fbf7f2ca237a3f4942e0d97505a6f343621b6a5d03a8":[0,11,1,0,6,2],
+"group___g___u_c_s___i2_c___t_y_p_e_s_ga930e829c3c689b8ead8f9fbf7f2ca237.html#gga930e829c3c689b8ead8f9fbf7f2ca237a7f9bec3206cf8dea98f72710bd6219e8":[0,11,1,0,6,1],
+"group___g___u_c_s___i2_c___t_y_p_e_s_gae1f1b25aca1c240022464571187ea98f.html#gae1f1b25aca1c240022464571187ea98f":[0,11,1,0,2],
+"group___g___u_c_s___i2_c_ga153f7ce3ea500b2f39544e0ccfc86503.html#ga153f7ce3ea500b2f39544e0ccfc86503":[0,11,1,3],
+"group___g___u_c_s___i2_c_gac06f58d8a7775703373f12c3c677d687.html#gac06f58d8a7775703373f12c3c677d687":[0,11,1,2],
+"group___g___u_c_s___i2_c_gade4a94669fe4f29f18fe5bfd4e102474.html#gade4a94669fe4f29f18fe5bfd4e102474":[0,11,1,4],
+"group___g___u_c_s___i_n_i_c.html":[0,1],
+"group___g___u_c_s___i_n_i_c___t_y_p_e_s.html":[0,1,0],
+"group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga132c4c68227062e63ffb99b321b9a677.html#ga132c4c68227062e63ffb99b321b9a677":[0,1,0,4],
+"group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga132c4c68227062e63ffb99b321b9a677.html#gga132c4c68227062e63ffb99b321b9a677a11e4fbe29a4fdb2c2e0afeb25e09965a":[0,1,0,4,1],
+"group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga132c4c68227062e63ffb99b321b9a677.html#gga132c4c68227062e63ffb99b321b9a677a64b91caa822c22017b4aca60d38c78c8":[0,1,0,4,3],
+"group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga132c4c68227062e63ffb99b321b9a677.html#gga132c4c68227062e63ffb99b321b9a677aa33c9585db02ba2136a5214e9a0fc72e":[0,1,0,4,4],
+"group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga132c4c68227062e63ffb99b321b9a677.html#gga132c4c68227062e63ffb99b321b9a677abca288e1dc24d1dae285b7be73abe1d2":[0,1,0,4,2],
+"group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga132c4c68227062e63ffb99b321b9a677.html#gga132c4c68227062e63ffb99b321b9a677ad9a4e228862a8bb126d2e508d85a0389":[0,1,0,4,0],
+"group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga17139fe9e7d72bdb5a09d5a1ab39de4e.html#ga17139fe9e7d72bdb5a09d5a1ab39de4e":[0,1,0,3],
+"group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga17139fe9e7d72bdb5a09d5a1ab39de4e.html#gga17139fe9e7d72bdb5a09d5a1ab39de4ea1d4d0eca4c7fe754ecdfa67ecafcdb66":[0,1,0,3,2],
+"group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga17139fe9e7d72bdb5a09d5a1ab39de4e.html#gga17139fe9e7d72bdb5a09d5a1ab39de4ea300964cfd947816911fc84b377645b66":[0,1,0,3,1],
+"group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga17139fe9e7d72bdb5a09d5a1ab39de4e.html#gga17139fe9e7d72bdb5a09d5a1ab39de4ea68f49058a3c2aa114b5648ebd5913127":[0,1,0,3,0],
+"group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga4d4ad405b114eba3e3a2e5581a0b5d9c.html#ga4d4ad405b114eba3e3a2e5581a0b5d9c":[0,1,0,6],
+"group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga4d4ad405b114eba3e3a2e5581a0b5d9c.html#gga4d4ad405b114eba3e3a2e5581a0b5d9ca24eb65098a000880b49bdec23df59875":[0,1,0,6,3],
+"group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga4d4ad405b114eba3e3a2e5581a0b5d9c.html#gga4d4ad405b114eba3e3a2e5581a0b5d9ca4bb8732a74d1e48108c59ee15b99f2dc":[0,1,0,6,1],
+"group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga4d4ad405b114eba3e3a2e5581a0b5d9c.html#gga4d4ad405b114eba3e3a2e5581a0b5d9ca6905a0a0e360528a3a8bc2a019b83f5e":[0,1,0,6,2],
+"group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga4d4ad405b114eba3e3a2e5581a0b5d9c.html#gga4d4ad405b114eba3e3a2e5581a0b5d9ca863e9f716a0aaaa31a88e2362e0b20c9":[0,1,0,6,0],
+"group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga4d4ad405b114eba3e3a2e5581a0b5d9c.html#gga4d4ad405b114eba3e3a2e5581a0b5d9caf1cfc47eb0bb457e7627178aa04ec292":[0,1,0,6,4],
+"group___g___u_c_s___i_n_i_c___t_y_p_e_s_gaca78cd7da871ae21b1d546c31e604772.html#gaca78cd7da871ae21b1d546c31e604772":[0,1,0,2],
+"group___g___u_c_s___i_n_i_c___t_y_p_e_s_gad0e1473ecd96b8d94131cb5d81295fc3.html#gad0e1473ecd96b8d94131cb5d81295fc3":[0,1,0,5],
+"group___g___u_c_s___i_n_i_c___t_y_p_e_s_gad0e1473ecd96b8d94131cb5d81295fc3.html#ggad0e1473ecd96b8d94131cb5d81295fc3a2e4d4e1fe5f54e2f5855e26483670aea":[0,1,0,5,2],
+"group___g___u_c_s___i_n_i_c___t_y_p_e_s_gad0e1473ecd96b8d94131cb5d81295fc3.html#ggad0e1473ecd96b8d94131cb5d81295fc3a6702bd287f88f76e4d13ac87f8b3c721":[0,1,0,5,1],
+"group___g___u_c_s___i_n_i_c___t_y_p_e_s_gad0e1473ecd96b8d94131cb5d81295fc3.html#ggad0e1473ecd96b8d94131cb5d81295fc3a93dead118b00c19d7d17401be8ce72cd":[0,1,0,5,0],
+"group___g___u_c_s___i_n_i_c___t_y_p_e_s_gad0e1473ecd96b8d94131cb5d81295fc3.html#ggad0e1473ecd96b8d94131cb5d81295fc3aa90c57ed3372954deabffda0100a2da3":[0,1,0,5,3],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v.html":[0,0],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s.html":[0,0,0],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda":[0,0,0,4],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#ga0a933f34b9acbf21dc68f426c324e78c":[0,0,0,7],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78ca5e10b22e7790c92189a9919144403a62":[0,0,0,7,1],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78ca64e1be1198542a86cdc7082a3ee4fc13":[0,0,0,7,9],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78ca6e5f7ef8de83f043b212140987ed8d17":[0,0,0,7,7],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78ca735eb5f7e05170ce9795455a2edc8ff8":[0,0,0,7,3],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78ca7396a1d49772aea15554fa43a0f70aa1":[0,0,0,7,6],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78ca8191a6141de6a807faf20d10f891ae1b":[0,0,0,7,2],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78ca994453c34eb59dd6c4aff21c7cec7346":[0,0,0,7,8],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78cabf7bd2e232e7c79cc52158c39f33cfce":[0,0,0,7,5],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78cac4d2785b5c79a9b38389e08d30494714":[0,0,0,7,0],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78cade535af6ab10db100b979034ab8d0b42":[0,0,0,7,4],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd":[0,0,0,9],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda3fb51656e17ee4802f23706f35e349bc":[0,0,0,9,0],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda6384d8a38b3298f50efd7bd42a60a2ec":[0,0,0,9,5],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda6e3654d081184da037670c8af1950ea7":[0,0,0,9,6],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda7e6114552879861375322bf68dafe3a3":[0,0,0,9,3],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda8820168a0730173889011958189733e2":[0,0,0,9,4],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda9e2acee4f83d89585e959b143b7aafb8":[0,0,0,9,8],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cdab98b74c51324859f3138fed96afd1573":[0,0,0,9,1],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cdabb64ac46e62c58382dc65f3fd7bf12d2":[0,0,0,9,2],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cdad4a30091202638c890abbdb682ca4fe5":[0,0,0,9,7],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga9551cd80ce8a13fa6cce717cbc13e499.html#ga9551cd80ce8a13fa6cce717cbc13e499":[0,0,0,6],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga9551cd80ce8a13fa6cce717cbc13e499.html#gga9551cd80ce8a13fa6cce717cbc13e499a6c90c86ae1e93413b08142ea356336a4":[0,0,0,6,1],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga9551cd80ce8a13fa6cce717cbc13e499.html#gga9551cd80ce8a13fa6cce717cbc13e499ad407f31040ff1757ca3a3b98643e406d":[0,0,0,6,0],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gaa573fbe79f76f263a17e51d6de99036d.html#gaa573fbe79f76f263a17e51d6de99036d":[0,0,0,5],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gaba3a47e6c1d360c77e560cefe8c541e3.html#gaba3a47e6c1d360c77e560cefe8c541e3":[0,0,0,3],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#gac844b77cf41aef663782bc0b43d3540c":[0,0,0,8],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540ca3099d31f6d533972cf96c86dca0b0cc7":[0,0,0,8,6],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540ca4e2229e49fe1197dd9df919719fcd38a":[0,0,0,8,7],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540ca4f4226f6e507caf5a9e044759c6409cf":[0,0,0,8,1],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540ca8ff50e770356e4fca8d36a308e323d83":[0,0,0,8,2],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540caa142d5f1f196cbf759f2cbd6d8a7468a":[0,0,0,8,4],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540caa7f09aea37cedd8dfbe3665781aae6aa":[0,0,0,8,3],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540cae19d5a51de78bbf903a108a4e36a0fdf":[0,0,0,8,0],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540cae64970c5c3ad3d0dc6996b77cd528dbb":[0,0,0,8,5],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga0238420959cc58ee52c0b385741fccc9.html#ga0238420959cc58ee52c0b385741fccc9":[0,0,8],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga369c86a27ffee30a3af3423f6b3f3e59.html#ga369c86a27ffee30a3af3423f6b3f3e59":[0,0,11],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga61381bd30fb6630b6c5d6ecc8968e983.html#ga61381bd30fb6630b6c5d6ecc8968e983":[0,0,14],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga61a038694eeb972f6d298478f16a2de2.html#ga61a038694eeb972f6d298478f16a2de2":[0,0,7],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga64926a6a194cfb06703835e3d06475c6.html#ga64926a6a194cfb06703835e3d06475c6":[0,0,5],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga649fb9128df6f634fc86aa03b374d822.html#ga649fb9128df6f634fc86aa03b374d822":[0,0,12],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga64b50780725a0dc8693b5b73f8345ad6.html#ga64b50780725a0dc8693b5b73f8345ad6":[0,0,13],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga750688e4ce10e995d802e288540d19c4.html#ga750688e4ce10e995d802e288540d19c4":[0,0,4],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga85a99b5d236b29e2d598bef51edad638.html#ga85a99b5d236b29e2d598bef51edad638":[0,0,9],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga981854177aa9ebd554ab522199193bd3.html#ga981854177aa9ebd554ab522199193bd3":[0,0,6]
+};
diff --git a/ucs2-lib/doc/html/navtreeindex1.js b/ucs2-lib/doc/html/navtreeindex1.js
new file mode 100644
index 0000000..7835753
--- /dev/null
+++ b/ucs2-lib/doc/html/navtreeindex1.js
@@ -0,0 +1,253 @@
+var NAVTREEINDEX1 =
+{
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_gaea8d7735d41853167a2befdc06febe43.html#gaea8d7735d41853167a2befdc06febe43":[0,0,10],
+"group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_gaff7821fdddebc32a8a3f61a5eebc405a.html#gaff7821fdddebc32a8a3f61a5eebc405a":[0,0,3],
+"group___g___u_c_s___i_r_m.html":[0,9,0],
+"group___g___u_c_s___i_r_m_ga17bc521c78b99dc17f16161199cd4c1a.html#ga17bc521c78b99dc17f16161199cd4c1a":[0,9,0,3],
+"group___g___u_c_s___i_r_m_ga8d92898b48eeef24ac44a6e3ebdff460.html#ga8d92898b48eeef24ac44a6e3ebdff460":[0,9,0,4],
+"group___g___u_c_s___i_r_m_gae689267958c19afd9f9a097c36d017d3.html#gae689267958c19afd9f9a097c36d017d3":[0,9,0,5],
+"group___g___u_c_s___l_l_d.html":[0,13],
+"group___g___u_c_s___l_l_d___a_p_i.html":[0,13,0],
+"group___g___u_c_s___l_l_d___a_p_i_ga03c6fb96255dffab2fd1ca1a70204ad9.html#ga03c6fb96255dffab2fd1ca1a70204ad9":[0,13,0,3],
+"group___g___u_c_s___l_l_d___a_p_i_ga59b99932c0fd7cd21f1c9788d60f1d4e.html#ga59b99932c0fd7cd21f1c9788d60f1d4e":[0,13,0,4],
+"group___g___u_c_s___l_l_d___a_p_i_ga5bfaf97236d417072fe606f24bb3c8ad.html#ga5bfaf97236d417072fe606f24bb3c8ad":[0,13,0,1],
+"group___g___u_c_s___l_l_d___a_p_i_gadc535a5be0f7bf336dc66cecfff8067d.html#gadc535a5be0f7bf336dc66cecfff8067d":[0,13,0,2],
+"group___g___u_c_s___l_l_d___t_y_p_e_s.html":[0,13,1],
+"group___g___u_c_s___l_l_d_ga73f07fb097d3c1bb6c5bf048f088166e.html#ga73f07fb097d3c1bb6c5bf048f088166e":[0,13,4],
+"group___g___u_c_s___l_l_d_ga917011a0aed9ca6d0aaf2201dc8c0e9f.html#ga917011a0aed9ca6d0aaf2201dc8c0e9f":[0,13,5],
+"group___g___u_c_s___l_l_d_gaa618347d194113c34f5b21d3c36ba7b6.html#gaa618347d194113c34f5b21d3c36ba7b6":[0,13,6],
+"group___g___u_c_s___l_l_d_gabb4b73751b87fe9a63b3d15403a81965.html#gabb4b73751b87fe9a63b3d15403a81965":[0,13,2],
+"group___g___u_c_s___l_l_d_gae49a0953d88e8fbd4ebf2ce9c5f7b7f1.html#gae49a0953d88e8fbd4ebf2ce9c5f7b7f1":[0,13,3],
+"group___g___u_c_s___m_g_r.html":[0,5],
+"group___g___u_c_s___m_g_r_gab85aa9ce377050505124af5e9549e445.html#gab85aa9ce377050505124af5e9549e445":[0,5,2],
+"group___g___u_c_s___m_g_r_gab85aa9ce377050505124af5e9549e445.html#ggab85aa9ce377050505124af5e9549e445a6fcfe54d64bd8cf6b24361bf326f6c49":[0,5,2,0],
+"group___g___u_c_s___m_g_r_gab85aa9ce377050505124af5e9549e445.html#ggab85aa9ce377050505124af5e9549e445a8c94fd8dfa39ea4a65b30a9ebfb5a38b":[0,5,2,3],
+"group___g___u_c_s___m_g_r_gab85aa9ce377050505124af5e9549e445.html#ggab85aa9ce377050505124af5e9549e445ac7d7f8d978224660f4c6b94f2651d19e":[0,5,2,2],
+"group___g___u_c_s___m_g_r_gab85aa9ce377050505124af5e9549e445.html#ggab85aa9ce377050505124af5e9549e445afe4f1822be465b7a8891dccf0af36945":[0,5,2,1],
+"group___g___u_c_s___m_g_r_gad54678ad2a4671ec224422a8647b20f6.html#gad54678ad2a4671ec224422a8647b20f6":[0,5,1],
+"group___g___u_c_s___m_i_s_c.html":[0,12],
+"group___g___u_c_s___m_i_s_c_ga74b0d1a6c74c93a79fc2751554806796.html#ga74b0d1a6c74c93a79fc2751554806796":[0,12,1],
+"group___g___u_c_s___m_i_s_c_gaadb74b48c69d7b6fc0a94eeb666e8183.html#gaadb74b48c69d7b6fc0a94eeb666e8183":[0,12,0],
+"group___g___u_c_s___m_i_s_c_gaae920665e0a0d0c4213b8e037f6ce869.html#gaae920665e0a0d0c4213b8e037f6ce869":[0,12,2],
+"group___g___u_c_s___m_i_s_c_gad0b327b6924e088113371b79e161cafe.html#gad0b327b6924e088113371b79e161cafe":[0,12,3],
+"group___g___u_c_s___n_e_t.html":[0,2],
+"group___g___u_c_s___n_e_t___t_y_p_e_s.html":[0,2,0],
+"group___g___u_c_s___n_e_t___t_y_p_e_s_ga5f170c3358fc47999f969ee868d113ef.html#ga5f170c3358fc47999f969ee868d113ef":[0,2,0,2],
+"group___g___u_c_s___n_e_t___t_y_p_e_s_ga6b0bec2ae9e4d0fb93eefd65752f0c74.html#ga6b0bec2ae9e4d0fb93eefd65752f0c74":[0,2,0,3],
+"group___g___u_c_s___n_e_t___t_y_p_e_s_ga6b0bec2ae9e4d0fb93eefd65752f0c74.html#gga6b0bec2ae9e4d0fb93eefd65752f0c74a37fb322b410de335478f6bed31cd33f1":[0,2,0,3,1],
+"group___g___u_c_s___n_e_t___t_y_p_e_s_ga6b0bec2ae9e4d0fb93eefd65752f0c74.html#gga6b0bec2ae9e4d0fb93eefd65752f0c74afb1201dc3a998b9d4f9c48d5978d9ffc":[0,2,0,3,0],
+"group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#ga779e730fce488874146678e0971f52a8":[0,2,0,6],
+"group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8a043ec67877e6a38b5a13fb544681b767":[0,2,0,6,6],
+"group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8a707f78e3b7a58f4ce21f31da38e00573":[0,2,0,6,1],
+"group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8a89bb7ec3c55087159a8a19b5e9cc7fa0":[0,2,0,6,5],
+"group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8a8ad2af6dd9a9c5358a8b743c1ada77cd":[0,2,0,6,0],
+"group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8a9c2971b3e618e402a6d5452dc1c30738":[0,2,0,6,2],
+"group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8aa545cf71946b90b29bcf58581e8b1e2a":[0,2,0,6,7],
+"group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8ab698174c497186f8e738111f6d0a7036":[0,2,0,6,4],
+"group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8af36c80b9128eb740ebfca15dd7c7c6be":[0,2,0,6,3],
+"group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#gab4ec40bf01de998abc4f2ae34c26ac46":[0,2,0,5],
+"group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#ggab4ec40bf01de998abc4f2ae34c26ac46a163cc94df0ecbc01a5a0ad28ff0d2275":[0,2,0,5,5],
+"group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#ggab4ec40bf01de998abc4f2ae34c26ac46a26a6a280eb53c98f5bb0cc7f753608c0":[0,2,0,5,4],
+"group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#ggab4ec40bf01de998abc4f2ae34c26ac46a35193eafdb2690c7f1750e7e086528a0":[0,2,0,5,2],
+"group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#ggab4ec40bf01de998abc4f2ae34c26ac46a5f2f79813d9cdc51a9b01baedcd115c7":[0,2,0,5,3],
+"group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#ggab4ec40bf01de998abc4f2ae34c26ac46a69da70cbc0d72fa912330df7d6f95805":[0,2,0,5,0],
+"group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#ggab4ec40bf01de998abc4f2ae34c26ac46a6ac2248030e3550a61f1e296a2e5d735":[0,2,0,5,1],
+"group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#ggab4ec40bf01de998abc4f2ae34c26ac46a6b7b5cef497a453a98714f09d4b037be":[0,2,0,5,6],
+"group___g___u_c_s___n_e_t___t_y_p_e_s_gab6ef28648a40efb679babf0a7a5173e6.html#gab6ef28648a40efb679babf0a7a5173e6":[0,2,0,1],
+"group___g___u_c_s___n_e_t___t_y_p_e_s_gad5ed0387c3c156602826d50ce94c9df7.html#gad5ed0387c3c156602826d50ce94c9df7":[0,2,0,4],
+"group___g___u_c_s___n_e_t___t_y_p_e_s_gad5ed0387c3c156602826d50ce94c9df7.html#ggad5ed0387c3c156602826d50ce94c9df7a1e35e06faaf9537517a3b77c172c9e6a":[0,2,0,4,3],
+"group___g___u_c_s___n_e_t___t_y_p_e_s_gad5ed0387c3c156602826d50ce94c9df7.html#ggad5ed0387c3c156602826d50ce94c9df7a754bb411728af7ee41315b2257c9f409":[0,2,0,4,1],
+"group___g___u_c_s___n_e_t___t_y_p_e_s_gad5ed0387c3c156602826d50ce94c9df7.html#ggad5ed0387c3c156602826d50ce94c9df7a95e0a195f246b6c474781b42fda0e1cb":[0,2,0,4,2],
+"group___g___u_c_s___n_e_t___t_y_p_e_s_gad5ed0387c3c156602826d50ce94c9df7.html#ggad5ed0387c3c156602826d50ce94c9df7aac87fccc7041c51b30c04dbd42c963ba":[0,2,0,4,4],
+"group___g___u_c_s___n_e_t___t_y_p_e_s_gad5ed0387c3c156602826d50ce94c9df7.html#ggad5ed0387c3c156602826d50ce94c9df7ace556bfc10aa45dcd561a6c75680e99e":[0,2,0,4,0],
+"group___g___u_c_s___n_e_t_ga1e49ce81a42f09bcecc2202edc2b93fc.html#ga1e49ce81a42f09bcecc2202edc2b93fc":[0,2,7],
+"group___g___u_c_s___n_e_t_ga3360b1585b5a9b54d24a934c22a44281.html#ga3360b1585b5a9b54d24a934c22a44281":[0,2,5],
+"group___g___u_c_s___n_e_t_ga3a71b7772ce265a77eefa7ad069c4819.html#ga3a71b7772ce265a77eefa7ad069c4819":[0,2,4],
+"group___g___u_c_s___n_e_t_ga43fb9c04d5ad142f6abbf9566af82f8c.html#ga43fb9c04d5ad142f6abbf9566af82f8c":[0,2,2],
+"group___g___u_c_s___n_e_t_ga83c2e74a4cc216aa10d7c6a1a517d459.html#ga83c2e74a4cc216aa10d7c6a1a517d459":[0,2,8],
+"group___g___u_c_s___n_e_t_gaf08bc0be54565e30143166d675866f87.html#gaf08bc0be54565e30143166d675866f87":[0,2,6],
+"group___g___u_c_s___n_e_t_gaf195e8ae396bc1fc358666fe50bf3f51.html#gaf195e8ae396bc1fc358666fe50bf3f51":[0,2,3],
+"group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y.html":[0,6],
+"group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s.html":[0,6,0],
+"group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#ga6736f9abd905dafe99d1337ac672f94e":[0,6,0,1],
+"group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#gga6736f9abd905dafe99d1337ac672f94ea2cc431bce680f2c35dd55da8a7946a42":[0,6,0,1,2],
+"group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#gga6736f9abd905dafe99d1337ac672f94ea5bbe1036a7d23ba01e57c0a1f81875cf":[0,6,0,1,0],
+"group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#gga6736f9abd905dafe99d1337ac672f94ea6012ff8c839a76de8761723d08e7fe60":[0,6,0,1,5],
+"group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#gga6736f9abd905dafe99d1337ac672f94ea6a027a5f3ac858db61db8867da370bb1":[0,6,0,1,3],
+"group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#gga6736f9abd905dafe99d1337ac672f94ea9c00fd1653c0246f2a13a435186f13f2":[0,6,0,1,1],
+"group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#gga6736f9abd905dafe99d1337ac672f94ead82683dc383edac131c5d4edaa3743ee":[0,6,0,1,4],
+"group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_gae1f89dbd75e3d76917273450df37ff66.html#gae1f89dbd75e3d76917273450df37ff66":[0,6,0,0],
+"group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_gae1f89dbd75e3d76917273450df37ff66.html#ggae1f89dbd75e3d76917273450df37ff66a0c15fbb8aa9ee8dbf0362b9e9a8b6942":[0,6,0,0,0],
+"group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_gae1f89dbd75e3d76917273450df37ff66.html#ggae1f89dbd75e3d76917273450df37ff66a4ed7307250366668604925bf3650be4c":[0,6,0,0,2],
+"group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_gae1f89dbd75e3d76917273450df37ff66.html#ggae1f89dbd75e3d76917273450df37ff66acdbc82cdd701e67cdd7520172767ba75":[0,6,0,0,1],
+"group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_ga50a5b00d5bbd1ad324478509dc524eec.html#ga50a5b00d5bbd1ad324478509dc524eec":[0,6,4],
+"group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_ga61b182f93d2815857f62ea51782bb13d.html#ga61b182f93d2815857f62ea51782bb13d":[0,6,1],
+"group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_ga637e441520f7b203e551274f17febfb6.html#ga637e441520f7b203e551274f17febfb6":[0,6,5],
+"group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_gab3c981bc09b0e5033e5163b8e5aafca7.html#gab3c981bc09b0e5033e5163b8e5aafca7":[0,6,2],
+"group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_gabab6c431e235fe0211f5f1525f9cff2e.html#gabab6c431e235fe0211f5f1525f9cff2e":[0,6,3],
+"group___g___u_c_s___p_b_i.html":[0,11],
+"group___g___u_c_s___p_r_o_g___m_o_d_e.html":[0,7],
+"group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s.html":[0,7,0],
+"group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#ga25cd4c3a9113e0a25b65136fec561c83":[0,7,0,1],
+"group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#gga25cd4c3a9113e0a25b65136fec561c83a0071da47fdc967e0c6ce18cc464c3c1c":[0,7,0,1,5],
+"group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#gga25cd4c3a9113e0a25b65136fec561c83a062c6eb1a133b3b61dd24244121fda4b":[0,7,0,1,3],
+"group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#gga25cd4c3a9113e0a25b65136fec561c83a1cefbe47e784b8a872bec98922a7d1f6":[0,7,0,1,6],
+"group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#gga25cd4c3a9113e0a25b65136fec561c83a308862104fb675865f9ae6d9670ec40b":[0,7,0,1,2],
+"group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#gga25cd4c3a9113e0a25b65136fec561c83a359370a24ff37bdde070efc8c887599f":[0,7,0,1,4],
+"group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#gga25cd4c3a9113e0a25b65136fec561c83a571bfec1b0e2f178223e6ad468ecfb92":[0,7,0,1,0],
+"group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#gga25cd4c3a9113e0a25b65136fec561c83a6bc3776ea617b865cde396fac4df9a5a":[0,7,0,1,1],
+"group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html#gaa998005dc2e710169a39af0c3739ade2":[0,7,0,3],
+"group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html#ggaa998005dc2e710169a39af0c3739ade2a47fc805dfdab644983d36b195e6de5e9":[0,7,0,3,3],
+"group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html#ggaa998005dc2e710169a39af0c3739ade2a4895d31da9d98951666b8bebf31dd316":[0,7,0,3,1],
+"group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html#ggaa998005dc2e710169a39af0c3739ade2a960ff74b4fab89700a44087c8f51a546":[0,7,0,3,2],
+"group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html#ggaa998005dc2e710169a39af0c3739ade2a9fa199d254d8b56a36b83bdefc5e213e":[0,7,0,3,0],
+"group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html#ggaa998005dc2e710169a39af0c3739ade2ae99cf57eece62df6910adeafbb900a49":[0,7,0,3,4],
+"group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html#ggaa998005dc2e710169a39af0c3739ade2afd20cb6be3412f26421e5878d4123fc0":[0,7,0,3,5],
+"group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gab29d4eadce18cb68209671a44c1eaa3a.html#gab29d4eadce18cb68209671a44c1eaa3a":[0,7,0,4],
+"group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gab29d4eadce18cb68209671a44c1eaa3a.html#ggab29d4eadce18cb68209671a44c1eaa3aa1301855aa66797f8170b86d61a0240dd":[0,7,0,4,1],
+"group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gab29d4eadce18cb68209671a44c1eaa3a.html#ggab29d4eadce18cb68209671a44c1eaa3aa344e76565c336dc329af00a8757242db":[0,7,0,4,2],
+"group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gab29d4eadce18cb68209671a44c1eaa3a.html#ggab29d4eadce18cb68209671a44c1eaa3aa520aca46c3115f7cef0d37e084f68cd2":[0,7,0,4,3],
+"group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gab29d4eadce18cb68209671a44c1eaa3a.html#ggab29d4eadce18cb68209671a44c1eaa3aa755ae5dbb2894e672423f34fcf94d4fe":[0,7,0,4,0],
+"group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gab29d4eadce18cb68209671a44c1eaa3a.html#ggab29d4eadce18cb68209671a44c1eaa3aae957e9ff8674900c12d4ced7f317bf83":[0,7,0,4,4],
+"group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gae01f703f9ca91d9d1b9efdcfddfe8464.html#gae01f703f9ca91d9d1b9efdcfddfe8464":[0,7,0,2],
+"group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gae01f703f9ca91d9d1b9efdcfddfe8464.html#ggae01f703f9ca91d9d1b9efdcfddfe8464a6aebc0c00f88f30ddfcea30b9a1d79bd":[0,7,0,2,3],
+"group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gae01f703f9ca91d9d1b9efdcfddfe8464.html#ggae01f703f9ca91d9d1b9efdcfddfe8464a7aec4bc748bba83bc72b20589dbb8187":[0,7,0,2,1],
+"group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gae01f703f9ca91d9d1b9efdcfddfe8464.html#ggae01f703f9ca91d9d1b9efdcfddfe8464a7b9d362953b3eb6650b502e0a2de1d87":[0,7,0,2,0],
+"group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gae01f703f9ca91d9d1b9efdcfddfe8464.html#ggae01f703f9ca91d9d1b9efdcfddfe8464aee7f85fb6df6f70f6f09757f41a1ff3e":[0,7,0,2,2],
+"group___g___u_c_s___p_r_o_g___m_o_d_e_ga12071385b86ab6375472db80c00b80c7.html#ga12071385b86ab6375472db80c00b80c7":[0,7,2],
+"group___g___u_c_s___p_r_o_g___m_o_d_e_ga15045bde4d6a35f1b1e20eb6e3c688ab.html#ga15045bde4d6a35f1b1e20eb6e3c688ab":[0,7,1],
+"group___g___u_c_s___r_o_u_t_i_n_g.html":[0,9],
+"group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s.html":[0,9,1],
+"group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga127a72f023d3c0289ab74b001f6edc25.html#ga127a72f023d3c0289ab74b001f6edc25":[0,9,1,3],
+"group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga127a72f023d3c0289ab74b001f6edc25.html#gga127a72f023d3c0289ab74b001f6edc25a63c4dfa3683ce8122d760c4e2d580138":[0,9,1,3,1],
+"group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga127a72f023d3c0289ab74b001f6edc25.html#gga127a72f023d3c0289ab74b001f6edc25ac1244d5bc6a569137f6f9132b8b0a3da":[0,9,1,3,0],
+"group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#ga75ffbf28e4afc99a6abdbff0887baf9b":[0,9,1,4],
+"group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#gga75ffbf28e4afc99a6abdbff0887baf9ba0a444b476e91de5d0954a007a78a387b":[0,9,1,4,2],
+"group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#gga75ffbf28e4afc99a6abdbff0887baf9ba5458da57325825b8922710a90a9ea4d5":[0,9,1,4,1],
+"group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#gga75ffbf28e4afc99a6abdbff0887baf9ba5778af29569eb74e7546749e93ed9c1e":[0,9,1,4,0],
+"group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#gga75ffbf28e4afc99a6abdbff0887baf9bace1ac2f05b198d3d223baa33ca71493a":[0,9,1,4,3],
+"group___g___u_c_s___r_o_u_t_i_n_g_ga32d004eb96f434f379614b29fe2a486a.html#ga32d004eb96f434f379614b29fe2a486a":[0,9,7],
+"group___g___u_c_s___r_o_u_t_i_n_g_ga57ca34a488f06d57f2219be23fa0259f.html#ga57ca34a488f06d57f2219be23fa0259f":[0,9,8],
+"group___g___u_c_s___r_o_u_t_i_n_g_ga87a46a3aa0657e13f5884e5a04d16e17.html#ga87a46a3aa0657e13f5884e5a04d16e17":[0,9,6],
+"group___g___u_c_s___r_o_u_t_i_n_g_ga91d851f4665839e2aac982565b007805.html#ga91d851f4665839e2aac982565b007805":[0,9,3],
+"group___g___u_c_s___r_o_u_t_i_n_g_gaaa23aca8279da197192210fe11889452.html#gaaa23aca8279da197192210fe11889452":[0,9,10],
+"group___g___u_c_s___r_o_u_t_i_n_g_gabb9185254132bb29ee0af137c36f50b8.html#gabb9185254132bb29ee0af137c36f50b8":[0,9,9],
+"group___g___u_c_s___r_o_u_t_i_n_g_gaefde5a8fbaeb6e5937e94b9e74ae70cb.html#gaefde5a8fbaeb6e5937e94b9e74ae70cb":[0,9,4],
+"group___g___u_c_s___r_o_u_t_i_n_g_gaf34398118f6a683a7e295f2fb89c5940.html#gaf34398118f6a683a7e295f2fb89c5940":[0,9,5],
+"group___g___u_c_s___s_c_r_i_p_t_i_n_g.html":[0,10],
+"group___g___u_c_s___s_c_r_i_p_t_i_n_g_ga2f2737e4d507b9c15e165918db3f1456.html#ga2f2737e4d507b9c15e165918db3f1456":[0,10,4],
+"group___g___u_c_s___s_c_r_i_p_t_i_n_g_gab0f1bc424462b8bbe0b2155d504025a5.html#gab0f1bc424462b8bbe0b2155d504025a5":[0,10,2],
+"group___g___u_c_s___s_c_r_i_p_t_i_n_g_gabd3ecc8ab539f3b9de3fc8045c083b60.html#gabd3ecc8ab539f3b9de3fc8045c083b60":[0,10,3],
+"group___g___u_c_s___s_c_r_i_p_t_i_n_g_gabd3ecc8ab539f3b9de3fc8045c083b60.html#ggabd3ecc8ab539f3b9de3fc8045c083b60ad0ba0f8f6ba494e7685980d490e48b72":[0,10,3,1],
+"group___g___u_c_s___s_c_r_i_p_t_i_n_g_gabd3ecc8ab539f3b9de3fc8045c083b60.html#ggabd3ecc8ab539f3b9de3fc8045c083b60af22bd910a1d7e2271b5b3cddf5892962":[0,10,3,0],
+"group___g___u_c_s___t_r_a_c_e.html":[0,0,1],
+"group___g___u_c_s___t_r_a_c_e___t_y_p_e_s.html":[0,0,1,0],
+"group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#ga02d4f5d689f2583ee620ff4c26a51afa":[0,0,1,0,7],
+"group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa16fce7c1ed324daa8942b21951b805cb":[0,0,1,0,7,7],
+"group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa1ba506fde54dfb0ad969028ab16a6c98":[0,0,1,0,7,12],
+"group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa289256756b3f271d04535462235b9d8a":[0,0,1,0,7,14],
+"group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa30680ea01486e5729efd9b8a3a22313f":[0,0,1,0,7,2],
+"group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa3f69bc6e06a743468e1f1635d77adad8":[0,0,1,0,7,1],
+"group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa3ffc2003b1ea184bfb36a8a50af424ba":[0,0,1,0,7,17],
+"group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa53d0fbdf31fa445a02e84ed4a494153d":[0,0,1,0,7,4],
+"group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa5b48c9460922585b8b25868e05cc6d6c":[0,0,1,0,7,15],
+"group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa64c538f9ef7c103a2541c81ae4bd501d":[0,0,1,0,7,16],
+"group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa7dca59717427fc0b806a2e5353cc2ece":[0,0,1,0,7,18],
+"group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa7f78b7ab9308fc50de2b440efac06fea":[0,0,1,0,7,11],
+"group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa7fc5e535407db1fe019d6db6e89ffd66":[0,0,1,0,7,10],
+"group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa8c2b26389a77be12f491fc3154987c58":[0,0,1,0,7,9],
+"group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa8d751c97bde87443c2259dffed699e1b":[0,0,1,0,7,3],
+"group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa9cd8321db02fe32bb577a3654487fba7":[0,0,1,0,7,13],
+"group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaab4e6745410e913098b6fe8628337bd0b":[0,0,1,0,7,6],
+"group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaac8a58af946fe576138bfb6fbb156700e":[0,0,1,0,7,19],
+"group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaacedf024e681e29824a04eaaa8215ceec":[0,0,1,0,7,0],
+"group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaae3056001809b7338835a44d0ffd5f6c5":[0,0,1,0,7,8],
+"group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaafc94e06298ee531eb4557a4a066dfb59":[0,0,1,0,7,5],
+"group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga3d9b0fe84140fbc49ba03b685f6c0443.html#ga3d9b0fe84140fbc49ba03b685f6c0443":[0,0,1,0,4],
+"group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#gac5aa79eb466a98f645c0302f402294d6":[0,0,1,0,6],
+"group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a0b34261bd4e959454ee3b4eab0f72e4c":[0,0,1,0,6,5],
+"group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a2f33c4f038e0ddac2c4c4e10ddfe9ae6":[0,0,1,0,6,11],
+"group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a451d05814d329a24ef6820b885569370":[0,0,1,0,6,4],
+"group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a4e0b2b5525b1de2e4305f95ecd39b652":[0,0,1,0,6,2],
+"group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a648be71e021d246fe90ce1b2cb4166b1":[0,0,1,0,6,7],
+"group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a75e329b060753596c4102c798752f4da":[0,0,1,0,6,10],
+"group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a86fbcae96541ea83f7a283fc973288f2":[0,0,1,0,6,0],
+"group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a8e0466e6c50ca8200d3a5a60e6922769":[0,0,1,0,6,12],
+"group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a9a33312cd89f2f2e917c30bd304a9e64":[0,0,1,0,6,1],
+"group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a9bc8c6ee18b2265f67413894e75073f1":[0,0,1,0,6,6],
+"group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6aa86b80e9a990af483bf757fc147ba7c5":[0,0,1,0,6,8],
+"group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6ab82dfa03424d6bb820ccec46e51b3fa4":[0,0,1,0,6,3],
+"group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6ac6dbca4bb4f732e389d8b242eebc424e":[0,0,1,0,6,9],
+"group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gaed7f13e95bb2324327de175834aa02ff.html#gaed7f13e95bb2324327de175834aa02ff":[0,0,1,0,5],
+"group___g___u_c_s___t_r_a_c_e_ga038add4a7ca8adb0f60c34cedbfcf8b9.html#ga038add4a7ca8adb0f60c34cedbfcf8b9":[0,0,1,3],
+"group___g___u_c_s___t_r_a_c_e_gaebb5aec06a7196b1247805a53a96f926.html#gaebb5aec06a7196b1247805a53a96f926":[0,0,1,2],
+"group___g___u_c_s___t_r_a_c_e_gaf18b6867951fd06359788f6595b78195.html#gaf18b6867951fd06359788f6595b78195":[0,0,1,4],
+"group___g___u_c_s___t_r_a_c_e_gaf7f45aee7bbbd7f4a58b71a5268ecdb6.html#gaf7f45aee7bbbd7f4a58b71a5268ecdb6":[0,0,1,1],
+"group___g___u_c_s___x_r_m___c_f_g.html":[0,9,0,2],
+"group___g___u_c_s___x_r_m___c_f_g_ga70720ac0fdcbbbc7f4742654c8f8abc1.html#ga70720ac0fdcbbbc7f4742654c8f8abc1":[0,9,0,2,0],
+"group___g___u_c_s___x_r_m___c_f_g_ga9bbd7e20bff0c7ea54699df5969e933a.html#ga9bbd7e20bff0c7ea54699df5969e933a":[0,9,0,2,2],
+"group___g___u_c_s___x_r_m___c_f_g_gaddc205bcdb37b435fddb292c416f605b.html#gaddc205bcdb37b435fddb292c416f605b":[0,9,0,2,1],
+"group___g___u_c_s___x_r_m___e_n_u_m.html":[0,9,0,1,0],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga02741bef1059621aaf6cf4fa956cfccf.html#ga02741bef1059621aaf6cf4fa956cfccf":[0,9,0,1,0,12],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga02741bef1059621aaf6cf4fa956cfccf.html#gga02741bef1059621aaf6cf4fa956cfccfa1c36b204751eff3352215d86b703d9d6":[0,9,0,1,0,12,3],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga02741bef1059621aaf6cf4fa956cfccf.html#gga02741bef1059621aaf6cf4fa956cfccfa64ff85efa59d4760e4dba13678c7b802":[0,9,0,1,0,12,1],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga02741bef1059621aaf6cf4fa956cfccf.html#gga02741bef1059621aaf6cf4fa956cfccfa7505ae359df8d66ec68bacb78c049f52":[0,9,0,1,0,12,0],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga02741bef1059621aaf6cf4fa956cfccf.html#gga02741bef1059621aaf6cf4fa956cfccfa8511f386d32e3e1eacfb7763528ae198":[0,9,0,1,0,12,4],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga02741bef1059621aaf6cf4fa956cfccf.html#gga02741bef1059621aaf6cf4fa956cfccfae288dcb736db417e450f52b59da4efd6":[0,9,0,1,0,12,2],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga066850ed913a19025120619cca07fac6.html#ga066850ed913a19025120619cca07fac6":[0,9,0,1,0,6],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga066850ed913a19025120619cca07fac6.html#gga066850ed913a19025120619cca07fac6a20039c896aa6b0c03a6e753040ae4db2":[0,9,0,1,0,6,0],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#ga0e856884fa1c7908c59718da0f396484":[0,9,0,1,0,9],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#gga0e856884fa1c7908c59718da0f396484a070b6e6a42de4464e8c702b27fc56b26":[0,9,0,1,0,9,4],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#gga0e856884fa1c7908c59718da0f396484a23baa6e65f75b4b7bb11716bf01a2bda":[0,9,0,1,0,9,2],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#gga0e856884fa1c7908c59718da0f396484a5db76daf8c6e915500433b291457d2de":[0,9,0,1,0,9,6],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#gga0e856884fa1c7908c59718da0f396484a6ecefb4d6d534dfc6225644bf6cb9823":[0,9,0,1,0,9,3],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#gga0e856884fa1c7908c59718da0f396484ab74d511c86daf3ce6aa90a98381c7e8a":[0,9,0,1,0,9,5],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#gga0e856884fa1c7908c59718da0f396484ad4d29b36625c2a20c585524b9bbeab10":[0,9,0,1,0,9,1],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#gga0e856884fa1c7908c59718da0f396484ae3b3cf726190fda9d105b4b7561cb455":[0,9,0,1,0,9,0],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#gga0e856884fa1c7908c59718da0f396484ae8ea56789961bd68181d059180ecccd6":[0,9,0,1,0,9,7],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#ga12193f5b8d160e84ad8b9853b0308f63":[0,9,0,1,0,1],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63a0bd2aca9cfb3e4965d2a3b61aca9681f":[0,9,0,1,0,1,8],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63a13645115ff4864a09293ef5cdaaaf963":[0,9,0,1,0,1,1],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63a25478748c90e08007550f3b6e069378a":[0,9,0,1,0,1,0],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63a72d60c9e85da4923a494f394d8e644dd":[0,9,0,1,0,1,4],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63a8da54fd7f88cdcea8971667824e2c5b7":[0,9,0,1,0,1,2],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63ab1210db92ad1770f156c2686e0189024":[0,9,0,1,0,1,5],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63abbb9505a7b8b38cd4a402a66adfba660":[0,9,0,1,0,1,6],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63ade97fa17799ee97eebea56f563ef8e55":[0,9,0,1,0,1,7],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63afcdf9e1f4b0c6f42d1491384192f3578":[0,9,0,1,0,1,3],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga16d6cd08e925676dfade13e980f460b0.html#ga16d6cd08e925676dfade13e980f460b0":[0,9,0,1,0,10],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga16d6cd08e925676dfade13e980f460b0.html#gga16d6cd08e925676dfade13e980f460b0a4a03b7fe83667b4e5f2a355e2810ed6f":[0,9,0,1,0,10,0],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga16d6cd08e925676dfade13e980f460b0.html#gga16d6cd08e925676dfade13e980f460b0a57fd16fd3f918e55cb4fc665f4023c79":[0,9,0,1,0,10,1],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga16d6cd08e925676dfade13e980f460b0.html#gga16d6cd08e925676dfade13e980f460b0ae852c8c7676b739182f522d3ac1d54bd":[0,9,0,1,0,10,2],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga24bf81b4e52fc1fb01deba9165d7c79e.html#ga24bf81b4e52fc1fb01deba9165d7c79e":[0,9,0,1,0,4],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga24bf81b4e52fc1fb01deba9165d7c79e.html#gga24bf81b4e52fc1fb01deba9165d7c79ea0633c428576d7cd9411e2594166b9227":[0,9,0,1,0,4,2],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga24bf81b4e52fc1fb01deba9165d7c79e.html#gga24bf81b4e52fc1fb01deba9165d7c79ea2c0ceb407c48e14845e2218c121dfeea":[0,9,0,1,0,4,1],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga24bf81b4e52fc1fb01deba9165d7c79e.html#gga24bf81b4e52fc1fb01deba9165d7c79eae407528edcdb4d1b773340cf024e7c30":[0,9,0,1,0,4,0],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga28477f727fe10f9d6fd21cfc98a9c115.html#ga28477f727fe10f9d6fd21cfc98a9c115":[0,9,0,1,0,8],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga28477f727fe10f9d6fd21cfc98a9c115.html#gga28477f727fe10f9d6fd21cfc98a9c115a02fdd605a809a4a660e25cfd888347c7":[0,9,0,1,0,8,0],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga28477f727fe10f9d6fd21cfc98a9c115.html#gga28477f727fe10f9d6fd21cfc98a9c115aa14fc95a1f8c5f54aa6d601614a887fe":[0,9,0,1,0,8,1],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga3139c2b4d435622104235bd9fd9f478c.html#ga3139c2b4d435622104235bd9fd9f478c":[0,9,0,1,0,11],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga3139c2b4d435622104235bd9fd9f478c.html#gga3139c2b4d435622104235bd9fd9f478ca3add1d998c379f1ece1dabd41e89d832":[0,9,0,1,0,11,1],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga3139c2b4d435622104235bd9fd9f478c.html#gga3139c2b4d435622104235bd9fd9f478ca3c768bceb59f2b4ef488e285a9d11b20":[0,9,0,1,0,11,0],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga3139c2b4d435622104235bd9fd9f478c.html#gga3139c2b4d435622104235bd9fd9f478ca5614198d8e257bc689bcfccf09ad0d8f":[0,9,0,1,0,11,2],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga6ea92012ace1c507dab36b727698a08e.html#ga6ea92012ace1c507dab36b727698a08e":[0,9,0,1,0,13],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga6ea92012ace1c507dab36b727698a08e.html#gga6ea92012ace1c507dab36b727698a08ea10bf424b1ddb5c25b7659991fa761946":[0,9,0,1,0,13,0],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga793fd94e2e48ff7a7fce092e6e0039e4.html#ga793fd94e2e48ff7a7fce092e6e0039e4":[0,9,0,1,0,7],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga793fd94e2e48ff7a7fce092e6e0039e4.html#gga793fd94e2e48ff7a7fce092e6e0039e4a0c106f34e8415ab3f01748a6bde15d8c":[0,9,0,1,0,7,0],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga83e210aa76632ea2191bd59ef7894432.html#ga83e210aa76632ea2191bd59ef7894432":[0,9,0,1,0,14],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga83e210aa76632ea2191bd59ef7894432.html#gga83e210aa76632ea2191bd59ef7894432a045ee94e54b8cb575ec5579ecded373a":[0,9,0,1,0,14,2],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga83e210aa76632ea2191bd59ef7894432.html#gga83e210aa76632ea2191bd59ef7894432a5953e1aaabaaa5ae4a74fe0ec5842246":[0,9,0,1,0,14,0],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga83e210aa76632ea2191bd59ef7894432.html#gga83e210aa76632ea2191bd59ef7894432ab2cb6fba4c684773db5ef4c7d4650311":[0,9,0,1,0,14,1],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga8836a818f79ff1315f7f76bcd8e50a4d.html#ga8836a818f79ff1315f7f76bcd8e50a4d":[0,9,0,1,0,0],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga8836a818f79ff1315f7f76bcd8e50a4d.html#gga8836a818f79ff1315f7f76bcd8e50a4da25b3c21607a88231bab533a93b8d6849":[0,9,0,1,0,0,1],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga8836a818f79ff1315f7f76bcd8e50a4d.html#gga8836a818f79ff1315f7f76bcd8e50a4da36f9f325486cb5312551b573efdaae61":[0,9,0,1,0,0,2],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga8836a818f79ff1315f7f76bcd8e50a4d.html#gga8836a818f79ff1315f7f76bcd8e50a4da5b103421ef1b66b0f939bf1331070d31":[0,9,0,1,0,0,0],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga902951b9083ff58a88e19e151b57106a.html#ga902951b9083ff58a88e19e151b57106a":[0,9,0,1,0,3],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga902951b9083ff58a88e19e151b57106a.html#gga902951b9083ff58a88e19e151b57106aa367f9c085169b943f1084f48e2db430c":[0,9,0,1,0,3,1],
+"group___g___u_c_s___x_r_m___e_n_u_m_ga902951b9083ff58a88e19e151b57106a.html#gga902951b9083ff58a88e19e151b57106aaa0255a1f099a88d43d562c2c3f9e7307":[0,9,0,1,0,3,0],
+"group___g___u_c_s___x_r_m___e_n_u_m_gaa573e5854eb036998eec837e9fbf0ae1.html#gaa573e5854eb036998eec837e9fbf0ae1":[0,9,0,1,0,18],
+"group___g___u_c_s___x_r_m___e_n_u_m_gaa573e5854eb036998eec837e9fbf0ae1.html#ggaa573e5854eb036998eec837e9fbf0ae1a94962f9a6bce23c8ab29d9da551ef2c3":[0,9,0,1,0,18,1],
+"group___g___u_c_s___x_r_m___e_n_u_m_gaa573e5854eb036998eec837e9fbf0ae1.html#ggaa573e5854eb036998eec837e9fbf0ae1aea428e9f9e380e629584c3989e4318b3":[0,9,0,1,0,18,0],
+"group___g___u_c_s___x_r_m___e_n_u_m_gaadbd9007127f39c3c257040adf063d07.html#gaadbd9007127f39c3c257040adf063d07":[0,9,0,1,0,15],
+"group___g___u_c_s___x_r_m___e_n_u_m_gaadbd9007127f39c3c257040adf063d07.html#ggaadbd9007127f39c3c257040adf063d07a111c042a8036aef129575cee99766a50":[0,9,0,1,0,15,1]
+};
diff --git a/ucs2-lib/doc/html/navtreeindex2.js b/ucs2-lib/doc/html/navtreeindex2.js
new file mode 100644
index 0000000..52736da
--- /dev/null
+++ b/ucs2-lib/doc/html/navtreeindex2.js
@@ -0,0 +1,253 @@
+var NAVTREEINDEX2 =
+{
+"group___g___u_c_s___x_r_m___e_n_u_m_gaadbd9007127f39c3c257040adf063d07.html#ggaadbd9007127f39c3c257040adf063d07a16eeeaad94f4398034b16f32832b2b52":[0,9,0,1,0,15,0],
+"group___g___u_c_s___x_r_m___e_n_u_m_gaadbd9007127f39c3c257040adf063d07.html#ggaadbd9007127f39c3c257040adf063d07a743fac004ed325564161877611bdd074":[0,9,0,1,0,15,3],
+"group___g___u_c_s___x_r_m___e_n_u_m_gaadbd9007127f39c3c257040adf063d07.html#ggaadbd9007127f39c3c257040adf063d07a9c838b934823acccb059f360dd23d4d3":[0,9,0,1,0,15,2],
+"group___g___u_c_s___x_r_m___e_n_u_m_gab29e10223e27331045485facbe4102ee.html#gab29e10223e27331045485facbe4102ee":[0,9,0,1,0,5],
+"group___g___u_c_s___x_r_m___e_n_u_m_gab29e10223e27331045485facbe4102ee.html#ggab29e10223e27331045485facbe4102eea17d7e05acbb595e6d96d985e90c874ba":[0,9,0,1,0,5,3],
+"group___g___u_c_s___x_r_m___e_n_u_m_gab29e10223e27331045485facbe4102ee.html#ggab29e10223e27331045485facbe4102eea345ad57d9919545fa5e5bf8393b0224f":[0,9,0,1,0,5,0],
+"group___g___u_c_s___x_r_m___e_n_u_m_gab29e10223e27331045485facbe4102ee.html#ggab29e10223e27331045485facbe4102eeab11bbea636b1bbfbba10d9073ba09896":[0,9,0,1,0,5,2],
+"group___g___u_c_s___x_r_m___e_n_u_m_gab29e10223e27331045485facbe4102ee.html#ggab29e10223e27331045485facbe4102eeac9bedb4912676bc0a2fdca379f5dc9e7":[0,9,0,1,0,5,1],
+"group___g___u_c_s___x_r_m___e_n_u_m_gae12684f1b74844d622e59da79f1a23f8.html#gae12684f1b74844d622e59da79f1a23f8":[0,9,0,1,0,16],
+"group___g___u_c_s___x_r_m___e_n_u_m_gae12684f1b74844d622e59da79f1a23f8.html#ggae12684f1b74844d622e59da79f1a23f8a547bb39c45cc5788c3e5352f2b7fa76f":[0,9,0,1,0,16,0],
+"group___g___u_c_s___x_r_m___e_n_u_m_gaef12892b897a1cd1013357cfe63f2434.html#gaef12892b897a1cd1013357cfe63f2434":[0,9,0,1,0,17],
+"group___g___u_c_s___x_r_m___e_n_u_m_gaef12892b897a1cd1013357cfe63f2434.html#ggaef12892b897a1cd1013357cfe63f2434a0648d4c524869e191575e69531947171":[0,9,0,1,0,17,1],
+"group___g___u_c_s___x_r_m___e_n_u_m_gaef12892b897a1cd1013357cfe63f2434.html#ggaef12892b897a1cd1013357cfe63f2434a6e21656de3fa891d522f272307fca772":[0,9,0,1,0,17,0],
+"group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html#gaf3facaf3378409c31465c68380990b53":[0,9,0,1,0,2],
+"group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html#ggaf3facaf3378409c31465c68380990b53a093d3a85730728a90043a05ab042bd25":[0,9,0,1,0,2,3],
+"group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html#ggaf3facaf3378409c31465c68380990b53a09527a2a481a353e06071b0d83a97fd9":[0,9,0,1,0,2,0],
+"group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html#ggaf3facaf3378409c31465c68380990b53a6b4873430ce4475a59af9c849238b8a1":[0,9,0,1,0,2,2],
+"group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html#ggaf3facaf3378409c31465c68380990b53a8f7c19482d19a5e61d7f57a41f1605a5":[0,9,0,1,0,2,1],
+"group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html#ggaf3facaf3378409c31465c68380990b53aa26b21e1fb0aca35442102baa8f4a11a":[0,9,0,1,0,2,4],
+"group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html#ggaf3facaf3378409c31465c68380990b53ac365dd966ebfeeff2906e73f16c5e441":[0,9,0,1,0,2,5],
+"group___g___u_c_s___x_r_m___e_n_u_m_gafd56377a5a1f782e64260d18caf17dc9.html#gafd56377a5a1f782e64260d18caf17dc9":[0,9,0,1,0,19],
+"group___g___u_c_s___x_r_m___e_n_u_m_gafd56377a5a1f782e64260d18caf17dc9.html#ggafd56377a5a1f782e64260d18caf17dc9a257142db7cda65de457ce1b5614de162":[0,9,0,1,0,19,1],
+"group___g___u_c_s___x_r_m___e_n_u_m_gafd56377a5a1f782e64260d18caf17dc9.html#ggafd56377a5a1f782e64260d18caf17dc9a4df4e4d4848358e18a3ef6386db80acf":[0,9,0,1,0,19,0],
+"group___g___u_c_s___x_r_m___e_n_u_m_gafd56377a5a1f782e64260d18caf17dc9.html#ggafd56377a5a1f782e64260d18caf17dc9a6a225da98d0fb6f08845c7b0c3480109":[0,9,0,1,0,19,3],
+"group___g___u_c_s___x_r_m___e_n_u_m_gafd56377a5a1f782e64260d18caf17dc9.html#ggafd56377a5a1f782e64260d18caf17dc9afbd766c42efdcb7bb7f7dddbbe863f0b":[0,9,0,1,0,19,2],
+"group___g___u_c_s___x_r_m___s_t_r_e_a_m.html":[0,9,0,0],
+"group___g___u_c_s___x_r_m___s_t_r_e_a_m_ga05e65cb477a3ff894de32425eb41294f.html#ga05e65cb477a3ff894de32425eb41294f":[0,9,0,0,0],
+"group___g___u_c_s___x_r_m___s_t_r_e_a_m_ga481fb8455d6165c5913ead778765d46e.html#ga481fb8455d6165c5913ead778765d46e":[0,9,0,0,1],
+"group___g___u_c_s___x_r_m___t_y_p_e_s.html":[0,9,0,1],
+"group___g___u_c_s___x_r_m___t_y_p_e_s_ga10b22839e9b7b2fe0148713aeea0172c.html#ga10b22839e9b7b2fe0148713aeea0172c":[0,9,0,1,21],
+"group___g___u_c_s___x_r_m___t_y_p_e_s_ga50384bb32b088e9cfd50c889ef562015.html#ga50384bb32b088e9cfd50c889ef562015":[0,9,0,1,23],
+"group___g___u_c_s___x_r_m___t_y_p_e_s_ga50384bb32b088e9cfd50c889ef562015.html#gga50384bb32b088e9cfd50c889ef562015a7b31f75e1806723739f4d7fd2bc483d3":[0,9,0,1,23,1],
+"group___g___u_c_s___x_r_m___t_y_p_e_s_ga50384bb32b088e9cfd50c889ef562015.html#gga50384bb32b088e9cfd50c889ef562015a9a8488efe5ea3c20d4a172ccc547951a":[0,9,0,1,23,2],
+"group___g___u_c_s___x_r_m___t_y_p_e_s_ga50384bb32b088e9cfd50c889ef562015.html#gga50384bb32b088e9cfd50c889ef562015af7f4a6893afb4f0f50a16a58e815f33e":[0,9,0,1,23,0],
+"group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#ga5299ac232aaeba37eb6fceb53e32b2ea":[0,9,0,1,24],
+"group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#gga5299ac232aaeba37eb6fceb53e32b2eaa3506ba144d511cba046ed09d7de265d2":[0,9,0,1,24,3],
+"group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#gga5299ac232aaeba37eb6fceb53e32b2eaa6e7faa32a0cb82c3fdf4450d80188262":[0,9,0,1,24,1],
+"group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#gga5299ac232aaeba37eb6fceb53e32b2eaac57d4f29bbfd2f62eefddc4e31a7ad81":[0,9,0,1,24,2],
+"group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#gga5299ac232aaeba37eb6fceb53e32b2eaaf17abdbe8fab65a069b6a8af1079066a":[0,9,0,1,24,0],
+"group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#ga60bd3f9fa02e15fb8841236470502939":[0,9,0,1,26],
+"group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a1c701f3c6cf1906ec7b9ab128f716ddd":[0,9,0,1,26,2],
+"group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a271d672a3235b37ade92cc90703e2818":[0,9,0,1,26,6],
+"group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a5598f375b65cc34614b9da0fa26eac7b":[0,9,0,1,26,1],
+"group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a5be1bc94fb04a96c19169ced4b332c22":[0,9,0,1,26,3],
+"group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a8756918bcca4958921f4998e4279290a":[0,9,0,1,26,7],
+"group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a87626ffba05e93e00d937e02ffa6f11f":[0,9,0,1,26,0],
+"group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a919a5b68148cb601b4493861fc327cb4":[0,9,0,1,26,4],
+"group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a9710ae95e40d16090a0c89db7dd2b17c":[0,9,0,1,26,8],
+"group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a98009aefa81c980cfd7271870a8f5935":[0,9,0,1,26,5],
+"group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173":[0,9,0,1,20],
+"group___g___u_c_s___x_r_m___t_y_p_e_s_ga80967b5f9bca0e603511f6ae4f8ac80d.html#ga80967b5f9bca0e603511f6ae4f8ac80d":[0,9,0,1,27],
+"group___g___u_c_s___x_r_m___t_y_p_e_s_ga80967b5f9bca0e603511f6ae4f8ac80d.html#gga80967b5f9bca0e603511f6ae4f8ac80da5697459fe3277c55bcd1a733339bea9b":[0,9,0,1,27,2],
+"group___g___u_c_s___x_r_m___t_y_p_e_s_ga80967b5f9bca0e603511f6ae4f8ac80d.html#gga80967b5f9bca0e603511f6ae4f8ac80da5b4112471bfa589121d71a7a4a615488":[0,9,0,1,27,0],
+"group___g___u_c_s___x_r_m___t_y_p_e_s_ga80967b5f9bca0e603511f6ae4f8ac80d.html#gga80967b5f9bca0e603511f6ae4f8ac80daf7685915f03d5f4d71146c0802ec0ca3":[0,9,0,1,27,1],
+"group___g___u_c_s___x_r_m___t_y_p_e_s_gab2f4b821b24db0cec150d1b30fe18783.html#gab2f4b821b24db0cec150d1b30fe18783":[0,9,0,1,22],
+"group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc":[0,9,0,1,25],
+"group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca0060f6125299f66c37b3b9111358caaf":[0,9,0,1,25,4],
+"group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca1956e37c3cfebc66ed6f5da75f67d589":[0,9,0,1,25,7],
+"group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca1d473f725ad3b8c99a3aa7a7e4915695":[0,9,0,1,25,6],
+"group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca23a015384da5963bcd03626084acd531":[0,9,0,1,25,14],
+"group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca2c31643fe2ccea0ecb44424ef0ba0472":[0,9,0,1,25,2],
+"group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca42a35dfe6f0054952406aeb6cdcf5119":[0,9,0,1,25,8],
+"group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca47342ee294555a9b7e738c9fc34b5265":[0,9,0,1,25,9],
+"group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca51a0ec5a470cb37f90a79a73f0f83be4":[0,9,0,1,25,3],
+"group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca5e2f20f818f67af2502a600f06b9ab11":[0,9,0,1,25,5],
+"group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca7224e84dd09ec73062bfaf395d645669":[0,9,0,1,25,11],
+"group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36cccacf416b59b369504088ef6810b4c545e1":[0,9,0,1,25,0],
+"group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36cccad0ca5b1fdc6b922e235ba53c5e09b8fb":[0,9,0,1,25,13],
+"group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36cccade63ac4286473169114caa4b890c5a65":[0,9,0,1,25,12],
+"group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36cccaeebb673b9abc5172f688f8e9e692441c":[0,9,0,1,25,1],
+"group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36cccafc1fc13e092cd54eebdfe81d709213ef":[0,9,0,1,25,10],
+"index.html":[],
+"modules.html":[0],
+"pages.html":[],
+"struct_msg___most_tel__t.html":[0,0,1,0,3],
+"struct_msg___most_tel__t_a3176fc4da0eba67428fa0627e15f86b6.html#a3176fc4da0eba67428fa0627e15f86b6":[0,0,1,0,3,5],
+"struct_msg___most_tel__t_a67473c671719a1e3f3fe0ad16e95dd83.html#a67473c671719a1e3f3fe0ad16e95dd83":[0,0,1,0,3,0],
+"struct_msg___most_tel__t_a6d80d11eae3ae15f09cc8aff3dabb89b.html#a6d80d11eae3ae15f09cc8aff3dabb89b":[0,0,1,0,3,1],
+"struct_msg___most_tel__t_a703fce339153ac2b164c185137b59717.html#a703fce339153ac2b164c185137b59717":[0,0,1,0,3,4],
+"struct_msg___most_tel__t_a9420136f5d99f8b6c48445b5eb048d60.html#a9420136f5d99f8b6c48445b5eb048d60":[0,0,1,0,3,3],
+"struct_msg___most_tel__t_abc779299d755d192cd021eb2c2a68013.html#abc779299d755d192cd021eb2c2a68013":[0,0,1,0,3,2],
+"struct_msg___msg_id__t.html":[0,0,1,0,0],
+"struct_msg___msg_id__t_a6cb0848efba59a9a23dbbe0480f04c85.html#a6cb0848efba59a9a23dbbe0480f04c85":[0,0,1,0,0,1],
+"struct_msg___msg_id__t_ab529e65a59b5c14626acf162f03fbfd4.html#ab529e65a59b5c14626acf162f03fbfd4":[0,0,1,0,0,2],
+"struct_msg___msg_id__t_ac3f5682d1affe8931b94fa90c28f6f31.html#ac3f5682d1affe8931b94fa90c28f6f31":[0,0,1,0,0,3],
+"struct_msg___msg_id__t_afadabe68185500b54de12bf7701db13b.html#afadabe68185500b54de12bf7701db13b":[0,0,1,0,0,0],
+"struct_msg___tel_data__t.html":[0,0,1,0,2],
+"struct_msg___tel_data__t_a0102c84947aadd0fd212a7972d2fb10d.html#a0102c84947aadd0fd212a7972d2fb10d":[0,0,1,0,2,0],
+"struct_msg___tel_data__t_a880ca776e9ea8d0bbb714a7333da52cc.html#a880ca776e9ea8d0bbb714a7333da52cc":[0,0,1,0,2,2],
+"struct_msg___tel_data__t_a92083234f7755755f06bb85b3a6f2ea4.html#a92083234f7755755f06bb85b3a6f2ea4":[0,0,1,0,2,3],
+"struct_msg___tel_data__t_afb4f9db23cd1c16b44c1e479e3f5e1cf.html#afb4f9db23cd1c16b44c1e479e3f5e1cf":[0,0,1,0,2,1],
+"struct_msg___tx_options__t.html":[0,0,1,0,1],
+"struct_msg___tx_options__t_a454f250afc20ddc93a508bc004df753e.html#a454f250afc20ddc93a508bc004df753e":[0,0,1,0,1,0],
+"struct_msg___tx_options__t_a82997e00f317333173aa610d0902ab04.html#a82997e00f317333173aa610d0902ab04":[0,0,1,0,1,1],
+"struct_ucs___ams___init_data__t.html":[0,3,1],
+"struct_ucs___ams___init_data__t_a8740ba80e30dd75e71d09fa1dcf04f3d.html#a8740ba80e30dd75e71d09fa1dcf04f3d":[0,3,1,0],
+"struct_ucs___ams___init_data__t_a8e01298906b1fbe44765c6e9e4bbc888.html#a8e01298906b1fbe44765c6e9e4bbc888":[0,3,1,2],
+"struct_ucs___ams___init_data__t_a976344e02b80d33e167c34d3c6ae9cab.html#a976344e02b80d33e167c34d3c6ae9cab":[0,3,1,1],
+"struct_ucs___ams_rx___init_data__t.html":[0,3,0,0],
+"struct_ucs___ams_rx___init_data__t_a94cec5846cb407141e9c1e1a2ea205d3.html#a94cec5846cb407141e9c1e1a2ea205d3":[0,3,0,0,0],
+"struct_ucs___ams_rx___msg__t.html":[0,3,0,3],
+"struct_ucs___ams_rx___msg__t_a1c691c4fcbb0562f9a9c9e07f1166319.html#a1c691c4fcbb0562f9a9c9e07f1166319":[0,3,0,3,0],
+"struct_ucs___ams_rx___msg__t_a6166cef59cbe432be35512925debeae6.html#a6166cef59cbe432be35512925debeae6":[0,3,0,3,1],
+"struct_ucs___ams_rx___msg__t_a689014fc11d4f26d264ddae2eaebc9d8.html#a689014fc11d4f26d264ddae2eaebc9d8":[0,3,0,3,3],
+"struct_ucs___ams_rx___msg__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html#aae6bdbdf6ea1ad3da5af37f0a91d3ea0":[0,3,0,3,2],
+"struct_ucs___ams_rx___msg__t_abb27f24f389ff3575a5ee33e74e66eb6.html#abb27f24f389ff3575a5ee33e74e66eb6":[0,3,0,3,5],
+"struct_ucs___ams_rx___msg__t_af3ea491a2bc42c0f8a5911b4d21058d0.html#af3ea491a2bc42c0f8a5911b4d21058d0":[0,3,0,3,4],
+"struct_ucs___ams_tx___init_data__t.html":[0,3,0,1],
+"struct_ucs___ams_tx___init_data__t_a804bd7e626fd73b27d18af9a036d7ad4.html#a804bd7e626fd73b27d18af9a036d7ad4":[0,3,0,1,0],
+"struct_ucs___ams_tx___init_data__t_a9217a093b6d7e68b7cd9d759c5cef192.html#a9217a093b6d7e68b7cd9d759c5cef192":[0,3,0,1,1],
+"struct_ucs___ams_tx___msg__t.html":[0,3,0,2],
+"struct_ucs___ams_tx___msg__t_a1c691c4fcbb0562f9a9c9e07f1166319.html#a1c691c4fcbb0562f9a9c9e07f1166319":[0,3,0,2,0],
+"struct_ucs___ams_tx___msg__t_a6166cef59cbe432be35512925debeae6.html#a6166cef59cbe432be35512925debeae6":[0,3,0,2,1],
+"struct_ucs___ams_tx___msg__t_a689014fc11d4f26d264ddae2eaebc9d8.html#a689014fc11d4f26d264ddae2eaebc9d8":[0,3,0,2,5],
+"struct_ucs___ams_tx___msg__t_a82997e00f317333173aa610d0902ab04.html#a82997e00f317333173aa610d0902ab04":[0,3,0,2,4],
+"struct_ucs___ams_tx___msg__t_a9a199f6a8a711b94ff827e6807980cb3.html#a9a199f6a8a711b94ff827e6807980cb3":[0,3,0,2,3],
+"struct_ucs___ams_tx___msg__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html#aae6bdbdf6ea1ad3da5af37f0a91d3ea0":[0,3,0,2,2],
+"struct_ucs___cmd___msg_id__t.html":[0,4,0,0],
+"struct_ucs___cmd___msg_id__t_a689014fc11d4f26d264ddae2eaebc9d8.html#a689014fc11d4f26d264ddae2eaebc9d8":[0,4,0,0,1],
+"struct_ucs___cmd___msg_id__t_a7a00edfeadc4cc2a50b9136d2d368c23.html#a7a00edfeadc4cc2a50b9136d2d368c23":[0,4,0,0,0],
+"struct_ucs___general___init_data__t.html":[0,0,0,0],
+"struct_ucs___general___init_data__t_a1694b517ad074d3b14b76b400f86c9db.html#a1694b517ad074d3b14b76b400f86c9db":[0,0,0,0,3],
+"struct_ucs___general___init_data__t_a4e1140be3951f0e14d4071840f4ebc8e.html#a4e1140be3951f0e14d4071840f4ebc8e":[0,0,0,0,2],
+"struct_ucs___general___init_data__t_a7d2541cf63dfcea750c0d0ec2ef563c0.html#a7d2541cf63dfcea750c0d0ec2ef563c0":[0,0,0,0,4],
+"struct_ucs___general___init_data__t_a9de73ec82699e45173702e9b0ccc917a.html#a9de73ec82699e45173702e9b0ccc917a":[0,0,0,0,5],
+"struct_ucs___general___init_data__t_aa197d5a04c7eee7b95eb9e1de232d161.html#aa197d5a04c7eee7b95eb9e1de232d161":[0,0,0,0,1],
+"struct_ucs___general___init_data__t_ad21ca235fca8aa5dbc81e6a82ca0f867.html#ad21ca235fca8aa5dbc81e6a82ca0f867":[0,0,0,0,0],
+"struct_ucs___gpio___init_data__t.html":[0,11,0,1],
+"struct_ucs___gpio___init_data__t_abb586c1dd43ecda56d21209333104904.html#abb586c1dd43ecda56d21209333104904":[0,11,0,1,0],
+"struct_ucs___gpio___pin_configuration__t.html":[0,1,0,1],
+"struct_ucs___gpio___pin_configuration__t_a9f9602aa82b7dc511dfd57447039c1ab.html#a9f9602aa82b7dc511dfd57447039c1ab":[0,1,0,1,0],
+"struct_ucs___gpio___pin_configuration__t_ab40a673fb19c1e650e1f79de91788aa5.html#ab40a673fb19c1e650e1f79de91788aa5":[0,1,0,1,1],
+"struct_ucs___gpio___result__t.html":[0,11,0,0,1],
+"struct_ucs___gpio___result__t_a5a25ac28b5135e04a465fdead03df796.html#a5a25ac28b5135e04a465fdead03df796":[0,11,0,0,1,0],
+"struct_ucs___gpio___result__t_a834bf2a84ecdbd878eb0edbf89bc0b88.html#a834bf2a84ecdbd878eb0edbf89bc0b88":[0,11,0,0,1,1],
+"struct_ucs___gpio___result_details__t.html":[0,11,0,0,0],
+"struct_ucs___gpio___result_details__t_a87d6ba6c35b8ada8a002fee6caf0c28a.html#a87d6ba6c35b8ada8a002fee6caf0c28a":[0,11,0,0,0,1],
+"struct_ucs___gpio___result_details__t_abee2d1d2c9eebcbc9da920664e9eb248.html#abee2d1d2c9eebcbc9da920664e9eb248":[0,11,0,0,0,2],
+"struct_ucs___gpio___result_details__t_ac8f7bd459f5052601dbbab267d9d8067.html#ac8f7bd459f5052601dbbab267d9d8067":[0,11,0,0,0,0],
+"struct_ucs___i2c___init_data__t.html":[0,11,1,1],
+"struct_ucs___i2c___init_data__t_a2d31f7e7ace9d7a9998a9d9427706a45.html#a2d31f7e7ace9d7a9998a9d9427706a45":[0,11,1,1,0],
+"struct_ucs___i2c___result__t.html":[0,11,1,0,1],
+"struct_ucs___i2c___result__t_a288b89d26129791b83b01a3b464d7351.html#a288b89d26129791b83b01a3b464d7351":[0,11,1,0,1,1],
+"struct_ucs___i2c___result__t_aacd0e1eabaa18a3fe226a2b4f849832b.html#aacd0e1eabaa18a3fe226a2b4f849832b":[0,11,1,0,1,0],
+"struct_ucs___i2c___result_details__t.html":[0,11,1,0,0],
+"struct_ucs___i2c___result_details__t_abee2d1d2c9eebcbc9da920664e9eb248.html#abee2d1d2c9eebcbc9da920664e9eb248":[0,11,1,0,0,2],
+"struct_ucs___i2c___result_details__t_ac8f7bd459f5052601dbbab267d9d8067.html#ac8f7bd459f5052601dbbab267d9d8067":[0,11,1,0,0,0],
+"struct_ucs___i2c___result_details__t_afbf6b21e51e2114bd8165bc6b9d920a5.html#afbf6b21e51e2114bd8165bc6b9d920a5":[0,11,1,0,0,1],
+"struct_ucs___inic___init_data__t.html":[0,1,1],
+"struct_ucs___inic___init_data__t_a238990027953e8302526513c7cbb4dc0.html#a238990027953e8302526513c7cbb4dc0":[0,1,1,0],
+"struct_ucs___inic___version__t.html":[0,1,0,0],
+"struct_ucs___inic___version__t_a20c9cb94858deb6d8a9ab9a220fa8778.html#a20c9cb94858deb6d8a9ab9a220fa8778":[0,1,0,0,8],
+"struct_ucs___inic___version__t_a2aa984a9a3499db9e991535b402b3dca.html#a2aa984a9a3499db9e991535b402b3dca":[0,1,0,0,9],
+"struct_ucs___inic___version__t_a384e7593c5c4c33e1f7c9936dab0b937.html#a384e7593c5c4c33e1f7c9936dab0b937":[0,1,0,0,7],
+"struct_ucs___inic___version__t_a79fca74d233fe79b334ecc712ca688ea.html#a79fca74d233fe79b334ecc712ca688ea":[0,1,0,0,6],
+"struct_ucs___inic___version__t_ab190dafd0511e594196f0d25f0cd99dc.html#ab190dafd0511e594196f0d25f0cd99dc":[0,1,0,0,0],
+"struct_ucs___inic___version__t_ab98cc6d6cb5cc92d5f6633419daa643e.html#ab98cc6d6cb5cc92d5f6633419daa643e":[0,1,0,0,4],
+"struct_ucs___inic___version__t_abae3da4c5cc12b7d7470701f1811caa2.html#abae3da4c5cc12b7d7470701f1811caa2":[0,1,0,0,1],
+"struct_ucs___inic___version__t_aed9e506bf23c33ccb10ba21404859a74.html#aed9e506bf23c33ccb10ba21404859a74":[0,1,0,0,3],
+"struct_ucs___inic___version__t_aedae893bc0a52aed213d0dcef8262921.html#aedae893bc0a52aed213d0dcef8262921":[0,1,0,0,2],
+"struct_ucs___inic___version__t_afd5796c03158d03bb72378ce02535beb.html#afd5796c03158d03bb72378ce02535beb":[0,1,0,0,5],
+"struct_ucs___init_data__t.html":[0,0,2],
+"struct_ucs___init_data__t_a1b49223d94d385d1229b6864ad7fa053.html#a1b49223d94d385d1229b6864ad7fa053":[0,0,2,3],
+"struct_ucs___init_data__t_a41f828ebbe67a574ee39abd6c054bb6c.html#a41f828ebbe67a574ee39abd6c054bb6c":[0,0,2,10],
+"struct_ucs___init_data__t_a43e7559dfe1bc2860cb0d2749fa66071.html#a43e7559dfe1bc2860cb0d2749fa66071":[0,0,2,1],
+"struct_ucs___init_data__t_a517c2ec800639c8a91183e70189b1875.html#a517c2ec800639c8a91183e70189b1875":[0,0,2,6],
+"struct_ucs___init_data__t_a6788f8bea24665769ce00897162f84d4.html#a6788f8bea24665769ce00897162f84d4":[0,0,2,4],
+"struct_ucs___init_data__t_a8619aaf795810b7508046fbfef6d6907.html#a8619aaf795810b7508046fbfef6d6907":[0,0,2,9],
+"struct_ucs___init_data__t_a97b13c03602cc54884ae1765c518bd7b.html#a97b13c03602cc54884ae1765c518bd7b":[0,0,2,7],
+"struct_ucs___init_data__t_aa220785601aa16c0e0aff52f44380719.html#aa220785601aa16c0e0aff52f44380719":[0,0,2,8],
+"struct_ucs___init_data__t_aaff1fbd74feb484366c4082f00f2aea7.html#aaff1fbd74feb484366c4082f00f2aea7":[0,0,2,2],
+"struct_ucs___init_data__t_ac0b0a4478bafe6e81ed3c3e2c72f4fc9.html#ac0b0a4478bafe6e81ed3c3e2c72f4fc9":[0,0,2,5],
+"struct_ucs___init_data__t_afc4097eb34fb5c24bb13e02b6f506b3c.html#afc4097eb34fb5c24bb13e02b6f506b3c":[0,0,2,0],
+"struct_ucs___lld___api__t.html":[0,13,0,0],
+"struct_ucs___lld___api__t_a3ed1d41d7cab149f0bc5d2ea13631b16.html#a3ed1d41d7cab149f0bc5d2ea13631b16":[0,13,0,0,2],
+"struct_ucs___lld___api__t_a4621743277024b76d3afe1aed195f211.html#a4621743277024b76d3afe1aed195f211":[0,13,0,0,0],
+"struct_ucs___lld___api__t_a9fba62024daebe86940aee310c17ccfb.html#a9fba62024daebe86940aee310c17ccfb":[0,13,0,0,1],
+"struct_ucs___lld___api__t_ad4d0f461ff3009909e295910e5380835.html#ad4d0f461ff3009909e295910e5380835":[0,13,0,0,3],
+"struct_ucs___lld___callbacks__t.html":[0,13,1,2],
+"struct_ucs___lld___callbacks__t_a44afa0156353f9fba156ff0c91873968.html#a44afa0156353f9fba156ff0c91873968":[0,13,1,2,0],
+"struct_ucs___lld___callbacks__t_a90fa6db664734c2446327b71c51f5b52.html#a90fa6db664734c2446327b71c51f5b52":[0,13,1,2,1],
+"struct_ucs___lld___callbacks__t_a96bad24b6b49ffacfd9136230447cb22.html#a96bad24b6b49ffacfd9136230447cb22":[0,13,1,2,2],
+"struct_ucs___lld___callbacks__t_ab0f955ca90942fda14ac12500422a437.html#ab0f955ca90942fda14ac12500422a437":[0,13,1,2,3],
+"struct_ucs___lld___callbacks__t_ad8f7d021075e06672a999eb02da1d2e4.html#ad8f7d021075e06672a999eb02da1d2e4":[0,13,1,2,4],
+"struct_ucs___lld___rx_msg__t.html":[0,13,1,1],
+"struct_ucs___lld___rx_msg__t_a6166cef59cbe432be35512925debeae6.html#a6166cef59cbe432be35512925debeae6":[0,13,1,1,0],
+"struct_ucs___lld___rx_msg__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html#aae6bdbdf6ea1ad3da5af37f0a91d3ea0":[0,13,1,1,1],
+"struct_ucs___lld___tx_msg__t.html":[0,13,1,0],
+"struct_ucs___lld___tx_msg__t_a0fae6a3f19d8a9bbdad3c3b1ead3e868.html#a0fae6a3f19d8a9bbdad3c3b1ead3e868":[0,13,1,0,1],
+"struct_ucs___lld___tx_msg__t_ae6dfc382578b04d70665e7c805fdc4c2.html#ae6dfc382578b04d70665e7c805fdc4c2":[0,13,1,0,0],
+"struct_ucs___mem___buffer__t.html":[0,13,1,3],
+"struct_ucs___mem___buffer__t_a5245ce4ea7d022a357642b645e7ac645.html#a5245ce4ea7d022a357642b645e7ac645":[0,13,1,3,2],
+"struct_ucs___mem___buffer__t_a6166cef59cbe432be35512925debeae6.html#a6166cef59cbe432be35512925debeae6":[0,13,1,3,0],
+"struct_ucs___mem___buffer__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html#aae6bdbdf6ea1ad3da5af37f0a91d3ea0":[0,13,1,3,1],
+"struct_ucs___mem___buffer__t_af0c4b4b26e805f939299b203943976b2.html#af0c4b4b26e805f939299b203943976b2":[0,13,1,3,3],
+"struct_ucs___mgr___init_data__t.html":[0,5,0],
+"struct_ucs___mgr___init_data__t_a30588f13e23cf04757b91e979e55c369.html#a30588f13e23cf04757b91e979e55c369":[0,5,0,6],
+"struct_ucs___mgr___init_data__t_a4bda15e771fef671a47cd88a09707030.html#a4bda15e771fef671a47cd88a09707030":[0,5,0,5],
+"struct_ucs___mgr___init_data__t_a8740ba80e30dd75e71d09fa1dcf04f3d.html#a8740ba80e30dd75e71d09fa1dcf04f3d":[0,5,0,0],
+"struct_ucs___mgr___init_data__t_a980d5ec2fe728b8ca99de235be7858d2.html#a980d5ec2fe728b8ca99de235be7858d2":[0,5,0,3],
+"struct_ucs___mgr___init_data__t_ab0ad9592908a66a29460d67bf3146114.html#ab0ad9592908a66a29460d67bf3146114":[0,5,0,2],
+"struct_ucs___mgr___init_data__t_ac5131dba874debb5bb76b7f3b5a31818.html#ac5131dba874debb5bb76b7f3b5a31818":[0,5,0,4],
+"struct_ucs___mgr___init_data__t_ae261d2df7a2be21b4e8e4a582113643c.html#ae261d2df7a2be21b4e8e4a582113643c":[0,5,0,1],
+"struct_ucs___nd___init_data__t.html":[0,0,0,1],
+"struct_ucs___nd___init_data__t_a98b9ccad2c6c5fa2edaf472151ee853c.html#a98b9ccad2c6c5fa2edaf472151ee853c":[0,0,0,1,1],
+"struct_ucs___nd___init_data__t_ab9bc02a84c7daeff234344541d41be62.html#ab9bc02a84c7daeff234344541d41be62":[0,0,0,1,0],
+"struct_ucs___network___init_data__t.html":[0,2,1],
+"struct_ucs___network___init_data__t_ae9d2b9f86bdd3a9667a348eb2b75da12.html#ae9d2b9f86bdd3a9667a348eb2b75da12":[0,2,1,0],
+"struct_ucs___network___status__t.html":[0,2,0,0],
+"struct_ucs___network___status__t_a08f6acd8566e419c7017fc1874720223.html#a08f6acd8566e419c7017fc1874720223":[0,2,0,0,0],
+"struct_ucs___network___status__t_ae7a618bc7852c52001d0756913c545c8.html#ae7a618bc7852c52001d0756913c545c8":[0,2,0,0,1],
+"struct_ucs___ns___config_msg__t.html":[0,10,0],
+"struct_ucs___ns___config_msg__t_a08a6ee143e484d0a82593eb1ff632813.html#a08a6ee143e484d0a82593eb1ff632813":[0,10,0,4],
+"struct_ucs___ns___config_msg__t_a4011d0b720d10f4eeacd939998ebe85d.html#a4011d0b720d10f4eeacd939998ebe85d":[0,10,0,5],
+"struct_ucs___ns___config_msg__t_ab81bc4284c46cfa5378520e45441ef32.html#ab81bc4284c46cfa5378520e45441ef32":[0,10,0,0],
+"struct_ucs___ns___config_msg__t_ad076d2b6eaae6f9b32363de4729e9349.html#ad076d2b6eaae6f9b32363de4729e9349":[0,10,0,1],
+"struct_ucs___ns___config_msg__t_ad758e0bb7d48d20f40d5acbfcf916eb1.html#ad758e0bb7d48d20f40d5acbfcf916eb1":[0,10,0,3],
+"struct_ucs___ns___config_msg__t_aeb1ff6787da243b8d6ced7bce3ee46d5.html#aeb1ff6787da243b8d6ced7bce3ee46d5":[0,10,0,2],
+"struct_ucs___ns___script__t.html":[0,10,1],
+"struct_ucs___ns___script__t_a69ffffc951e73c7116876a2e908cf3ba.html#a69ffffc951e73c7116876a2e908cf3ba":[0,10,1,1],
+"struct_ucs___ns___script__t_a78234ed434c9f2e804d7466a45d0735d.html#a78234ed434c9f2e804d7466a45d0735d":[0,10,1,2],
+"struct_ucs___ns___script__t_a916bebb6486ddd6e58ded2f18d97ee62.html#a916bebb6486ddd6e58ded2f18d97ee62":[0,10,1,0],
+"struct_ucs___prg___command__t.html":[0,7,0,0],
+"struct_ucs___prg___command__t_aaeb273d8c806cdbebcb5d61a58b3a77d.html#aaeb273d8c806cdbebcb5d61a58b3a77d":[0,7,0,0,4],
+"struct_ucs___prg___command__t_abe222f6d3581e7920dcad5306cc906a8.html#abe222f6d3581e7920dcad5306cc906a8":[0,7,0,0,1],
+"struct_ucs___prg___command__t_ac0d31ca829f934cccd89f8054e02773e.html#ac0d31ca829f934cccd89f8054e02773e":[0,7,0,0,0],
+"struct_ucs___prg___command__t_ac6e0813f6e305faff5b36579a4d1d727.html#ac6e0813f6e305faff5b36579a4d1d727":[0,7,0,0,3],
+"struct_ucs___prg___command__t_ad97c802f66f41e937c3f8b33337b8c6d.html#ad97c802f66f41e937c3f8b33337b8c6d":[0,7,0,0,2],
+"struct_ucs___rm___end_point__t.html":[0,9,1,1],
+"struct_ucs___rm___end_point__t_a1022525e5f766bcdbcd0046c3313d3ac.html#a1022525e5f766bcdbcd0046c3313d3ac":[0,9,1,1,2],
+"struct_ucs___rm___end_point__t_a7e46feb849d169800b21d689de273901.html#a7e46feb849d169800b21d689de273901":[0,9,1,1,0],
+"struct_ucs___rm___end_point__t_aeba772076fc522f4d27dfb647457bb6d.html#aeba772076fc522f4d27dfb647457bb6d":[0,9,1,1,3],
+"struct_ucs___rm___end_point__t_afb41e308e548fde7dd754172cfb44ccf.html#afb41e308e548fde7dd754172cfb44ccf":[0,9,1,1,1],
+"struct_ucs___rm___init_data__t.html":[0,9,2],
+"struct_ucs___rm___init_data__t_a2420c468d89e6f991f68189ba2f61d15.html#a2420c468d89e6f991f68189ba2f61d15":[0,9,2,1],
+"struct_ucs___rm___init_data__t_a68590d8712353f94f2e9ccec1e21baa5.html#a68590d8712353f94f2e9ccec1e21baa5":[0,9,2,0],
+"struct_ucs___rm___init_data__t_ab3de88c423837727c463947f57895e49.html#ab3de88c423837727c463947f57895e49":[0,9,2,2],
+"struct_ucs___rm___node__t.html":[0,9,1,0],
+"struct_ucs___rm___node__t_a12545084e0e46ea49b48c93385f75650.html#a12545084e0e46ea49b48c93385f75650":[0,9,1,0,2],
+"struct_ucs___rm___node__t_a321da5e56aadf970749f66cfd284bb04.html#a321da5e56aadf970749f66cfd284bb04":[0,9,1,0,1],
+"struct_ucs___rm___node__t_a83b42042de7afe0e4e421de3e82ba5d6.html#a83b42042de7afe0e4e421de3e82ba5d6":[0,9,1,0,0],
+"struct_ucs___rm___node__t_ae619e45bed87dee01aaf280635cf3911.html#ae619e45bed87dee01aaf280635cf3911":[0,9,1,0,3],
+"struct_ucs___rm___route__t.html":[0,9,1,2],
+"struct_ucs___rm___route__t_a05c940dbc220f5a723afd70071aebff8.html#a05c940dbc220f5a723afd70071aebff8":[0,9,1,2,0],
+"struct_ucs___rm___route__t_a5553fda80c8780a9e42916d87a0e82dd.html#a5553fda80c8780a9e42916d87a0e82dd":[0,9,1,2,3],
+"struct_ucs___rm___route__t_a8e5e3175ae36f8c87c22e2382d0bba4a.html#a8e5e3175ae36f8c87c22e2382d0bba4a":[0,9,1,2,4],
+"struct_ucs___rm___route__t_abd3ce7c042005f4f8713f6c5359c1633.html#abd3ce7c042005f4f8713f6c5359c1633":[0,9,1,2,1],
+"struct_ucs___rm___route__t_af45aa1590137605530f1757465709d39.html#af45aa1590137605530f1757465709d39":[0,9,1,2,2],
+"struct_ucs___std_result__t.html":[0,0,0,2],
+"struct_ucs___std_result__t_a02d8eefc721a797ac87f5030774972ef.html#a02d8eefc721a797ac87f5030774972ef":[0,0,0,2,0]
+};
diff --git a/ucs2-lib/doc/html/navtreeindex3.js b/ucs2-lib/doc/html/navtreeindex3.js
new file mode 100644
index 0000000..e1ce532
--- /dev/null
+++ b/ucs2-lib/doc/html/navtreeindex3.js
@@ -0,0 +1,102 @@
+var NAVTREEINDEX3 =
+{
+"struct_ucs___std_result__t_ab89f4871a6526d4d409fca9ee58ce176.html#ab89f4871a6526d4d409fca9ee58ce176":[0,0,0,2,1],
+"struct_ucs___std_result__t_ab8c6e508e45bdac2dc20bfc1b0dff08c.html#ab8c6e508e45bdac2dc20bfc1b0dff08c":[0,0,0,2,2],
+"struct_ucs___xrm___avp_con__t.html":[0,9,0,1,18],
+"struct_ucs___xrm___avp_con__t_a1e377eede69f95567f72835634ac6241.html#a1e377eede69f95567f72835634ac6241":[0,9,0,1,18,0],
+"struct_ucs___xrm___avp_con__t_a21e5760677b48c43c5e4783306819f95.html#a21e5760677b48c43c5e4783306819f95":[0,9,0,1,18,3],
+"struct_ucs___xrm___avp_con__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd":[0,9,0,1,18,1],
+"struct_ucs___xrm___avp_con__t_ace5ef1fb3bd4337998a8f538645f47ed.html#ace5ef1fb3bd4337998a8f538645f47ed":[0,9,0,1,18,2],
+"struct_ucs___xrm___combiner__t.html":[0,9,0,1,16],
+"struct_ucs___xrm___combiner__t_a155bb95b36c82e42f52872c92d49e102.html#a155bb95b36c82e42f52872c92d49e102":[0,9,0,1,16,0],
+"struct_ucs___xrm___combiner__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd":[0,9,0,1,16,3],
+"struct_ucs___xrm___combiner__t_a3d1f833dbb35db5fed7638006fda4138.html#a3d1f833dbb35db5fed7638006fda4138":[0,9,0,1,16,1],
+"struct_ucs___xrm___combiner__t_ab4f0942e9c11cfa5e9db135b352c17a5.html#ab4f0942e9c11cfa5e9db135b352c17a5":[0,9,0,1,16,2],
+"struct_ucs___xrm___default_created_port__t.html":[0,9,0,1,5],
+"struct_ucs___xrm___default_created_port__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd":[0,9,0,1,5,2],
+"struct_ucs___xrm___default_created_port__t_a58cd72485f642399fb1815f026dbaae7.html#a58cd72485f642399fb1815f026dbaae7":[0,9,0,1,5,1],
+"struct_ucs___xrm___default_created_port__t_aae5a12e607d0f782506d9e6ec6179c64.html#aae5a12e607d0f782506d9e6ec6179c64":[0,9,0,1,5,0],
+"struct_ucs___xrm___dfi_phase_con__t.html":[0,9,0,1,15],
+"struct_ucs___xrm___dfi_phase_con__t_a21e5760677b48c43c5e4783306819f95.html#a21e5760677b48c43c5e4783306819f95":[0,9,0,1,15,2],
+"struct_ucs___xrm___dfi_phase_con__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd":[0,9,0,1,15,0],
+"struct_ucs___xrm___dfi_phase_con__t_ace5ef1fb3bd4337998a8f538645f47ed.html#ace5ef1fb3bd4337998a8f538645f47ed":[0,9,0,1,15,1],
+"struct_ucs___xrm___init_data__t.html":[0,9,0,1,1],
+"struct_ucs___xrm___init_data__t_a7ad953f5414061df43df073ece15e25b.html#a7ad953f5414061df43df073ece15e25b":[0,9,0,1,1,0],
+"struct_ucs___xrm___init_data__t_a9497e039c582e7d2804ee470d6812e91.html#a9497e039c582e7d2804ee470d6812e91":[0,9,0,1,1,1],
+"struct_ucs___xrm___mlb_port__t.html":[0,9,0,1,7],
+"struct_ucs___xrm___mlb_port__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd":[0,9,0,1,7,2],
+"struct_ucs___xrm___mlb_port__t_a7b2f976567481f67b381300eb1816c3e.html#a7b2f976567481f67b381300eb1816c3e":[0,9,0,1,7,0],
+"struct_ucs___xrm___mlb_port__t_aae5a12e607d0f782506d9e6ec6179c64.html#aae5a12e607d0f782506d9e6ec6179c64":[0,9,0,1,7,1],
+"struct_ucs___xrm___mlb_socket__t.html":[0,9,0,1,8],
+"struct_ucs___xrm___mlb_socket__t_a0008a6d765e7752725ad3dd2eb446033.html#a0008a6d765e7752725ad3dd2eb446033":[0,9,0,1,8,0],
+"struct_ucs___xrm___mlb_socket__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd":[0,9,0,1,8,5],
+"struct_ucs___xrm___mlb_socket__t_a37fe80d7da3769557b97ce02522623f0.html#a37fe80d7da3769557b97ce02522623f0":[0,9,0,1,8,4],
+"struct_ucs___xrm___mlb_socket__t_a6fc8b4a0550af42e193df56d3546108e.html#a6fc8b4a0550af42e193df56d3546108e":[0,9,0,1,8,3],
+"struct_ucs___xrm___mlb_socket__t_a983b482b6f4a0468e6e76e8a53e848ea.html#a983b482b6f4a0468e6e76e8a53e848ea":[0,9,0,1,8,2],
+"struct_ucs___xrm___mlb_socket__t_add5f2565470e3921623c880730abe765.html#add5f2565470e3921623c880730abe765":[0,9,0,1,8,1],
+"struct_ucs___xrm___most_socket__t.html":[0,9,0,1,6],
+"struct_ucs___xrm___most_socket__t_a0008a6d765e7752725ad3dd2eb446033.html#a0008a6d765e7752725ad3dd2eb446033":[0,9,0,1,6,0],
+"struct_ucs___xrm___most_socket__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd":[0,9,0,1,6,4],
+"struct_ucs___xrm___most_socket__t_a3d1f833dbb35db5fed7638006fda4138.html#a3d1f833dbb35db5fed7638006fda4138":[0,9,0,1,6,3],
+"struct_ucs___xrm___most_socket__t_a6fc8b4a0550af42e193df56d3546108e.html#a6fc8b4a0550af42e193df56d3546108e":[0,9,0,1,6,2],
+"struct_ucs___xrm___most_socket__t_a963061c04c4b780e3f9a11d61746904e.html#a963061c04c4b780e3f9a11d61746904e":[0,9,0,1,6,1],
+"struct_ucs___xrm___qo_s_con__t.html":[0,9,0,1,19],
+"struct_ucs___xrm___qo_s_con__t_a21e5760677b48c43c5e4783306819f95.html#a21e5760677b48c43c5e4783306819f95":[0,9,0,1,19,2],
+"struct_ucs___xrm___qo_s_con__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd":[0,9,0,1,19,0],
+"struct_ucs___xrm___qo_s_con__t_ace5ef1fb3bd4337998a8f538645f47ed.html#ace5ef1fb3bd4337998a8f538645f47ed":[0,9,0,1,19,1],
+"struct_ucs___xrm___res_identity__t.html":[0,9,0,1,4],
+"struct_ucs___xrm___res_identity__t_a4fe7fcd3cdb160c239e65543ac025953.html#a4fe7fcd3cdb160c239e65543ac025953":[0,9,0,1,4,1],
+"struct_ucs___xrm___res_identity__t_ab557e7d7735054f8f7d8cf576d4521c3.html#ab557e7d7735054f8f7d8cf576d4521c3":[0,9,0,1,4,0],
+"struct_ucs___xrm___result__t.html":[0,9,0,1,3],
+"struct_ucs___xrm___result__t_a7d575938c9e5eed9032435e39b376e90.html#a7d575938c9e5eed9032435e39b376e90":[0,9,0,1,3,0],
+"struct_ucs___xrm___result__t_ac704c276d74638909521f29cc722c8db.html#ac704c276d74638909521f29cc722c8db":[0,9,0,1,3,1],
+"struct_ucs___xrm___result_details__t.html":[0,9,0,1,2],
+"struct_ucs___xrm___result_details__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd":[0,9,0,1,2,3],
+"struct_ucs___xrm___result_details__t_a41ee1e9319711802cf5d79a2be7adcbf.html#a41ee1e9319711802cf5d79a2be7adcbf":[0,9,0,1,2,2],
+"struct_ucs___xrm___result_details__t_a4cb5ea6dd91baf049cf7d682202df0f4.html#a4cb5ea6dd91baf049cf7d682202df0f4":[0,9,0,1,2,4],
+"struct_ucs___xrm___result_details__t_abee2d1d2c9eebcbc9da920664e9eb248.html#abee2d1d2c9eebcbc9da920664e9eb248":[0,9,0,1,2,5],
+"struct_ucs___xrm___result_details__t_ac8f7bd459f5052601dbbab267d9d8067.html#ac8f7bd459f5052601dbbab267d9d8067":[0,9,0,1,2,0],
+"struct_ucs___xrm___result_details__t_aee65ac620e16fd7b0fe4135514394901.html#aee65ac620e16fd7b0fe4135514394901":[0,9,0,1,2,1],
+"struct_ucs___xrm___rmck_port__t.html":[0,9,0,1,11],
+"struct_ucs___xrm___rmck_port__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd":[0,9,0,1,11,3],
+"struct_ucs___xrm___rmck_port__t_a43e498c160eab1409e0ebdeabe62d31b.html#a43e498c160eab1409e0ebdeabe62d31b":[0,9,0,1,11,1],
+"struct_ucs___xrm___rmck_port__t_aae5a12e607d0f782506d9e6ec6179c64.html#aae5a12e607d0f782506d9e6ec6179c64":[0,9,0,1,11,2],
+"struct_ucs___xrm___rmck_port__t_abb3d396baa2a9ee33f499bf58c7ca8de.html#abb3d396baa2a9ee33f499bf58c7ca8de":[0,9,0,1,11,0],
+"struct_ucs___xrm___splitter__t.html":[0,9,0,1,17],
+"struct_ucs___xrm___splitter__t_a155bb95b36c82e42f52872c92d49e102.html#a155bb95b36c82e42f52872c92d49e102":[0,9,0,1,17,0],
+"struct_ucs___xrm___splitter__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd":[0,9,0,1,17,2],
+"struct_ucs___xrm___splitter__t_a3d1f833dbb35db5fed7638006fda4138.html#a3d1f833dbb35db5fed7638006fda4138":[0,9,0,1,17,1],
+"struct_ucs___xrm___splitter__t_ace5ef1fb3bd4337998a8f538645f47ed.html#ace5ef1fb3bd4337998a8f538645f47ed":[0,9,0,1,17,3],
+"struct_ucs___xrm___strm_port__t.html":[0,9,0,1,12],
+"struct_ucs___xrm___strm_port__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd":[0,9,0,1,12,3],
+"struct_ucs___xrm___strm_port__t_a62dd690bdc5ee223e9b91014df94614e.html#a62dd690bdc5ee223e9b91014df94614e":[0,9,0,1,12,0],
+"struct_ucs___xrm___strm_port__t_a924dbd8d86d71e043a36523760c368b4.html#a924dbd8d86d71e043a36523760c368b4":[0,9,0,1,12,1],
+"struct_ucs___xrm___strm_port__t_aae5a12e607d0f782506d9e6ec6179c64.html#aae5a12e607d0f782506d9e6ec6179c64":[0,9,0,1,12,2],
+"struct_ucs___xrm___strm_socket__t.html":[0,9,0,1,13],
+"struct_ucs___xrm___strm_socket__t_a0008a6d765e7752725ad3dd2eb446033.html#a0008a6d765e7752725ad3dd2eb446033":[0,9,0,1,13,0],
+"struct_ucs___xrm___strm_socket__t_a2938957a0791aa899aaedcca5b8c0405.html#a2938957a0791aa899aaedcca5b8c0405":[0,9,0,1,13,5],
+"struct_ucs___xrm___strm_socket__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd":[0,9,0,1,13,3],
+"struct_ucs___xrm___strm_socket__t_a5a9618dfa6b3de3a36d0392911a4d421.html#a5a9618dfa6b3de3a36d0392911a4d421":[0,9,0,1,13,1],
+"struct_ucs___xrm___strm_socket__t_a6fc8b4a0550af42e193df56d3546108e.html#a6fc8b4a0550af42e193df56d3546108e":[0,9,0,1,13,2],
+"struct_ucs___xrm___strm_socket__t_ab9430187fbd36c83ef163a19dcdd735c.html#ab9430187fbd36c83ef163a19dcdd735c":[0,9,0,1,13,4],
+"struct_ucs___xrm___sync_con__t.html":[0,9,0,1,14],
+"struct_ucs___xrm___sync_con__t_a21e5760677b48c43c5e4783306819f95.html#a21e5760677b48c43c5e4783306819f95":[0,9,0,1,14,4],
+"struct_ucs___xrm___sync_con__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd":[0,9,0,1,14,2],
+"struct_ucs___xrm___sync_con__t_ac681806181c80437cfab37335f62ff39.html#ac681806181c80437cfab37335f62ff39":[0,9,0,1,14,1],
+"struct_ucs___xrm___sync_con__t_ace5ef1fb3bd4337998a8f538645f47ed.html#ace5ef1fb3bd4337998a8f538645f47ed":[0,9,0,1,14,3],
+"struct_ucs___xrm___sync_con__t_ad24def4858c3013652eba166fe48d267.html#ad24def4858c3013652eba166fe48d267":[0,9,0,1,14,0],
+"struct_ucs___xrm___usb_port__t.html":[0,9,0,1,9],
+"struct_ucs___xrm___usb_port__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd":[0,9,0,1,9,3],
+"struct_ucs___xrm___usb_port__t_a7d57b66daf059fcd226dc4b78be54e79.html#a7d57b66daf059fcd226dc4b78be54e79":[0,9,0,1,9,0],
+"struct_ucs___xrm___usb_port__t_a95973cbb7c525bbb846928066bebe8f8.html#a95973cbb7c525bbb846928066bebe8f8":[0,9,0,1,9,5],
+"struct_ucs___xrm___usb_port__t_aa1e58aa745f43164a35bb10f76f27cf4.html#aa1e58aa745f43164a35bb10f76f27cf4":[0,9,0,1,9,4],
+"struct_ucs___xrm___usb_port__t_aae5a12e607d0f782506d9e6ec6179c64.html#aae5a12e607d0f782506d9e6ec6179c64":[0,9,0,1,9,1],
+"struct_ucs___xrm___usb_port__t_aea7ae4f766b52f8f4fa492449ba24c14.html#aea7ae4f766b52f8f4fa492449ba24c14":[0,9,0,1,9,2],
+"struct_ucs___xrm___usb_socket__t.html":[0,9,0,1,10],
+"struct_ucs___xrm___usb_socket__t_a10acc74574f398d6b12989cc1ed95fe0.html#a10acc74574f398d6b12989cc1ed95fe0":[0,9,0,1,10,2],
+"struct_ucs___xrm___usb_socket__t_a211077f7fcb5f6de9739ec4a6d0b0277.html#a211077f7fcb5f6de9739ec4a6d0b0277":[0,9,0,1,10,0],
+"struct_ucs___xrm___usb_socket__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd":[0,9,0,1,10,4],
+"struct_ucs___xrm___usb_socket__t_a35a2e808843151ff172ad4ddd8ad5b8a.html#a35a2e808843151ff172ad4ddd8ad5b8a":[0,9,0,1,10,3],
+"struct_ucs___xrm___usb_socket__t_a3fe892af2f377651d07638c52a163326.html#a3fe892af2f377651d07638c52a163326":[0,9,0,1,10,5],
+"struct_ucs___xrm___usb_socket__t_a6fc8b4a0550af42e193df56d3546108e.html#a6fc8b4a0550af42e193df56d3546108e":[0,9,0,1,10,1]
+};
diff --git a/ucs2-lib/doc/html/open.png b/ucs2-lib/doc/html/open.png
new file mode 100644
index 0000000..24fbfd2
--- /dev/null
+++ b/ucs2-lib/doc/html/open.png
Binary files differ
diff --git a/ucs2-lib/doc/html/release_package_directory.png b/ucs2-lib/doc/html/release_package_directory.png
new file mode 100644
index 0000000..967ac7f
--- /dev/null
+++ b/ucs2-lib/doc/html/release_package_directory.png
Binary files differ
diff --git a/ucs2-lib/doc/html/resize.js b/ucs2-lib/doc/html/resize.js
new file mode 100644
index 0000000..9fe82ba
--- /dev/null
+++ b/ucs2-lib/doc/html/resize.js
@@ -0,0 +1,93 @@
+var cookie_namespace = 'doxygen';
+var sidenav,navtree,content,header;
+
+function readCookie(cookie)
+{
+ var myCookie = cookie_namespace+"_"+cookie+"=";
+ if (document.cookie)
+ {
+ var index = document.cookie.indexOf(myCookie);
+ if (index != -1)
+ {
+ var valStart = index + myCookie.length;
+ var valEnd = document.cookie.indexOf(";", valStart);
+ if (valEnd == -1)
+ {
+ valEnd = document.cookie.length;
+ }
+ var val = document.cookie.substring(valStart, valEnd);
+ return val;
+ }
+ }
+ return 0;
+}
+
+function writeCookie(cookie, val, expiration)
+{
+ if (val==undefined) return;
+ if (expiration == null)
+ {
+ var date = new Date();
+ date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week
+ expiration = date.toGMTString();
+ }
+ document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; expires=" + expiration+"; path=/";
+}
+
+function resizeWidth()
+{
+ var windowWidth = $(window).width() + "px";
+ var sidenavWidth = $(sidenav).width();
+ content.css({marginLeft:parseInt(sidenavWidth)+6+"px"}); //account for 6px-wide handle-bar
+ writeCookie('width',sidenavWidth, null);
+}
+
+function restoreWidth(navWidth)
+{
+ var windowWidth = $(window).width() + "px";
+ content.css({marginLeft:parseInt(navWidth)+6+"px"});
+ sidenav.css({width:navWidth + "px"});
+}
+
+function resizeHeight()
+{
+ var headerHeight = header.height();
+ var footerHeight = footer.height();
+ var windowHeight = $(window).height() - headerHeight - footerHeight;
+ content.css({height:windowHeight + "px"});
+ navtree.css({height:windowHeight + "px"});
+ sidenav.css({height:windowHeight + "px",top: headerHeight+"px"});
+}
+
+function initResizable()
+{
+ header = $("#top");
+ sidenav = $("#side-nav");
+ content = $("#doc-content");
+ navtree = $("#nav-tree");
+ footer = $("#nav-path");
+ $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } });
+ $(window).resize(function() { resizeHeight(); });
+ var width = readCookie('width');
+ if (width) { restoreWidth(width); } else { resizeWidth(); }
+ resizeHeight();
+ var url = location.href;
+ var i=url.indexOf("#");
+ if (i>=0) window.location.hash=url.substr(i);
+ var _preventDefault = function(evt) { evt.preventDefault(); };
+ $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault);
+ $(document).bind('touchmove',function(e){
+ try {
+ var target = e.target;
+ while (target) {
+ if ($(target).css('-webkit-overflow-scrolling')=='touch') return;
+ target = target.parentNode;
+ }
+ e.preventDefault();
+ } catch(err) {
+ e.preventDefault();
+ }
+ });
+}
+
+
diff --git a/ucs2-lib/doc/html/routing_physical_pov.png b/ucs2-lib/doc/html/routing_physical_pov.png
new file mode 100644
index 0000000..3d8459b
--- /dev/null
+++ b/ucs2-lib/doc/html/routing_physical_pov.png
Binary files differ
diff --git a/ucs2-lib/doc/html/search/all_61.html b/ucs2-lib/doc/html/search/all_61.html
new file mode 100644
index 0000000..a3164d5
--- /dev/null
+++ b/ucs2-lib/doc/html/search/all_61.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_61.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/all_61.js b/ucs2-lib/doc/html/search/all_61.js
new file mode 100644
index 0000000..4437903
--- /dev/null
+++ b/ucs2-lib/doc/html/search/all_61.js
@@ -0,0 +1,11 @@
+var searchData=
+[
+ ['active',['active',['../struct_ucs___rm___route__t_a05c940dbc220f5a723afd70071aebff8.html#a05c940dbc220f5a723afd70071aebff8',1,'Ucs_Rm_Route_t']]],
+ ['address',['address',['../struct_ucs___prg___command__t_ac0d31ca829f934cccd89f8054e02773e.html#ac0d31ca829f934cccd89f8054e02773e',1,'Ucs_Prg_Command_t']]],
+ ['admin_5fnode_5faddress',['admin_node_address',['../struct_c_programming_a9b9ca9dbb62f68667558e9ba9250f707.html#a9b9ca9dbb62f68667558e9ba9250f707',1,'CProgramming']]],
+ ['ams',['ams',['../struct_ucs___init_data__t_afc4097eb34fb5c24bb13e02b6f506b3c.html#afc4097eb34fb5c24bb13e02b6f506b3c',1,'Ucs_InitData_t']]],
+ ['application_20message_20service',['Application Message Service',['../group___g___u_c_s___a_m_s.html',1,'']]],
+ ['additional_20streaming_20port_20functions',['Additional Streaming Port Functions',['../group___g___u_c_s___x_r_m___s_t_r_e_a_m.html',1,'']]],
+ ['appendix',['Appendix',['../_p__d_o_c_u__a_p_p_e_n_d_i_x.html',1,'index']]],
+ ['application_20message_20service',['Application Message Service',['../_p__u_m__s_t_a_r_t_e_d__a_m_s.html',1,'P_UM_GETTING_STARTED']]]
+];
diff --git a/ucs2-lib/doc/html/search/all_62.html b/ucs2-lib/doc/html/search/all_62.html
new file mode 100644
index 0000000..ee8871c
--- /dev/null
+++ b/ucs2-lib/doc/html/search/all_62.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_62.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/all_62.js b/ucs2-lib/doc/html/search/all_62.js
new file mode 100644
index 0000000..d356682
--- /dev/null
+++ b/ucs2-lib/doc/html/search/all_62.js
@@ -0,0 +1,10 @@
+var searchData=
+[
+ ['bandwidth',['bandwidth',['../struct_ucs___xrm___most_socket__t_a0008a6d765e7752725ad3dd2eb446033.html#a0008a6d765e7752725ad3dd2eb446033',1,'Ucs_Xrm_MostSocket_t::bandwidth()'],['../struct_ucs___xrm___mlb_socket__t_a0008a6d765e7752725ad3dd2eb446033.html#a0008a6d765e7752725ad3dd2eb446033',1,'Ucs_Xrm_MlbSocket_t::bandwidth()'],['../struct_ucs___xrm___strm_socket__t_a0008a6d765e7752725ad3dd2eb446033.html#a0008a6d765e7752725ad3dd2eb446033',1,'Ucs_Xrm_StrmSocket_t::bandwidth()']]],
+ ['base',['base',['../struct_c_programming_a52f06fda08f2eb2b225c6201e38d1788.html#a52f06fda08f2eb2b225c6201e38d1788',1,'CProgramming']]],
+ ['branch',['branch',['../struct_ucs___sd___segment__t_a26bfba1996180ca29222aeccbd62068c.html#a26bfba1996180ca29222aeccbd62068c',1,'Ucs_Sd_Segment_t']]],
+ ['build_5fversion',['build_version',['../struct_ucs___inic___version__t_ab190dafd0511e594196f0d25f0cd99dc.html#ab190dafd0511e594196f0d25f0cd99dc',1,'Ucs_Inic_Version_t']]],
+ ['bytes_5fper_5fframe',['bytes_per_frame',['../struct_ucs___xrm___combiner__t_a155bb95b36c82e42f52872c92d49e102.html#a155bb95b36c82e42f52872c92d49e102',1,'Ucs_Xrm_Combiner_t::bytes_per_frame()'],['../struct_ucs___xrm___splitter__t_a155bb95b36c82e42f52872c92d49e102.html#a155bb95b36c82e42f52872c92d49e102',1,'Ucs_Xrm_Splitter_t::bytes_per_frame()']]],
+ ['backchannel_20diagnosis',['BackChannel Diagnosis',['../group___g___u_c_s___b_c___d_i_a_g.html',1,'']]],
+ ['backchannel_20diagnosis',['BackChannel Diagnosis',['../_p__u_m__b_a_c_k_c_h_a_n_n_e_l__d_i_a_g.html',1,'P_UM_GETTING_STARTED']]]
+];
diff --git a/ucs2-lib/doc/html/search/all_63.html b/ucs2-lib/doc/html/search/all_63.html
new file mode 100644
index 0000000..56b5ad1
--- /dev/null
+++ b/ucs2-lib/doc/html/search/all_63.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_63.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/all_63.js b/ucs2-lib/doc/html/search/all_63.js
new file mode 100644
index 0000000..15c5be3
--- /dev/null
+++ b/ucs2-lib/doc/html/search/all_63.js
@@ -0,0 +1,26 @@
+var searchData=
+[
+ ['cable_5flink_5finfo',['cable_link_info',['../struct_ucs___sd___report__t_a6caff4f48d1e2f1afc97934836388272.html#a6caff4f48d1e2f1afc97934836388272',1,'Ucs_Sd_Report_t']]],
+ ['cancel_5fid',['cancel_id',['../struct_msg___tx_options__t_a454f250afc20ddc93a508bc004df753e.html#a454f250afc20ddc93a508bc004df753e',1,'Msg_TxOptions_t']]],
+ ['cb_5ffptr',['cb_fptr',['../struct_ucs___network___status__t_a08f6acd8566e419c7017fc1874720223.html#a08f6acd8566e419c7017fc1874720223',1,'Ucs_Network_Status_t']]],
+ ['channel_5faddress',['channel_address',['../struct_ucs___xrm___mlb_socket__t_add5f2565470e3921623c880730abe765.html#add5f2565470e3921623c880730abe765',1,'Ucs_Xrm_MlbSocket_t']]],
+ ['check_5funmute_5ffptr',['check_unmute_fptr',['../struct_ucs___xrm___init_data__t_a7ad953f5414061df43df073ece15e25b.html#a7ad953f5414061df43df073ece15e25b',1,'Ucs_Xrm_InitData_t']]],
+ ['chip_5fid',['chip_id',['../struct_ucs___signature__t_a88e300db221e7a0382f2a4c289b9557d.html#a88e300db221e7a0382f2a4c289b9557d',1,'Ucs_Signature_t']]],
+ ['clock_5fconfig',['clock_config',['../struct_ucs___xrm___mlb_port__t_a7b2f976567481f67b381300eb1816c3e.html#a7b2f976567481f67b381300eb1816c3e',1,'Ucs_Xrm_MlbPort_t::clock_config()'],['../struct_ucs___xrm___strm_port__t_a62dd690bdc5ee223e9b91014df94614e.html#a62dd690bdc5ee223e9b91014df94614e',1,'Ucs_Xrm_StrmPort_t::clock_config()']]],
+ ['clock_5fsource',['clock_source',['../struct_ucs___xrm___rmck_port__t_abb3d396baa2a9ee33f499bf58c7ca8de.html#abb3d396baa2a9ee33f499bf58c7ca8de',1,'Ucs_Xrm_RmckPort_t']]],
+ ['code',['code',['../struct_ucs___sd___report__t_a4516a98acab86432eea6035e2856a7e4.html#a4516a98acab86432eea6035e2856a7e4',1,'Ucs_Sd_Report_t::code()'],['../struct_ucs___gpio___result__t_a5a25ac28b5135e04a465fdead03df796.html#a5a25ac28b5135e04a465fdead03df796',1,'Ucs_Gpio_Result_t::code()'],['../struct_ucs___i2c___result__t_aacd0e1eabaa18a3fe226a2b4f849832b.html#aacd0e1eabaa18a3fe226a2b4f849832b',1,'Ucs_I2c_Result_t::code()'],['../struct_ucs___xrm___result__t_a7d575938c9e5eed9032435e39b376e90.html#a7d575938c9e5eed9032435e39b376e90',1,'Ucs_Xrm_Result_t::code()'],['../struct_ucs___std_result__t_a02d8eefc721a797ac87f5030774972ef.html#a02d8eefc721a797ac87f5030774972ef',1,'Ucs_StdResult_t::code()']]],
+ ['command_5findex',['command_index',['../struct_c_programming_a87ab79c86a6b6023f00cfdf465dad09a.html#a87ab79c86a6b6023f00cfdf465dad09a',1,'CProgramming']]],
+ ['command_5flist',['command_list',['../struct_c_programming_ae6d9d0f0acd5d6473bfbb35d75a50857.html#ae6d9d0f0acd5d6473bfbb35d75a50857',1,'CProgramming']]],
+ ['cprogramming',['CProgramming',['../struct_c_programming.html',1,'']]],
+ ['cs_5fmajor',['cs_major',['../struct_ucs___signature__t_a0d446be5f898a8ae0738b2cefb0b8b37.html#a0d446be5f898a8ae0738b2cefb0b8b37',1,'Ucs_Signature_t']]],
+ ['cs_5fmajor_5fversion',['cs_major_version',['../struct_ucs___inic___version__t_abae3da4c5cc12b7d7470701f1811caa2.html#abae3da4c5cc12b7d7470701f1811caa2',1,'Ucs_Inic_Version_t']]],
+ ['cs_5fminor',['cs_minor',['../struct_ucs___signature__t_afd22089496c4f8c46afc7eabcbe3b8f7.html#afd22089496c4f8c46afc7eabcbe3b8f7',1,'Ucs_Signature_t']]],
+ ['cs_5fminor_5fversion',['cs_minor_version',['../struct_ucs___inic___version__t_aedae893bc0a52aed213d0dcef8262921.html#aedae893bc0a52aed213d0dcef8262921',1,'Ucs_Inic_Version_t']]],
+ ['cs_5frelease',['cs_release',['../struct_ucs___signature__t_a85df7718b1da0f0b195926db0f22e24f.html#a85df7718b1da0f0b195926db0f22e24f',1,'Ucs_Signature_t']]],
+ ['cs_5frelease_5fversion',['cs_release_version',['../struct_ucs___inic___version__t_aed9e506bf23c33ccb10ba21404859a74.html#aed9e506bf23c33ccb10ba21404859a74',1,'Ucs_Inic_Version_t']]],
+ ['current_5ffunction',['current_function',['../struct_c_programming_a6faea6381a3c39905de4fca5cb966a81.html#a6faea6381a3c39905de4fca5cb966a81',1,'CProgramming']]],
+ ['custom_5finfo_5fptr',['custom_info_ptr',['../struct_ucs___ams_tx___msg__t_a1c691c4fcbb0562f9a9c9e07f1166319.html#a1c691c4fcbb0562f9a9c9e07f1166319',1,'Ucs_AmsTx_Msg_t::custom_info_ptr()'],['../struct_ucs___ams_rx___msg__t_a1c691c4fcbb0562f9a9c9e07f1166319.html#a1c691c4fcbb0562f9a9c9e07f1166319',1,'Ucs_AmsRx_Msg_t::custom_info_ptr()']]],
+ ['custom_5fnext_5fmsg_5fptr',['custom_next_msg_ptr',['../struct_ucs___lld___tx_msg__t_ae6dfc382578b04d70665e7c805fdc4c2.html#ae6dfc382578b04d70665e7c805fdc4c2',1,'Ucs_Lld_TxMsg_t']]],
+ ['command_20interpreter',['Command Interpreter',['../group___g___u_c_s___c_m_d.html',1,'']]],
+ ['command_20interpreter',['Command Interpreter',['../_p__u_m__s_t_a_r_t_e_d__c_m_d.html',1,'P_UM_GETTING_STARTED']]]
+];
diff --git a/ucs2-lib/doc/html/search/all_64.html b/ucs2-lib/doc/html/search/all_64.html
new file mode 100644
index 0000000..b53ff08
--- /dev/null
+++ b/ucs2-lib/doc/html/search/all_64.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_64.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/all_64.js b/ucs2-lib/doc/html/search/all_64.js
new file mode 100644
index 0000000..9160d96
--- /dev/null
+++ b/ucs2-lib/doc/html/search/all_64.js
@@ -0,0 +1,21 @@
+var searchData=
+[
+ ['data',['data',['../struct_ucs___prg___command__t_abe222f6d3581e7920dcad5306cc906a8.html#abe222f6d3581e7920dcad5306cc906a8',1,'Ucs_Prg_Command_t']]],
+ ['data_5falignment',['data_alignment',['../struct_ucs___xrm___strm_port__t_a924dbd8d86d71e043a36523760c368b4.html#a924dbd8d86d71e043a36523760c368b4',1,'Ucs_Xrm_StrmPort_t']]],
+ ['data_5flength',['data_length',['../struct_ucs___prg___command__t_ad97c802f66f41e937c3f8b33337b8c6d.html#ad97c802f66f41e937c3f8b33337b8c6d',1,'Ucs_Prg_Command_t']]],
+ ['data_5fptr',['data_ptr',['../struct_ucs___ams_tx___msg__t_a6166cef59cbe432be35512925debeae6.html#a6166cef59cbe432be35512925debeae6',1,'Ucs_AmsTx_Msg_t::data_ptr()'],['../struct_ucs___ams_rx___msg__t_a6166cef59cbe432be35512925debeae6.html#a6166cef59cbe432be35512925debeae6',1,'Ucs_AmsRx_Msg_t::data_ptr()'],['../struct_ucs___lld___rx_msg__t_a6166cef59cbe432be35512925debeae6.html#a6166cef59cbe432be35512925debeae6',1,'Ucs_Lld_RxMsg_t::data_ptr()'],['../struct_ucs___mem___buffer__t_a6166cef59cbe432be35512925debeae6.html#a6166cef59cbe432be35512925debeae6',1,'Ucs_Mem_Buffer_t::data_ptr()']]],
+ ['data_5fsize',['data_size',['../struct_ucs___ams_tx___msg__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html#aae6bdbdf6ea1ad3da5af37f0a91d3ea0',1,'Ucs_AmsTx_Msg_t::data_size()'],['../struct_ucs___ams_rx___msg__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html#aae6bdbdf6ea1ad3da5af37f0a91d3ea0',1,'Ucs_AmsRx_Msg_t::data_size()'],['../struct_ucs___lld___rx_msg__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html#aae6bdbdf6ea1ad3da5af37f0a91d3ea0',1,'Ucs_Lld_RxMsg_t::data_size()'],['../struct_ucs___mem___buffer__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html#aae6bdbdf6ea1ad3da5af37f0a91d3ea0',1,'Ucs_Mem_Buffer_t::data_size()']]],
+ ['data_5ftype',['data_type',['../struct_ucs___xrm___most_socket__t_a963061c04c4b780e3f9a11d61746904e.html#a963061c04c4b780e3f9a11d61746904e',1,'Ucs_Xrm_MostSocket_t::data_type()'],['../struct_ucs___xrm___mlb_socket__t_a983b482b6f4a0468e6e76e8a53e848ea.html#a983b482b6f4a0468e6e76e8a53e848ea',1,'Ucs_Xrm_MlbSocket_t::data_type()'],['../struct_ucs___xrm___usb_socket__t_a211077f7fcb5f6de9739ec4a6d0b0277.html#a211077f7fcb5f6de9739ec4a6d0b0277',1,'Ucs_Xrm_UsbSocket_t::data_type()'],['../struct_ucs___xrm___strm_socket__t_a5a9618dfa6b3de3a36d0392911a4d421.html#a5a9618dfa6b3de3a36d0392911a4d421',1,'Ucs_Xrm_StrmSocket_t::data_type()']]],
+ ['datalen',['DataLen',['../struct_ucs___ns___config_msg__t_ab81bc4284c46cfa5378520e45441ef32.html#ab81bc4284c46cfa5378520e45441ef32',1,'Ucs_Ns_ConfigMsg_t']]],
+ ['dataptr',['DataPtr',['../struct_ucs___ns___config_msg__t_ad076d2b6eaae6f9b32363de4729e9349.html#ad076d2b6eaae6f9b32363de4729e9349',1,'Ucs_Ns_ConfigMsg_t']]],
+ ['debug_5ferror_5fmsg_5ffptr',['debug_error_msg_fptr',['../struct_ucs___general___init_data__t_ad21ca235fca8aa5dbc81e6a82ca0f867.html#ad21ca235fca8aa5dbc81e6a82ca0f867',1,'Ucs_General_InitData_t']]],
+ ['debug_5fresource_5fstatus_5ffptr',['debug_resource_status_fptr',['../struct_ucs___rm___init_data__t_a68590d8712353f94f2e9ccec1e21baa5.html#a68590d8712353f94f2e9ccec1e21baa5',1,'Ucs_Rm_InitData_t']]],
+ ['default_5fllrbc',['default_llrbc',['../struct_ucs___ams_tx___init_data__t_a804bd7e626fd73b27d18af9a036d7ad4.html#a804bd7e626fd73b27d18af9a036d7ad4',1,'Ucs_AmsTx_InitData_t']]],
+ ['destination_5faddr',['destination_addr',['../struct_msg___most_tel__t_a67473c671719a1e3f3fe0ad16e95dd83.html#a67473c671719a1e3f3fe0ad16e95dd83',1,'Msg_MostTel_t']]],
+ ['destination_5faddress',['destination_address',['../struct_ucs___ams_tx___msg__t_a9a199f6a8a711b94ff827e6807980cb3.html#a9a199f6a8a711b94ff827e6807980cb3',1,'Ucs_AmsTx_Msg_t']]],
+ ['details',['details',['../struct_ucs___gpio___result__t_a834bf2a84ecdbd878eb0edbf89bc0b88.html#a834bf2a84ecdbd878eb0edbf89bc0b88',1,'Ucs_Gpio_Result_t::details()'],['../struct_ucs___i2c___result__t_a288b89d26129791b83b01a3b464d7351.html#a288b89d26129791b83b01a3b464d7351',1,'Ucs_I2c_Result_t::details()'],['../struct_ucs___xrm___result__t_ac704c276d74638909521f29cc722c8db.html#ac704c276d74638909521f29cc722c8db',1,'Ucs_Xrm_Result_t::details()']]],
+ ['devices_5finterfaces',['devices_interfaces',['../struct_ucs___xrm___usb_port__t_a7d57b66daf059fcd226dc4b78be54e79.html#a7d57b66daf059fcd226dc4b78be54e79',1,'Ucs_Xrm_UsbPort_t']]],
+ ['diagnosis_5fid',['diagnosis_id',['../struct_ucs___inic___version__t_ab98cc6d6cb5cc92d5f6633419daa643e.html#ab98cc6d6cb5cc92d5f6633419daa643e',1,'Ucs_Inic_Version_t::diagnosis_id()'],['../struct_ucs___signature__t_ab98cc6d6cb5cc92d5f6633419daa643e.html#ab98cc6d6cb5cc92d5f6633419daa643e',1,'Ucs_Signature_t::diagnosis_id()']]],
+ ['direction',['direction',['../struct_ucs___xrm___most_socket__t_a6fc8b4a0550af42e193df56d3546108e.html#a6fc8b4a0550af42e193df56d3546108e',1,'Ucs_Xrm_MostSocket_t::direction()'],['../struct_ucs___xrm___mlb_socket__t_a6fc8b4a0550af42e193df56d3546108e.html#a6fc8b4a0550af42e193df56d3546108e',1,'Ucs_Xrm_MlbSocket_t::direction()'],['../struct_ucs___xrm___usb_socket__t_a6fc8b4a0550af42e193df56d3546108e.html#a6fc8b4a0550af42e193df56d3546108e',1,'Ucs_Xrm_UsbSocket_t::direction()'],['../struct_ucs___xrm___strm_socket__t_a6fc8b4a0550af42e193df56d3546108e.html#a6fc8b4a0550af42e193df56d3546108e',1,'Ucs_Xrm_StrmSocket_t::direction()']]],
+ ['divisor',['divisor',['../struct_ucs___xrm___rmck_port__t_a43e498c160eab1409e0ebdeabe62d31b.html#a43e498c160eab1409e0ebdeabe62d31b',1,'Ucs_Xrm_RmckPort_t']]]
+];
diff --git a/ucs2-lib/doc/html/search/all_65.html b/ucs2-lib/doc/html/search/all_65.html
new file mode 100644
index 0000000..66cc834
--- /dev/null
+++ b/ucs2-lib/doc/html/search/all_65.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_65.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/all_65.js b/ucs2-lib/doc/html/search/all_65.js
new file mode 100644
index 0000000..6d09913
--- /dev/null
+++ b/ucs2-lib/doc/html/search/all_65.js
@@ -0,0 +1,13 @@
+var searchData=
+[
+ ['enabled',['enabled',['../struct_ucs___ams___init_data__t_a8740ba80e30dd75e71d09fa1dcf04f3d.html#a8740ba80e30dd75e71d09fa1dcf04f3d',1,'Ucs_Ams_InitData_t::enabled()'],['../struct_ucs___mgr___init_data__t_a8740ba80e30dd75e71d09fa1dcf04f3d.html#a8740ba80e30dd75e71d09fa1dcf04f3d',1,'Ucs_Mgr_InitData_t::enabled()']]],
+ ['end_5fpoint_5faddr',['end_point_addr',['../struct_ucs___xrm___usb_socket__t_a10acc74574f398d6b12989cc1ed95fe0.html#a10acc74574f398d6b12989cc1ed95fe0',1,'Ucs_Xrm_UsbSocket_t']]],
+ ['endpoint_5ftype',['endpoint_type',['../struct_ucs___rm___end_point__t_a7e46feb849d169800b21d689de273901.html#a7e46feb849d169800b21d689de273901',1,'Ucs_Rm_EndPoint_t']]],
+ ['err_5finfo',['err_info',['../struct_ucs___sd___report__t_a4b94cabfc6ee64196ca32cf1f0c1040f.html#a4b94cabfc6ee64196ca32cf1f0c1040f',1,'Ucs_Sd_Report_t']]],
+ ['error',['error',['../struct_c_programming_a2e6eb03384cae6a78a3ab2a9a63229e9.html#a2e6eb03384cae6a78a3ab2a9a63229e9',1,'CProgramming']]],
+ ['error_5ffptr',['error_fptr',['../struct_ucs___general___init_data__t_aa197d5a04c7eee7b95eb9e1de232d161.html#aa197d5a04c7eee7b95eb9e1de232d161',1,'Ucs_General_InitData_t']]],
+ ['eval_5ffptr',['eval_fptr',['../struct_ucs___nd___init_data__t_ab9bc02a84c7daeff234344541d41be62.html#ab9bc02a84c7daeff234344541d41be62',1,'Ucs_Nd_InitData_t']]],
+ ['exc',['exc',['../struct_c_programming_a510e91e91f2f7b75fb6ea9d7760fc81c.html#a510e91e91f2f7b75fb6ea9d7760fc81c',1,'CProgramming']]],
+ ['exp_5fresult',['exp_result',['../struct_ucs___ns___script__t_a916bebb6486ddd6e58ded2f18d97ee62.html#a916bebb6486ddd6e58ded2f18d97ee62',1,'Ucs_Ns_Script_t']]],
+ ['extended_20resources_20management',['Extended Resources Management',['../group___g___u_c_s___i_r_m.html',1,'']]]
+];
diff --git a/ucs2-lib/doc/html/search/all_66.html b/ucs2-lib/doc/html/search/all_66.html
new file mode 100644
index 0000000..3d1f8b3
--- /dev/null
+++ b/ucs2-lib/doc/html/search/all_66.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_66.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/all_66.js b/ucs2-lib/doc/html/search/all_66.js
new file mode 100644
index 0000000..8d64ece
--- /dev/null
+++ b/ucs2-lib/doc/html/search/all_66.js
@@ -0,0 +1,13 @@
+var searchData=
+[
+ ['fblock_5fid',['fblock_id',['../struct_msg___msg_id__t_afadabe68185500b54de12bf7701db13b.html#afadabe68185500b54de12bf7701db13b',1,'Msg_MsgId_t']]],
+ ['fblockid',['FBlockId',['../struct_ucs___ns___config_msg__t_aeb1ff6787da243b8d6ced7bce3ee46d5.html#aeb1ff6787da243b8d6ced7bce3ee46d5',1,'Ucs_Ns_ConfigMsg_t']]],
+ ['frames_5fper_5ftransfer',['frames_per_transfer',['../struct_ucs___xrm___usb_socket__t_a35a2e808843151ff172ad4ddd8ad5b8a.html#a35a2e808843151ff172ad4ddd8ad5b8a',1,'Ucs_Xrm_UsbSocket_t']]],
+ ['fsm',['fsm',['../struct_c_programming_ae20a8288958f7ad71b35a1e460f25d4c.html#ae20a8288958f7ad71b35a1e460f25d4c',1,'CProgramming']]],
+ ['function_5fid',['function_id',['../struct_msg___msg_id__t_a6cb0848efba59a9a23dbbe0480f04c85.html#a6cb0848efba59a9a23dbbe0480f04c85',1,'Msg_MsgId_t']]],
+ ['funktid',['FunktId',['../struct_ucs___ns___config_msg__t_ad758e0bb7d48d20f40d5acbfcf916eb1.html#ad758e0bb7d48d20f40d5acbfcf916eb1',1,'Ucs_Ns_ConfigMsg_t']]],
+ ['fw_5fbuild',['fw_build',['../struct_ucs___signature__t_a1149e000267e8c93bed1aa393c09c047.html#a1149e000267e8c93bed1aa393c09c047',1,'Ucs_Signature_t']]],
+ ['fw_5fmajor',['fw_major',['../struct_ucs___signature__t_ac99479d164f096f8c3bc3c2c9043a75f.html#ac99479d164f096f8c3bc3c2c9043a75f',1,'Ucs_Signature_t']]],
+ ['fw_5fminor',['fw_minor',['../struct_ucs___signature__t_a15ea388e2fbe80fafdd20a6d8302ad05.html#a15ea388e2fbe80fafdd20a6d8302ad05',1,'Ucs_Signature_t']]],
+ ['fw_5frelease',['fw_release',['../struct_ucs___signature__t_a837edc8b3982713e064919786095b18d.html#a837edc8b3982713e064919786095b18d',1,'Ucs_Signature_t']]]
+];
diff --git a/ucs2-lib/doc/html/search/all_67.html b/ucs2-lib/doc/html/search/all_67.html
new file mode 100644
index 0000000..41a459a
--- /dev/null
+++ b/ucs2-lib/doc/html/search/all_67.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_67.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/all_67.js b/ucs2-lib/doc/html/search/all_67.js
new file mode 100644
index 0000000..b944531
--- /dev/null
+++ b/ucs2-lib/doc/html/search/all_67.js
@@ -0,0 +1,10 @@
+var searchData=
+[
+ ['gpio',['GPIO',['../group___g___u_c_s___g_p_i_o.html',1,'']]],
+ ['gpio_20referred_20types',['GPIO Referred Types',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s.html',1,'']]],
+ ['general',['general',['../struct_ucs___init_data__t_a43e7559dfe1bc2860cb0d2749fa66071.html#a43e7559dfe1bc2860cb0d2749fa66071',1,'Ucs_InitData_t']]],
+ ['get_5ftick_5fcount_5ffptr',['get_tick_count_fptr',['../struct_ucs___general___init_data__t_a4e1140be3951f0e14d4071840f4ebc8e.html#a4e1140be3951f0e14d4071840f4ebc8e',1,'Ucs_General_InitData_t']]],
+ ['gpio',['gpio',['../struct_ucs___init_data__t_aaff1fbd74feb484366c4082f00f2aea7.html#aaff1fbd74feb484366c4082f00f2aea7',1,'Ucs_InitData_t']]],
+ ['group_5faddress',['group_address',['../struct_ucs___signature__t_a20ed5721c4d2a493d8abd061950bd675.html#a20ed5721c4d2a493d8abd061950bd675',1,'Ucs_Signature_t']]],
+ ['getting_20started',['Getting Started',['../_p__u_m__g_e_t_t_i_n_g__s_t_a_r_t_e_d.html',1,'index']]]
+];
diff --git a/ucs2-lib/doc/html/search/all_68.html b/ucs2-lib/doc/html/search/all_68.html
new file mode 100644
index 0000000..6df9097
--- /dev/null
+++ b/ucs2-lib/doc/html/search/all_68.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_68.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/all_68.js b/ucs2-lib/doc/html/search/all_68.js
new file mode 100644
index 0000000..3939fe8
--- /dev/null
+++ b/ucs2-lib/doc/html/search/all_68.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['handler_5ffunction_5fptr',['handler_function_ptr',['../struct_ucs___cmd___msg_id__t_a7a00edfeadc4cc2a50b9136d2d368c23.html#a7a00edfeadc4cc2a50b9136d2d368c23',1,'Ucs_Cmd_MsgId_t']]],
+ ['hw_5frevision',['hw_revision',['../struct_ucs___inic___version__t_afd5796c03158d03bb72378ce02535beb.html#afd5796c03158d03bb72378ce02535beb',1,'Ucs_Inic_Version_t']]]
+];
diff --git a/ucs2-lib/doc/html/search/all_69.html b/ucs2-lib/doc/html/search/all_69.html
new file mode 100644
index 0000000..1a00b55
--- /dev/null
+++ b/ucs2-lib/doc/html/search/all_69.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_69.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/all_69.js b/ucs2-lib/doc/html/search/all_69.js
new file mode 100644
index 0000000..e577db5
--- /dev/null
+++ b/ucs2-lib/doc/html/search/all_69.js
@@ -0,0 +1,23 @@
+var searchData=
+[
+ ['i2c',['I2C',['../group___g___u_c_s___i2_c.html',1,'']]],
+ ['i2c_20referred_20types',['I2C Referred Types',['../group___g___u_c_s___i2_c___t_y_p_e_s.html',1,'']]],
+ ['inic',['INIC',['../group___g___u_c_s___i_n_i_c.html',1,'']]],
+ ['initialization_20and_20service',['Initialization and Service',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v.html',1,'']]],
+ ['initialization_20and_20service_20types',['Initialization and Service Types',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s.html',1,'']]],
+ ['i2c',['i2c',['../struct_ucs___init_data__t_a1b49223d94d385d1229b6864ad7fa053.html#a1b49223d94d385d1229b6864ad7fa053',1,'Ucs_InitData_t']]],
+ ['id',['id',['../struct_msg___most_tel__t_a6d80d11eae3ae15f09cc8aff3dabb89b.html#a6d80d11eae3ae15f09cc8aff3dabb89b',1,'Msg_MostTel_t']]],
+ ['index',['index',['../struct_ucs___xrm___default_created_port__t_aae5a12e607d0f782506d9e6ec6179c64.html#aae5a12e607d0f782506d9e6ec6179c64',1,'Ucs_Xrm_DefaultCreatedPort_t::index()'],['../struct_ucs___xrm___mlb_port__t_aae5a12e607d0f782506d9e6ec6179c64.html#aae5a12e607d0f782506d9e6ec6179c64',1,'Ucs_Xrm_MlbPort_t::index()'],['../struct_ucs___xrm___usb_port__t_aae5a12e607d0f782506d9e6ec6179c64.html#aae5a12e607d0f782506d9e6ec6179c64',1,'Ucs_Xrm_UsbPort_t::index()'],['../struct_ucs___xrm___rmck_port__t_aae5a12e607d0f782506d9e6ec6179c64.html#aae5a12e607d0f782506d9e6ec6179c64',1,'Ucs_Xrm_RmckPort_t::index()'],['../struct_ucs___xrm___strm_port__t_aae5a12e607d0f782506d9e6ec6179c64.html#aae5a12e607d0f782506d9e6ec6179c64',1,'Ucs_Xrm_StrmPort_t::index()']]],
+ ['info_5fptr',['info_ptr',['../struct_ucs___std_result__t_ab89f4871a6526d4d409fca9ee58ce176.html#ab89f4871a6526d4d409fca9ee58ce176',1,'Ucs_StdResult_t::info_ptr()'],['../struct_msg___most_tel__t_abc779299d755d192cd021eb2c2a68013.html#abc779299d755d192cd021eb2c2a68013',1,'Msg_MostTel_t::info_ptr()']]],
+ ['info_5fsize',['info_size',['../struct_ucs___std_result__t_ab8c6e508e45bdac2dc20bfc1b0dff08c.html#ab8c6e508e45bdac2dc20bfc1b0dff08c',1,'Ucs_StdResult_t']]],
+ ['inic',['inic',['../struct_ucs___init_data__t_a6788f8bea24665769ce00897162f84d4.html#a6788f8bea24665769ce00897162f84d4',1,'Ucs_InitData_t::inic()'],['../struct_c_programming_a64c85894e8881b2b033cad0e08afb227.html#a64c85894e8881b2b033cad0e08afb227',1,'CProgramming::inic()']]],
+ ['inic_5fresult',['inic_result',['../struct_ucs___gpio___result_details__t_ac8f7bd459f5052601dbbab267d9d8067.html#ac8f7bd459f5052601dbbab267d9d8067',1,'Ucs_Gpio_ResultDetails_t::inic_result()'],['../struct_ucs___i2c___result_details__t_ac8f7bd459f5052601dbbab267d9d8067.html#ac8f7bd459f5052601dbbab267d9d8067',1,'Ucs_I2c_ResultDetails_t::inic_result()'],['../struct_ucs___xrm___result_details__t_ac8f7bd459f5052601dbbab267d9d8067.html#ac8f7bd459f5052601dbbab267d9d8067',1,'Ucs_Xrm_ResultDetails_t::inic_result()']]],
+ ['inic_5fwatchdog_5fenabled',['inic_watchdog_enabled',['../struct_ucs___general___init_data__t_a1694b517ad074d3b14b76b400f86c9db.html#a1694b517ad074d3b14b76b400f86c9db',1,'Ucs_General_InitData_t']]],
+ ['instance_5fid',['instance_id',['../struct_msg___msg_id__t_ab529e65a59b5c14626acf162f03fbfd4.html#ab529e65a59b5c14626acf162f03fbfd4',1,'Msg_MsgId_t']]],
+ ['instid',['InstId',['../struct_ucs___ns___config_msg__t_a08a6ee143e484d0a82593eb1ff632813.html#a08a6ee143e484d0a82593eb1ff632813',1,'Ucs_Ns_ConfigMsg_t']]],
+ ['int_5fresult',['int_result',['../struct_ucs___xrm___result_details__t_aee65ac620e16fd7b0fe4135514394901.html#aee65ac620e16fd7b0fe4135514394901',1,'Ucs_Xrm_ResultDetails_t']]],
+ ['internal_5finfos',['internal_infos',['../struct_ucs___rm___node__t_a83b42042de7afe0e4e421de3e82ba5d6.html#a83b42042de7afe0e4e421de3e82ba5d6',1,'Ucs_Rm_Node_t::internal_infos()'],['../struct_ucs___rm___end_point__t_afb41e308e548fde7dd754172cfb44ccf.html#afb41e308e548fde7dd754172cfb44ccf',1,'Ucs_Rm_EndPoint_t::internal_infos()'],['../struct_ucs___rm___route__t_abd3ce7c042005f4f8713f6c5359c1633.html#abd3ce7c042005f4f8713f6c5359c1633',1,'Ucs_Rm_Route_t::internal_infos()']]],
+ ['interrupt_5fstatus_5ffptr',['interrupt_status_fptr',['../struct_ucs___i2c___init_data__t_a2d31f7e7ace9d7a9998a9d9427706a45.html#a2d31f7e7ace9d7a9998a9d9427706a45',1,'Ucs_I2c_InitData_t']]],
+ ['isoc_5fpacket_5fsize',['isoc_packet_size',['../struct_ucs___xrm___avp_con__t_a1e377eede69f95567f72835634ac6241.html#a1e377eede69f95567f72835634ac6241',1,'Ucs_Xrm_AvpCon_t']]],
+ ['initialization',['Initialization',['../_p__u_m__s_t_a_r_t_e_d__i_n_i_t.html',1,'P_UM_GETTING_STARTED']]]
+];
diff --git a/ucs2-lib/doc/html/search/all_6a.html b/ucs2-lib/doc/html/search/all_6a.html
new file mode 100644
index 0000000..969ef1e
--- /dev/null
+++ b/ucs2-lib/doc/html/search/all_6a.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_6a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/all_6a.js b/ucs2-lib/doc/html/search/all_6a.js
new file mode 100644
index 0000000..205b08f
--- /dev/null
+++ b/ucs2-lib/doc/html/search/all_6a.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['jobs_5flist_5fptr',['jobs_list_ptr',['../struct_ucs___rm___end_point__t_a1022525e5f766bcdbcd0046c3313d3ac.html#a1022525e5f766bcdbcd0046c3313d3ac',1,'Ucs_Rm_EndPoint_t']]]
+];
diff --git a/ucs2-lib/doc/html/search/all_6c.html b/ucs2-lib/doc/html/search/all_6c.html
new file mode 100644
index 0000000..f6383cc
--- /dev/null
+++ b/ucs2-lib/doc/html/search/all_6c.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_6c.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/all_6c.js b/ucs2-lib/doc/html/search/all_6c.js
new file mode 100644
index 0000000..f56a40a
--- /dev/null
+++ b/ucs2-lib/doc/html/search/all_6c.js
@@ -0,0 +1,10 @@
+var searchData=
+[
+ ['low_2dlevel_20driver',['Low-Level Driver',['../group___g___u_c_s___l_l_d.html',1,'']]],
+ ['low_2dlevel_20driver_20api',['Low-Level Driver API',['../group___g___u_c_s___l_l_d___a_p_i.html',1,'']]],
+ ['lld',['lld',['../struct_ucs___init_data__t_ac0b0a4478bafe6e81ed3c3e2c72f4fc9.html#ac0b0a4478bafe6e81ed3c3e2c72f4fc9',1,'Ucs_InitData_t']]],
+ ['lld_5fuser_5fptr',['lld_user_ptr',['../struct_ucs___lld___callbacks__t_a44afa0156353f9fba156ff0c91873968.html#a44afa0156353f9fba156ff0c91873968',1,'Ucs_Lld_Callbacks_t']]],
+ ['llrbc',['llrbc',['../struct_ucs___ams_tx___msg__t_a82997e00f317333173aa610d0902ab04.html#a82997e00f317333173aa610d0902ab04',1,'Ucs_AmsTx_Msg_t::llrbc()'],['../struct_msg___tx_options__t_a82997e00f317333173aa610d0902ab04.html#a82997e00f317333173aa610d0902ab04',1,'Msg_TxOptions_t::llrbc()']]],
+ ['list_20of_20images',['List of Images',['../_p__u_m__o_s81118__i_m_g.html',1,'']]],
+ ['low_2dlevel_20driver',['Low-Level Driver',['../_p__u_m__s_t_a_r_t_e_d__l_l_d.html',1,'P_UM_GETTING_STARTED']]]
+];
diff --git a/ucs2-lib/doc/html/search/all_6d.html b/ucs2-lib/doc/html/search/all_6d.html
new file mode 100644
index 0000000..2e27d4d
--- /dev/null
+++ b/ucs2-lib/doc/html/search/all_6d.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_6d.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/all_6d.js b/ucs2-lib/doc/html/search/all_6d.js
new file mode 100644
index 0000000..d4c7c66
--- /dev/null
+++ b/ucs2-lib/doc/html/search/all_6d.js
@@ -0,0 +1,26 @@
+var searchData=
+[
+ ['manager',['Manager',['../group___g___u_c_s___m_g_r.html',1,'']]],
+ ['miscellaneous',['Miscellaneous',['../group___g___u_c_s___m_i_s_c.html',1,'']]],
+ ['mac_5f15_5f0',['mac_15_0',['../struct_ucs___signature__t_ade0e080bbfc75844b7cbcc3dd13c48cb.html#ade0e080bbfc75844b7cbcc3dd13c48cb',1,'Ucs_Signature_t']]],
+ ['mac_5f31_5f16',['mac_31_16',['../struct_ucs___signature__t_a2139c6a8e2f491cdfbb8f3ce11ee39cb.html#a2139c6a8e2f491cdfbb8f3ce11ee39cb',1,'Ucs_Signature_t']]],
+ ['mac_5f47_5f32',['mac_47_32',['../struct_ucs___signature__t_a64f511e7134a5ebcab4fe44d180c2245.html#a64f511e7134a5ebcab4fe44d180c2245',1,'Ucs_Signature_t']]],
+ ['major_5fversion',['major_version',['../struct_ucs___inic___version__t_a79fca74d233fe79b334ecc712ca688ea.html#a79fca74d233fe79b334ecc712ca688ea',1,'Ucs_Inic_Version_t']]],
+ ['mem_5fid',['mem_id',['../struct_ucs___prg___command__t_ac6e0813f6e305faff5b36579a4d1d727.html#ac6e0813f6e305faff5b36579a4d1d727',1,'Ucs_Prg_Command_t']]],
+ ['memory_5fptr',['memory_ptr',['../struct_ucs___lld___tx_msg__t_a0fae6a3f19d8a9bbdad3c3b1ead3e868.html#a0fae6a3f19d8a9bbdad3c3b1ead3e868',1,'Ucs_Lld_TxMsg_t']]],
+ ['message_5ffreed_5ffptr',['message_freed_fptr',['../struct_ucs___ams_tx___init_data__t_a9217a093b6d7e68b7cd9d759c5cef192.html#a9217a093b6d7e68b7cd9d759c5cef192',1,'Ucs_AmsTx_InitData_t']]],
+ ['message_5freceived_5ffptr',['message_received_fptr',['../struct_ucs___ams_rx___init_data__t_a94cec5846cb407141e9c1e1a2ea205d3.html#a94cec5846cb407141e9c1e1a2ea205d3',1,'Ucs_AmsRx_InitData_t']]],
+ ['mgr',['mgr',['../struct_ucs___init_data__t_a517c2ec800639c8a91183e70189b1875.html#a517c2ec800639c8a91183e70189b1875',1,'Ucs_InitData_t']]],
+ ['minor_5fversion',['minor_version',['../struct_ucs___inic___version__t_a384e7593c5c4c33e1f7c9936dab0b937.html#a384e7593c5c4c33e1f7c9936dab0b937',1,'Ucs_Inic_Version_t']]],
+ ['mlb_5fport_5fobj_5fptr',['mlb_port_obj_ptr',['../struct_ucs___xrm___mlb_socket__t_a37fe80d7da3769557b97ce02522623f0.html#a37fe80d7da3769557b97ce02522623f0',1,'Ucs_Xrm_MlbSocket_t']]],
+ ['mode',['mode',['../struct_ucs___gpio___pin_configuration__t_a9f9602aa82b7dc511dfd57447039c1ab.html#a9f9602aa82b7dc511dfd57447039c1ab',1,'Ucs_Gpio_PinConfiguration_t']]],
+ ['most_5fport_5fhandle',['most_port_handle',['../struct_ucs___xrm___most_socket__t_a3d1f833dbb35db5fed7638006fda4138.html#a3d1f833dbb35db5fed7638006fda4138',1,'Ucs_Xrm_MostSocket_t::most_port_handle()'],['../struct_ucs___xrm___combiner__t_a3d1f833dbb35db5fed7638006fda4138.html#a3d1f833dbb35db5fed7638006fda4138',1,'Ucs_Xrm_Combiner_t::most_port_handle()'],['../struct_ucs___xrm___splitter__t_a3d1f833dbb35db5fed7638006fda4138.html#a3d1f833dbb35db5fed7638006fda4138',1,'Ucs_Xrm_Splitter_t::most_port_handle()']]],
+ ['most_5fport_5fstatus_5ffptr',['most_port_status_fptr',['../struct_ucs___xrm___init_data__t_a9497e039c582e7d2804ee470d6812e91.html#a9497e039c582e7d2804ee470d6812e91',1,'Ucs_Xrm_InitData_t']]],
+ ['msg_5fid',['msg_id',['../struct_ucs___ams_tx___msg__t_a689014fc11d4f26d264ddae2eaebc9d8.html#a689014fc11d4f26d264ddae2eaebc9d8',1,'Ucs_AmsTx_Msg_t::msg_id()'],['../struct_ucs___ams_rx___msg__t_a689014fc11d4f26d264ddae2eaebc9d8.html#a689014fc11d4f26d264ddae2eaebc9d8',1,'Ucs_AmsRx_Msg_t::msg_id()'],['../struct_ucs___cmd___msg_id__t_a689014fc11d4f26d264ddae2eaebc9d8.html#a689014fc11d4f26d264ddae2eaebc9d8',1,'Ucs_Cmd_MsgId_t::msg_id()']]],
+ ['msg_5fmosttel_5ft',['Msg_MostTel_t',['../struct_msg___most_tel__t.html',1,'']]],
+ ['msg_5fmsgid_5ft',['Msg_MsgId_t',['../struct_msg___msg_id__t.html',1,'']]],
+ ['msg_5fteldata_5ft',['Msg_TelData_t',['../struct_msg___tel_data__t.html',1,'']]],
+ ['msg_5ftxoptions_5ft',['Msg_TxOptions_t',['../struct_msg___tx_options__t.html',1,'']]],
+ ['mute_5fmode',['mute_mode',['../struct_ucs___xrm___sync_con__t_ad24def4858c3013652eba166fe48d267.html#ad24def4858c3013652eba166fe48d267',1,'Ucs_Xrm_SyncCon_t']]],
+ ['manager',['Manager',['../_p__u_m__s_t_a_r_t_e_d__m_g_r.html',1,'P_UM_GETTING_STARTED']]]
+];
diff --git a/ucs2-lib/doc/html/search/all_6e.html b/ucs2-lib/doc/html/search/all_6e.html
new file mode 100644
index 0000000..1f92ee5
--- /dev/null
+++ b/ucs2-lib/doc/html/search/all_6e.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_6e.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/all_6e.js b/ucs2-lib/doc/html/search/all_6e.js
new file mode 100644
index 0000000..fff167f
--- /dev/null
+++ b/ucs2-lib/doc/html/search/all_6e.js
@@ -0,0 +1,23 @@
+var searchData=
+[
+ ['network',['Network',['../group___g___u_c_s___n_e_t.html',1,'']]],
+ ['node_20discovery',['Node Discovery',['../group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y.html',1,'']]],
+ ['node_20scripting',['Node Scripting',['../group___g___u_c_s___s_c_r_i_p_t_i_n_g.html',1,'']]],
+ ['notitle',['notitle',['../index.html',1,'']]],
+ ['nd',['nd',['../struct_ucs___init_data__t_a97b13c03602cc54884ae1765c518bd7b.html#a97b13c03602cc54884ae1765c518bd7b',1,'Ucs_InitData_t']]],
+ ['neton',['neton',['../struct_c_programming_a98d71a61e60458dc0106353ce1fd43fe.html#a98d71a61e60458dc0106353ce1fd43fe',1,'CProgramming']]],
+ ['network',['network',['../struct_ucs___init_data__t_aa220785601aa16c0e0aff52f44380719.html#aa220785601aa16c0e0aff52f44380719',1,'Ucs_InitData_t']]],
+ ['next_5fbuffer_5fptr',['next_buffer_ptr',['../struct_ucs___mem___buffer__t_a5245ce4ea7d022a357642b645e7ac645.html#a5245ce4ea7d022a357642b645e7ac645',1,'Ucs_Mem_Buffer_t']]],
+ ['node_5faddress',['node_address',['../struct_ucs___signature__t_a550e0ded0fb13bc58b087d3a162d43c7.html#a550e0ded0fb13bc58b087d3a162d43c7',1,'Ucs_Signature_t']]],
+ ['node_5fid',['node_id',['../struct_c_programming_a07ec3cc0de32c2b7496197f15e96c475.html#a07ec3cc0de32c2b7496197f15e96c475',1,'CProgramming']]],
+ ['node_5fobj_5fptr',['node_obj_ptr',['../struct_ucs___rm___end_point__t_aeba772076fc522f4d27dfb647457bb6d.html#aeba772076fc522f4d27dfb647457bb6d',1,'Ucs_Rm_EndPoint_t']]],
+ ['node_5fpos_5faddr',['node_pos_addr',['../struct_ucs___signature__t_a0057a5f105488012ba3448bbb1099ebe.html#a0057a5f105488012ba3448bbb1099ebe',1,'Ucs_Signature_t']]],
+ ['nodes_5flist_5fptr',['nodes_list_ptr',['../struct_ucs___mgr___init_data__t_ae261d2df7a2be21b4e8e4a582113643c.html#ae261d2df7a2be21b4e8e4a582113643c',1,'Ucs_Mgr_InitData_t']]],
+ ['nodes_5flist_5fsize',['nodes_list_size',['../struct_ucs___mgr___init_data__t_ab0ad9592908a66a29460d67bf3146114.html#ab0ad9592908a66a29460d67bf3146114',1,'Ucs_Mgr_InitData_t']]],
+ ['notification_5fmask',['notification_mask',['../struct_ucs___network___status__t_ae7a618bc7852c52001d0756913c545c8.html#ae7a618bc7852c52001d0756913c545c8',1,'Ucs_Network_Status_t']]],
+ ['num',['num',['../struct_ucs___sd___segment__t_abea371f9030e15a5d2a4c181576833d8.html#abea371f9030e15a5d2a4c181576833d8',1,'Ucs_Sd_Segment_t']]],
+ ['num_5fports',['num_ports',['../struct_ucs___signature__t_a8584c5e1f2a1ec30387f93538bdf2b00.html#a8584c5e1f2a1ec30387f93538bdf2b00',1,'Ucs_Signature_t']]],
+ ['networking_20management',['Networking Management',['../_p__u_m__s_t_a_r_t_e_d__n_e_t.html',1,'P_UM_GETTING_STARTED']]],
+ ['node_20discovery',['Node Discovery',['../_p__u_m__s_t_a_r_t_e_d__n_o_d_e__d_i_s.html',1,'P_UM_GETTING_STARTED']]],
+ ['node_20scripting',['Node Scripting',['../_p__u_m__s_t_a_r_t_e_d__n_o_d_e__s_c_r_i_p_t.html',1,'P_UM_GETTING_STARTED']]]
+];
diff --git a/ucs2-lib/doc/html/search/all_6f.html b/ucs2-lib/doc/html/search/all_6f.html
new file mode 100644
index 0000000..61827e8
--- /dev/null
+++ b/ucs2-lib/doc/html/search/all_6f.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_6f.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/all_6f.js b/ucs2-lib/doc/html/search/all_6f.js
new file mode 100644
index 0000000..b537800
--- /dev/null
+++ b/ucs2-lib/doc/html/search/all_6f.js
@@ -0,0 +1,8 @@
+var searchData=
+[
+ ['offset',['offset',['../struct_ucs___xrm___sync_con__t_ac681806181c80437cfab37335f62ff39.html#ac681806181c80437cfab37335f62ff39',1,'Ucs_Xrm_SyncCon_t']]],
+ ['op_5ftype',['op_type',['../struct_msg___msg_id__t_ac3f5682d1affe8931b94fa90c28f6f31.html#ac3f5682d1affe8931b94fa90c28f6f31',1,'Msg_MsgId_t']]],
+ ['opcode',['OpCode',['../struct_ucs___ns___config_msg__t_a4011d0b720d10f4eeacd939998ebe85d.html#a4011d0b720d10f4eeacd939998ebe85d',1,'Ucs_Ns_ConfigMsg_t']]],
+ ['opts',['opts',['../struct_msg___most_tel__t_a9420136f5d99f8b6c48445b5eb048d60.html#a9420136f5d99f8b6c48445b5eb048d60',1,'Msg_MostTel_t']]],
+ ['os81118_20user_27s_20guide',['OS81118 User&apos;s Guide',['../_p__u_m__o_s81118.html',1,'P_DOCU_APPENDIX']]]
+];
diff --git a/ucs2-lib/doc/html/search/all_70.html b/ucs2-lib/doc/html/search/all_70.html
new file mode 100644
index 0000000..0340151
--- /dev/null
+++ b/ucs2-lib/doc/html/search/all_70.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_70.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/all_70.js b/ucs2-lib/doc/html/search/all_70.js
new file mode 100644
index 0000000..c4e8398
--- /dev/null
+++ b/ucs2-lib/doc/html/search/all_70.js
@@ -0,0 +1,21 @@
+var searchData=
+[
+ ['peripheral_20bus_20interface',['Peripheral Bus Interface',['../group___g___u_c_s___p_b_i.html',1,'']]],
+ ['programming',['Programming',['../group___g___u_c_s___p_r_o_g___m_o_d_e.html',1,'']]],
+ ['preparations',['Preparations',['../_p__u_m__s_t_a_r_t_e_d__p_r_e_p.html',1,'P_UM_GETTING_STARTED']]],
+ ['programming',['Programming',['../_p__u_m__s_t_a_r_t_e_d__p_r_o_g_r_a_m_m_i_n_g.html',1,'P_UM_GETTING_STARTED']]],
+ ['packet_5fbw',['packet_bw',['../struct_ucs___mgr___init_data__t_a980d5ec2fe728b8ca99de235be7858d2.html#a980d5ec2fe728b8ca99de235be7858d2',1,'Ucs_Mgr_InitData_t']]],
+ ['pause',['pause',['../struct_ucs___ns___script__t_a69ffffc951e73c7116876a2e908cf3ba.html#a69ffffc951e73c7116876a2e908cf3ba',1,'Ucs_Ns_Script_t']]],
+ ['physical_5flayer',['physical_layer',['../struct_ucs___xrm___usb_port__t_aea7ae4f766b52f8f4fa492449ba24c14.html#aea7ae4f766b52f8f4fa492449ba24c14',1,'Ucs_Xrm_UsbPort_t']]],
+ ['pin',['pin',['../struct_ucs___gpio___pin_configuration__t_ab40a673fb19c1e650e1f79de91788aa5.html#ab40a673fb19c1e650e1f79de91788aa5',1,'Ucs_Gpio_PinConfiguration_t']]],
+ ['port_5fsocket_5fobj_5fptr',['port_socket_obj_ptr',['../struct_ucs___xrm___combiner__t_ab4f0942e9c11cfa5e9db135b352c17a5.html#ab4f0942e9c11cfa5e9db135b352c17a5',1,'Ucs_Xrm_Combiner_t']]],
+ ['port_5ftype',['port_type',['../struct_ucs___xrm___default_created_port__t_a58cd72485f642399fb1815f026dbaae7.html#a58cd72485f642399fb1815f026dbaae7',1,'Ucs_Xrm_DefaultCreatedPort_t']]],
+ ['power_5fstate_5ffptr',['power_state_fptr',['../struct_ucs___inic___init_data__t_a238990027953e8302526513c7cbb4dc0.html#a238990027953e8302526513c7cbb4dc0',1,'Ucs_Inic_InitData_t']]],
+ ['prg_5fmemclose',['prg_memclose',['../struct_c_programming_af713f15b39baa1603eeb9984877e04ad.html#af713f15b39baa1603eeb9984877e04ad',1,'CProgramming']]],
+ ['prg_5fmemopen',['prg_memopen',['../struct_c_programming_aae5da389e9fa9462cd96740a8e288825.html#aae5da389e9fa9462cd96740a8e288825',1,'CProgramming']]],
+ ['prg_5fmemwrite',['prg_memwrite',['../struct_c_programming_a0f7e779ac777da57585e57ff0d85c842.html#a0f7e779ac777da57585e57ff0d85c842',1,'CProgramming']]],
+ ['prg_5fnwstatus',['prg_nwstatus',['../struct_c_programming_aba55669ce31313a3dcd2e04fb6e31a62.html#aba55669ce31313a3dcd2e04fb6e31a62',1,'CProgramming']]],
+ ['prg_5fterminate',['prg_terminate',['../struct_c_programming_a5ef650eccc58da14ca17f8480c0669eb.html#a5ef650eccc58da14ca17f8480c0669eb',1,'CProgramming']]],
+ ['prg_5fwelcome',['prg_welcome',['../struct_c_programming_ac5cd5e459eb1d8746b5660c1f98c3906.html#ac5cd5e459eb1d8746b5660c1f98c3906',1,'CProgramming']]],
+ ['product_5fidentifier',['product_identifier',['../struct_ucs___inic___version__t_a20c9cb94858deb6d8a9ab9a220fa8778.html#a20c9cb94858deb6d8a9ab9a220fa8778',1,'Ucs_Inic_Version_t']]]
+];
diff --git a/ucs2-lib/doc/html/search/all_72.html b/ucs2-lib/doc/html/search/all_72.html
new file mode 100644
index 0000000..0ab18d6
--- /dev/null
+++ b/ucs2-lib/doc/html/search/all_72.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_72.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/all_72.js b/ucs2-lib/doc/html/search/all_72.js
new file mode 100644
index 0000000..74a7de6
--- /dev/null
+++ b/ucs2-lib/doc/html/search/all_72.js
@@ -0,0 +1,33 @@
+var searchData=
+[
+ ['referred_20types',['Referred Types',['../group___g___u_c_s___a_m_s___t_y_p_e_s.html',1,'']]],
+ ['referred_20types',['Referred Types',['../group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s.html',1,'']]],
+ ['referred_20types',['Referred Types',['../group___g___u_c_s___c_m_d___t_y_p_e_s.html',1,'']]],
+ ['referred_20types',['Referred Types',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s.html',1,'']]],
+ ['referred_20types',['Referred Types',['../group___g___u_c_s___l_l_d___t_y_p_e_s.html',1,'']]],
+ ['referred_20types',['Referred Types',['../group___g___u_c_s___n_e_t___t_y_p_e_s.html',1,'']]],
+ ['referred_20types',['Referred Types',['../group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s.html',1,'']]],
+ ['referred_20types',['Referred Types',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s.html',1,'']]],
+ ['routing_20management',['Routing Management',['../group___g___u_c_s___r_o_u_t_i_n_g.html',1,'']]],
+ ['referred_20types',['Referred Types',['../group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s.html',1,'']]],
+ ['release_20history',['Release History',['../_p__u_m__h_i_s_t_o_r_y.html',1,'P_DOCU_APPENDIX']]],
+ ['routing_20management',['Routing Management',['../_p__u_m__s_t_a_r_t_e_d__r_m.html',1,'P_UM_GETTING_STARTED']]],
+ ['receive_5ftype',['receive_type',['../struct_ucs___ams_rx___msg__t_af3ea491a2bc42c0f8a5911b4d21058d0.html#af3ea491a2bc42c0f8a5911b4d21058d0',1,'Ucs_AmsRx_Msg_t']]],
+ ['release_5fversion',['release_version',['../struct_ucs___inic___version__t_a2aa984a9a3499db9e991535b402b3dca.html#a2aa984a9a3499db9e991535b402b3dca',1,'Ucs_Inic_Version_t']]],
+ ['report_5ffptr',['report_fptr',['../struct_ucs___rm___init_data__t_a2420c468d89e6f991f68189ba2f61d15.html#a2420c468d89e6f991f68189ba2f61d15',1,'Ucs_Rm_InitData_t::report_fptr()'],['../struct_ucs___nd___init_data__t_a98b9ccad2c6c5fa2edaf472151ee853c.html#a98b9ccad2c6c5fa2edaf472151ee853c',1,'Ucs_Nd_InitData_t::report_fptr()'],['../struct_c_programming_a06e0f1e69f5ee75281d8c1d541a9440a.html#a06e0f1e69f5ee75281d8c1d541a9440a',1,'CProgramming::report_fptr()'],['../struct_ucs___mgr___init_data__t_ac5131dba874debb5bb76b7f3b5a31818.html#ac5131dba874debb5bb76b7f3b5a31818',1,'Ucs_Mgr_InitData_t::report_fptr()']]],
+ ['request_5fservice_5ffptr',['request_service_fptr',['../struct_ucs___general___init_data__t_a7d2541cf63dfcea750c0d0ec2ef563c0.html#a7d2541cf63dfcea750c0d0ec2ef563c0',1,'Ucs_General_InitData_t']]],
+ ['resource_5fid',['resource_id',['../struct_ucs___xrm___res_identity__t_ab557e7d7735054f8f7d8cf576d4521c3.html#ab557e7d7735054f8f7d8cf576d4521c3',1,'Ucs_Xrm_ResIdentity_t']]],
+ ['resource_5findex',['resource_index',['../struct_ucs___xrm___result_details__t_a41ee1e9319711802cf5d79a2be7adcbf.html#a41ee1e9319711802cf5d79a2be7adcbf',1,'Ucs_Xrm_ResultDetails_t']]],
+ ['resource_5fstore',['resource_store',['../struct_ucs___xrm___res_identity__t_a4fe7fcd3cdb160c239e65543ac025953.html#a4fe7fcd3cdb160c239e65543ac025953',1,'Ucs_Xrm_ResIdentity_t']]],
+ ['resource_5ftype',['resource_type',['../struct_ucs___xrm___result_details__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd',1,'Ucs_Xrm_ResultDetails_t::resource_type()'],['../struct_ucs___xrm___default_created_port__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd',1,'Ucs_Xrm_DefaultCreatedPort_t::resource_type()'],['../struct_ucs___xrm___most_socket__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd',1,'Ucs_Xrm_MostSocket_t::resource_type()'],['../struct_ucs___xrm___mlb_port__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd',1,'Ucs_Xrm_MlbPort_t::resource_type()'],['../struct_ucs___xrm___mlb_socket__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd',1,'Ucs_Xrm_MlbSocket_t::resource_type()'],['../struct_ucs___xrm___usb_port__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd',1,'Ucs_Xrm_UsbPort_t::resource_type()'],['../struct_ucs___xrm___usb_socket__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd',1,'Ucs_Xrm_UsbSocket_t::resource_type()'],['../struct_ucs___xrm___rmck_port__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd',1,'Ucs_Xrm_RmckPort_t::resource_type()'],['../struct_ucs___xrm___strm_port__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd',1,'Ucs_Xrm_StrmPort_t::resource_type()'],['../struct_ucs___xrm___strm_socket__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd',1,'Ucs_Xrm_StrmSocket_t::resource_type()'],['../struct_ucs___xrm___sync_con__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd',1,'Ucs_Xrm_SyncCon_t::resource_type()'],['../struct_ucs___xrm___dfi_phase_con__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd',1,'Ucs_Xrm_DfiPhaseCon_t::resource_type()'],['../struct_ucs___xrm___combiner__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd',1,'Ucs_Xrm_Combiner_t::resource_type()'],['../struct_ucs___xrm___splitter__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd',1,'Ucs_Xrm_Splitter_t::resource_type()'],['../struct_ucs___xrm___avp_con__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd',1,'Ucs_Xrm_AvpCon_t::resource_type()'],['../struct_ucs___xrm___qo_s_con__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd',1,'Ucs_Xrm_QoSCon_t::resource_type()']]],
+ ['result_5ftype',['result_type',['../struct_ucs___gpio___result_details__t_a87d6ba6c35b8ada8a002fee6caf0c28a.html#a87d6ba6c35b8ada8a002fee6caf0c28a',1,'Ucs_Gpio_ResultDetails_t::result_type()'],['../struct_ucs___i2c___result_details__t_afbf6b21e51e2114bd8165bc6b9d920a5.html#afbf6b21e51e2114bd8165bc6b9d920a5',1,'Ucs_I2c_ResultDetails_t::result_type()'],['../struct_ucs___xrm___result_details__t_a4cb5ea6dd91baf049cf7d682202df0f4.html#a4cb5ea6dd91baf049cf7d682202df0f4',1,'Ucs_Xrm_ResultDetails_t::result_type()']]],
+ ['rm',['rm',['../struct_ucs___init_data__t_a8619aaf795810b7508046fbfef6d6907.html#a8619aaf795810b7508046fbfef6d6907',1,'Ucs_InitData_t']]],
+ ['route_5fid',['route_id',['../struct_ucs___rm___route__t_af45aa1590137605530f1757465709d39.html#af45aa1590137605530f1757465709d39',1,'Ucs_Rm_Route_t']]],
+ ['routes_5flist_5fptr',['routes_list_ptr',['../struct_ucs___mgr___init_data__t_a4bda15e771fef671a47cd88a09707030.html#a4bda15e771fef671a47cd88a09707030',1,'Ucs_Mgr_InitData_t']]],
+ ['routes_5flist_5fsize',['routes_list_size',['../struct_ucs___mgr___init_data__t_a30588f13e23cf04757b91e979e55c369.html#a30588f13e23cf04757b91e979e55c369',1,'Ucs_Mgr_InitData_t']]],
+ ['rx',['rx',['../struct_ucs___ams___init_data__t_a976344e02b80d33e167c34d3c6ae9cab.html#a976344e02b80d33e167c34d3c6ae9cab',1,'Ucs_Ams_InitData_t']]],
+ ['rx_5fallocate_5ffptr',['rx_allocate_fptr',['../struct_ucs___lld___api__t_a4621743277024b76d3afe1aed195f211.html#a4621743277024b76d3afe1aed195f211',1,'Ucs_Lld_Api_t']]],
+ ['rx_5favailable_5ffptr',['rx_available_fptr',['../struct_ucs___lld___callbacks__t_a90fa6db664734c2446327b71c51f5b52.html#a90fa6db664734c2446327b71c51f5b52',1,'Ucs_Lld_Callbacks_t']]],
+ ['rx_5ffree_5funused_5ffptr',['rx_free_unused_fptr',['../struct_ucs___lld___api__t_a9fba62024daebe86940aee310c17ccfb.html#a9fba62024daebe86940aee310c17ccfb',1,'Ucs_Lld_Api_t']]],
+ ['rx_5freceive_5ffptr',['rx_receive_fptr',['../struct_ucs___lld___api__t_a3ed1d41d7cab149f0bc5d2ea13631b16.html#a3ed1d41d7cab149f0bc5d2ea13631b16',1,'Ucs_Lld_Api_t']]]
+];
diff --git a/ucs2-lib/doc/html/search/all_73.html b/ucs2-lib/doc/html/search/all_73.html
new file mode 100644
index 0000000..1ec8f17
--- /dev/null
+++ b/ucs2-lib/doc/html/search/all_73.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_73.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/all_73.js b/ucs2-lib/doc/html/search/all_73.js
new file mode 100644
index 0000000..d0cc98e
--- /dev/null
+++ b/ucs2-lib/doc/html/search/all_73.js
@@ -0,0 +1,29 @@
+var searchData=
+[
+ ['service',['Service',['../_p__u_m__s_t_a_r_t_e_d__s_r_v.html',1,'P_UM_GETTING_STARTED']]],
+ ['synchronous_20vs_2e_20asynchronous_20results',['Synchronous vs. Asynchronous Results',['../_p__u_m__s_y_n_c__a_n_d__a_s_y_n_c__r_e_s_u_l_t_s.html',1,'P_UM_GETTING_STARTED']]],
+ ['script_5flist_5fptr',['script_list_ptr',['../struct_ucs___rm___node__t_a321da5e56aadf970749f66cfd284bb04.html#a321da5e56aadf970749f66cfd284bb04',1,'Ucs_Rm_Node_t']]],
+ ['script_5flist_5fsize',['script_list_size',['../struct_ucs___rm___node__t_a12545084e0e46ea49b48c93385f75650.html#a12545084e0e46ea49b48c93385f75650',1,'Ucs_Rm_Node_t']]],
+ ['segment',['segment',['../struct_ucs___sd___report__t_abfbddee81e60c6dc7a2ede0b5066c06a.html#abfbddee81e60c6dc7a2ede0b5066c06a',1,'Ucs_Sd_Report_t']]],
+ ['send_5fcmd',['send_cmd',['../struct_ucs___ns___script__t_a78234ed434c9f2e804d7466a45d0735d.html#a78234ed434c9f2e804d7466a45d0735d',1,'Ucs_Ns_Script_t']]],
+ ['service',['service',['../struct_c_programming_aeed780a0cff38447179779c414cfdd54.html#aeed780a0cff38447179779c414cfdd54',1,'CProgramming']]],
+ ['session_5fhandle',['session_handle',['../struct_c_programming_a696f1f893876f5efa0878dd5255ebad9.html#a696f1f893876f5efa0878dd5255ebad9',1,'CProgramming']]],
+ ['session_5ftype',['session_type',['../struct_c_programming_aa722c5fa0c9c6e4a8d5ea795f79beaae.html#aa722c5fa0c9c6e4a8d5ea795f79beaae',1,'CProgramming']]],
+ ['set_5fapplication_5ftimer_5ffptr',['set_application_timer_fptr',['../struct_ucs___general___init_data__t_a9de73ec82699e45173702e9b0ccc917a.html#a9de73ec82699e45173702e9b0ccc917a',1,'Ucs_General_InitData_t']]],
+ ['signature',['signature',['../struct_c_programming_a7e400d5be57c32dd73c2d0ffe8705602.html#a7e400d5be57c32dd73c2d0ffe8705602',1,'CProgramming']]],
+ ['signature_5fptr',['signature_ptr',['../struct_ucs___rm___node__t_ae619e45bed87dee01aaf280635cf3911.html#ae619e45bed87dee01aaf280635cf3911',1,'Ucs_Rm_Node_t']]],
+ ['sink_5fendpoint_5fptr',['sink_endpoint_ptr',['../struct_ucs___rm___route__t_a5553fda80c8780a9e42916d87a0e82dd.html#a5553fda80c8780a9e42916d87a0e82dd',1,'Ucs_Rm_Route_t']]],
+ ['socket_5fin_5fobj_5fptr',['socket_in_obj_ptr',['../struct_ucs___xrm___sync_con__t_ace5ef1fb3bd4337998a8f538645f47ed.html#ace5ef1fb3bd4337998a8f538645f47ed',1,'Ucs_Xrm_SyncCon_t::socket_in_obj_ptr()'],['../struct_ucs___xrm___dfi_phase_con__t_ace5ef1fb3bd4337998a8f538645f47ed.html#ace5ef1fb3bd4337998a8f538645f47ed',1,'Ucs_Xrm_DfiPhaseCon_t::socket_in_obj_ptr()'],['../struct_ucs___xrm___splitter__t_ace5ef1fb3bd4337998a8f538645f47ed.html#ace5ef1fb3bd4337998a8f538645f47ed',1,'Ucs_Xrm_Splitter_t::socket_in_obj_ptr()'],['../struct_ucs___xrm___avp_con__t_ace5ef1fb3bd4337998a8f538645f47ed.html#ace5ef1fb3bd4337998a8f538645f47ed',1,'Ucs_Xrm_AvpCon_t::socket_in_obj_ptr()'],['../struct_ucs___xrm___qo_s_con__t_ace5ef1fb3bd4337998a8f538645f47ed.html#ace5ef1fb3bd4337998a8f538645f47ed',1,'Ucs_Xrm_QoSCon_t::socket_in_obj_ptr()']]],
+ ['socket_5fout_5fobj_5fptr',['socket_out_obj_ptr',['../struct_ucs___xrm___sync_con__t_a21e5760677b48c43c5e4783306819f95.html#a21e5760677b48c43c5e4783306819f95',1,'Ucs_Xrm_SyncCon_t::socket_out_obj_ptr()'],['../struct_ucs___xrm___dfi_phase_con__t_a21e5760677b48c43c5e4783306819f95.html#a21e5760677b48c43c5e4783306819f95',1,'Ucs_Xrm_DfiPhaseCon_t::socket_out_obj_ptr()'],['../struct_ucs___xrm___avp_con__t_a21e5760677b48c43c5e4783306819f95.html#a21e5760677b48c43c5e4783306819f95',1,'Ucs_Xrm_AvpCon_t::socket_out_obj_ptr()'],['../struct_ucs___xrm___qo_s_con__t_a21e5760677b48c43c5e4783306819f95.html#a21e5760677b48c43c5e4783306819f95',1,'Ucs_Xrm_QoSCon_t::socket_out_obj_ptr()']]],
+ ['source',['source',['../struct_ucs___sd___segment__t_a2c97de6d0a36e262e6e86b3eb7d64525.html#a2c97de6d0a36e262e6e86b3eb7d64525',1,'Ucs_Sd_Segment_t']]],
+ ['source_5faddr',['source_addr',['../struct_msg___most_tel__t_a703fce339153ac2b164c185137b59717.html#a703fce339153ac2b164c185137b59717',1,'Msg_MostTel_t']]],
+ ['source_5faddress',['source_address',['../struct_ucs___ams_rx___msg__t_abb27f24f389ff3575a5ee33e74e66eb6.html#abb27f24f389ff3575a5ee33e74e66eb6',1,'Ucs_AmsRx_Msg_t']]],
+ ['source_5fendpoint_5fptr',['source_endpoint_ptr',['../struct_ucs___rm___route__t_a8e5e3175ae36f8c87c22e2382d0bba4a.html#a8e5e3175ae36f8c87c22e2382d0bba4a',1,'Ucs_Rm_Route_t']]],
+ ['start_5ffptr',['start_fptr',['../struct_ucs___lld___callbacks__t_a96bad24b6b49ffacfd9136230447cb22.html#a96bad24b6b49ffacfd9136230447cb22',1,'Ucs_Lld_Callbacks_t']]],
+ ['status',['status',['../struct_ucs___network___init_data__t_ae9d2b9f86bdd3a9667a348eb2b75da12.html#ae9d2b9f86bdd3a9667a348eb2b75da12',1,'Ucs_Network_InitData_t']]],
+ ['stop_5ffptr',['stop_fptr',['../struct_ucs___lld___callbacks__t_ab0f955ca90942fda14ac12500422a437.html#ab0f955ca90942fda14ac12500422a437',1,'Ucs_Lld_Callbacks_t']]],
+ ['stream_5fpin_5fid',['stream_pin_id',['../struct_ucs___xrm___strm_socket__t_ab9430187fbd36c83ef163a19dcdd735c.html#ab9430187fbd36c83ef163a19dcdd735c',1,'Ucs_Xrm_StrmSocket_t']]],
+ ['stream_5fport_5fobj_5fptr',['stream_port_obj_ptr',['../struct_ucs___xrm___strm_socket__t_a2938957a0791aa899aaedcca5b8c0405.html#a2938957a0791aa899aaedcca5b8c0405',1,'Ucs_Xrm_StrmSocket_t']]],
+ ['streaming_5fif_5fep_5fin_5fcount',['streaming_if_ep_in_count',['../struct_ucs___xrm___usb_port__t_aa1e58aa745f43164a35bb10f76f27cf4.html#aa1e58aa745f43164a35bb10f76f27cf4',1,'Ucs_Xrm_UsbPort_t']]],
+ ['streaming_5fif_5fep_5fout_5fcount',['streaming_if_ep_out_count',['../struct_ucs___xrm___usb_port__t_a95973cbb7c525bbb846928066bebe8f8.html#a95973cbb7c525bbb846928066bebe8f8',1,'Ucs_Xrm_UsbPort_t']]]
+];
diff --git a/ucs2-lib/doc/html/search/all_74.html b/ucs2-lib/doc/html/search/all_74.html
new file mode 100644
index 0000000..fdc6589
--- /dev/null
+++ b/ucs2-lib/doc/html/search/all_74.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_74.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/all_74.js b/ucs2-lib/doc/html/search/all_74.js
new file mode 100644
index 0000000..0a97534
--- /dev/null
+++ b/ucs2-lib/doc/html/search/all_74.js
@@ -0,0 +1,19 @@
+var searchData=
+[
+ ['tracing_2fdebugging',['Tracing/Debugging',['../group___g___u_c_s___t_r_a_c_e.html',1,'']]],
+ ['tracing_2fdebugging_20types',['Tracing/Debugging Types',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s.html',1,'']]],
+ ['target',['target',['../struct_ucs___sd___segment__t_a730fee420fdc6d921c296c9920ce4135.html#a730fee420fdc6d921c296c9920ce4135',1,'Ucs_Sd_Segment_t']]],
+ ['target_5faddress',['target_address',['../struct_c_programming_aaf0157ff97cce6b8ba8f142f65ef36e9.html#aaf0157ff97cce6b8ba8f142f65ef36e9',1,'CProgramming']]],
+ ['tel',['tel',['../struct_msg___most_tel__t_a3176fc4da0eba67428fa0627e15f86b6.html#a3176fc4da0eba67428fa0627e15f86b6',1,'Msg_MostTel_t']]],
+ ['tel_5fcnt',['tel_cnt',['../struct_msg___tel_data__t_a0102c84947aadd0fd212a7972d2fb10d.html#a0102c84947aadd0fd212a7972d2fb10d',1,'Msg_TelData_t']]],
+ ['tel_5fdata_5fptr',['tel_data_ptr',['../struct_msg___tel_data__t_afb4f9db23cd1c16b44c1e479e3f5e1cf.html#afb4f9db23cd1c16b44c1e479e3f5e1cf',1,'Msg_TelData_t']]],
+ ['tel_5fid',['tel_id',['../struct_msg___tel_data__t_a880ca776e9ea8d0bbb714a7333da52cc.html#a880ca776e9ea8d0bbb714a7333da52cc',1,'Msg_TelData_t']]],
+ ['tel_5flen',['tel_len',['../struct_msg___tel_data__t_a92083234f7755755f06bb85b3a6f2ea4.html#a92083234f7755755f06bb85b3a6f2ea4',1,'Msg_TelData_t']]],
+ ['timer',['timer',['../struct_c_programming_a756790b5cd986a970dd934f4fdf8a0a9.html#a756790b5cd986a970dd934f4fdf8a0a9',1,'CProgramming']]],
+ ['total_5fsize',['total_size',['../struct_ucs___mem___buffer__t_af0c4b4b26e805f939299b203943976b2.html#af0c4b4b26e805f939299b203943976b2',1,'Ucs_Mem_Buffer_t']]],
+ ['trigger_5fevent_5fstatus_5ffptr',['trigger_event_status_fptr',['../struct_ucs___gpio___init_data__t_abb586c1dd43ecda56d21209333104904.html#abb586c1dd43ecda56d21209333104904',1,'Ucs_Gpio_InitData_t']]],
+ ['tx',['tx',['../struct_ucs___ams___init_data__t_a8e01298906b1fbe44765c6e9e4bbc888.html#a8e01298906b1fbe44765c6e9e4bbc888',1,'Ucs_Ams_InitData_t']]],
+ ['tx_5frelease_5ffptr',['tx_release_fptr',['../struct_ucs___lld___api__t_ad4d0f461ff3009909e295910e5380835.html#ad4d0f461ff3009909e295910e5380835',1,'Ucs_Lld_Api_t']]],
+ ['tx_5fresult',['tx_result',['../struct_ucs___gpio___result_details__t_abee2d1d2c9eebcbc9da920664e9eb248.html#abee2d1d2c9eebcbc9da920664e9eb248',1,'Ucs_Gpio_ResultDetails_t::tx_result()'],['../struct_ucs___i2c___result_details__t_abee2d1d2c9eebcbc9da920664e9eb248.html#abee2d1d2c9eebcbc9da920664e9eb248',1,'Ucs_I2c_ResultDetails_t::tx_result()'],['../struct_ucs___xrm___result_details__t_abee2d1d2c9eebcbc9da920664e9eb248.html#abee2d1d2c9eebcbc9da920664e9eb248',1,'Ucs_Xrm_ResultDetails_t::tx_result()']]],
+ ['tx_5ftransmit_5ffptr',['tx_transmit_fptr',['../struct_ucs___lld___callbacks__t_ad8f7d021075e06672a999eb02da1d2e4.html#ad8f7d021075e06672a999eb02da1d2e4',1,'Ucs_Lld_Callbacks_t']]]
+];
diff --git a/ucs2-lib/doc/html/search/all_75.html b/ucs2-lib/doc/html/search/all_75.html
new file mode 100644
index 0000000..ab8455e
--- /dev/null
+++ b/ucs2-lib/doc/html/search/all_75.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_75.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/all_75.js b/ucs2-lib/doc/html/search/all_75.js
new file mode 100644
index 0000000..69bb98f
--- /dev/null
+++ b/ucs2-lib/doc/html/search/all_75.js
@@ -0,0 +1,549 @@
+var searchData=
+[
+ ['ucs_5faddr_5fbroadcast_5fblocking',['UCS_ADDR_BROADCAST_BLOCKING',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga3d9b0fe84140fbc49ba03b685f6c0443.html#ga3d9b0fe84140fbc49ba03b685f6c0443',1,'ucs_message_pb.h']]],
+ ['ucs_5faddr_5fbroadcast_5funblocking',['UCS_ADDR_BROADCAST_UNBLOCKING',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gaed7f13e95bb2324327de175834aa02ff.html#gaed7f13e95bb2324327de175834aa02ff',1,'ucs_message_pb.h']]],
+ ['ucs_5faddr_5flocal_5fdev',['UCS_ADDR_LOCAL_DEV',['../group___g___u_c_s___i_r_m_ga17bc521c78b99dc17f16161199cd4c1a.html#ga17bc521c78b99dc17f16161199cd4c1a',1,'ucs_rsm_pv.h']]],
+ ['ucs_5fams_5finitdata_5ft',['Ucs_Ams_InitData_t',['../struct_ucs___ams___init_data__t.html',1,'']]],
+ ['ucs_5fams_5fnum_5frx_5fmsgs',['UCS_AMS_NUM_RX_MSGS',['../group___g___u_c_s___a_m_s_gae2eb8a7435144add2627537c6372ce69.html#gae2eb8a7435144add2627537c6372ce69',1,'ucs_smm_pb.h']]],
+ ['ucs_5fams_5fnum_5ftx_5fmsgs',['UCS_AMS_NUM_TX_MSGS',['../group___g___u_c_s___a_m_s_ga1305a1c706ece4772010c17734ab2f66.html#ga1305a1c706ece4772010c17734ab2f66',1,'ucs_smm_pb.h']]],
+ ['ucs_5fams_5fsize_5frx_5fmsg',['UCS_AMS_SIZE_RX_MSG',['../group___g___u_c_s___a_m_s_gade9da5d6f847265fc4a8613d5ba6da60.html#gade9da5d6f847265fc4a8613d5ba6da60',1,'ucs_smm_pb.h']]],
+ ['ucs_5fams_5fsize_5ftx_5fmsg',['UCS_AMS_SIZE_TX_MSG',['../group___g___u_c_s___a_m_s_gae813e5093ce0bd11dd5ba9bd4fe77b77.html#gae813e5093ce0bd11dd5ba9bd4fe77b77',1,'ucs_smm_pb.h']]],
+ ['ucs_5famsrx_5fgetmsgcnt',['Ucs_AmsRx_GetMsgCnt',['../group___g___u_c_s___a_m_s_ga9fe2ca761b3856b5e7c3446cc49e90ad.html#ga9fe2ca761b3856b5e7c3446cc49e90ad',1,'ucs_class_pb.h']]],
+ ['ucs_5famsrx_5finitdata_5ft',['Ucs_AmsRx_InitData_t',['../struct_ucs___ams_rx___init_data__t.html',1,'']]],
+ ['ucs_5famsrx_5fmsg_5ft',['Ucs_AmsRx_Msg_t',['../struct_ucs___ams_rx___msg__t.html',1,'']]],
+ ['ucs_5famsrx_5fmsgreceivedcb_5ft',['Ucs_AmsRx_MsgReceivedCb_t',['../group___g___u_c_s___a_m_s_ga80fa395bc924dca9ae92c185656db089.html#ga80fa395bc924dca9ae92c185656db089',1,'ucs_ams_pb.h']]],
+ ['ucs_5famsrx_5fpeekmsg',['Ucs_AmsRx_PeekMsg',['../group___g___u_c_s___a_m_s_gab096e481474195cc57d4d801f1d295f2.html#gab096e481474195cc57d4d801f1d295f2',1,'ucs_class_pb.h']]],
+ ['ucs_5famsrx_5frct_5fbroadcast',['UCS_AMSRX_RCT_BROADCAST',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga113edf4cab85ce4e5e13ef257b5b7128.html#gga113edf4cab85ce4e5e13ef257b5b7128a3304f1288c4b154cbf9ebd2976ecca23',1,'ucs_ams_pb.h']]],
+ ['ucs_5famsrx_5frct_5fgroupcast',['UCS_AMSRX_RCT_GROUPCAST',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga113edf4cab85ce4e5e13ef257b5b7128.html#gga113edf4cab85ce4e5e13ef257b5b7128a6a08727eaedc64a4b7505e10d02b8e59',1,'ucs_ams_pb.h']]],
+ ['ucs_5famsrx_5frct_5fsinglecast',['UCS_AMSRX_RCT_SINGLECAST',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga113edf4cab85ce4e5e13ef257b5b7128.html#gga113edf4cab85ce4e5e13ef257b5b7128ae659af6679f35f9093306753d7993c78',1,'ucs_ams_pb.h']]],
+ ['ucs_5famsrx_5freceivetype_5ft',['Ucs_AmsRx_ReceiveType_t',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga113edf4cab85ce4e5e13ef257b5b7128.html#ga113edf4cab85ce4e5e13ef257b5b7128',1,'ucs_ams_pb.h']]],
+ ['ucs_5famsrx_5freleasemsg',['Ucs_AmsRx_ReleaseMsg',['../group___g___u_c_s___a_m_s_ga6f571e2e15fac1e4be068cdf0ccac44d.html#ga6f571e2e15fac1e4be068cdf0ccac44d',1,'ucs_class_pb.h']]],
+ ['ucs_5famstx_5fallocmsg',['Ucs_AmsTx_AllocMsg',['../group___g___u_c_s___a_m_s_gafbcfeaaa6ff3d255609e404b16dbdf0f.html#gafbcfeaaa6ff3d255609e404b16dbdf0f',1,'ucs_class_pb.h']]],
+ ['ucs_5famstx_5fcompletecb_5ft',['Ucs_AmsTx_CompleteCb_t',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga60acfdd5b93a99906d751ac2f14623a9.html#ga60acfdd5b93a99906d751ac2f14623a9',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5ffreeunusedmsg',['Ucs_AmsTx_FreeUnusedMsg',['../group___g___u_c_s___a_m_s_ga9e03946330dcc4ed4111b1d43714308d.html#ga9e03946330dcc4ed4111b1d43714308d',1,'ucs_class_pb.h']]],
+ ['ucs_5famstx_5fi_5ferr_5fack',['UCS_AMSTX_I_ERR_ACK',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479ac8bff0614950912c4eddc97b095055cb',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5fi_5ferr_5fbf',['UCS_AMSTX_I_ERR_BF',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479a3524c39a558966db2d1e9278f339f982',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5fi_5ferr_5fcfg_5fnoreceiver',['UCS_AMSTX_I_ERR_CFG_NORECEIVER',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479a4b8ca91b4ba4cf11df77c1ff8e2e1ba4',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5fi_5ferr_5fcrc',['UCS_AMSTX_I_ERR_CRC',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479acd257b1602b92467f83896952de4b3c1',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5fi_5ferr_5ffatal_5foa',['UCS_AMSTX_I_ERR_FATAL_OA',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479a3a9611a4c6c74652c619b5c9ddea9170',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5fi_5ferr_5ffatal_5fwt',['UCS_AMSTX_I_ERR_FATAL_WT',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479aef54c664a83ff2d101d4036b420dd7f5',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5fi_5ferr_5fid',['UCS_AMSTX_I_ERR_ID',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479ae8ca52f9ed225767ad2d62b195aeddf6',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5fi_5ferr_5ftimeout',['UCS_AMSTX_I_ERR_TIMEOUT',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479a456dfbf1fdb8a429118428e918e12557',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5fi_5ferr_5funavail_5foff',['UCS_AMSTX_I_ERR_UNAVAIL_OFF',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479a38cdf07b2ead1b0ab1d85fba8c20cdf7',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5fi_5ferr_5funavail_5ftrans',['UCS_AMSTX_I_ERR_UNAVAIL_TRANS',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479a837045ee240df8ebba459f75afae65fc',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5fi_5ferr_5funknown',['UCS_AMSTX_I_ERR_UNKNOWN',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479aeed4e66ae7a3d132f97ea0c3620cc215',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5fi_5ferr_5funsynced',['UCS_AMSTX_I_ERR_UNSYNCED',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479a58170c6f84f3dd2130c84c314cfb2ffe',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5fi_5fsuccess',['UCS_AMSTX_I_SUCCESS',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479a1cbc6f82e1b0b7e53e15132957a8fdb6',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5finfo_5ft',['Ucs_AmsTx_Info_t',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#ga667b741121fdfbda2fe19fa23ffc7479',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5finitdata_5ft',['Ucs_AmsTx_InitData_t',['../struct_ucs___ams_tx___init_data__t.html',1,'']]],
+ ['ucs_5famstx_5fmsg_5ft',['Ucs_AmsTx_Msg_t',['../struct_ucs___ams_tx___msg__t.html',1,'']]],
+ ['ucs_5famstx_5fmsgfreedcb_5ft',['Ucs_AmsTx_MsgFreedCb_t',['../group___g___u_c_s___a_m_s_ga79608ce8c26f58a6875e72c30ac60bda.html#ga79608ce8c26f58a6875e72c30ac60bda',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5fres_5ferr_5fbuf_5finternal',['UCS_AMSTX_RES_ERR_BUF_INTERNAL',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0ba5bb604d0c993b0b7aea0ed4b1e27041d',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5fres_5ferr_5finvalid_5ftgt',['UCS_AMSTX_RES_ERR_INVALID_TGT',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0ba99426ad75c697a377095fd16ac9f64dd',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5fres_5ferr_5fnot_5favailable',['UCS_AMSTX_RES_ERR_NOT_AVAILABLE',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0baf5b7a5f9d422eaba98b23f4558cf83c4',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5fres_5ferr_5fretries_5fexp',['UCS_AMSTX_RES_ERR_RETRIES_EXP',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0ba3c59ee9fddbf6377d012914c4d541c06',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5fres_5ferr_5funexpected',['UCS_AMSTX_RES_ERR_UNEXPECTED',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0baecaf2176f4c201d33f1e80bc8dcdc324',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5fres_5fsuccess',['UCS_AMSTX_RES_SUCCESS',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0ba3213fda6aaa6f3b8caafcf08b75e4e65',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5fresult_5ft',['Ucs_AmsTx_Result_t',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#ga36b630c866dc0c03134f60e98be39f0b',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5fsendmsg',['Ucs_AmsTx_SendMsg',['../group___g___u_c_s___a_m_s_ga6486fc060d0aa8b1bb34851d2e63b755.html#ga6486fc060d0aa8b1bb34851d2e63b755',1,'ucs_class_pb.h']]],
+ ['ucs_5favp_5fisocpacketsize_5ft',['Ucs_Avp_IsocPacketSize_t',['../group___g___u_c_s___x_r_m___e_n_u_m_ga8836a818f79ff1315f7f76bcd8e50a4d.html#ga8836a818f79ff1315f7f76bcd8e50a4d',1,'ucs_inic_pb.h']]],
+ ['ucs_5fbcd_5fdummy_5fsegment',['UCS_BCD_DUMMY_SEGMENT',['../group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga8ea444dafcef542cfafee9ee0e74a104.html#ga8ea444dafcef542cfafee9ee0e74a104',1,'ucs_inic_pb.h']]],
+ ['ucs_5fbcd_5freportcb_5ft',['Ucs_Bcd_ReportCb_t',['../group___g___u_c_s___b_c___d_i_a_g_ga9dcf9bd698b30335336ff78524866794.html#ga9dcf9bd698b30335336ff78524866794',1,'ucs_inic_pb.h']]],
+ ['ucs_5fbcd_5fres_5fend',['UCS_BCD_RES_END',['../group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#gga08b88fcd49483ac8d0ce004c104a4c12a9cde6e2034d4ab681bc6978edb671b1e',1,'ucs_inic_pb.h']]],
+ ['ucs_5fbcd_5fres_5ferror',['UCS_BCD_RES_ERROR',['../group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#gga08b88fcd49483ac8d0ce004c104a4c12a3a7748f1c2bab68f1c7969cfec95dabf',1,'ucs_inic_pb.h']]],
+ ['ucs_5fbcd_5fres_5fno_5fring_5fbreak',['UCS_BCD_RES_NO_RING_BREAK',['../group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#gga08b88fcd49483ac8d0ce004c104a4c12aa33f4df6db0d7b979097f3ea10b680af',1,'ucs_inic_pb.h']]],
+ ['ucs_5fbcd_5fres_5fring_5fbreak',['UCS_BCD_RES_RING_BREAK',['../group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#gga08b88fcd49483ac8d0ce004c104a4c12a135f26c3f41683d98230208b952f238f',1,'ucs_inic_pb.h']]],
+ ['ucs_5fbcd_5fres_5fsuccess',['UCS_BCD_RES_SUCCESS',['../group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#gga08b88fcd49483ac8d0ce004c104a4c12a9efd7ed8009ce371525bd17ba8cd33bb',1,'ucs_inic_pb.h']]],
+ ['ucs_5fbcd_5fres_5ftimeout1',['UCS_BCD_RES_TIMEOUT1',['../group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#gga08b88fcd49483ac8d0ce004c104a4c12a249b89261ce8db86eca6d76f43b84e1b',1,'ucs_inic_pb.h']]],
+ ['ucs_5fbcd_5fres_5ftimeout2',['UCS_BCD_RES_TIMEOUT2',['../group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#gga08b88fcd49483ac8d0ce004c104a4c12a5782a90257b123278c8ebb4a17b2f264',1,'ucs_inic_pb.h']]],
+ ['ucs_5fbcd_5frescode_5ft',['Ucs_Bcd_ResCode_t',['../group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#ga08b88fcd49483ac8d0ce004c104a4c12',1,'ucs_inic_pb.h']]],
+ ['ucs_5fbcd_5fstart',['Ucs_Bcd_Start',['../group___g___u_c_s___b_c___d_i_a_g_gaaefed31b3c57ef52a29237c3f84fb566.html#gaaefed31b3c57ef52a29237c3f84fb566',1,'ucs_class_pb.h']]],
+ ['ucs_5fcmd_5faddmsgidtable',['Ucs_Cmd_AddMsgIdTable',['../group___g___u_c_s___c_m_d_ga70c8351102177badff83fe412c4962b7.html#ga70c8351102177badff83fe412c4962b7',1,'ucs_class_pb.h']]],
+ ['ucs_5fcmd_5fdecodemsg',['Ucs_Cmd_DecodeMsg',['../group___g___u_c_s___c_m_d_gaaad9e557acfca6cc8c125c7b191515f1.html#gaaad9e557acfca6cc8c125c7b191515f1',1,'ucs_class_pb.h']]],
+ ['ucs_5fcmd_5fhandler_5ffunction_5ft',['Ucs_Cmd_Handler_Function_t',['../group___g___u_c_s___c_m_d___t_y_p_e_s_ga88dfb52f565e25938a8162e67aecd580.html#ga88dfb52f565e25938a8162e67aecd580',1,'ucs_cmd_pb.h']]],
+ ['ucs_5fcmd_5fmsgid_5ft',['Ucs_Cmd_MsgId_t',['../struct_ucs___cmd___msg_id__t.html',1,'']]],
+ ['ucs_5fcmd_5fmsgid_5ftermination',['UCS_CMD_MSGID_TERMINATION',['../group___g___u_c_s___c_m_d___t_y_p_e_s_ga5a43bcb8d64270611848455343857bc8.html#ga5a43bcb8d64270611848455343857bc8',1,'ucs_cmd_pb.h']]],
+ ['ucs_5fcmd_5fremovemsgidtable',['Ucs_Cmd_RemoveMsgIdTable',['../group___g___u_c_s___c_m_d_gafe38ecf4cd5bc81074af03affa2374a4.html#gafe38ecf4cd5bc81074af03affa2374a4',1,'ucs_class_pb.h']]],
+ ['ucs_5fcmd_5fret_5ferr_5falready_5fentered',['UCS_CMD_RET_ERR_ALREADY_ENTERED',['../group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#gga91f6db002b6fe98cdeb2969b19131cbbab4d57d230971b9f73d85ddd19f3f06ee',1,'ucs_cmd_pb.h']]],
+ ['ucs_5fcmd_5fret_5ferr_5fappl',['UCS_CMD_RET_ERR_APPL',['../group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#gga91f6db002b6fe98cdeb2969b19131cbba676c8302cdc00e5190d763b09dbe2e2f',1,'ucs_cmd_pb.h']]],
+ ['ucs_5fcmd_5fret_5ferr_5fmsgid_5fnotavail',['UCS_CMD_RET_ERR_MSGID_NOTAVAIL',['../group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#gga91f6db002b6fe98cdeb2969b19131cbbaa33605aae463493dea404f2d7390ec15',1,'ucs_cmd_pb.h']]],
+ ['ucs_5fcmd_5fret_5ferr_5fnull_5fptr',['UCS_CMD_RET_ERR_NULL_PTR',['../group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#gga91f6db002b6fe98cdeb2969b19131cbba5e844ee693f7195bf00120c79e8235c5',1,'ucs_cmd_pb.h']]],
+ ['ucs_5fcmd_5fret_5ferr_5ftx_5fbusy',['UCS_CMD_RET_ERR_TX_BUSY',['../group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#gga91f6db002b6fe98cdeb2969b19131cbba20d632ad52c0b2e0458849604f422dba',1,'ucs_cmd_pb.h']]],
+ ['ucs_5fcmd_5fret_5fsuccess',['UCS_CMD_RET_SUCCESS',['../group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#gga91f6db002b6fe98cdeb2969b19131cbba30cf8ec25015b74f098bb0e1e501d7c6',1,'ucs_cmd_pb.h']]],
+ ['ucs_5fcmd_5freturn_5ft',['Ucs_Cmd_Return_t',['../group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#ga91f6db002b6fe98cdeb2969b19131cbb',1,'ucs_cmd_pb.h']]],
+ ['ucs_5fcreateinstance',['Ucs_CreateInstance',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga85a99b5d236b29e2d598bef51edad638.html#ga85a99b5d236b29e2d598bef51edad638',1,'ucs_class_pb.h']]],
+ ['ucs_5fdebugerrormsgcb_5ft',['Ucs_DebugErrorMsgCb_t',['../group___g___u_c_s___t_r_a_c_e_gaf18b6867951fd06359788f6595b78195.html#gaf18b6867951fd06359788f6595b78195',1,'ucs_class_pb.h']]],
+ ['ucs_5ferror_5ft',['Ucs_Error_t',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga9551cd80ce8a13fa6cce717cbc13e499.html#ga9551cd80ce8a13fa6cce717cbc13e499',1,'ucs_eh_pb.h']]],
+ ['ucs_5ferrorcb_5ft',['Ucs_ErrorCb_t',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga64926a6a194cfb06703835e3d06475c6.html#ga64926a6a194cfb06703835e3d06475c6',1,'ucs_class_pb.h']]],
+ ['ucs_5fexc_5fsignature_5fversion_5flimit',['UCS_EXC_SIGNATURE_VERSION_LIMIT',['../group___g___u_c_s___n_e_t___t_y_p_e_s_gab6ef28648a40efb679babf0a7a5173e6.html#gab6ef28648a40efb679babf0a7a5173e6',1,'ucs_inic_pb.h']]],
+ ['ucs_5ffootprint_5ftiny',['UCS_FOOTPRINT_TINY',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_gaff7821fdddebc32a8a3f61a5eebc405a.html#gaff7821fdddebc32a8a3f61a5eebc405a',1,'ucs_rules.h']]],
+ ['ucs_5fgen_5ferr_5fcommunication',['UCS_GEN_ERR_COMMUNICATION',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga9551cd80ce8a13fa6cce717cbc13e499.html#gga9551cd80ce8a13fa6cce717cbc13e499ad407f31040ff1757ca3a3b98643e406d',1,'ucs_eh_pb.h']]],
+ ['ucs_5fgen_5ferr_5finic',['UCS_GEN_ERR_INIC',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga9551cd80ce8a13fa6cce717cbc13e499.html#gga9551cd80ce8a13fa6cce717cbc13e499a6c90c86ae1e93413b08142ea356336a4',1,'ucs_eh_pb.h']]],
+ ['ucs_5fgeneral_5finitdata_5ft',['Ucs_General_InitData_t',['../struct_ucs___general___init_data__t.html',1,'']]],
+ ['ucs_5fgettickcountcb_5ft',['Ucs_GetTickCountCb_t',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga981854177aa9ebd554ab522199193bd3.html#ga981854177aa9ebd554ab522199193bd3',1,'ucs_class_pb.h']]],
+ ['ucs_5fgpio_5fconfigpinmoderescb_5ft',['Ucs_Gpio_ConfigPinModeResCb_t',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga69f4d52dfc38232662abd4568e18e3c2.html#ga69f4d52dfc38232662abd4568e18e3c2',1,'ucs_gpio_pb.h']]],
+ ['ucs_5fgpio_5fcreateport',['Ucs_Gpio_CreatePort',['../group___g___u_c_s___g_p_i_o_ga76f4de37c98b0cdd7cc25a22a9dac8a9.html#ga76f4de37c98b0cdd7cc25a22a9dac8a9',1,'ucs_class_pb.h']]],
+ ['ucs_5fgpio_5fcreateportrescb_5ft',['Ucs_Gpio_CreatePortResCb_t',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga14238b74c9e86db4e775461f2cf9b1cb.html#ga14238b74c9e86db4e775461f2cf9b1cb',1,'ucs_gpio_pb.h']]],
+ ['ucs_5fgpio_5fgetpinmode',['Ucs_Gpio_GetPinMode',['../group___g___u_c_s___g_p_i_o_ga10b73bad28ba7e0f24d3676f082a11a1.html#ga10b73bad28ba7e0f24d3676f082a11a1',1,'ucs_class_pb.h']]],
+ ['ucs_5fgpio_5fin_5fdb_5ftrigger_5ffe',['UCS_GPIO_IN_DB_TRIGGER_FE',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a6b3ef7f6a36417340134f8515ca3cacc',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5fin_5fdb_5ftrigger_5fhl',['UCS_GPIO_IN_DB_TRIGGER_HL',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a0097aaff89dc2390f8cb2538759e7dd1',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5fin_5fdb_5ftrigger_5fll',['UCS_GPIO_IN_DB_TRIGGER_LL',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a7e3847141ff0ee6fd999d9fc1d87fbae',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5fin_5fdb_5ftrigger_5fre',['UCS_GPIO_IN_DB_TRIGGER_RE',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a2b1bbeedf9af00d3ca2ae66cb1c5e24e',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5fin_5fdebounced',['UCS_GPIO_IN_DEBOUNCED',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a58dd9cd05f9b030ea62b58a0a1d0466e',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5fin_5fsticky_5fhl',['UCS_GPIO_IN_STICKY_HL',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a1879711b642763de0a241c05ef37a8d1',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5fin_5fsticky_5fll',['UCS_GPIO_IN_STICKY_LL',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a40f39256ead895d688c6b4453dcc50fd',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5fin_5ftrigger_5ffe',['UCS_GPIO_IN_TRIGGER_FE',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49ae2e19388cad9b8b469f01fcf28386282',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5fin_5ftrigger_5fhl',['UCS_GPIO_IN_TRIGGER_HL',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49ad93bd4a0972f3b9d219d5ee944191adc',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5fin_5ftrigger_5fll',['UCS_GPIO_IN_TRIGGER_LL',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a3afeffaf0739a0c83b4a4f5c8b2819a9',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5fin_5ftrigger_5fre',['UCS_GPIO_IN_TRIGGER_RE',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49aa45d36ca2a1e7cf7784cf1a1c584f211',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5finitdata_5ft',['Ucs_Gpio_InitData_t',['../struct_ucs___gpio___init_data__t.html',1,'']]],
+ ['ucs_5fgpio_5finput',['UCS_GPIO_INPUT',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49ae900752d71b764e1d516d7f4851a5ad5',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5fout_5fdefault_5fhigh',['UCS_GPIO_OUT_DEFAULT_HIGH',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49ae5cfa651166ae5731b1d2677ab20c32c',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5fout_5fdefault_5flow',['UCS_GPIO_OUT_DEFAULT_LOW',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a97eb6c69f81b2438926688ef447bf7ee',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5fout_5fod_5ftrigger_5ffe',['UCS_GPIO_OUT_OD_TRIGGER_FE',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49abc808199f07f8d370cedf914243dc6a8',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5fout_5fod_5ftrigger_5fhl',['UCS_GPIO_OUT_OD_TRIGGER_HL',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a35d170a50162566d22e7060f332e1853',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5fout_5fod_5ftrigger_5fll',['UCS_GPIO_OUT_OD_TRIGGER_LL',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a8f4405ba3c6e04e5b753e716f923ebd2',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5fout_5fod_5ftrigger_5fre',['UCS_GPIO_OUT_OD_TRIGGER_RE',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a70501fdc88378cf07868868fb90557fd',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5fout_5fopen_5fdrain',['UCS_GPIO_OUT_OPEN_DRAIN',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49aa2c5f837c034c9ac5fb048a7e9047d2f',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5fpinconfiguration_5ft',['Ucs_Gpio_PinConfiguration_t',['../struct_ucs___gpio___pin_configuration__t.html',1,'']]],
+ ['ucs_5fgpio_5fpinmode_5ft',['Ucs_Gpio_PinMode_t',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#gacfcf034325bd7eff2f6fc78e8696ed49',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5fpinstaterescb_5ft',['Ucs_Gpio_PinStateResCb_t',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga106c6afdd6f996c8bc5d632f08236912.html#ga106c6afdd6f996c8bc5d632f08236912',1,'ucs_gpio_pb.h']]],
+ ['ucs_5fgpio_5freadport',['Ucs_Gpio_ReadPort',['../group___g___u_c_s___g_p_i_o_gaa2dc67622555e9e64e4bb524a8e18642.html#gaa2dc67622555e9e64e4bb524a8e18642',1,'ucs_class_pb.h']]],
+ ['ucs_5fgpio_5fres_5ferr_5fcmd',['UCS_GPIO_RES_ERR_CMD',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga7432b6d95eb2af7bce5fe5809b08d88b.html#gga7432b6d95eb2af7bce5fe5809b08d88ba204d1c257b844f4ed9d31f2a614f7f24',1,'ucs_gpio_pb.h']]],
+ ['ucs_5fgpio_5fres_5ferr_5fsync',['UCS_GPIO_RES_ERR_SYNC',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga7432b6d95eb2af7bce5fe5809b08d88b.html#gga7432b6d95eb2af7bce5fe5809b08d88ba7a5b3cf49d177ac97cfbb4a2e7796d68',1,'ucs_gpio_pb.h']]],
+ ['ucs_5fgpio_5fres_5fsuccess',['UCS_GPIO_RES_SUCCESS',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga7432b6d95eb2af7bce5fe5809b08d88b.html#gga7432b6d95eb2af7bce5fe5809b08d88ba00b6d2bbc409c15ce1f4bbdd53dab993',1,'ucs_gpio_pb.h']]],
+ ['ucs_5fgpio_5fresult_5ft',['Ucs_Gpio_Result_t',['../struct_ucs___gpio___result__t.html',1,'']]],
+ ['ucs_5fgpio_5fresult_5ftype_5ftgt',['UCS_GPIO_RESULT_TYPE_TGT',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga292134dc6bc30b6b4f0e3e8882c2e772.html#gga292134dc6bc30b6b4f0e3e8882c2e772abd0caef5b4b9f4f2b75f65c7f67f65bc',1,'ucs_gpio_pb.h']]],
+ ['ucs_5fgpio_5fresult_5ftype_5ftx',['UCS_GPIO_RESULT_TYPE_TX',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga292134dc6bc30b6b4f0e3e8882c2e772.html#gga292134dc6bc30b6b4f0e3e8882c2e772aa402809c65ce64324a827eb0ab4475b1',1,'ucs_gpio_pb.h']]],
+ ['ucs_5fgpio_5fresultcode_5ft',['Ucs_Gpio_ResultCode_t',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga7432b6d95eb2af7bce5fe5809b08d88b.html#ga7432b6d95eb2af7bce5fe5809b08d88b',1,'ucs_gpio_pb.h']]],
+ ['ucs_5fgpio_5fresultdetails_5ft',['Ucs_Gpio_ResultDetails_t',['../struct_ucs___gpio___result_details__t.html',1,'']]],
+ ['ucs_5fgpio_5fresulttype_5ft',['Ucs_Gpio_ResultType_t',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga292134dc6bc30b6b4f0e3e8882c2e772.html#ga292134dc6bc30b6b4f0e3e8882c2e772',1,'ucs_gpio_pb.h']]],
+ ['ucs_5fgpio_5fsetpinmode',['Ucs_Gpio_SetPinMode',['../group___g___u_c_s___g_p_i_o_gaf9ecc1f20870bf49d40521db09854a68.html#gaf9ecc1f20870bf49d40521db09854a68',1,'ucs_class_pb.h']]],
+ ['ucs_5fgpio_5ftriggereventresultcb_5ft',['Ucs_Gpio_TriggerEventResultCb_t',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga99bb3bcb2b588bc66d41f3e03d478020.html#ga99bb3bcb2b588bc66d41f3e03d478020',1,'ucs_gpio_pb.h']]],
+ ['ucs_5fgpio_5funavailable',['UCS_GPIO_UNAVAILABLE',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a3b1cbb2c0c6d6b0cc2ffab0fca8c0db6',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5funused',['UCS_GPIO_UNUSED',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49ad873d79be503a0c950b11f9c2bb78005',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5fwriteport',['Ucs_Gpio_WritePort',['../group___g___u_c_s___g_p_i_o_gaff68acc9fb26096cae9374694b43ae92.html#gaff68acc9fb26096cae9374694b43ae92',1,'ucs_class_pb.h']]],
+ ['ucs_5fi2c_5fburst_5fmode',['UCS_I2C_BURST_MODE',['../group___g___u_c_s___i2_c___t_y_p_e_s_ga631c2b70299a4c07ac77b6741b5b5e44.html#gga631c2b70299a4c07ac77b6741b5b5e44a3380b0b2a253a389aec424ef348a34b7',1,'ucs_inic_pb.h']]],
+ ['ucs_5fi2c_5fcreateport',['Ucs_I2c_CreatePort',['../group___g___u_c_s___i2_c_gac06f58d8a7775703373f12c3c677d687.html#gac06f58d8a7775703373f12c3c677d687',1,'ucs_class_pb.h']]],
+ ['ucs_5fi2c_5fcreateportrescb_5ft',['Ucs_I2c_CreatePortResCb_t',['../group___g___u_c_s___i2_c___t_y_p_e_s_gae1f1b25aca1c240022464571187ea98f.html#gae1f1b25aca1c240022464571187ea98f',1,'ucs_i2c_pb.h']]],
+ ['ucs_5fi2c_5fdefault_5fmode',['UCS_I2C_DEFAULT_MODE',['../group___g___u_c_s___i2_c___t_y_p_e_s_ga631c2b70299a4c07ac77b6741b5b5e44.html#gga631c2b70299a4c07ac77b6741b5b5e44ad6f21f4e04e8f755a59c8e7cef9cb7ad',1,'ucs_inic_pb.h']]],
+ ['ucs_5fi2c_5ffast_5fmode',['UCS_I2C_FAST_MODE',['../group___g___u_c_s___i2_c___t_y_p_e_s_ga8492cc027b5b9e2f436a172e526e1d5e.html#gga8492cc027b5b9e2f436a172e526e1d5ea577d5efdff88c202f2e2f43aed2b0391',1,'ucs_inic_pb.h']]],
+ ['ucs_5fi2c_5finitdata_5ft',['Ucs_I2c_InitData_t',['../struct_ucs___i2c___init_data__t.html',1,'']]],
+ ['ucs_5fi2c_5finteventreportcb_5ft',['Ucs_I2c_IntEventReportCb_t',['../group___g___u_c_s___i2_c___t_y_p_e_s_ga3bdd3013545f8249a73c73e0d28713f7.html#ga3bdd3013545f8249a73c73e0d28713f7',1,'ucs_i2c_pb.h']]],
+ ['ucs_5fi2c_5freadport',['Ucs_I2c_ReadPort',['../group___g___u_c_s___i2_c_ga153f7ce3ea500b2f39544e0ccfc86503.html#ga153f7ce3ea500b2f39544e0ccfc86503',1,'ucs_class_pb.h']]],
+ ['ucs_5fi2c_5freadportrescb_5ft',['Ucs_I2c_ReadPortResCb_t',['../group___g___u_c_s___i2_c___t_y_p_e_s_ga8dd5d3515acabc6a95e9bf32629eb644.html#ga8dd5d3515acabc6a95e9bf32629eb644',1,'ucs_i2c_pb.h']]],
+ ['ucs_5fi2c_5frepeated_5fmode',['UCS_I2C_REPEATED_MODE',['../group___g___u_c_s___i2_c___t_y_p_e_s_ga631c2b70299a4c07ac77b6741b5b5e44.html#gga631c2b70299a4c07ac77b6741b5b5e44ad5c54c3051eef15fbb36f003dc1633d4',1,'ucs_inic_pb.h']]],
+ ['ucs_5fi2c_5fres_5ferr_5fcmd',['UCS_I2C_RES_ERR_CMD',['../group___g___u_c_s___i2_c___t_y_p_e_s_ga930e829c3c689b8ead8f9fbf7f2ca237.html#gga930e829c3c689b8ead8f9fbf7f2ca237a7f9bec3206cf8dea98f72710bd6219e8',1,'ucs_i2c_pb.h']]],
+ ['ucs_5fi2c_5fres_5ferr_5fsync',['UCS_I2C_RES_ERR_SYNC',['../group___g___u_c_s___i2_c___t_y_p_e_s_ga930e829c3c689b8ead8f9fbf7f2ca237.html#gga930e829c3c689b8ead8f9fbf7f2ca237a3f4942e0d97505a6f343621b6a5d03a8',1,'ucs_i2c_pb.h']]],
+ ['ucs_5fi2c_5fres_5fsuccess',['UCS_I2C_RES_SUCCESS',['../group___g___u_c_s___i2_c___t_y_p_e_s_ga930e829c3c689b8ead8f9fbf7f2ca237.html#gga930e829c3c689b8ead8f9fbf7f2ca237a1f0bb0636d1fbe3a3c94541d3725b864',1,'ucs_i2c_pb.h']]],
+ ['ucs_5fi2c_5fresult_5ft',['Ucs_I2c_Result_t',['../struct_ucs___i2c___result__t.html',1,'']]],
+ ['ucs_5fi2c_5fresult_5ftype_5ftgt',['UCS_I2C_RESULT_TYPE_TGT',['../group___g___u_c_s___i2_c___t_y_p_e_s_ga7c7b4521cb5391bd20c02104876a811d.html#gga7c7b4521cb5391bd20c02104876a811da5f9dc425604e39a96af53cc4fb940cd6',1,'ucs_i2c_pb.h']]],
+ ['ucs_5fi2c_5fresult_5ftype_5ftx',['UCS_I2C_RESULT_TYPE_TX',['../group___g___u_c_s___i2_c___t_y_p_e_s_ga7c7b4521cb5391bd20c02104876a811d.html#gga7c7b4521cb5391bd20c02104876a811da1e9f8a38a7bf67986bb52aae45326f0e',1,'ucs_i2c_pb.h']]],
+ ['ucs_5fi2c_5fresultcode_5ft',['Ucs_I2c_ResultCode_t',['../group___g___u_c_s___i2_c___t_y_p_e_s_ga930e829c3c689b8ead8f9fbf7f2ca237.html#ga930e829c3c689b8ead8f9fbf7f2ca237',1,'ucs_i2c_pb.h']]],
+ ['ucs_5fi2c_5fresultdetails_5ft',['Ucs_I2c_ResultDetails_t',['../struct_ucs___i2c___result_details__t.html',1,'']]],
+ ['ucs_5fi2c_5fresulttype_5ft',['Ucs_I2c_ResultType_t',['../group___g___u_c_s___i2_c___t_y_p_e_s_ga7c7b4521cb5391bd20c02104876a811d.html#ga7c7b4521cb5391bd20c02104876a811d',1,'ucs_i2c_pb.h']]],
+ ['ucs_5fi2c_5fslow_5fmode',['UCS_I2C_SLOW_MODE',['../group___g___u_c_s___i2_c___t_y_p_e_s_ga8492cc027b5b9e2f436a172e526e1d5e.html#gga8492cc027b5b9e2f436a172e526e1d5ea91d8d37db8f69a15ca3d6d19b3f5d981',1,'ucs_inic_pb.h']]],
+ ['ucs_5fi2c_5fspeed_5ft',['Ucs_I2c_Speed_t',['../group___g___u_c_s___i2_c___t_y_p_e_s_ga8492cc027b5b9e2f436a172e526e1d5e.html#ga8492cc027b5b9e2f436a172e526e1d5e',1,'ucs_inic_pb.h']]],
+ ['ucs_5fi2c_5ftrmode_5ft',['Ucs_I2c_TrMode_t',['../group___g___u_c_s___i2_c___t_y_p_e_s_ga631c2b70299a4c07ac77b6741b5b5e44.html#ga631c2b70299a4c07ac77b6741b5b5e44',1,'ucs_inic_pb.h']]],
+ ['ucs_5fi2c_5fwriteport',['Ucs_I2c_WritePort',['../group___g___u_c_s___i2_c_gade4a94669fe4f29f18fe5bfd4e102474.html#gade4a94669fe4f29f18fe5bfd4e102474',1,'ucs_class_pb.h']]],
+ ['ucs_5fi2c_5fwriteportrescb_5ft',['Ucs_I2c_WritePortResCb_t',['../group___g___u_c_s___i2_c___t_y_p_e_s_ga50029da1794f34d3ddac9df8d537c234.html#ga50029da1794f34d3ddac9df8d537c234',1,'ucs_i2c_pb.h']]],
+ ['ucs_5finic_5finitdata_5ft',['Ucs_Inic_InitData_t',['../struct_ucs___inic___init_data__t.html',1,'']]],
+ ['ucs_5finic_5flastresetreason_5ft',['Ucs_Inic_LastResetReason_t',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga17139fe9e7d72bdb5a09d5a1ab39de4e.html#ga17139fe9e7d72bdb5a09d5a1ab39de4e',1,'ucs_inic_pb.h']]],
+ ['ucs_5finic_5fpowerstate_5ft',['Ucs_Inic_PowerState_t',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga132c4c68227062e63ffb99b321b9a677.html#ga132c4c68227062e63ffb99b321b9a677',1,'ucs_inic_pb.h']]],
+ ['ucs_5finic_5fpowerstatecb_5ft',['Ucs_Inic_PowerStateCb_t',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_gaca78cd7da871ae21b1d546c31e604772.html#gaca78cd7da871ae21b1d546c31e604772',1,'ucs_class_pb.h']]],
+ ['ucs_5finic_5fpws_5fno_5fmonitoring',['UCS_INIC_PWS_NO_MONITORING',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga132c4c68227062e63ffb99b321b9a677.html#gga132c4c68227062e63ffb99b321b9a677aa33c9585db02ba2136a5214e9a0fc72e',1,'ucs_inic_pb.h']]],
+ ['ucs_5finic_5fpws_5fstp',['UCS_INIC_PWS_STP',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga132c4c68227062e63ffb99b321b9a677.html#gga132c4c68227062e63ffb99b321b9a677abca288e1dc24d1dae285b7be73abe1d2',1,'ucs_inic_pb.h']]],
+ ['ucs_5finic_5fpws_5fu_5fcritical',['UCS_INIC_PWS_U_CRITICAL',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga132c4c68227062e63ffb99b321b9a677.html#gga132c4c68227062e63ffb99b321b9a677a64b91caa822c22017b4aca60d38c78c8',1,'ucs_inic_pb.h']]],
+ ['ucs_5finic_5fpws_5fu_5flow',['UCS_INIC_PWS_U_LOW',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga132c4c68227062e63ffb99b321b9a677.html#gga132c4c68227062e63ffb99b321b9a677a11e4fbe29a4fdb2c2e0afeb25e09965a',1,'ucs_inic_pb.h']]],
+ ['ucs_5finic_5fpws_5fu_5fnormal',['UCS_INIC_PWS_U_NORMAL',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga132c4c68227062e63ffb99b321b9a677.html#gga132c4c68227062e63ffb99b321b9a677ad9a4e228862a8bb126d2e508d85a0389',1,'ucs_inic_pb.h']]],
+ ['ucs_5finic_5frst_5fhw_5fwatchdog',['UCS_INIC_RST_HW_WATCHDOG',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga17139fe9e7d72bdb5a09d5a1ab39de4e.html#gga17139fe9e7d72bdb5a09d5a1ab39de4ea300964cfd947816911fc84b377645b66',1,'ucs_inic_pb.h']]],
+ ['ucs_5finic_5frst_5fstack_5foverflow',['UCS_INIC_RST_STACK_OVERFLOW',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga17139fe9e7d72bdb5a09d5a1ab39de4e.html#gga17139fe9e7d72bdb5a09d5a1ab39de4ea1d4d0eca4c7fe754ecdfa67ecafcdb66',1,'ucs_inic_pb.h']]],
+ ['ucs_5finic_5frst_5fstartup',['UCS_INIC_RST_STARTUP',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga17139fe9e7d72bdb5a09d5a1ab39de4e.html#gga17139fe9e7d72bdb5a09d5a1ab39de4ea68f49058a3c2aa114b5648ebd5913127',1,'ucs_inic_pb.h']]],
+ ['ucs_5finic_5fversion_5ft',['Ucs_Inic_Version_t',['../struct_ucs___inic___version__t.html',1,'']]],
+ ['ucs_5finit',['Ucs_Init',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_gaea8d7735d41853167a2befdc06febe43.html#gaea8d7735d41853167a2befdc06febe43',1,'ucs_class_pb.h']]],
+ ['ucs_5finit_5fres_5ferr_5fbuf_5foverflow',['UCS_INIT_RES_ERR_BUF_OVERFLOW',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78ca5e10b22e7790c92189a9919144403a62',1,'ucs_ret_pb.h']]],
+ ['ucs_5finit_5fres_5ferr_5fdev_5fatt_5fcfg',['UCS_INIT_RES_ERR_DEV_ATT_CFG',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78cabf7bd2e232e7c79cc52158c39f33cfce',1,'ucs_ret_pb.h']]],
+ ['ucs_5finit_5fres_5ferr_5fdev_5fatt_5fproc',['UCS_INIT_RES_ERR_DEV_ATT_PROC',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78ca7396a1d49772aea15554fa43a0f70aa1',1,'ucs_ret_pb.h']]],
+ ['ucs_5finit_5fres_5ferr_5finic_5fsync',['UCS_INIT_RES_ERR_INIC_SYNC',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78ca8191a6141de6a807faf20d10f891ae1b',1,'ucs_ret_pb.h']]],
+ ['ucs_5finit_5fres_5ferr_5finic_5fsystem',['UCS_INIT_RES_ERR_INIC_SYSTEM',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78cade535af6ab10db100b979034ab8d0b42',1,'ucs_ret_pb.h']]],
+ ['ucs_5finit_5fres_5ferr_5finic_5fversion',['UCS_INIT_RES_ERR_INIC_VERSION',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78ca735eb5f7e05170ce9795455a2edc8ff8',1,'ucs_ret_pb.h']]],
+ ['ucs_5finit_5fres_5ferr_5finternal',['UCS_INIT_RES_ERR_INTERNAL',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78ca994453c34eb59dd6c4aff21c7cec7346',1,'ucs_ret_pb.h']]],
+ ['ucs_5finit_5fres_5ferr_5fnet_5fcfg',['UCS_INIT_RES_ERR_NET_CFG',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78ca6e5f7ef8de83f043b212140987ed8d17',1,'ucs_ret_pb.h']]],
+ ['ucs_5finit_5fres_5ferr_5ftimeout',['UCS_INIT_RES_ERR_TIMEOUT',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78ca64e1be1198542a86cdc7082a3ee4fc13',1,'ucs_ret_pb.h']]],
+ ['ucs_5finit_5fres_5fsuccess',['UCS_INIT_RES_SUCCESS',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78cac4d2785b5c79a9b38389e08d30494714',1,'ucs_ret_pb.h']]],
+ ['ucs_5finitdata_5ft',['Ucs_InitData_t',['../struct_ucs___init_data__t.html',1,'']]],
+ ['ucs_5finitresult_5ft',['Ucs_InitResult_t',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#ga0a933f34b9acbf21dc68f426c324e78c',1,'ucs_ret_pb.h']]],
+ ['ucs_5finitresultcb_5ft',['Ucs_InitResultCb_t',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gaba3a47e6c1d360c77e560cefe8c541e3.html#gaba3a47e6c1d360c77e560cefe8c541e3',1,'ucs_ret_pb.h']]],
+ ['ucs_5finst_5ft',['Ucs_Inst_t',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda',1,'ucs_class_pb.h']]],
+ ['ucs_5fisoc_5fpckt_5fsize_5f188',['UCS_ISOC_PCKT_SIZE_188',['../group___g___u_c_s___x_r_m___e_n_u_m_ga8836a818f79ff1315f7f76bcd8e50a4d.html#gga8836a818f79ff1315f7f76bcd8e50a4da5b103421ef1b66b0f939bf1331070d31',1,'ucs_inic_pb.h']]],
+ ['ucs_5fisoc_5fpckt_5fsize_5f196',['UCS_ISOC_PCKT_SIZE_196',['../group___g___u_c_s___x_r_m___e_n_u_m_ga8836a818f79ff1315f7f76bcd8e50a4d.html#gga8836a818f79ff1315f7f76bcd8e50a4da25b3c21607a88231bab533a93b8d6849',1,'ucs_inic_pb.h']]],
+ ['ucs_5fisoc_5fpckt_5fsize_5f206',['UCS_ISOC_PCKT_SIZE_206',['../group___g___u_c_s___x_r_m___e_n_u_m_ga8836a818f79ff1315f7f76bcd8e50a4d.html#gga8836a818f79ff1315f7f76bcd8e50a4da36f9f325486cb5312551b573efdaae61',1,'ucs_inic_pb.h']]],
+ ['ucs_5flld_5fapi_5ft',['Ucs_Lld_Api_t',['../struct_ucs___lld___api__t.html',1,'']]],
+ ['ucs_5flld_5fcallbacks_5ft',['Ucs_Lld_Callbacks_t',['../struct_ucs___lld___callbacks__t.html',1,'']]],
+ ['ucs_5flld_5fresetiniccb_5ft',['Ucs_Lld_ResetInicCb_t',['../group___g___u_c_s___l_l_d_gabb4b73751b87fe9a63b3d15403a81965.html#gabb4b73751b87fe9a63b3d15403a81965',1,'ucs_lld_pb.h']]],
+ ['ucs_5flld_5frxallocatecb_5ft',['Ucs_Lld_RxAllocateCb_t',['../group___g___u_c_s___l_l_d___a_p_i_ga5bfaf97236d417072fe606f24bb3c8ad.html#ga5bfaf97236d417072fe606f24bb3c8ad',1,'ucs_lld_pb.h']]],
+ ['ucs_5flld_5frxfreeunusedcb_5ft',['Ucs_Lld_RxFreeUnusedCb_t',['../group___g___u_c_s___l_l_d___a_p_i_gadc535a5be0f7bf336dc66cecfff8067d.html#gadc535a5be0f7bf336dc66cecfff8067d',1,'ucs_lld_pb.h']]],
+ ['ucs_5flld_5frxmsg_5ft',['Ucs_Lld_RxMsg_t',['../struct_ucs___lld___rx_msg__t.html',1,'']]],
+ ['ucs_5flld_5frxmsgavailablecb_5ft',['Ucs_Lld_RxMsgAvailableCb_t',['../group___g___u_c_s___l_l_d_gae49a0953d88e8fbd4ebf2ce9c5f7b7f1.html#gae49a0953d88e8fbd4ebf2ce9c5f7b7f1',1,'ucs_lld_pb.h']]],
+ ['ucs_5flld_5frxreceivecb_5ft',['Ucs_Lld_RxReceiveCb_t',['../group___g___u_c_s___l_l_d___a_p_i_ga03c6fb96255dffab2fd1ca1a70204ad9.html#ga03c6fb96255dffab2fd1ca1a70204ad9',1,'ucs_lld_pb.h']]],
+ ['ucs_5flld_5fstartcb_5ft',['Ucs_Lld_StartCb_t',['../group___g___u_c_s___l_l_d_ga73f07fb097d3c1bb6c5bf048f088166e.html#ga73f07fb097d3c1bb6c5bf048f088166e',1,'ucs_lld_pb.h']]],
+ ['ucs_5flld_5fstopcb_5ft',['Ucs_Lld_StopCb_t',['../group___g___u_c_s___l_l_d_ga917011a0aed9ca6d0aaf2201dc8c0e9f.html#ga917011a0aed9ca6d0aaf2201dc8c0e9f',1,'ucs_lld_pb.h']]],
+ ['ucs_5flld_5ftxmsg_5ft',['Ucs_Lld_TxMsg_t',['../struct_ucs___lld___tx_msg__t.html',1,'']]],
+ ['ucs_5flld_5ftxreleasecb_5ft',['Ucs_Lld_TxReleaseCb_t',['../group___g___u_c_s___l_l_d___a_p_i_ga59b99932c0fd7cd21f1c9788d60f1d4e.html#ga59b99932c0fd7cd21f1c9788d60f1d4e',1,'ucs_lld_pb.h']]],
+ ['ucs_5flld_5ftxtransmitcb_5ft',['Ucs_Lld_TxTransmitCb_t',['../group___g___u_c_s___l_l_d_gaa618347d194113c34f5b21d3c36ba7b6.html#gaa618347d194113c34f5b21d3c36ba7b6',1,'ucs_lld_pb.h']]],
+ ['ucs_5fmem_5fbuffer_5ft',['Ucs_Mem_Buffer_t',['../struct_ucs___mem___buffer__t.html',1,'']]],
+ ['ucs_5fmgr_5finitdata_5ft',['Ucs_Mgr_InitData_t',['../struct_ucs___mgr___init_data__t.html',1,'']]],
+ ['ucs_5fmgr_5frep_5favailable',['UCS_MGR_REP_AVAILABLE',['../group___g___u_c_s___m_g_r_gab85aa9ce377050505124af5e9549e445.html#ggab85aa9ce377050505124af5e9549e445ac7d7f8d978224660f4c6b94f2651d19e',1,'ucs_nodeobserver_pb.h']]],
+ ['ucs_5fmgr_5frep_5fignored_5fduplicate',['UCS_MGR_REP_IGNORED_DUPLICATE',['../group___g___u_c_s___m_g_r_gab85aa9ce377050505124af5e9549e445.html#ggab85aa9ce377050505124af5e9549e445afe4f1822be465b7a8891dccf0af36945',1,'ucs_nodeobserver_pb.h']]],
+ ['ucs_5fmgr_5frep_5fignored_5funknown',['UCS_MGR_REP_IGNORED_UNKNOWN',['../group___g___u_c_s___m_g_r_gab85aa9ce377050505124af5e9549e445.html#ggab85aa9ce377050505124af5e9549e445a6fcfe54d64bd8cf6b24361bf326f6c49',1,'ucs_nodeobserver_pb.h']]],
+ ['ucs_5fmgr_5frep_5fnot_5favailable',['UCS_MGR_REP_NOT_AVAILABLE',['../group___g___u_c_s___m_g_r_gab85aa9ce377050505124af5e9549e445.html#ggab85aa9ce377050505124af5e9549e445a8c94fd8dfa39ea4a65b30a9ebfb5a38b',1,'ucs_nodeobserver_pb.h']]],
+ ['ucs_5fmgrreport_5ft',['Ucs_MgrReport_t',['../group___g___u_c_s___m_g_r_gab85aa9ce377050505124af5e9549e445.html#gab85aa9ce377050505124af5e9549e445',1,'ucs_nodeobserver_pb.h']]],
+ ['ucs_5fmgrreportcb_5ft',['Ucs_MgrReportCb_t',['../group___g___u_c_s___m_g_r_gad54678ad2a4671ec224422a8647b20f6.html#gad54678ad2a4671ec224422a8647b20f6',1,'ucs_nodeobserver_pb.h']]],
+ ['ucs_5fmlb_5fclk_5fcfg_5f1024_5ffs',['UCS_MLB_CLK_CFG_1024_FS',['../group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63a8da54fd7f88cdcea8971667824e2c5b7',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmlb_5fclk_5fcfg_5f2048_5ffs',['UCS_MLB_CLK_CFG_2048_FS',['../group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63afcdf9e1f4b0c6f42d1491384192f3578',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmlb_5fclk_5fcfg_5f256_5ffs',['UCS_MLB_CLK_CFG_256_FS',['../group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63a25478748c90e08007550f3b6e069378a',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmlb_5fclk_5fcfg_5f3072_5ffs',['UCS_MLB_CLK_CFG_3072_FS',['../group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63a72d60c9e85da4923a494f394d8e644dd',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmlb_5fclk_5fcfg_5f4096_5ffs',['UCS_MLB_CLK_CFG_4096_FS',['../group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63ab1210db92ad1770f156c2686e0189024',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmlb_5fclk_5fcfg_5f512_5ffs',['UCS_MLB_CLK_CFG_512_FS',['../group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63a13645115ff4864a09293ef5cdaaaf963',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmlb_5fclk_5fcfg_5f6144_5ffs',['UCS_MLB_CLK_CFG_6144_FS',['../group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63abbb9505a7b8b38cd4a402a66adfba660',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmlb_5fclk_5fcfg_5f8192_5ffs',['UCS_MLB_CLK_CFG_8192_FS',['../group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63ade97fa17799ee97eebea56f563ef8e55',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmlb_5fclk_5fcfg_5fwildcard',['UCS_MLB_CLK_CFG_WILDCARD',['../group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63a0bd2aca9cfb3e4965d2a3b61aca9681f',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmlb_5fclockconfig_5ft',['Ucs_Mlb_ClockConfig_t',['../group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#ga12193f5b8d160e84ad8b9853b0308f63',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmlb_5fsckt_5fav_5fpacketized',['UCS_MLB_SCKT_AV_PACKETIZED',['../group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html#ggaf3facaf3378409c31465c68380990b53a6b4873430ce4475a59af9c849238b8a1',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmlb_5fsckt_5fcontrol_5fdata',['UCS_MLB_SCKT_CONTROL_DATA',['../group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html#ggaf3facaf3378409c31465c68380990b53a8f7c19482d19a5e61d7f57a41f1605a5',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmlb_5fsckt_5fdisc_5fframe_5fphase',['UCS_MLB_SCKT_DISC_FRAME_PHASE',['../group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html#ggaf3facaf3378409c31465c68380990b53aa26b21e1fb0aca35442102baa8f4a11a',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmlb_5fsckt_5fipc_5fpacket',['UCS_MLB_SCKT_IPC_PACKET',['../group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html#ggaf3facaf3378409c31465c68380990b53ac365dd966ebfeeff2906e73f16c5e441',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmlb_5fsckt_5fqos_5fip',['UCS_MLB_SCKT_QOS_IP',['../group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html#ggaf3facaf3378409c31465c68380990b53a093d3a85730728a90043a05ab042bd25',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmlb_5fsckt_5fsync_5fdata',['UCS_MLB_SCKT_SYNC_DATA',['../group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html#ggaf3facaf3378409c31465c68380990b53a09527a2a481a353e06071b0d83a97fd9',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmlb_5fsocketdatatype_5ft',['Ucs_Mlb_SocketDataType_t',['../group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html#gaf3facaf3378409c31465c68380990b53',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmost_5fport_5favail',['UCS_MOST_PORT_AVAIL',['../group___g___u_c_s___x_r_m___e_n_u_m_ga902951b9083ff58a88e19e151b57106a.html#gga902951b9083ff58a88e19e151b57106aaa0255a1f099a88d43d562c2c3f9e7307',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmost_5fport_5fnot_5favail',['UCS_MOST_PORT_NOT_AVAIL',['../group___g___u_c_s___x_r_m___e_n_u_m_ga902951b9083ff58a88e19e151b57106a.html#gga902951b9083ff58a88e19e151b57106aa367f9c085169b943f1084f48e2db430c',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmost_5fportavail_5ft',['Ucs_Most_PortAvail_t',['../group___g___u_c_s___x_r_m___e_n_u_m_ga902951b9083ff58a88e19e151b57106a.html#ga902951b9083ff58a88e19e151b57106a',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmost_5fportavailinfo_5ft',['Ucs_Most_PortAvailInfo_t',['../group___g___u_c_s___x_r_m___e_n_u_m_ga24bf81b4e52fc1fb01deba9165d7c79e.html#ga24bf81b4e52fc1fb01deba9165d7c79e',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmost_5fprt_5favl_5finf_5fregular',['UCS_MOST_PRT_AVL_INF_REGULAR',['../group___g___u_c_s___x_r_m___e_n_u_m_ga24bf81b4e52fc1fb01deba9165d7c79e.html#gga24bf81b4e52fc1fb01deba9165d7c79eae407528edcdb4d1b773340cf024e7c30',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmost_5fprt_5favl_5finf_5fstable',['UCS_MOST_PRT_AVL_INF_STABLE',['../group___g___u_c_s___x_r_m___e_n_u_m_ga24bf81b4e52fc1fb01deba9165d7c79e.html#gga24bf81b4e52fc1fb01deba9165d7c79ea0633c428576d7cd9411e2594166b9227',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmost_5fprt_5favl_5finf_5funstable',['UCS_MOST_PRT_AVL_INF_UNSTABLE',['../group___g___u_c_s___x_r_m___e_n_u_m_ga24bf81b4e52fc1fb01deba9165d7c79e.html#gga24bf81b4e52fc1fb01deba9165d7c79ea2c0ceb407c48e14845e2218c121dfeea',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmost_5fsckt_5fav_5fpacketized',['UCS_MOST_SCKT_AV_PACKETIZED',['../group___g___u_c_s___x_r_m___e_n_u_m_gab29e10223e27331045485facbe4102ee.html#ggab29e10223e27331045485facbe4102eeac9bedb4912676bc0a2fdca379f5dc9e7',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmost_5fsckt_5fdisc_5fframe_5fphase',['UCS_MOST_SCKT_DISC_FRAME_PHASE',['../group___g___u_c_s___x_r_m___e_n_u_m_gab29e10223e27331045485facbe4102ee.html#ggab29e10223e27331045485facbe4102eea17d7e05acbb595e6d96d985e90c874ba',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmost_5fsckt_5fqos_5fip',['UCS_MOST_SCKT_QOS_IP',['../group___g___u_c_s___x_r_m___e_n_u_m_gab29e10223e27331045485facbe4102ee.html#ggab29e10223e27331045485facbe4102eeab11bbea636b1bbfbba10d9073ba09896',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmost_5fsckt_5fsync_5fdata',['UCS_MOST_SCKT_SYNC_DATA',['../group___g___u_c_s___x_r_m___e_n_u_m_gab29e10223e27331045485facbe4102ee.html#ggab29e10223e27331045485facbe4102eea345ad57d9919545fa5e5bf8393b0224f',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmost_5fsocketdatatype_5ft',['Ucs_Most_SocketDataType_t',['../group___g___u_c_s___x_r_m___e_n_u_m_gab29e10223e27331045485facbe4102ee.html#gab29e10223e27331045485facbe4102ee',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmsg_5fstat_5ferror_5fack',['UCS_MSG_STAT_ERROR_ACK',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a0b34261bd4e959454ee3b4eab0f72e4c',1,'ucs_message_pb.h']]],
+ ['ucs_5fmsg_5fstat_5ferror_5fbf',['UCS_MSG_STAT_ERROR_BF',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a4e0b2b5525b1de2e4305f95ecd39b652',1,'ucs_message_pb.h']]],
+ ['ucs_5fmsg_5fstat_5ferror_5fcfg_5fno_5frcvr',['UCS_MSG_STAT_ERROR_CFG_NO_RCVR',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a9a33312cd89f2f2e917c30bd304a9e64',1,'ucs_message_pb.h']]],
+ ['ucs_5fmsg_5fstat_5ferror_5fcrc',['UCS_MSG_STAT_ERROR_CRC',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6ab82dfa03424d6bb820ccec46e51b3fa4',1,'ucs_message_pb.h']]],
+ ['ucs_5fmsg_5fstat_5ferror_5ffatal_5foa',['UCS_MSG_STAT_ERROR_FATAL_OA',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6aa86b80e9a990af483bf757fc147ba7c5',1,'ucs_message_pb.h']]],
+ ['ucs_5fmsg_5fstat_5ferror_5ffatal_5fwt',['UCS_MSG_STAT_ERROR_FATAL_WT',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a648be71e021d246fe90ce1b2cb4166b1',1,'ucs_message_pb.h']]],
+ ['ucs_5fmsg_5fstat_5ferror_5fid',['UCS_MSG_STAT_ERROR_ID',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a451d05814d329a24ef6820b885569370',1,'ucs_message_pb.h']]],
+ ['ucs_5fmsg_5fstat_5ferror_5fna_5foff',['UCS_MSG_STAT_ERROR_NA_OFF',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a75e329b060753596c4102c798752f4da',1,'ucs_message_pb.h']]],
+ ['ucs_5fmsg_5fstat_5ferror_5fna_5ftrans',['UCS_MSG_STAT_ERROR_NA_TRANS',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6ac6dbca4bb4f732e389d8b242eebc424e',1,'ucs_message_pb.h']]],
+ ['ucs_5fmsg_5fstat_5ferror_5fsync',['UCS_MSG_STAT_ERROR_SYNC',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a8e0466e6c50ca8200d3a5a60e6922769',1,'ucs_message_pb.h']]],
+ ['ucs_5fmsg_5fstat_5ferror_5ftimeout',['UCS_MSG_STAT_ERROR_TIMEOUT',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a9bc8c6ee18b2265f67413894e75073f1',1,'ucs_message_pb.h']]],
+ ['ucs_5fmsg_5fstat_5ferror_5funknown',['UCS_MSG_STAT_ERROR_UNKNOWN',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a2f33c4f038e0ddac2c4c4e10ddfe9ae6',1,'ucs_message_pb.h']]],
+ ['ucs_5fmsg_5fstat_5fok',['UCS_MSG_STAT_OK',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a86fbcae96541ea83f7a283fc973288f2',1,'ucs_message_pb.h']]],
+ ['ucs_5fmsgtxstatus_5ft',['Ucs_MsgTxStatus_t',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#gac5aa79eb466a98f645c0302f402294d6',1,'ucs_message_pb.h']]],
+ ['ucs_5fnd_5fcheckresult_5ft',['Ucs_Nd_CheckResult_t',['../group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_gae1f89dbd75e3d76917273450df37ff66.html#gae1f89dbd75e3d76917273450df37ff66',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnd_5fchk_5funique',['UCS_ND_CHK_UNIQUE',['../group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_gae1f89dbd75e3d76917273450df37ff66.html#ggae1f89dbd75e3d76917273450df37ff66acdbc82cdd701e67cdd7520172767ba75',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnd_5fchk_5funknown',['UCS_ND_CHK_UNKNOWN',['../group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_gae1f89dbd75e3d76917273450df37ff66.html#ggae1f89dbd75e3d76917273450df37ff66a4ed7307250366668604925bf3650be4c',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnd_5fchk_5fwelcome',['UCS_ND_CHK_WELCOME',['../group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_gae1f89dbd75e3d76917273450df37ff66.html#ggae1f89dbd75e3d76917273450df37ff66a0c15fbb8aa9ee8dbf0362b9e9a8b6942',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnd_5fevalcb_5ft',['Ucs_Nd_EvalCb_t',['../group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_ga61b182f93d2815857f62ea51782bb13d.html#ga61b182f93d2815857f62ea51782bb13d',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnd_5finitall',['Ucs_Nd_InitAll',['../group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_gabab6c431e235fe0211f5f1525f9cff2e.html#gabab6c431e235fe0211f5f1525f9cff2e',1,'ucs_class_pb.h']]],
+ ['ucs_5fnd_5finitdata_5ft',['Ucs_Nd_InitData_t',['../struct_ucs___nd___init_data__t.html',1,'']]],
+ ['ucs_5fnd_5freportcb_5ft',['Ucs_Nd_ReportCb_t',['../group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_gab3c981bc09b0e5033e5163b8e5aafca7.html#gab3c981bc09b0e5033e5163b8e5aafca7',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnd_5fres_5ferror',['UCS_ND_RES_ERROR',['../group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#gga6736f9abd905dafe99d1337ac672f94ea6012ff8c839a76de8761723d08e7fe60',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnd_5fres_5fmulti',['UCS_ND_RES_MULTI',['../group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#gga6736f9abd905dafe99d1337ac672f94ea2cc431bce680f2c35dd55da8a7946a42',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnd_5fres_5fnetoff',['UCS_ND_RES_NETOFF',['../group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#gga6736f9abd905dafe99d1337ac672f94ead82683dc383edac131c5d4edaa3743ee',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnd_5fres_5fstopped',['UCS_ND_RES_STOPPED',['../group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#gga6736f9abd905dafe99d1337ac672f94ea6a027a5f3ac858db61db8867da370bb1',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnd_5fres_5funknown',['UCS_ND_RES_UNKNOWN',['../group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#gga6736f9abd905dafe99d1337ac672f94ea9c00fd1653c0246f2a13a435186f13f2',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnd_5fres_5fwelcome_5fsuccess',['UCS_ND_RES_WELCOME_SUCCESS',['../group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#gga6736f9abd905dafe99d1337ac672f94ea5bbe1036a7d23ba01e57c0a1f81875cf',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnd_5frescode_5ft',['Ucs_Nd_ResCode_t',['../group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#ga6736f9abd905dafe99d1337ac672f94e',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnd_5fstart',['Ucs_Nd_Start',['../group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_ga50a5b00d5bbd1ad324478509dc524eec.html#ga50a5b00d5bbd1ad324478509dc524eec',1,'ucs_class_pb.h']]],
+ ['ucs_5fnd_5fstop',['Ucs_Nd_Stop',['../group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_ga637e441520f7b203e551274f17febfb6.html#ga637e441520f7b203e551274f17febfb6',1,'ucs_class_pb.h']]],
+ ['ucs_5fnetwork_5favailability_5ft',['Ucs_Network_Availability_t',['../group___g___u_c_s___n_e_t___t_y_p_e_s_ga6b0bec2ae9e4d0fb93eefd65752f0c74.html#ga6b0bec2ae9e4d0fb93eefd65752f0c74',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnetwork_5favailinfo_5ft',['Ucs_Network_AvailInfo_t',['../group___g___u_c_s___n_e_t___t_y_p_e_s_gad5ed0387c3c156602826d50ce94c9df7.html#gad5ed0387c3c156602826d50ce94c9df7',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnetwork_5favailtranscause_5ft',['Ucs_Network_AvailTransCause_t',['../group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#gab4ec40bf01de998abc4f2ae34c26ac46',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnetwork_5fevent_5fnce',['UCS_NETWORK_EVENT_NCE',['../group___g___u_c_s___n_e_t___t_y_p_e_s_ga5f170c3358fc47999f969ee868d113ef.html#ga5f170c3358fc47999f969ee868d113ef',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnetwork_5fforcenotavailable',['Ucs_Network_ForceNotAvailable',['../group___g___u_c_s___n_e_t_ga3a71b7772ce265a77eefa7ad069c4819.html#ga3a71b7772ce265a77eefa7ad069c4819',1,'ucs_class_pb.h']]],
+ ['ucs_5fnetwork_5fframecountercb_5ft',['Ucs_Network_FrameCounterCb_t',['../group___g___u_c_s___n_e_t_ga43fb9c04d5ad142f6abbf9566af82f8c.html#ga43fb9c04d5ad142f6abbf9566af82f8c',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnetwork_5fgetframecounter',['Ucs_Network_GetFrameCounter',['../group___g___u_c_s___n_e_t_ga3360b1585b5a9b54d24a934c22a44281.html#ga3360b1585b5a9b54d24a934c22a44281',1,'ucs_class_pb.h']]],
+ ['ucs_5fnetwork_5fgetnodescount',['Ucs_Network_GetNodesCount',['../group___g___u_c_s___n_e_t_gaf08bc0be54565e30143166d675866f87.html#gaf08bc0be54565e30143166d675866f87',1,'ucs_class_pb.h']]],
+ ['ucs_5fnetwork_5finitdata_5ft',['Ucs_Network_InitData_t',['../struct_ucs___network___init_data__t.html',1,'']]],
+ ['ucs_5fnetwork_5fshutdown',['Ucs_Network_Shutdown',['../group___g___u_c_s___n_e_t_ga1e49ce81a42f09bcecc2202edc2b93fc.html#ga1e49ce81a42f09bcecc2202edc2b93fc',1,'ucs_class_pb.h']]],
+ ['ucs_5fnetwork_5fstartup',['Ucs_Network_Startup',['../group___g___u_c_s___n_e_t_ga83c2e74a4cc216aa10d7c6a1a517d459.html#ga83c2e74a4cc216aa10d7c6a1a517d459',1,'ucs_class_pb.h']]],
+ ['ucs_5fnetwork_5fstatus_5ft',['Ucs_Network_Status_t',['../struct_ucs___network___status__t.html',1,'']]],
+ ['ucs_5fnetwork_5fstatuscb_5ft',['Ucs_Network_StatusCb_t',['../group___g___u_c_s___n_e_t_gaf195e8ae396bc1fc358666fe50bf3f51.html#gaf195e8ae396bc1fc358666fe50bf3f51',1,'ucs_class_pb.h']]],
+ ['ucs_5fnetwork_5fstatusmask_5ft',['Ucs_Network_StatusMask_t',['../group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#ga779e730fce488874146678e0971f52a8',1,'ucs_inic_pb.h']]],
+ ['ucs_5fns_5fconfigmsg_5ft',['Ucs_Ns_ConfigMsg_t',['../struct_ucs___ns___config_msg__t.html',1,'']]],
+ ['ucs_5fns_5fres_5ferror',['UCS_NS_RES_ERROR',['../group___g___u_c_s___s_c_r_i_p_t_i_n_g_gabd3ecc8ab539f3b9de3fc8045c083b60.html#ggabd3ecc8ab539f3b9de3fc8045c083b60ad0ba0f8f6ba494e7685980d490e48b72',1,'ucs_nsm_pb.h']]],
+ ['ucs_5fns_5fres_5fsuccess',['UCS_NS_RES_SUCCESS',['../group___g___u_c_s___s_c_r_i_p_t_i_n_g_gabd3ecc8ab539f3b9de3fc8045c083b60.html#ggabd3ecc8ab539f3b9de3fc8045c083b60af22bd910a1d7e2271b5b3cddf5892962',1,'ucs_nsm_pb.h']]],
+ ['ucs_5fns_5fresultcb_5ft',['Ucs_Ns_ResultCb_t',['../group___g___u_c_s___s_c_r_i_p_t_i_n_g_gab0f1bc424462b8bbe0b2155d504025a5.html#gab0f1bc424462b8bbe0b2155d504025a5',1,'ucs_nsm_pb.h']]],
+ ['ucs_5fns_5fresultcode_5ft',['Ucs_Ns_ResultCode_t',['../group___g___u_c_s___s_c_r_i_p_t_i_n_g_gabd3ecc8ab539f3b9de3fc8045c083b60.html#gabd3ecc8ab539f3b9de3fc8045c083b60',1,'ucs_nsm_pb.h']]],
+ ['ucs_5fns_5frun',['Ucs_Ns_Run',['../group___g___u_c_s___s_c_r_i_p_t_i_n_g_ga2f2737e4d507b9c15e165918db3f1456.html#ga2f2737e4d507b9c15e165918db3f1456',1,'ucs_class_pb.h']]],
+ ['ucs_5fns_5fscript_5ft',['Ucs_Ns_Script_t',['../struct_ucs___ns___script__t.html',1,'']]],
+ ['ucs_5fnum_5finstances',['UCS_NUM_INSTANCES',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga750688e4ce10e995d802e288540d19c4.html#ga750688e4ce10e995d802e288540d19c4',1,'ucs_class.c']]],
+ ['ucs_5fnum_5fremote_5fdevices',['UCS_NUM_REMOTE_DEVICES',['../group___g___u_c_s___x_r_m___c_f_g_ga70720ac0fdcbbbc7f4742654c8f8abc1.html#ga70720ac0fdcbbbc7f4742654c8f8abc1',1,'ucs_rsm_pv.h']]],
+ ['ucs_5fnw_5fav_5ftr_5fca_5fcmd',['UCS_NW_AV_TR_CA_CMD',['../group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#ggab4ec40bf01de998abc4f2ae34c26ac46a69da70cbc0d72fa912330df7d6f95805',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnw_5fav_5ftr_5fca_5ferr_5fcrit_5funlock',['UCS_NW_AV_TR_CA_ERR_CRIT_UNLOCK',['../group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#ggab4ec40bf01de998abc4f2ae34c26ac46a26a6a280eb53c98f5bb0cc7f753608c0',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnw_5fav_5ftr_5fca_5ferr_5fsso',['UCS_NW_AV_TR_CA_ERR_SSO',['../group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#ggab4ec40bf01de998abc4f2ae34c26ac46a5f2f79813d9cdc51a9b01baedcd115c7',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnw_5fav_5ftr_5fca_5ferr_5fsystem',['UCS_NW_AV_TR_CA_ERR_SYSTEM',['../group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#ggab4ec40bf01de998abc4f2ae34c26ac46a163cc94df0ecbc01a5a0ad28ff0d2275',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnw_5fav_5ftr_5fca_5fno_5ftransition',['UCS_NW_AV_TR_CA_NO_TRANSITION',['../group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#ggab4ec40bf01de998abc4f2ae34c26ac46a6b7b5cef497a453a98714f09d4b037be',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnw_5fav_5ftr_5fca_5fnormal',['UCS_NW_AV_TR_CA_NORMAL',['../group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#ggab4ec40bf01de998abc4f2ae34c26ac46a35193eafdb2690c7f1750e7e086528a0',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnw_5fav_5ftr_5fca_5frx_5factivity',['UCS_NW_AV_TR_CA_RX_ACTIVITY',['../group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#ggab4ec40bf01de998abc4f2ae34c26ac46a6ac2248030e3550a61f1e296a2e5d735',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnw_5favail_5finfo_5fdiagnosis',['UCS_NW_AVAIL_INFO_DIAGNOSIS',['../group___g___u_c_s___n_e_t___t_y_p_e_s_gad5ed0387c3c156602826d50ce94c9df7.html#ggad5ed0387c3c156602826d50ce94c9df7a754bb411728af7ee41315b2257c9f409',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnw_5favail_5finfo_5fforced_5fna',['UCS_NW_AVAIL_INFO_FORCED_NA',['../group___g___u_c_s___n_e_t___t_y_p_e_s_gad5ed0387c3c156602826d50ce94c9df7.html#ggad5ed0387c3c156602826d50ce94c9df7a95e0a195f246b6c474781b42fda0e1cb',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnw_5favail_5finfo_5fregular',['UCS_NW_AVAIL_INFO_REGULAR',['../group___g___u_c_s___n_e_t___t_y_p_e_s_gad5ed0387c3c156602826d50ce94c9df7.html#ggad5ed0387c3c156602826d50ce94c9df7ace556bfc10aa45dcd561a6c75680e99e',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnw_5favail_5finfo_5fstable',['UCS_NW_AVAIL_INFO_STABLE',['../group___g___u_c_s___n_e_t___t_y_p_e_s_gad5ed0387c3c156602826d50ce94c9df7.html#ggad5ed0387c3c156602826d50ce94c9df7aac87fccc7041c51b30c04dbd42c963ba',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnw_5favail_5finfo_5funstable',['UCS_NW_AVAIL_INFO_UNSTABLE',['../group___g___u_c_s___n_e_t___t_y_p_e_s_gad5ed0387c3c156602826d50ce94c9df7.html#ggad5ed0387c3c156602826d50ce94c9df7a1e35e06faaf9537517a3b77c172c9e6a',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnw_5favailable',['UCS_NW_AVAILABLE',['../group___g___u_c_s___n_e_t___t_y_p_e_s_ga6b0bec2ae9e4d0fb93eefd65752f0c74.html#gga6b0bec2ae9e4d0fb93eefd65752f0c74a37fb322b410de335478f6bed31cd33f1',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnw_5fm_5favail',['UCS_NW_M_AVAIL',['../group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8a707f78e3b7a58f4ce21f31da38e00573',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnw_5fm_5favail_5finfo',['UCS_NW_M_AVAIL_INFO',['../group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8a9c2971b3e618e402a6d5452dc1c30738',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnw_5fm_5favail_5ftr_5fcause',['UCS_NW_M_AVAIL_TR_CAUSE',['../group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8af36c80b9128eb740ebfca15dd7c7c6be',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnw_5fm_5fevents',['UCS_NW_M_EVENTS',['../group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8a8ad2af6dd9a9c5358a8b743c1ada77cd',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnw_5fm_5fmax_5fpos',['UCS_NW_M_MAX_POS',['../group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8a043ec67877e6a38b5a13fb544681b767',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnw_5fm_5fnode_5faddr',['UCS_NW_M_NODE_ADDR',['../group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8ab698174c497186f8e738111f6d0a7036',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnw_5fm_5fnode_5fpos',['UCS_NW_M_NODE_POS',['../group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8a89bb7ec3c55087159a8a19b5e9cc7fa0',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnw_5fm_5fpacket_5fbw',['UCS_NW_M_PACKET_BW',['../group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8aa545cf71946b90b29bcf58581e8b1e2a',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnw_5fnot_5favailable',['UCS_NW_NOT_AVAILABLE',['../group___g___u_c_s___n_e_t___t_y_p_e_s_ga6b0bec2ae9e4d0fb93eefd65752f0c74.html#gga6b0bec2ae9e4d0fb93eefd65752f0c74afb1201dc3a998b9d4f9c48d5978d9ffc',1,'ucs_inic_pb.h']]],
+ ['ucs_5fop_5fabort',['UCS_OP_ABORT',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa16fce7c1ed324daa8942b21951b805cb',1,'ucs_message_pb.h']]],
+ ['ucs_5fop_5fabortack',['UCS_OP_ABORTACK',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa1ba506fde54dfb0ad969028ab16a6c98',1,'ucs_message_pb.h']]],
+ ['ucs_5fop_5fdec',['UCS_OP_DEC',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa53d0fbdf31fa445a02e84ed4a494153d',1,'ucs_message_pb.h']]],
+ ['ucs_5fop_5ferror',['UCS_OP_ERROR',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa7dca59717427fc0b806a2e5353cc2ece',1,'ucs_message_pb.h']]],
+ ['ucs_5fop_5ferrorack',['UCS_OP_ERRORACK',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaac8a58af946fe576138bfb6fbb156700e',1,'ucs_message_pb.h']]],
+ ['ucs_5fop_5fget',['UCS_OP_GET',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa3f69bc6e06a743468e1f1635d77adad8',1,'ucs_message_pb.h']]],
+ ['ucs_5fop_5fgetinterface',['UCS_OP_GETINTERFACE',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa64c538f9ef7c103a2541c81ae4bd501d',1,'ucs_message_pb.h']]],
+ ['ucs_5fop_5finc',['UCS_OP_INC',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa8d751c97bde87443c2259dffed699e1b',1,'ucs_message_pb.h']]],
+ ['ucs_5fop_5finterface',['UCS_OP_INTERFACE',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa3ffc2003b1ea184bfb36a8a50af424ba',1,'ucs_message_pb.h']]],
+ ['ucs_5fop_5fprocessing',['UCS_OP_PROCESSING',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa8c2b26389a77be12f491fc3154987c58',1,'ucs_message_pb.h']]],
+ ['ucs_5fop_5fprocessingack',['UCS_OP_PROCESSINGACK',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa289256756b3f271d04535462235b9d8a',1,'ucs_message_pb.h']]],
+ ['ucs_5fop_5fresult',['UCS_OP_RESULT',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa7fc5e535407db1fe019d6db6e89ffd66',1,'ucs_message_pb.h']]],
+ ['ucs_5fop_5fresultack',['UCS_OP_RESULTACK',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa5b48c9460922585b8b25868e05cc6d6c',1,'ucs_message_pb.h']]],
+ ['ucs_5fop_5fset',['UCS_OP_SET',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaacedf024e681e29824a04eaaa8215ceec',1,'ucs_message_pb.h']]],
+ ['ucs_5fop_5fsetget',['UCS_OP_SETGET',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa30680ea01486e5729efd9b8a3a22313f',1,'ucs_message_pb.h']]],
+ ['ucs_5fop_5fstart',['UCS_OP_START',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaab4e6745410e913098b6fe8628337bd0b',1,'ucs_message_pb.h']]],
+ ['ucs_5fop_5fstartack',['UCS_OP_STARTACK',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa7f78b7ab9308fc50de2b440efac06fea',1,'ucs_message_pb.h']]],
+ ['ucs_5fop_5fstartresult',['UCS_OP_STARTRESULT',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaae3056001809b7338835a44d0ffd5f6c5',1,'ucs_message_pb.h']]],
+ ['ucs_5fop_5fstartresultack',['UCS_OP_STARTRESULTACK',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa9cd8321db02fe32bb577a3654487fba7',1,'ucs_message_pb.h']]],
+ ['ucs_5fop_5fstatus',['UCS_OP_STATUS',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaafc94e06298ee531eb4557a4a066dfb59',1,'ucs_message_pb.h']]],
+ ['ucs_5foptype_5ft',['Ucs_OpType_t',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#ga02d4f5d689f2583ee620ff4c26a51afa',1,'ucs_message_pb.h']]],
+ ['ucs_5fpci_5fsckt_5fav_5fpacketized',['UCS_PCI_SCKT_AV_PACKETIZED',['../group___g___u_c_s___x_r_m___e_n_u_m_ga066850ed913a19025120619cca07fac6.html#gga066850ed913a19025120619cca07fac6a20039c896aa6b0c03a6e753040ae4db2',1,'ucs_inic_pb.h']]],
+ ['ucs_5fpci_5fsocketdatatype_5ft',['Ucs_Pci_SocketDataType_t',['../group___g___u_c_s___x_r_m___e_n_u_m_ga066850ed913a19025120619cca07fac6.html#ga066850ed913a19025120619cca07fac6',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5fcommand_5ft',['Ucs_Prg_Command_t',['../struct_ucs___prg___command__t.html',1,'']]],
+ ['ucs_5fprg_5ffkt_5fdummy',['UCS_PRG_FKT_DUMMY',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#gga25cd4c3a9113e0a25b65136fec561c83a571bfec1b0e2f178223e6ad468ecfb92',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5ffkt_5finit',['UCS_PRG_FKT_INIT',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#gga25cd4c3a9113e0a25b65136fec561c83a1cefbe47e784b8a872bec98922a7d1f6',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5ffkt_5fmem_5fclose',['UCS_PRG_FKT_MEM_CLOSE',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#gga25cd4c3a9113e0a25b65136fec561c83a0071da47fdc967e0c6ce18cc464c3c1c',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5ffkt_5fmem_5fopen',['UCS_PRG_FKT_MEM_OPEN',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#gga25cd4c3a9113e0a25b65136fec561c83a062c6eb1a133b3b61dd24244121fda4b',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5ffkt_5fmem_5fwrite',['UCS_PRG_FKT_MEM_WRITE',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#gga25cd4c3a9113e0a25b65136fec561c83a359370a24ff37bdde070efc8c887599f',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5ffkt_5fwelcome',['UCS_PRG_FKT_WELCOME',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#gga25cd4c3a9113e0a25b65136fec561c83a6bc3776ea617b865cde396fac4df9a5a',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5ffkt_5fwelcome_5fnosuccess',['UCS_PRG_FKT_WELCOME_NOSUCCESS',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#gga25cd4c3a9113e0a25b65136fec561c83a308862104fb675865f9ae6d9670ec40b',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5ffunc_5ft',['Ucs_Prg_Func_t',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#ga25cd4c3a9113e0a25b65136fec561c83',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5fmemid_5ft',['Ucs_Prg_MemId_t',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gae01f703f9ca91d9d1b9efdcfddfe8464.html#gae01f703f9ca91d9d1b9efdcfddfe8464',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5fmid_5fcs',['UCS_PRG_MID_CS',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gae01f703f9ca91d9d1b9efdcfddfe8464.html#ggae01f703f9ca91d9d1b9efdcfddfe8464a7b9d362953b3eb6650b502e0a2de1d87',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5fmid_5fcstest',['UCS_PRG_MID_CSTEST',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gae01f703f9ca91d9d1b9efdcfddfe8464.html#ggae01f703f9ca91d9d1b9efdcfddfe8464aee7f85fb6df6f70f6f09757f41a1ff3e',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5fmid_5fis',['UCS_PRG_MID_IS',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gae01f703f9ca91d9d1b9efdcfddfe8464.html#ggae01f703f9ca91d9d1b9efdcfddfe8464a7aec4bc748bba83bc72b20589dbb8187',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5fmid_5fistest',['UCS_PRG_MID_ISTEST',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gae01f703f9ca91d9d1b9efdcfddfe8464.html#ggae01f703f9ca91d9d1b9efdcfddfe8464a6aebc0c00f88f30ddfcea30b9a1d79bd',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5freportcb_5ft',['Ucs_Prg_ReportCb_t',['../group___g___u_c_s___p_r_o_g___m_o_d_e_ga15045bde4d6a35f1b1e20eb6e3c688ab.html#ga15045bde4d6a35f1b1e20eb6e3c688ab',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5fres_5ferror',['UCS_PRG_RES_ERROR',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html#ggaa998005dc2e710169a39af0c3739ade2afd20cb6be3412f26421e5878d4123fc0',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5fres_5ffkt_5fasynch',['UCS_PRG_RES_FKT_ASYNCH',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html#ggaa998005dc2e710169a39af0c3739ade2ae99cf57eece62df6910adeafbb900a49',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5fres_5ffkt_5fsynch',['UCS_PRG_RES_FKT_SYNCH',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html#ggaa998005dc2e710169a39af0c3739ade2a47fc805dfdab644983d36b195e6de5e9',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5fres_5fnet_5foff',['UCS_PRG_RES_NET_OFF',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html#ggaa998005dc2e710169a39af0c3739ade2a960ff74b4fab89700a44087c8f51a546',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5fres_5fsuccess',['UCS_PRG_RES_SUCCESS',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html#ggaa998005dc2e710169a39af0c3739ade2a9fa199d254d8b56a36b83bdefc5e213e',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5fres_5ftimeout',['UCS_PRG_RES_TIMEOUT',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html#ggaa998005dc2e710169a39af0c3739ade2a4895d31da9d98951666b8bebf31dd316',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5frescode_5ft',['Ucs_Prg_ResCode_t',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html#gaa998005dc2e710169a39af0c3739ade2',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5fsessiontype_5ft',['Ucs_Prg_SessionType_t',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gab29d4eadce18cb68209671a44c1eaa3a.html#gab29d4eadce18cb68209671a44c1eaa3a',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5fst_5fcfg_5fread',['UCS_PRG_ST_CFG_READ',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gab29d4eadce18cb68209671a44c1eaa3a.html#ggab29d4eadce18cb68209671a44c1eaa3aae957e9ff8674900c12d4ced7f317bf83',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5fst_5fcs',['UCS_PRG_ST_CS',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gab29d4eadce18cb68209671a44c1eaa3a.html#ggab29d4eadce18cb68209671a44c1eaa3aa755ae5dbb2894e672423f34fcf94d4fe',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5fst_5fcs_5fis',['UCS_PRG_ST_CS_IS',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gab29d4eadce18cb68209671a44c1eaa3a.html#ggab29d4eadce18cb68209671a44c1eaa3aa344e76565c336dc329af00a8757242db',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5fst_5ferase_5fem',['UCS_PRG_ST_ERASE_EM',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gab29d4eadce18cb68209671a44c1eaa3a.html#ggab29d4eadce18cb68209671a44c1eaa3aa520aca46c3115f7cef0d37e084f68cd2',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5fst_5fis',['UCS_PRG_ST_IS',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gab29d4eadce18cb68209671a44c1eaa3a.html#ggab29d4eadce18cb68209671a44c1eaa3aa1301855aa66797f8170b86d61a0240dd',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprog_5fstart',['Ucs_Prog_Start',['../group___g___u_c_s___p_r_o_g___m_o_d_e_ga12071385b86ab6375472db80c00b80c7.html#ga12071385b86ab6375472db80c00b80c7',1,'ucs_class_pb.h']]],
+ ['ucs_5freporttimeout',['Ucs_ReportTimeout',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga369c86a27ffee30a3af3423f6b3f3e59.html#ga369c86a27ffee30a3af3423f6b3f3e59',1,'ucs_class_pb.h']]],
+ ['ucs_5frequestservicecb_5ft',['Ucs_RequestServiceCb_t',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga61a038694eeb972f6d298478f16a2de2.html#ga61a038694eeb972f6d298478f16a2de2',1,'ucs_class_pb.h']]],
+ ['ucs_5fres_5ferr_5fbusy',['UCS_RES_ERR_BUSY',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540ca8ff50e770356e4fca8d36a308e323d83',1,'ucs_ret_pb.h']]],
+ ['ucs_5fres_5ferr_5fconfiguration',['UCS_RES_ERR_CONFIGURATION',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540caa142d5f1f196cbf759f2cbd6d8a7468a',1,'ucs_ret_pb.h']]],
+ ['ucs_5fres_5ferr_5fmost_5fstandard',['UCS_RES_ERR_MOST_STANDARD',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540ca4f4226f6e507caf5a9e044759c6409cf',1,'ucs_ret_pb.h']]],
+ ['ucs_5fres_5ferr_5fprocessing',['UCS_RES_ERR_PROCESSING',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540caa7f09aea37cedd8dfbe3665781aae6aa',1,'ucs_ret_pb.h']]],
+ ['ucs_5fres_5ferr_5fsystem',['UCS_RES_ERR_SYSTEM',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540cae64970c5c3ad3d0dc6996b77cd528dbb',1,'ucs_ret_pb.h']]],
+ ['ucs_5fres_5ferr_5ftimeout',['UCS_RES_ERR_TIMEOUT',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540ca3099d31f6d533972cf96c86dca0b0cc7',1,'ucs_ret_pb.h']]],
+ ['ucs_5fres_5ferr_5ftransmission',['UCS_RES_ERR_TRANSMISSION',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540ca4e2229e49fe1197dd9df919719fcd38a',1,'ucs_ret_pb.h']]],
+ ['ucs_5fres_5fsuccess',['UCS_RES_SUCCESS',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540cae19d5a51de78bbf903a108a4e36a0fdf',1,'ucs_ret_pb.h']]],
+ ['ucs_5fresult_5ft',['Ucs_Result_t',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#gac844b77cf41aef663782bc0b43d3540c',1,'ucs_ret_pb.h']]],
+ ['ucs_5fret_5ferr_5falready_5fset',['UCS_RET_ERR_ALREADY_SET',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda6e3654d081184da037670c8af1950ea7',1,'ucs_ret_pb.h']]],
+ ['ucs_5fret_5ferr_5fapi_5flocked',['UCS_RET_ERR_API_LOCKED',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cdad4a30091202638c890abbdb682ca4fe5',1,'ucs_ret_pb.h']]],
+ ['ucs_5fret_5ferr_5fbuffer_5foverflow',['UCS_RET_ERR_BUFFER_OVERFLOW',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cdabb64ac46e62c58382dc65f3fd7bf12d2',1,'ucs_ret_pb.h']]],
+ ['ucs_5fret_5ferr_5finvalid_5fshadow',['UCS_RET_ERR_INVALID_SHADOW',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda6384d8a38b3298f50efd7bd42a60a2ec',1,'ucs_ret_pb.h']]],
+ ['ucs_5fret_5ferr_5fnot_5favailable',['UCS_RET_ERR_NOT_AVAILABLE',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda7e6114552879861375322bf68dafe3a3',1,'ucs_ret_pb.h']]],
+ ['ucs_5fret_5ferr_5fnot_5finitialized',['UCS_RET_ERR_NOT_INITIALIZED',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda9e2acee4f83d89585e959b143b7aafb8',1,'ucs_ret_pb.h']]],
+ ['ucs_5fret_5ferr_5fnot_5fsupported',['UCS_RET_ERR_NOT_SUPPORTED',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda8820168a0730173889011958189733e2',1,'ucs_ret_pb.h']]],
+ ['ucs_5fret_5ferr_5fparam',['UCS_RET_ERR_PARAM',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cdab98b74c51324859f3138fed96afd1573',1,'ucs_ret_pb.h']]],
+ ['ucs_5fret_5fsuccess',['UCS_RET_SUCCESS',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda3fb51656e17ee4802f23706f35e349bc',1,'ucs_ret_pb.h']]],
+ ['ucs_5freturn_5ft',['Ucs_Return_t',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd',1,'ucs_ret_pb.h']]],
+ ['ucs_5frm_5fendpoint_5ft',['Ucs_Rm_EndPoint_t',['../struct_ucs___rm___end_point__t.html',1,'']]],
+ ['ucs_5frm_5fendpointtype_5ft',['Ucs_Rm_EndPointType_t',['../group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga127a72f023d3c0289ab74b001f6edc25.html#ga127a72f023d3c0289ab74b001f6edc25',1,'ucs_rm_pb.h']]],
+ ['ucs_5frm_5fep_5fsink',['UCS_RM_EP_SINK',['../group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga127a72f023d3c0289ab74b001f6edc25.html#gga127a72f023d3c0289ab74b001f6edc25a63c4dfa3683ce8122d760c4e2d580138',1,'ucs_rm_pb.h']]],
+ ['ucs_5frm_5fep_5fsource',['UCS_RM_EP_SOURCE',['../group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga127a72f023d3c0289ab74b001f6edc25.html#gga127a72f023d3c0289ab74b001f6edc25ac1244d5bc6a569137f6f9132b8b0a3da',1,'ucs_rm_pb.h']]],
+ ['ucs_5frm_5fgetattachedroutes',['Ucs_Rm_GetAttachedRoutes',['../group___g___u_c_s___r_o_u_t_i_n_g_gaf34398118f6a683a7e295f2fb89c5940.html#gaf34398118f6a683a7e295f2fb89c5940',1,'ucs_class_pb.h']]],
+ ['ucs_5frm_5fgetconnectionlabel',['Ucs_Rm_GetConnectionLabel',['../group___g___u_c_s___r_o_u_t_i_n_g_ga87a46a3aa0657e13f5884e5a04d16e17.html#ga87a46a3aa0657e13f5884e5a04d16e17',1,'ucs_class_pb.h']]],
+ ['ucs_5frm_5fgetnodeavailable',['Ucs_Rm_GetNodeAvailable',['../group___g___u_c_s___r_o_u_t_i_n_g_ga32d004eb96f434f379614b29fe2a486a.html#ga32d004eb96f434f379614b29fe2a486a',1,'ucs_class_pb.h']]],
+ ['ucs_5frm_5finitdata_5ft',['Ucs_Rm_InitData_t',['../struct_ucs___rm___init_data__t.html',1,'']]],
+ ['ucs_5frm_5fnode_5ft',['Ucs_Rm_Node_t',['../struct_ucs___rm___node__t.html',1,'']]],
+ ['ucs_5frm_5freportcb_5ft',['Ucs_Rm_ReportCb_t',['../group___g___u_c_s___r_o_u_t_i_n_g_ga91d851f4665839e2aac982565b007805.html#ga91d851f4665839e2aac982565b007805',1,'ucs_class_pb.h']]],
+ ['ucs_5frm_5froute_5finfos_5fbuilt',['UCS_RM_ROUTE_INFOS_BUILT',['../group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#gga75ffbf28e4afc99a6abdbff0887baf9ba5778af29569eb74e7546749e93ed9c1e',1,'ucs_rm_pb.h']]],
+ ['ucs_5frm_5froute_5finfos_5fdestroyed',['UCS_RM_ROUTE_INFOS_DESTROYED',['../group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#gga75ffbf28e4afc99a6abdbff0887baf9ba5458da57325825b8922710a90a9ea4d5',1,'ucs_rm_pb.h']]],
+ ['ucs_5frm_5froute_5finfos_5fprocess_5fstop',['UCS_RM_ROUTE_INFOS_PROCESS_STOP',['../group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#gga75ffbf28e4afc99a6abdbff0887baf9bace1ac2f05b198d3d223baa33ca71493a',1,'ucs_rm_pb.h']]],
+ ['ucs_5frm_5froute_5finfos_5fsuspended',['UCS_RM_ROUTE_INFOS_SUSPENDED',['../group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#gga75ffbf28e4afc99a6abdbff0887baf9ba0a444b476e91de5d0954a007a78a387b',1,'ucs_rm_pb.h']]],
+ ['ucs_5frm_5froute_5ft',['Ucs_Rm_Route_t',['../struct_ucs___rm___route__t.html',1,'']]],
+ ['ucs_5frm_5frouteinfos_5ft',['Ucs_Rm_RouteInfos_t',['../group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#ga75ffbf28e4afc99a6abdbff0887baf9b',1,'ucs_rm_pb.h']]],
+ ['ucs_5frm_5fsetnodeavailable',['Ucs_Rm_SetNodeAvailable',['../group___g___u_c_s___r_o_u_t_i_n_g_ga57ca34a488f06d57f2219be23fa0259f.html#ga57ca34a488f06d57f2219be23fa0259f',1,'ucs_class_pb.h']]],
+ ['ucs_5frm_5fsetrouteactive',['Ucs_Rm_SetRouteActive',['../group___g___u_c_s___r_o_u_t_i_n_g_gabb9185254132bb29ee0af137c36f50b8.html#gabb9185254132bb29ee0af137c36f50b8',1,'ucs_class_pb.h']]],
+ ['ucs_5frm_5fstart',['Ucs_Rm_Start',['../group___g___u_c_s___r_o_u_t_i_n_g_gaaa23aca8279da197192210fe11889452.html#gaaa23aca8279da197192210fe11889452',1,'ucs_class_pb.h']]],
+ ['ucs_5frm_5fxrmresdebugcb_5ft',['Ucs_Rm_XrmResDebugCb_t',['../group___g___u_c_s___r_o_u_t_i_n_g_gaefde5a8fbaeb6e5937e94b9e74ae70cb.html#gaefde5a8fbaeb6e5937e94b9e74ae70cb',1,'ucs_class_pb.h']]],
+ ['ucs_5frmck_5fport_5fclk_5fsrc_5fnw_5fsystem',['UCS_RMCK_PORT_CLK_SRC_NW_SYSTEM',['../group___g___u_c_s___x_r_m___e_n_u_m_ga793fd94e2e48ff7a7fce092e6e0039e4.html#gga793fd94e2e48ff7a7fce092e6e0039e4a0c106f34e8415ab3f01748a6bde15d8c',1,'ucs_inic_pb.h']]],
+ ['ucs_5frmck_5fportclocksource_5ft',['Ucs_Rmck_PortClockSource_t',['../group___g___u_c_s___x_r_m___e_n_u_m_ga793fd94e2e48ff7a7fce092e6e0039e4.html#ga793fd94e2e48ff7a7fce092e6e0039e4',1,'ucs_inic_pb.h']]],
+ ['ucs_5fsd_5faborted',['UCS_SD_ABORTED',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga4d4ad405b114eba3e3a2e5581a0b5d9c.html#gga4d4ad405b114eba3e3a2e5581a0b5d9ca24eb65098a000880b49bdec23df59875',1,'ucs_inic_pb.h']]],
+ ['ucs_5fsd_5fcable_5flink_5fres',['UCS_SD_CABLE_LINK_RES',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga4d4ad405b114eba3e3a2e5581a0b5d9c.html#gga4d4ad405b114eba3e3a2e5581a0b5d9ca6905a0a0e360528a3a8bc2a019b83f5e',1,'ucs_inic_pb.h']]],
+ ['ucs_5fsd_5ferr_5fstop_5fsysdiag_5ffailed',['UCS_SD_ERR_STOP_SYSDIAG_FAILED',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_gad0e1473ecd96b8d94131cb5d81295fc3.html#ggad0e1473ecd96b8d94131cb5d81295fc3a2e4d4e1fe5f54e2f5855e26483670aea',1,'ucs_inic_pb.h']]],
+ ['ucs_5fsd_5ferr_5fterminated',['UCS_SD_ERR_TERMINATED',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_gad0e1473ecd96b8d94131cb5d81295fc3.html#ggad0e1473ecd96b8d94131cb5d81295fc3aa90c57ed3372954deabffda0100a2da3',1,'ucs_inic_pb.h']]],
+ ['ucs_5fsd_5ferr_5funspecified',['UCS_SD_ERR_UNSPECIFIED',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_gad0e1473ecd96b8d94131cb5d81295fc3.html#ggad0e1473ecd96b8d94131cb5d81295fc3a93dead118b00c19d7d17401be8ce72cd',1,'ucs_inic_pb.h']]],
+ ['ucs_5fsd_5ferr_5fwelcome_5fno_5fsuccess',['UCS_SD_ERR_WELCOME_NO_SUCCESS',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_gad0e1473ecd96b8d94131cb5d81295fc3.html#ggad0e1473ecd96b8d94131cb5d81295fc3a6702bd287f88f76e4d13ac87f8b3c721',1,'ucs_inic_pb.h']]],
+ ['ucs_5fsd_5ferrcode_5ft',['Ucs_Sd_ErrCode_t',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_gad0e1473ecd96b8d94131cb5d81295fc3.html#gad0e1473ecd96b8d94131cb5d81295fc3',1,'ucs_inic_pb.h']]],
+ ['ucs_5fsd_5ferror',['UCS_SD_ERROR',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga4d4ad405b114eba3e3a2e5581a0b5d9c.html#gga4d4ad405b114eba3e3a2e5581a0b5d9caf1cfc47eb0bb457e7627178aa04ec292',1,'ucs_inic_pb.h']]],
+ ['ucs_5fsd_5ffinished',['UCS_SD_FINISHED',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga4d4ad405b114eba3e3a2e5581a0b5d9c.html#gga4d4ad405b114eba3e3a2e5581a0b5d9ca4bb8732a74d1e48108c59ee15b99f2dc',1,'ucs_inic_pb.h']]],
+ ['ucs_5fsd_5freport_5ft',['Ucs_Sd_Report_t',['../struct_ucs___sd___report__t.html',1,'']]],
+ ['ucs_5fsd_5frescode_5ft',['Ucs_Sd_ResCode_t',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga4d4ad405b114eba3e3a2e5581a0b5d9c.html#ga4d4ad405b114eba3e3a2e5581a0b5d9c',1,'ucs_inic_pb.h']]],
+ ['ucs_5fsd_5fsegment_5ft',['Ucs_Sd_Segment_t',['../struct_ucs___sd___segment__t.html',1,'']]],
+ ['ucs_5fsd_5ftarget_5ffound',['UCS_SD_TARGET_FOUND',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga4d4ad405b114eba3e3a2e5581a0b5d9c.html#gga4d4ad405b114eba3e3a2e5581a0b5d9ca863e9f716a0aaaa31a88e2362e0b20c9',1,'ucs_inic_pb.h']]],
+ ['ucs_5fservice',['Ucs_Service',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga649fb9128df6f634fc86aa03b374d822.html#ga649fb9128df6f634fc86aa03b374d822',1,'ucs_class_pb.h']]],
+ ['ucs_5fsetapptimercb_5ft',['Ucs_SetAppTimerCb_t',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga0238420959cc58ee52c0b385741fccc9.html#ga0238420959cc58ee52c0b385741fccc9',1,'ucs_class_pb.h']]],
+ ['ucs_5fsetdefaultconfig',['Ucs_SetDefaultConfig',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga64b50780725a0dc8693b5b73f8345ad6.html#ga64b50780725a0dc8693b5b73f8345ad6',1,'ucs_class_pb.h']]],
+ ['ucs_5fsignature_5ft',['Ucs_Signature_t',['../struct_ucs___signature__t.html',1,'']]],
+ ['ucs_5fsocket_5fdir_5finput',['UCS_SOCKET_DIR_INPUT',['../group___g___u_c_s___x_r_m___e_n_u_m_ga28477f727fe10f9d6fd21cfc98a9c115.html#gga28477f727fe10f9d6fd21cfc98a9c115a02fdd605a809a4a660e25cfd888347c7',1,'ucs_inic_pb.h']]],
+ ['ucs_5fsocket_5fdir_5foutput',['UCS_SOCKET_DIR_OUTPUT',['../group___g___u_c_s___x_r_m___e_n_u_m_ga28477f727fe10f9d6fd21cfc98a9c115.html#gga28477f727fe10f9d6fd21cfc98a9c115aa14fc95a1f8c5f54aa6d601614a887fe',1,'ucs_inic_pb.h']]],
+ ['ucs_5fsocketdirection_5ft',['Ucs_SocketDirection_t',['../group___g___u_c_s___x_r_m___e_n_u_m_ga28477f727fe10f9d6fd21cfc98a9c115.html#ga28477f727fe10f9d6fd21cfc98a9c115',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstdresult_5ft',['Ucs_StdResult_t',['../struct_ucs___std_result__t.html',1,'']]],
+ ['ucs_5fstdresultcb_5ft',['Ucs_StdResultCb_t',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gaa573fbe79f76f263a17e51d6de99036d.html#gaa573fbe79f76f263a17e51d6de99036d',1,'ucs_ret_pb.h']]],
+ ['ucs_5fstop',['Ucs_Stop',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga61381bd30fb6630b6c5d6ecc8968e983.html#ga61381bd30fb6630b6c5d6ecc8968e983',1,'ucs_class_pb.h']]],
+ ['ucs_5fstream_5fport_5falgn_5fleft16bit',['UCS_STREAM_PORT_ALGN_LEFT16BIT',['../group___g___u_c_s___x_r_m___e_n_u_m_ga02741bef1059621aaf6cf4fa956cfccf.html#gga02741bef1059621aaf6cf4fa956cfccfa7505ae359df8d66ec68bacb78c049f52',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5falgn_5fleft24bit',['UCS_STREAM_PORT_ALGN_LEFT24BIT',['../group___g___u_c_s___x_r_m___e_n_u_m_ga02741bef1059621aaf6cf4fa956cfccf.html#gga02741bef1059621aaf6cf4fa956cfccfa64ff85efa59d4760e4dba13678c7b802',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5falgn_5fright16bit',['UCS_STREAM_PORT_ALGN_RIGHT16BIT',['../group___g___u_c_s___x_r_m___e_n_u_m_ga02741bef1059621aaf6cf4fa956cfccf.html#gga02741bef1059621aaf6cf4fa956cfccfae288dcb736db417e450f52b59da4efd6',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5falgn_5fright24bit',['UCS_STREAM_PORT_ALGN_RIGHT24BIT',['../group___g___u_c_s___x_r_m___e_n_u_m_ga02741bef1059621aaf6cf4fa956cfccf.html#gga02741bef1059621aaf6cf4fa956cfccfa1c36b204751eff3352215d86b703d9d6',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5falgn_5fseq',['UCS_STREAM_PORT_ALGN_SEQ',['../group___g___u_c_s___x_r_m___e_n_u_m_ga02741bef1059621aaf6cf4fa956cfccf.html#gga02741bef1059621aaf6cf4fa956cfccfa8511f386d32e3e1eacfb7763528ae198',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fclk_5fcfg_5f128fs',['UCS_STREAM_PORT_CLK_CFG_128FS',['../group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#gga0e856884fa1c7908c59718da0f396484a070b6e6a42de4464e8c702b27fc56b26',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fclk_5fcfg_5f16fs',['UCS_STREAM_PORT_CLK_CFG_16FS',['../group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#gga0e856884fa1c7908c59718da0f396484ad4d29b36625c2a20c585524b9bbeab10',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fclk_5fcfg_5f256fs',['UCS_STREAM_PORT_CLK_CFG_256FS',['../group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#gga0e856884fa1c7908c59718da0f396484ab74d511c86daf3ce6aa90a98381c7e8a',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fclk_5fcfg_5f32fs',['UCS_STREAM_PORT_CLK_CFG_32FS',['../group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#gga0e856884fa1c7908c59718da0f396484a23baa6e65f75b4b7bb11716bf01a2bda',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fclk_5fcfg_5f512fs',['UCS_STREAM_PORT_CLK_CFG_512FS',['../group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#gga0e856884fa1c7908c59718da0f396484a5db76daf8c6e915500433b291457d2de',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fclk_5fcfg_5f64fs',['UCS_STREAM_PORT_CLK_CFG_64FS',['../group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#gga0e856884fa1c7908c59718da0f396484a6ecefb4d6d534dfc6225644bf6cb9823',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fclk_5fcfg_5f8fs',['UCS_STREAM_PORT_CLK_CFG_8FS',['../group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#gga0e856884fa1c7908c59718da0f396484ae3b3cf726190fda9d105b4b7561cb455',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fclk_5fcfg_5fwild',['UCS_STREAM_PORT_CLK_CFG_WILD',['../group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#gga0e856884fa1c7908c59718da0f396484ae8ea56789961bd68181d059180ecccd6',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fclk_5fdly_5fdelayed',['UCS_STREAM_PORT_CLK_DLY_DELAYED',['../group___g___u_c_s___x_r_m___e_n_u_m_ga16d6cd08e925676dfade13e980f460b0.html#gga16d6cd08e925676dfade13e980f460b0a57fd16fd3f918e55cb4fc665f4023c79',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fclk_5fdly_5fnone',['UCS_STREAM_PORT_CLK_DLY_NONE',['../group___g___u_c_s___x_r_m___e_n_u_m_ga16d6cd08e925676dfade13e980f460b0.html#gga16d6cd08e925676dfade13e980f460b0a4a03b7fe83667b4e5f2a355e2810ed6f',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fclk_5fdly_5fwild',['UCS_STREAM_PORT_CLK_DLY_WILD',['../group___g___u_c_s___x_r_m___e_n_u_m_ga16d6cd08e925676dfade13e980f460b0.html#gga16d6cd08e925676dfade13e980f460b0ae852c8c7676b739182f522d3ac1d54bd',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fclk_5fmode_5finput',['UCS_STREAM_PORT_CLK_MODE_INPUT',['../group___g___u_c_s___x_r_m___e_n_u_m_ga3139c2b4d435622104235bd9fd9f478c.html#gga3139c2b4d435622104235bd9fd9f478ca3add1d998c379f1ece1dabd41e89d832',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fclk_5fmode_5foutput',['UCS_STREAM_PORT_CLK_MODE_OUTPUT',['../group___g___u_c_s___x_r_m___e_n_u_m_ga3139c2b4d435622104235bd9fd9f478c.html#gga3139c2b4d435622104235bd9fd9f478ca3c768bceb59f2b4ef488e285a9d11b20',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fclk_5fmode_5fwild',['UCS_STREAM_PORT_CLK_MODE_WILD',['../group___g___u_c_s___x_r_m___e_n_u_m_ga3139c2b4d435622104235bd9fd9f478c.html#gga3139c2b4d435622104235bd9fd9f478ca5614198d8e257bc689bcfccf09ad0d8f',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fop_5fmode_5fgeneric',['UCS_STREAM_PORT_OP_MODE_GENERIC',['../group___g___u_c_s___x_r_m___e_n_u_m_ga6ea92012ace1c507dab36b727698a08e.html#gga6ea92012ace1c507dab36b727698a08ea10bf424b1ddb5c25b7659991fa761946',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fopt_5fdual_5fin',['UCS_STREAM_PORT_OPT_DUAL_IN',['../group___g___u_c_s___x_r_m___e_n_u_m_ga83e210aa76632ea2191bd59ef7894432.html#gga83e210aa76632ea2191bd59ef7894432ab2cb6fba4c684773db5ef4c7d4650311',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fopt_5fdual_5fout',['UCS_STREAM_PORT_OPT_DUAL_OUT',['../group___g___u_c_s___x_r_m___e_n_u_m_ga83e210aa76632ea2191bd59ef7894432.html#gga83e210aa76632ea2191bd59ef7894432a045ee94e54b8cb575ec5579ecded373a',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fopt_5fin_5fout',['UCS_STREAM_PORT_OPT_IN_OUT',['../group___g___u_c_s___x_r_m___e_n_u_m_ga83e210aa76632ea2191bd59ef7894432.html#gga83e210aa76632ea2191bd59ef7894432a5953e1aaabaaa5ae4a74fe0ec5842246',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fpin_5fid_5fsrxa0',['UCS_STREAM_PORT_PIN_ID_SRXA0',['../group___g___u_c_s___x_r_m___e_n_u_m_gaadbd9007127f39c3c257040adf063d07.html#ggaadbd9007127f39c3c257040adf063d07a16eeeaad94f4398034b16f32832b2b52',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fpin_5fid_5fsrxa1',['UCS_STREAM_PORT_PIN_ID_SRXA1',['../group___g___u_c_s___x_r_m___e_n_u_m_gaadbd9007127f39c3c257040adf063d07.html#ggaadbd9007127f39c3c257040adf063d07a111c042a8036aef129575cee99766a50',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fpin_5fid_5fsrxb0',['UCS_STREAM_PORT_PIN_ID_SRXB0',['../group___g___u_c_s___x_r_m___e_n_u_m_gaadbd9007127f39c3c257040adf063d07.html#ggaadbd9007127f39c3c257040adf063d07a9c838b934823acccb059f360dd23d4d3',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fpin_5fid_5fsrxb1',['UCS_STREAM_PORT_PIN_ID_SRXB1',['../group___g___u_c_s___x_r_m___e_n_u_m_gaadbd9007127f39c3c257040adf063d07.html#ggaadbd9007127f39c3c257040adf063d07a743fac004ed325564161877611bdd074',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fsckt_5fsync_5fdata',['UCS_STREAM_PORT_SCKT_SYNC_DATA',['../group___g___u_c_s___x_r_m___e_n_u_m_gae12684f1b74844d622e59da79f1a23f8.html#ggae12684f1b74844d622e59da79f1a23f8a547bb39c45cc5788c3e5352f2b7fa76f',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fportclockconfig_5ft',['Ucs_Stream_PortClockConfig_t',['../group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#ga0e856884fa1c7908c59718da0f396484',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fportclockdatadelay_5ft',['Ucs_Stream_PortClockDataDelay_t',['../group___g___u_c_s___x_r_m___e_n_u_m_ga16d6cd08e925676dfade13e980f460b0.html#ga16d6cd08e925676dfade13e980f460b0',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fportclockmode_5ft',['Ucs_Stream_PortClockMode_t',['../group___g___u_c_s___x_r_m___e_n_u_m_ga3139c2b4d435622104235bd9fd9f478c.html#ga3139c2b4d435622104235bd9fd9f478c',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fportdataalign_5ft',['Ucs_Stream_PortDataAlign_t',['../group___g___u_c_s___x_r_m___e_n_u_m_ga02741bef1059621aaf6cf4fa956cfccf.html#ga02741bef1059621aaf6cf4fa956cfccf',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fportopmode_5ft',['Ucs_Stream_PortOpMode_t',['../group___g___u_c_s___x_r_m___e_n_u_m_ga6ea92012ace1c507dab36b727698a08e.html#ga6ea92012ace1c507dab36b727698a08e',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fportoption_5ft',['Ucs_Stream_PortOption_t',['../group___g___u_c_s___x_r_m___e_n_u_m_ga83e210aa76632ea2191bd59ef7894432.html#ga83e210aa76632ea2191bd59ef7894432',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fportpinid_5ft',['Ucs_Stream_PortPinId_t',['../group___g___u_c_s___x_r_m___e_n_u_m_gaadbd9007127f39c3c257040adf063d07.html#gaadbd9007127f39c3c257040adf063d07',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fsocketdatatype_5ft',['Ucs_Stream_SocketDataType_t',['../group___g___u_c_s___x_r_m___e_n_u_m_gae12684f1b74844d622e59da79f1a23f8.html#gae12684f1b74844d622e59da79f1a23f8',1,'ucs_inic_pb.h']]],
+ ['ucs_5fsync_5fmute_5fmode_5fmute_5fsignal',['UCS_SYNC_MUTE_MODE_MUTE_SIGNAL',['../group___g___u_c_s___x_r_m___e_n_u_m_gaef12892b897a1cd1013357cfe63f2434.html#ggaef12892b897a1cd1013357cfe63f2434a0648d4c524869e191575e69531947171',1,'ucs_inic_pb.h']]],
+ ['ucs_5fsync_5fmute_5fmode_5fno_5fmuting',['UCS_SYNC_MUTE_MODE_NO_MUTING',['../group___g___u_c_s___x_r_m___e_n_u_m_gaef12892b897a1cd1013357cfe63f2434.html#ggaef12892b897a1cd1013357cfe63f2434a6e21656de3fa891d522f272307fca772',1,'ucs_inic_pb.h']]],
+ ['ucs_5fsync_5fmutemode_5ft',['Ucs_Sync_MuteMode_t',['../group___g___u_c_s___x_r_m___e_n_u_m_gaef12892b897a1cd1013357cfe63f2434.html#gaef12892b897a1cd1013357cfe63f2434',1,'ucs_inic_pb.h']]],
+ ['ucs_5ftr_5ferror',['UCS_TR_ERROR',['../group___g___u_c_s___t_r_a_c_e_gaf7f45aee7bbbd7f4a58b71a5268ecdb6.html#gaf7f45aee7bbbd7f4a58b71a5268ecdb6',1,'ucs_trace.h']]],
+ ['ucs_5ftr_5finfo',['UCS_TR_INFO',['../group___g___u_c_s___t_r_a_c_e_gaebb5aec06a7196b1247805a53a96f926.html#gaebb5aec06a7196b1247805a53a96f926',1,'ucs_trace.h']]],
+ ['ucs_5ftr_5fsize_5fbuffer',['UCS_TR_SIZE_BUFFER',['../group___g___u_c_s___t_r_a_c_e_ga038add4a7ca8adb0f60c34cedbfcf8b9.html#ga038add4a7ca8adb0f60c34cedbfcf8b9',1,'ucs_trace_pb.h']]],
+ ['ucs_5fusb_5fphy_5flayer_5fhsci',['UCS_USB_PHY_LAYER_HSCI',['../group___g___u_c_s___x_r_m___e_n_u_m_gaa573e5854eb036998eec837e9fbf0ae1.html#ggaa573e5854eb036998eec837e9fbf0ae1a94962f9a6bce23c8ab29d9da551ef2c3',1,'ucs_inic_pb.h']]],
+ ['ucs_5fusb_5fphy_5flayer_5fstandard',['UCS_USB_PHY_LAYER_STANDARD',['../group___g___u_c_s___x_r_m___e_n_u_m_gaa573e5854eb036998eec837e9fbf0ae1.html#ggaa573e5854eb036998eec837e9fbf0ae1aea428e9f9e380e629584c3989e4318b3',1,'ucs_inic_pb.h']]],
+ ['ucs_5fusb_5fphysicallayer_5ft',['Ucs_Usb_PhysicalLayer_t',['../group___g___u_c_s___x_r_m___e_n_u_m_gaa573e5854eb036998eec837e9fbf0ae1.html#gaa573e5854eb036998eec837e9fbf0ae1',1,'ucs_inic_pb.h']]],
+ ['ucs_5fusb_5fsckt_5fav_5fpacketized',['UCS_USB_SCKT_AV_PACKETIZED',['../group___g___u_c_s___x_r_m___e_n_u_m_gafd56377a5a1f782e64260d18caf17dc9.html#ggafd56377a5a1f782e64260d18caf17dc9afbd766c42efdcb7bb7f7dddbbe863f0b',1,'ucs_inic_pb.h']]],
+ ['ucs_5fusb_5fsckt_5fcontrol_5fdata',['UCS_USB_SCKT_CONTROL_DATA',['../group___g___u_c_s___x_r_m___e_n_u_m_gafd56377a5a1f782e64260d18caf17dc9.html#ggafd56377a5a1f782e64260d18caf17dc9a257142db7cda65de457ce1b5614de162',1,'ucs_inic_pb.h']]],
+ ['ucs_5fusb_5fsckt_5fipc_5fpacket',['UCS_USB_SCKT_IPC_PACKET',['../group___g___u_c_s___x_r_m___e_n_u_m_gafd56377a5a1f782e64260d18caf17dc9.html#ggafd56377a5a1f782e64260d18caf17dc9a6a225da98d0fb6f08845c7b0c3480109',1,'ucs_inic_pb.h']]],
+ ['ucs_5fusb_5fsckt_5fsync_5fdata',['UCS_USB_SCKT_SYNC_DATA',['../group___g___u_c_s___x_r_m___e_n_u_m_gafd56377a5a1f782e64260d18caf17dc9.html#ggafd56377a5a1f782e64260d18caf17dc9a4df4e4d4848358e18a3ef6386db80acf',1,'ucs_inic_pb.h']]],
+ ['ucs_5fusb_5fsocketdatatype_5ft',['Ucs_Usb_SocketDataType_t',['../group___g___u_c_s___x_r_m___e_n_u_m_gafd56377a5a1f782e64260d18caf17dc9.html#gafd56377a5a1f782e64260d18caf17dc9',1,'ucs_inic_pb.h']]],
+ ['ucs_5fversion_5fbuild',['UCS_VERSION_BUILD',['../group___g___u_c_s___m_i_s_c_gaadb74b48c69d7b6fc0a94eeb666e8183.html#gaadb74b48c69d7b6fc0a94eeb666e8183',1,'ucs_api.h']]],
+ ['ucs_5fversion_5fmajor',['UCS_VERSION_MAJOR',['../group___g___u_c_s___m_i_s_c_ga74b0d1a6c74c93a79fc2751554806796.html#ga74b0d1a6c74c93a79fc2751554806796',1,'ucs_api.h']]],
+ ['ucs_5fversion_5fminor',['UCS_VERSION_MINOR',['../group___g___u_c_s___m_i_s_c_gaae920665e0a0d0c4213b8e037f6ce869.html#gaae920665e0a0d0c4213b8e037f6ce869',1,'ucs_api.h']]],
+ ['ucs_5fversion_5frelease',['UCS_VERSION_RELEASE',['../group___g___u_c_s___m_i_s_c_gad0b327b6924e088113371b79e161cafe.html#gad0b327b6924e088113371b79e161cafe',1,'ucs_api.h']]],
+ ['ucs_5fxrm_5favpcon_5ft',['Ucs_Xrm_AvpCon_t',['../struct_ucs___xrm___avp_con__t.html',1,'']]],
+ ['ucs_5fxrm_5fcheckunmutecb_5ft',['Ucs_Xrm_CheckUnmuteCb_t',['../group___g___u_c_s___i_r_m_ga8d92898b48eeef24ac44a6e3ebdff460.html#ga8d92898b48eeef24ac44a6e3ebdff460',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fcombiner_5ft',['Ucs_Xrm_Combiner_t',['../struct_ucs___xrm___combiner__t.html',1,'']]],
+ ['ucs_5fxrm_5fdefaultcreatedport_5ft',['Ucs_Xrm_DefaultCreatedPort_t',['../struct_ucs___xrm___default_created_port__t.html',1,'']]],
+ ['ucs_5fxrm_5fdfiphasecon_5ft',['Ucs_Xrm_DfiPhaseCon_t',['../struct_ucs___xrm___dfi_phase_con__t.html',1,'']]],
+ ['ucs_5fxrm_5finfos_5fbuilt',['UCS_XRM_INFOS_BUILT',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#gga5299ac232aaeba37eb6fceb53e32b2eaaf17abdbe8fab65a069b6a8af1079066a',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5finfos_5fdestroyed',['UCS_XRM_INFOS_DESTROYED',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#gga5299ac232aaeba37eb6fceb53e32b2eaa6e7faa32a0cb82c3fdf4450d80188262',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5finfos_5ferr_5fbuilt',['UCS_XRM_INFOS_ERR_BUILT',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#gga5299ac232aaeba37eb6fceb53e32b2eaac57d4f29bbfd2f62eefddc4e31a7ad81',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5finfos_5ferr_5fdestroyed',['UCS_XRM_INFOS_ERR_DESTROYED',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#gga5299ac232aaeba37eb6fceb53e32b2eaa3506ba144d511cba046ed09d7de265d2',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5finitdata_5ft',['Ucs_Xrm_InitData_t',['../struct_ucs___xrm___init_data__t.html',1,'']]],
+ ['ucs_5fxrm_5fmlbport_5ft',['Ucs_Xrm_MlbPort_t',['../struct_ucs___xrm___mlb_port__t.html',1,'']]],
+ ['ucs_5fxrm_5fmlbsocket_5ft',['Ucs_Xrm_MlbSocket_t',['../struct_ucs___xrm___mlb_socket__t.html',1,'']]],
+ ['ucs_5fxrm_5fmost_5fportstatuscb_5ft',['Ucs_Xrm_Most_PortStatusCb_t',['../group___g___u_c_s___i_r_m_gae689267958c19afd9f9a097c36d017d3.html#gae689267958c19afd9f9a097c36d017d3',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fmostsocket_5ft',['Ucs_Xrm_MostSocket_t',['../struct_ucs___xrm___most_socket__t.html',1,'']]],
+ ['ucs_5fxrm_5fnum_5fjobs',['UCS_XRM_NUM_JOBS',['../group___g___u_c_s___x_r_m___c_f_g_gaddc205bcdb37b435fddb292c416f605b.html#gaddc205bcdb37b435fddb292c416f605b',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fnum_5fresources',['UCS_XRM_NUM_RESOURCES',['../group___g___u_c_s___x_r_m___c_f_g_ga9bbd7e20bff0c7ea54699df5969e933a.html#ga9bbd7e20bff0c7ea54699df5969e933a',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fport_5ftype_5fmlb',['UCS_XRM_PORT_TYPE_MLB',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga50384bb32b088e9cfd50c889ef562015.html#gga50384bb32b088e9cfd50c889ef562015af7f4a6893afb4f0f50a16a58e815f33e',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fport_5ftype_5fstrm',['UCS_XRM_PORT_TYPE_STRM',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga50384bb32b088e9cfd50c889ef562015.html#gga50384bb32b088e9cfd50c889ef562015a9a8488efe5ea3c20d4a172ccc547951a',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fport_5ftype_5fusb',['UCS_XRM_PORT_TYPE_USB',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga50384bb32b088e9cfd50c889ef562015.html#gga50384bb32b088e9cfd50c889ef562015a7b31f75e1806723739f4d7fd2bc483d3',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fporttype_5ft',['Ucs_Xrm_PortType_t',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga50384bb32b088e9cfd50c889ef562015.html#ga50384bb32b088e9cfd50c889ef562015',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fqoscon_5ft',['Ucs_Xrm_QoSCon_t',['../struct_ucs___xrm___qo_s_con__t.html',1,'']]],
+ ['ucs_5fxrm_5frc_5ftype_5favp_5fcon',['UCS_XRM_RC_TYPE_AVP_CON',['../group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36cccad0ca5b1fdc6b922e235ba53c5e09b8fb',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5frc_5ftype_5fcombiner',['UCS_XRM_RC_TYPE_COMBINER',['../group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca7224e84dd09ec73062bfaf395d645669',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5frc_5ftype_5fdc_5fport',['UCS_XRM_RC_TYPE_DC_PORT',['../group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36cccacf416b59b369504088ef6810b4c545e1',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5frc_5ftype_5fdfiphase_5fcon',['UCS_XRM_RC_TYPE_DFIPHASE_CON',['../group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36cccafc1fc13e092cd54eebdfe81d709213ef',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5frc_5ftype_5fmlb_5fport',['UCS_XRM_RC_TYPE_MLB_PORT',['../group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca2c31643fe2ccea0ecb44424ef0ba0472',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5frc_5ftype_5fmlb_5fsocket',['UCS_XRM_RC_TYPE_MLB_SOCKET',['../group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca51a0ec5a470cb37f90a79a73f0f83be4',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5frc_5ftype_5fmost_5fsocket',['UCS_XRM_RC_TYPE_MOST_SOCKET',['../group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36cccaeebb673b9abc5172f688f8e9e692441c',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5frc_5ftype_5fqos_5fcon',['UCS_XRM_RC_TYPE_QOS_CON',['../group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca23a015384da5963bcd03626084acd531',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5frc_5ftype_5frmck_5fport',['UCS_XRM_RC_TYPE_RMCK_PORT',['../group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca1d473f725ad3b8c99a3aa7a7e4915695',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5frc_5ftype_5fsplitter',['UCS_XRM_RC_TYPE_SPLITTER',['../group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36cccade63ac4286473169114caa4b890c5a65',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5frc_5ftype_5fstrm_5fport',['UCS_XRM_RC_TYPE_STRM_PORT',['../group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca1956e37c3cfebc66ed6f5da75f67d589',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5frc_5ftype_5fstrm_5fsocket',['UCS_XRM_RC_TYPE_STRM_SOCKET',['../group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca42a35dfe6f0054952406aeb6cdcf5119',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5frc_5ftype_5fsync_5fcon',['UCS_XRM_RC_TYPE_SYNC_CON',['../group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca47342ee294555a9b7e738c9fc34b5265',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5frc_5ftype_5fusb_5fport',['UCS_XRM_RC_TYPE_USB_PORT',['../group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca0060f6125299f66c37b3b9111358caaf',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5frc_5ftype_5fusb_5fsocket',['UCS_XRM_RC_TYPE_USB_SOCKET',['../group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca5e2f20f818f67af2502a600f06b9ab11',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fres_5ferr_5fbuild',['UCS_XRM_RES_ERR_BUILD',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a919a5b68148cb601b4493861fc327cb4',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fres_5ferr_5fconfig',['UCS_XRM_RES_ERR_CONFIG',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a5be1bc94fb04a96c19169ced4b332c22',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fres_5ferr_5fdestroy',['UCS_XRM_RES_ERR_DESTROY',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a98009aefa81c980cfd7271870a8f5935',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fres_5ferr_5finv_5flist',['UCS_XRM_RES_ERR_INV_LIST',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a271d672a3235b37ade92cc90703e2818',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fres_5ferr_5fsync',['UCS_XRM_RES_ERR_SYNC',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a8756918bcca4958921f4998e4279290a',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fres_5frc_5fauto_5fdestroyed',['UCS_XRM_RES_RC_AUTO_DESTROYED',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a1c701f3c6cf1906ec7b9ab128f716ddd',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fres_5fsuccess_5fbuild',['UCS_XRM_RES_SUCCESS_BUILD',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a87626ffba05e93e00d937e02ffa6f11f',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fres_5fsuccess_5fdestroy',['UCS_XRM_RES_SUCCESS_DESTROY',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a5598f375b65cc34614b9da0fa26eac7b',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fres_5funknown',['UCS_XRM_RES_UNKNOWN',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a9710ae95e40d16090a0c89db7dd2b17c',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fresidentity_5ft',['Ucs_Xrm_ResIdentity_t',['../struct_ucs___xrm___res_identity__t.html',1,'']]],
+ ['ucs_5fxrm_5fresobject_5ft',['Ucs_Xrm_ResObject_t',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fresourcedebugcb_5ft',['Ucs_Xrm_ResourceDebugCb_t',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga10b22839e9b7b2fe0148713aeea0172c.html#ga10b22839e9b7b2fe0148713aeea0172c',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fresourceinfos_5ft',['Ucs_Xrm_ResourceInfos_t',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#ga5299ac232aaeba37eb6fceb53e32b2ea',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fresourcetype_5ft',['Ucs_Xrm_ResourceType_t',['../group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fresult_5ft',['Ucs_Xrm_Result_t',['../struct_ucs___xrm___result__t.html',1,'']]],
+ ['ucs_5fxrm_5fresult_5ftype_5fint',['UCS_XRM_RESULT_TYPE_INT',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga80967b5f9bca0e603511f6ae4f8ac80d.html#gga80967b5f9bca0e603511f6ae4f8ac80da5b4112471bfa589121d71a7a4a615488',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fresult_5ftype_5ftgt',['UCS_XRM_RESULT_TYPE_TGT',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga80967b5f9bca0e603511f6ae4f8ac80d.html#gga80967b5f9bca0e603511f6ae4f8ac80daf7685915f03d5f4d71146c0802ec0ca3',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fresult_5ftype_5ftx',['UCS_XRM_RESULT_TYPE_TX',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga80967b5f9bca0e603511f6ae4f8ac80d.html#gga80967b5f9bca0e603511f6ae4f8ac80da5697459fe3277c55bcd1a733339bea9b',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fresultcode_5ft',['Ucs_Xrm_ResultCode_t',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#ga60bd3f9fa02e15fb8841236470502939',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fresultdetails_5ft',['Ucs_Xrm_ResultDetails_t',['../struct_ucs___xrm___result_details__t.html',1,'']]],
+ ['ucs_5fxrm_5fresulttype_5ft',['Ucs_Xrm_ResultType_t',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga80967b5f9bca0e603511f6ae4f8ac80d.html#ga80967b5f9bca0e603511f6ae4f8ac80d',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5frmckport_5ft',['Ucs_Xrm_RmckPort_t',['../struct_ucs___xrm___rmck_port__t.html',1,'']]],
+ ['ucs_5fxrm_5fsplitter_5ft',['Ucs_Xrm_Splitter_t',['../struct_ucs___xrm___splitter__t.html',1,'']]],
+ ['ucs_5fxrm_5fstream_5fgetportconfig',['Ucs_Xrm_Stream_GetPortConfig',['../group___g___u_c_s___x_r_m___s_t_r_e_a_m_ga05e65cb477a3ff894de32425eb41294f.html#ga05e65cb477a3ff894de32425eb41294f',1,'ucs_class_pb.h']]],
+ ['ucs_5fxrm_5fstream_5fportcfgrescb_5ft',['Ucs_Xrm_Stream_PortCfgResCb_t',['../group___g___u_c_s___x_r_m___t_y_p_e_s_gab2f4b821b24db0cec150d1b30fe18783.html#gab2f4b821b24db0cec150d1b30fe18783',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fstream_5fsetportconfig',['Ucs_Xrm_Stream_SetPortConfig',['../group___g___u_c_s___x_r_m___s_t_r_e_a_m_ga481fb8455d6165c5913ead778765d46e.html#ga481fb8455d6165c5913ead778765d46e',1,'ucs_class_pb.h']]],
+ ['ucs_5fxrm_5fstrmport_5ft',['Ucs_Xrm_StrmPort_t',['../struct_ucs___xrm___strm_port__t.html',1,'']]],
+ ['ucs_5fxrm_5fstrmsocket_5ft',['Ucs_Xrm_StrmSocket_t',['../struct_ucs___xrm___strm_socket__t.html',1,'']]],
+ ['ucs_5fxrm_5fsynccon_5ft',['Ucs_Xrm_SyncCon_t',['../struct_ucs___xrm___sync_con__t.html',1,'']]],
+ ['ucs_5fxrm_5fusbport_5ft',['Ucs_Xrm_UsbPort_t',['../struct_ucs___xrm___usb_port__t.html',1,'']]],
+ ['ucs_5fxrm_5fusbsocket_5ft',['Ucs_Xrm_UsbSocket_t',['../struct_ucs___xrm___usb_socket__t.html',1,'']]],
+ ['unit_5flength',['unit_length',['../struct_ucs___prg___command__t_aaeb273d8c806cdbebcb5d61a58b3a77d.html#aaeb273d8c806cdbebcb5d61a58b3a77d',1,'Ucs_Prg_Command_t']]],
+ ['usb_5fport_5fobj_5fptr',['usb_port_obj_ptr',['../struct_ucs___xrm___usb_socket__t_a3fe892af2f377651d07638c52a163326.html#a3fe892af2f377651d07638c52a163326',1,'Ucs_Xrm_UsbSocket_t']]],
+ ['user_5fptr',['user_ptr',['../struct_ucs___init_data__t_a41f828ebbe67a574ee39abd6c054bb6c.html#a41f828ebbe67a574ee39abd6c054bb6c',1,'Ucs_InitData_t']]]
+];
diff --git a/ucs2-lib/doc/html/search/all_78.html b/ucs2-lib/doc/html/search/all_78.html
new file mode 100644
index 0000000..10780d6
--- /dev/null
+++ b/ucs2-lib/doc/html/search/all_78.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_78.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/all_78.js b/ucs2-lib/doc/html/search/all_78.js
new file mode 100644
index 0000000..648faa9
--- /dev/null
+++ b/ucs2-lib/doc/html/search/all_78.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+ ['xrm_20configuration_20macros',['XRM Configuration Macros',['../group___g___u_c_s___x_r_m___c_f_g.html',1,'']]],
+ ['xrm_20subtypes',['XRM SubTypes',['../group___g___u_c_s___x_r_m___e_n_u_m.html',1,'']]],
+ ['xrm_20referred_20types',['XRM Referred Types',['../group___g___u_c_s___x_r_m___t_y_p_e_s.html',1,'']]],
+ ['xrm',['xrm',['../struct_ucs___rm___init_data__t_ab3de88c423837727c463947f57895e49.html#ab3de88c423837727c463947f57895e49',1,'Ucs_Rm_InitData_t']]]
+];
diff --git a/ucs2-lib/doc/html/search/classes_63.html b/ucs2-lib/doc/html/search/classes_63.html
new file mode 100644
index 0000000..72c66b9
--- /dev/null
+++ b/ucs2-lib/doc/html/search/classes_63.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_63.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/classes_63.js b/ucs2-lib/doc/html/search/classes_63.js
new file mode 100644
index 0000000..ad67973
--- /dev/null
+++ b/ucs2-lib/doc/html/search/classes_63.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['cprogramming',['CProgramming',['../struct_c_programming.html',1,'']]]
+];
diff --git a/ucs2-lib/doc/html/search/classes_6d.html b/ucs2-lib/doc/html/search/classes_6d.html
new file mode 100644
index 0000000..abe6f0d
--- /dev/null
+++ b/ucs2-lib/doc/html/search/classes_6d.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_6d.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/classes_6d.js b/ucs2-lib/doc/html/search/classes_6d.js
new file mode 100644
index 0000000..95d8411
--- /dev/null
+++ b/ucs2-lib/doc/html/search/classes_6d.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+ ['msg_5fmosttel_5ft',['Msg_MostTel_t',['../struct_msg___most_tel__t.html',1,'']]],
+ ['msg_5fmsgid_5ft',['Msg_MsgId_t',['../struct_msg___msg_id__t.html',1,'']]],
+ ['msg_5fteldata_5ft',['Msg_TelData_t',['../struct_msg___tel_data__t.html',1,'']]],
+ ['msg_5ftxoptions_5ft',['Msg_TxOptions_t',['../struct_msg___tx_options__t.html',1,'']]]
+];
diff --git a/ucs2-lib/doc/html/search/classes_75.html b/ucs2-lib/doc/html/search/classes_75.html
new file mode 100644
index 0000000..807d742
--- /dev/null
+++ b/ucs2-lib/doc/html/search/classes_75.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_75.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/classes_75.js b/ucs2-lib/doc/html/search/classes_75.js
new file mode 100644
index 0000000..a93a333
--- /dev/null
+++ b/ucs2-lib/doc/html/search/classes_75.js
@@ -0,0 +1,59 @@
+var searchData=
+[
+ ['ucs_5fams_5finitdata_5ft',['Ucs_Ams_InitData_t',['../struct_ucs___ams___init_data__t.html',1,'']]],
+ ['ucs_5famsrx_5finitdata_5ft',['Ucs_AmsRx_InitData_t',['../struct_ucs___ams_rx___init_data__t.html',1,'']]],
+ ['ucs_5famsrx_5fmsg_5ft',['Ucs_AmsRx_Msg_t',['../struct_ucs___ams_rx___msg__t.html',1,'']]],
+ ['ucs_5famstx_5finitdata_5ft',['Ucs_AmsTx_InitData_t',['../struct_ucs___ams_tx___init_data__t.html',1,'']]],
+ ['ucs_5famstx_5fmsg_5ft',['Ucs_AmsTx_Msg_t',['../struct_ucs___ams_tx___msg__t.html',1,'']]],
+ ['ucs_5fcmd_5fmsgid_5ft',['Ucs_Cmd_MsgId_t',['../struct_ucs___cmd___msg_id__t.html',1,'']]],
+ ['ucs_5fgeneral_5finitdata_5ft',['Ucs_General_InitData_t',['../struct_ucs___general___init_data__t.html',1,'']]],
+ ['ucs_5fgpio_5finitdata_5ft',['Ucs_Gpio_InitData_t',['../struct_ucs___gpio___init_data__t.html',1,'']]],
+ ['ucs_5fgpio_5fpinconfiguration_5ft',['Ucs_Gpio_PinConfiguration_t',['../struct_ucs___gpio___pin_configuration__t.html',1,'']]],
+ ['ucs_5fgpio_5fresult_5ft',['Ucs_Gpio_Result_t',['../struct_ucs___gpio___result__t.html',1,'']]],
+ ['ucs_5fgpio_5fresultdetails_5ft',['Ucs_Gpio_ResultDetails_t',['../struct_ucs___gpio___result_details__t.html',1,'']]],
+ ['ucs_5fi2c_5finitdata_5ft',['Ucs_I2c_InitData_t',['../struct_ucs___i2c___init_data__t.html',1,'']]],
+ ['ucs_5fi2c_5fresult_5ft',['Ucs_I2c_Result_t',['../struct_ucs___i2c___result__t.html',1,'']]],
+ ['ucs_5fi2c_5fresultdetails_5ft',['Ucs_I2c_ResultDetails_t',['../struct_ucs___i2c___result_details__t.html',1,'']]],
+ ['ucs_5finic_5finitdata_5ft',['Ucs_Inic_InitData_t',['../struct_ucs___inic___init_data__t.html',1,'']]],
+ ['ucs_5finic_5fversion_5ft',['Ucs_Inic_Version_t',['../struct_ucs___inic___version__t.html',1,'']]],
+ ['ucs_5finitdata_5ft',['Ucs_InitData_t',['../struct_ucs___init_data__t.html',1,'']]],
+ ['ucs_5flld_5fapi_5ft',['Ucs_Lld_Api_t',['../struct_ucs___lld___api__t.html',1,'']]],
+ ['ucs_5flld_5fcallbacks_5ft',['Ucs_Lld_Callbacks_t',['../struct_ucs___lld___callbacks__t.html',1,'']]],
+ ['ucs_5flld_5frxmsg_5ft',['Ucs_Lld_RxMsg_t',['../struct_ucs___lld___rx_msg__t.html',1,'']]],
+ ['ucs_5flld_5ftxmsg_5ft',['Ucs_Lld_TxMsg_t',['../struct_ucs___lld___tx_msg__t.html',1,'']]],
+ ['ucs_5fmem_5fbuffer_5ft',['Ucs_Mem_Buffer_t',['../struct_ucs___mem___buffer__t.html',1,'']]],
+ ['ucs_5fmgr_5finitdata_5ft',['Ucs_Mgr_InitData_t',['../struct_ucs___mgr___init_data__t.html',1,'']]],
+ ['ucs_5fnd_5finitdata_5ft',['Ucs_Nd_InitData_t',['../struct_ucs___nd___init_data__t.html',1,'']]],
+ ['ucs_5fnetwork_5finitdata_5ft',['Ucs_Network_InitData_t',['../struct_ucs___network___init_data__t.html',1,'']]],
+ ['ucs_5fnetwork_5fstatus_5ft',['Ucs_Network_Status_t',['../struct_ucs___network___status__t.html',1,'']]],
+ ['ucs_5fns_5fconfigmsg_5ft',['Ucs_Ns_ConfigMsg_t',['../struct_ucs___ns___config_msg__t.html',1,'']]],
+ ['ucs_5fns_5fscript_5ft',['Ucs_Ns_Script_t',['../struct_ucs___ns___script__t.html',1,'']]],
+ ['ucs_5fprg_5fcommand_5ft',['Ucs_Prg_Command_t',['../struct_ucs___prg___command__t.html',1,'']]],
+ ['ucs_5frm_5fendpoint_5ft',['Ucs_Rm_EndPoint_t',['../struct_ucs___rm___end_point__t.html',1,'']]],
+ ['ucs_5frm_5finitdata_5ft',['Ucs_Rm_InitData_t',['../struct_ucs___rm___init_data__t.html',1,'']]],
+ ['ucs_5frm_5fnode_5ft',['Ucs_Rm_Node_t',['../struct_ucs___rm___node__t.html',1,'']]],
+ ['ucs_5frm_5froute_5ft',['Ucs_Rm_Route_t',['../struct_ucs___rm___route__t.html',1,'']]],
+ ['ucs_5fsd_5freport_5ft',['Ucs_Sd_Report_t',['../struct_ucs___sd___report__t.html',1,'']]],
+ ['ucs_5fsd_5fsegment_5ft',['Ucs_Sd_Segment_t',['../struct_ucs___sd___segment__t.html',1,'']]],
+ ['ucs_5fsignature_5ft',['Ucs_Signature_t',['../struct_ucs___signature__t.html',1,'']]],
+ ['ucs_5fstdresult_5ft',['Ucs_StdResult_t',['../struct_ucs___std_result__t.html',1,'']]],
+ ['ucs_5fxrm_5favpcon_5ft',['Ucs_Xrm_AvpCon_t',['../struct_ucs___xrm___avp_con__t.html',1,'']]],
+ ['ucs_5fxrm_5fcombiner_5ft',['Ucs_Xrm_Combiner_t',['../struct_ucs___xrm___combiner__t.html',1,'']]],
+ ['ucs_5fxrm_5fdefaultcreatedport_5ft',['Ucs_Xrm_DefaultCreatedPort_t',['../struct_ucs___xrm___default_created_port__t.html',1,'']]],
+ ['ucs_5fxrm_5fdfiphasecon_5ft',['Ucs_Xrm_DfiPhaseCon_t',['../struct_ucs___xrm___dfi_phase_con__t.html',1,'']]],
+ ['ucs_5fxrm_5finitdata_5ft',['Ucs_Xrm_InitData_t',['../struct_ucs___xrm___init_data__t.html',1,'']]],
+ ['ucs_5fxrm_5fmlbport_5ft',['Ucs_Xrm_MlbPort_t',['../struct_ucs___xrm___mlb_port__t.html',1,'']]],
+ ['ucs_5fxrm_5fmlbsocket_5ft',['Ucs_Xrm_MlbSocket_t',['../struct_ucs___xrm___mlb_socket__t.html',1,'']]],
+ ['ucs_5fxrm_5fmostsocket_5ft',['Ucs_Xrm_MostSocket_t',['../struct_ucs___xrm___most_socket__t.html',1,'']]],
+ ['ucs_5fxrm_5fqoscon_5ft',['Ucs_Xrm_QoSCon_t',['../struct_ucs___xrm___qo_s_con__t.html',1,'']]],
+ ['ucs_5fxrm_5fresidentity_5ft',['Ucs_Xrm_ResIdentity_t',['../struct_ucs___xrm___res_identity__t.html',1,'']]],
+ ['ucs_5fxrm_5fresult_5ft',['Ucs_Xrm_Result_t',['../struct_ucs___xrm___result__t.html',1,'']]],
+ ['ucs_5fxrm_5fresultdetails_5ft',['Ucs_Xrm_ResultDetails_t',['../struct_ucs___xrm___result_details__t.html',1,'']]],
+ ['ucs_5fxrm_5frmckport_5ft',['Ucs_Xrm_RmckPort_t',['../struct_ucs___xrm___rmck_port__t.html',1,'']]],
+ ['ucs_5fxrm_5fsplitter_5ft',['Ucs_Xrm_Splitter_t',['../struct_ucs___xrm___splitter__t.html',1,'']]],
+ ['ucs_5fxrm_5fstrmport_5ft',['Ucs_Xrm_StrmPort_t',['../struct_ucs___xrm___strm_port__t.html',1,'']]],
+ ['ucs_5fxrm_5fstrmsocket_5ft',['Ucs_Xrm_StrmSocket_t',['../struct_ucs___xrm___strm_socket__t.html',1,'']]],
+ ['ucs_5fxrm_5fsynccon_5ft',['Ucs_Xrm_SyncCon_t',['../struct_ucs___xrm___sync_con__t.html',1,'']]],
+ ['ucs_5fxrm_5fusbport_5ft',['Ucs_Xrm_UsbPort_t',['../struct_ucs___xrm___usb_port__t.html',1,'']]],
+ ['ucs_5fxrm_5fusbsocket_5ft',['Ucs_Xrm_UsbSocket_t',['../struct_ucs___xrm___usb_socket__t.html',1,'']]]
+];
diff --git a/ucs2-lib/doc/html/search/close.png b/ucs2-lib/doc/html/search/close.png
new file mode 100644
index 0000000..9342d3d
--- /dev/null
+++ b/ucs2-lib/doc/html/search/close.png
Binary files differ
diff --git a/ucs2-lib/doc/html/search/enums_75.html b/ucs2-lib/doc/html/search/enums_75.html
new file mode 100644
index 0000000..71ab25c
--- /dev/null
+++ b/ucs2-lib/doc/html/search/enums_75.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enums_75.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/enums_75.js b/ucs2-lib/doc/html/search/enums_75.js
new file mode 100644
index 0000000..6596d28
--- /dev/null
+++ b/ucs2-lib/doc/html/search/enums_75.js
@@ -0,0 +1,64 @@
+var searchData=
+[
+ ['ucs_5famsrx_5freceivetype_5ft',['Ucs_AmsRx_ReceiveType_t',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga113edf4cab85ce4e5e13ef257b5b7128.html#ga113edf4cab85ce4e5e13ef257b5b7128',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5finfo_5ft',['Ucs_AmsTx_Info_t',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#ga667b741121fdfbda2fe19fa23ffc7479',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5fresult_5ft',['Ucs_AmsTx_Result_t',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#ga36b630c866dc0c03134f60e98be39f0b',1,'ucs_ams_pb.h']]],
+ ['ucs_5favp_5fisocpacketsize_5ft',['Ucs_Avp_IsocPacketSize_t',['../group___g___u_c_s___x_r_m___e_n_u_m_ga8836a818f79ff1315f7f76bcd8e50a4d.html#ga8836a818f79ff1315f7f76bcd8e50a4d',1,'ucs_inic_pb.h']]],
+ ['ucs_5fbcd_5frescode_5ft',['Ucs_Bcd_ResCode_t',['../group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#ga08b88fcd49483ac8d0ce004c104a4c12',1,'ucs_inic_pb.h']]],
+ ['ucs_5fcmd_5freturn_5ft',['Ucs_Cmd_Return_t',['../group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#ga91f6db002b6fe98cdeb2969b19131cbb',1,'ucs_cmd_pb.h']]],
+ ['ucs_5ferror_5ft',['Ucs_Error_t',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga9551cd80ce8a13fa6cce717cbc13e499.html#ga9551cd80ce8a13fa6cce717cbc13e499',1,'ucs_eh_pb.h']]],
+ ['ucs_5fgpio_5fpinmode_5ft',['Ucs_Gpio_PinMode_t',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#gacfcf034325bd7eff2f6fc78e8696ed49',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5fresultcode_5ft',['Ucs_Gpio_ResultCode_t',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga7432b6d95eb2af7bce5fe5809b08d88b.html#ga7432b6d95eb2af7bce5fe5809b08d88b',1,'ucs_gpio_pb.h']]],
+ ['ucs_5fgpio_5fresulttype_5ft',['Ucs_Gpio_ResultType_t',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga292134dc6bc30b6b4f0e3e8882c2e772.html#ga292134dc6bc30b6b4f0e3e8882c2e772',1,'ucs_gpio_pb.h']]],
+ ['ucs_5fi2c_5fresultcode_5ft',['Ucs_I2c_ResultCode_t',['../group___g___u_c_s___i2_c___t_y_p_e_s_ga930e829c3c689b8ead8f9fbf7f2ca237.html#ga930e829c3c689b8ead8f9fbf7f2ca237',1,'ucs_i2c_pb.h']]],
+ ['ucs_5fi2c_5fresulttype_5ft',['Ucs_I2c_ResultType_t',['../group___g___u_c_s___i2_c___t_y_p_e_s_ga7c7b4521cb5391bd20c02104876a811d.html#ga7c7b4521cb5391bd20c02104876a811d',1,'ucs_i2c_pb.h']]],
+ ['ucs_5fi2c_5fspeed_5ft',['Ucs_I2c_Speed_t',['../group___g___u_c_s___i2_c___t_y_p_e_s_ga8492cc027b5b9e2f436a172e526e1d5e.html#ga8492cc027b5b9e2f436a172e526e1d5e',1,'ucs_inic_pb.h']]],
+ ['ucs_5fi2c_5ftrmode_5ft',['Ucs_I2c_TrMode_t',['../group___g___u_c_s___i2_c___t_y_p_e_s_ga631c2b70299a4c07ac77b6741b5b5e44.html#ga631c2b70299a4c07ac77b6741b5b5e44',1,'ucs_inic_pb.h']]],
+ ['ucs_5finic_5flastresetreason_5ft',['Ucs_Inic_LastResetReason_t',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga17139fe9e7d72bdb5a09d5a1ab39de4e.html#ga17139fe9e7d72bdb5a09d5a1ab39de4e',1,'ucs_inic_pb.h']]],
+ ['ucs_5finic_5fpowerstate_5ft',['Ucs_Inic_PowerState_t',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga132c4c68227062e63ffb99b321b9a677.html#ga132c4c68227062e63ffb99b321b9a677',1,'ucs_inic_pb.h']]],
+ ['ucs_5finitresult_5ft',['Ucs_InitResult_t',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#ga0a933f34b9acbf21dc68f426c324e78c',1,'ucs_ret_pb.h']]],
+ ['ucs_5fmgrreport_5ft',['Ucs_MgrReport_t',['../group___g___u_c_s___m_g_r_gab85aa9ce377050505124af5e9549e445.html#gab85aa9ce377050505124af5e9549e445',1,'ucs_nodeobserver_pb.h']]],
+ ['ucs_5fmlb_5fclockconfig_5ft',['Ucs_Mlb_ClockConfig_t',['../group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#ga12193f5b8d160e84ad8b9853b0308f63',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmlb_5fsocketdatatype_5ft',['Ucs_Mlb_SocketDataType_t',['../group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html#gaf3facaf3378409c31465c68380990b53',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmost_5fportavail_5ft',['Ucs_Most_PortAvail_t',['../group___g___u_c_s___x_r_m___e_n_u_m_ga902951b9083ff58a88e19e151b57106a.html#ga902951b9083ff58a88e19e151b57106a',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmost_5fportavailinfo_5ft',['Ucs_Most_PortAvailInfo_t',['../group___g___u_c_s___x_r_m___e_n_u_m_ga24bf81b4e52fc1fb01deba9165d7c79e.html#ga24bf81b4e52fc1fb01deba9165d7c79e',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmost_5fsocketdatatype_5ft',['Ucs_Most_SocketDataType_t',['../group___g___u_c_s___x_r_m___e_n_u_m_gab29e10223e27331045485facbe4102ee.html#gab29e10223e27331045485facbe4102ee',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmsgtxstatus_5ft',['Ucs_MsgTxStatus_t',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#gac5aa79eb466a98f645c0302f402294d6',1,'ucs_message_pb.h']]],
+ ['ucs_5fnd_5fcheckresult_5ft',['Ucs_Nd_CheckResult_t',['../group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_gae1f89dbd75e3d76917273450df37ff66.html#gae1f89dbd75e3d76917273450df37ff66',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnd_5frescode_5ft',['Ucs_Nd_ResCode_t',['../group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#ga6736f9abd905dafe99d1337ac672f94e',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnetwork_5favailability_5ft',['Ucs_Network_Availability_t',['../group___g___u_c_s___n_e_t___t_y_p_e_s_ga6b0bec2ae9e4d0fb93eefd65752f0c74.html#ga6b0bec2ae9e4d0fb93eefd65752f0c74',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnetwork_5favailinfo_5ft',['Ucs_Network_AvailInfo_t',['../group___g___u_c_s___n_e_t___t_y_p_e_s_gad5ed0387c3c156602826d50ce94c9df7.html#gad5ed0387c3c156602826d50ce94c9df7',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnetwork_5favailtranscause_5ft',['Ucs_Network_AvailTransCause_t',['../group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#gab4ec40bf01de998abc4f2ae34c26ac46',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnetwork_5fstatusmask_5ft',['Ucs_Network_StatusMask_t',['../group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#ga779e730fce488874146678e0971f52a8',1,'ucs_inic_pb.h']]],
+ ['ucs_5fns_5fresultcode_5ft',['Ucs_Ns_ResultCode_t',['../group___g___u_c_s___s_c_r_i_p_t_i_n_g_gabd3ecc8ab539f3b9de3fc8045c083b60.html#gabd3ecc8ab539f3b9de3fc8045c083b60',1,'ucs_nsm_pb.h']]],
+ ['ucs_5foptype_5ft',['Ucs_OpType_t',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#ga02d4f5d689f2583ee620ff4c26a51afa',1,'ucs_message_pb.h']]],
+ ['ucs_5fpci_5fsocketdatatype_5ft',['Ucs_Pci_SocketDataType_t',['../group___g___u_c_s___x_r_m___e_n_u_m_ga066850ed913a19025120619cca07fac6.html#ga066850ed913a19025120619cca07fac6',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5ffunc_5ft',['Ucs_Prg_Func_t',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#ga25cd4c3a9113e0a25b65136fec561c83',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5fmemid_5ft',['Ucs_Prg_MemId_t',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gae01f703f9ca91d9d1b9efdcfddfe8464.html#gae01f703f9ca91d9d1b9efdcfddfe8464',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5frescode_5ft',['Ucs_Prg_ResCode_t',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html#gaa998005dc2e710169a39af0c3739ade2',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5fsessiontype_5ft',['Ucs_Prg_SessionType_t',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gab29d4eadce18cb68209671a44c1eaa3a.html#gab29d4eadce18cb68209671a44c1eaa3a',1,'ucs_inic_pb.h']]],
+ ['ucs_5fresult_5ft',['Ucs_Result_t',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#gac844b77cf41aef663782bc0b43d3540c',1,'ucs_ret_pb.h']]],
+ ['ucs_5freturn_5ft',['Ucs_Return_t',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd',1,'ucs_ret_pb.h']]],
+ ['ucs_5frm_5fendpointtype_5ft',['Ucs_Rm_EndPointType_t',['../group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga127a72f023d3c0289ab74b001f6edc25.html#ga127a72f023d3c0289ab74b001f6edc25',1,'ucs_rm_pb.h']]],
+ ['ucs_5frm_5frouteinfos_5ft',['Ucs_Rm_RouteInfos_t',['../group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#ga75ffbf28e4afc99a6abdbff0887baf9b',1,'ucs_rm_pb.h']]],
+ ['ucs_5frmck_5fportclocksource_5ft',['Ucs_Rmck_PortClockSource_t',['../group___g___u_c_s___x_r_m___e_n_u_m_ga793fd94e2e48ff7a7fce092e6e0039e4.html#ga793fd94e2e48ff7a7fce092e6e0039e4',1,'ucs_inic_pb.h']]],
+ ['ucs_5fsd_5ferrcode_5ft',['Ucs_Sd_ErrCode_t',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_gad0e1473ecd96b8d94131cb5d81295fc3.html#gad0e1473ecd96b8d94131cb5d81295fc3',1,'ucs_inic_pb.h']]],
+ ['ucs_5fsd_5frescode_5ft',['Ucs_Sd_ResCode_t',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga4d4ad405b114eba3e3a2e5581a0b5d9c.html#ga4d4ad405b114eba3e3a2e5581a0b5d9c',1,'ucs_inic_pb.h']]],
+ ['ucs_5fsocketdirection_5ft',['Ucs_SocketDirection_t',['../group___g___u_c_s___x_r_m___e_n_u_m_ga28477f727fe10f9d6fd21cfc98a9c115.html#ga28477f727fe10f9d6fd21cfc98a9c115',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fportclockconfig_5ft',['Ucs_Stream_PortClockConfig_t',['../group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#ga0e856884fa1c7908c59718da0f396484',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fportclockdatadelay_5ft',['Ucs_Stream_PortClockDataDelay_t',['../group___g___u_c_s___x_r_m___e_n_u_m_ga16d6cd08e925676dfade13e980f460b0.html#ga16d6cd08e925676dfade13e980f460b0',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fportclockmode_5ft',['Ucs_Stream_PortClockMode_t',['../group___g___u_c_s___x_r_m___e_n_u_m_ga3139c2b4d435622104235bd9fd9f478c.html#ga3139c2b4d435622104235bd9fd9f478c',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fportdataalign_5ft',['Ucs_Stream_PortDataAlign_t',['../group___g___u_c_s___x_r_m___e_n_u_m_ga02741bef1059621aaf6cf4fa956cfccf.html#ga02741bef1059621aaf6cf4fa956cfccf',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fportopmode_5ft',['Ucs_Stream_PortOpMode_t',['../group___g___u_c_s___x_r_m___e_n_u_m_ga6ea92012ace1c507dab36b727698a08e.html#ga6ea92012ace1c507dab36b727698a08e',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fportoption_5ft',['Ucs_Stream_PortOption_t',['../group___g___u_c_s___x_r_m___e_n_u_m_ga83e210aa76632ea2191bd59ef7894432.html#ga83e210aa76632ea2191bd59ef7894432',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fportpinid_5ft',['Ucs_Stream_PortPinId_t',['../group___g___u_c_s___x_r_m___e_n_u_m_gaadbd9007127f39c3c257040adf063d07.html#gaadbd9007127f39c3c257040adf063d07',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fsocketdatatype_5ft',['Ucs_Stream_SocketDataType_t',['../group___g___u_c_s___x_r_m___e_n_u_m_gae12684f1b74844d622e59da79f1a23f8.html#gae12684f1b74844d622e59da79f1a23f8',1,'ucs_inic_pb.h']]],
+ ['ucs_5fsync_5fmutemode_5ft',['Ucs_Sync_MuteMode_t',['../group___g___u_c_s___x_r_m___e_n_u_m_gaef12892b897a1cd1013357cfe63f2434.html#gaef12892b897a1cd1013357cfe63f2434',1,'ucs_inic_pb.h']]],
+ ['ucs_5fusb_5fphysicallayer_5ft',['Ucs_Usb_PhysicalLayer_t',['../group___g___u_c_s___x_r_m___e_n_u_m_gaa573e5854eb036998eec837e9fbf0ae1.html#gaa573e5854eb036998eec837e9fbf0ae1',1,'ucs_inic_pb.h']]],
+ ['ucs_5fusb_5fsocketdatatype_5ft',['Ucs_Usb_SocketDataType_t',['../group___g___u_c_s___x_r_m___e_n_u_m_gafd56377a5a1f782e64260d18caf17dc9.html#gafd56377a5a1f782e64260d18caf17dc9',1,'ucs_inic_pb.h']]],
+ ['ucs_5fxrm_5fporttype_5ft',['Ucs_Xrm_PortType_t',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga50384bb32b088e9cfd50c889ef562015.html#ga50384bb32b088e9cfd50c889ef562015',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fresourceinfos_5ft',['Ucs_Xrm_ResourceInfos_t',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#ga5299ac232aaeba37eb6fceb53e32b2ea',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fresourcetype_5ft',['Ucs_Xrm_ResourceType_t',['../group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fresultcode_5ft',['Ucs_Xrm_ResultCode_t',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#ga60bd3f9fa02e15fb8841236470502939',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fresulttype_5ft',['Ucs_Xrm_ResultType_t',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga80967b5f9bca0e603511f6ae4f8ac80d.html#ga80967b5f9bca0e603511f6ae4f8ac80d',1,'ucs_xrm_pb.h']]]
+];
diff --git a/ucs2-lib/doc/html/search/enumvalues_75.html b/ucs2-lib/doc/html/search/enumvalues_75.html
new file mode 100644
index 0000000..c0a1504
--- /dev/null
+++ b/ucs2-lib/doc/html/search/enumvalues_75.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enumvalues_75.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/enumvalues_75.js b/ucs2-lib/doc/html/search/enumvalues_75.js
new file mode 100644
index 0000000..5c52ea3
--- /dev/null
+++ b/ucs2-lib/doc/html/search/enumvalues_75.js
@@ -0,0 +1,319 @@
+var searchData=
+[
+ ['ucs_5famsrx_5frct_5fbroadcast',['UCS_AMSRX_RCT_BROADCAST',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga113edf4cab85ce4e5e13ef257b5b7128.html#gga113edf4cab85ce4e5e13ef257b5b7128a3304f1288c4b154cbf9ebd2976ecca23',1,'ucs_ams_pb.h']]],
+ ['ucs_5famsrx_5frct_5fgroupcast',['UCS_AMSRX_RCT_GROUPCAST',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga113edf4cab85ce4e5e13ef257b5b7128.html#gga113edf4cab85ce4e5e13ef257b5b7128a6a08727eaedc64a4b7505e10d02b8e59',1,'ucs_ams_pb.h']]],
+ ['ucs_5famsrx_5frct_5fsinglecast',['UCS_AMSRX_RCT_SINGLECAST',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga113edf4cab85ce4e5e13ef257b5b7128.html#gga113edf4cab85ce4e5e13ef257b5b7128ae659af6679f35f9093306753d7993c78',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5fi_5ferr_5fack',['UCS_AMSTX_I_ERR_ACK',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479ac8bff0614950912c4eddc97b095055cb',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5fi_5ferr_5fbf',['UCS_AMSTX_I_ERR_BF',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479a3524c39a558966db2d1e9278f339f982',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5fi_5ferr_5fcfg_5fnoreceiver',['UCS_AMSTX_I_ERR_CFG_NORECEIVER',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479a4b8ca91b4ba4cf11df77c1ff8e2e1ba4',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5fi_5ferr_5fcrc',['UCS_AMSTX_I_ERR_CRC',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479acd257b1602b92467f83896952de4b3c1',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5fi_5ferr_5ffatal_5foa',['UCS_AMSTX_I_ERR_FATAL_OA',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479a3a9611a4c6c74652c619b5c9ddea9170',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5fi_5ferr_5ffatal_5fwt',['UCS_AMSTX_I_ERR_FATAL_WT',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479aef54c664a83ff2d101d4036b420dd7f5',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5fi_5ferr_5fid',['UCS_AMSTX_I_ERR_ID',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479ae8ca52f9ed225767ad2d62b195aeddf6',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5fi_5ferr_5ftimeout',['UCS_AMSTX_I_ERR_TIMEOUT',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479a456dfbf1fdb8a429118428e918e12557',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5fi_5ferr_5funavail_5foff',['UCS_AMSTX_I_ERR_UNAVAIL_OFF',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479a38cdf07b2ead1b0ab1d85fba8c20cdf7',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5fi_5ferr_5funavail_5ftrans',['UCS_AMSTX_I_ERR_UNAVAIL_TRANS',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479a837045ee240df8ebba459f75afae65fc',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5fi_5ferr_5funknown',['UCS_AMSTX_I_ERR_UNKNOWN',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479aeed4e66ae7a3d132f97ea0c3620cc215',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5fi_5ferr_5funsynced',['UCS_AMSTX_I_ERR_UNSYNCED',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479a58170c6f84f3dd2130c84c314cfb2ffe',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5fi_5fsuccess',['UCS_AMSTX_I_SUCCESS',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga667b741121fdfbda2fe19fa23ffc7479.html#gga667b741121fdfbda2fe19fa23ffc7479a1cbc6f82e1b0b7e53e15132957a8fdb6',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5fres_5ferr_5fbuf_5finternal',['UCS_AMSTX_RES_ERR_BUF_INTERNAL',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0ba5bb604d0c993b0b7aea0ed4b1e27041d',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5fres_5ferr_5finvalid_5ftgt',['UCS_AMSTX_RES_ERR_INVALID_TGT',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0ba99426ad75c697a377095fd16ac9f64dd',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5fres_5ferr_5fnot_5favailable',['UCS_AMSTX_RES_ERR_NOT_AVAILABLE',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0baf5b7a5f9d422eaba98b23f4558cf83c4',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5fres_5ferr_5fretries_5fexp',['UCS_AMSTX_RES_ERR_RETRIES_EXP',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0ba3c59ee9fddbf6377d012914c4d541c06',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5fres_5ferr_5funexpected',['UCS_AMSTX_RES_ERR_UNEXPECTED',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0baecaf2176f4c201d33f1e80bc8dcdc324',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5fres_5fsuccess',['UCS_AMSTX_RES_SUCCESS',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga36b630c866dc0c03134f60e98be39f0b.html#gga36b630c866dc0c03134f60e98be39f0ba3213fda6aaa6f3b8caafcf08b75e4e65',1,'ucs_ams_pb.h']]],
+ ['ucs_5fbcd_5fres_5fend',['UCS_BCD_RES_END',['../group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#gga08b88fcd49483ac8d0ce004c104a4c12a9cde6e2034d4ab681bc6978edb671b1e',1,'ucs_inic_pb.h']]],
+ ['ucs_5fbcd_5fres_5ferror',['UCS_BCD_RES_ERROR',['../group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#gga08b88fcd49483ac8d0ce004c104a4c12a3a7748f1c2bab68f1c7969cfec95dabf',1,'ucs_inic_pb.h']]],
+ ['ucs_5fbcd_5fres_5fno_5fring_5fbreak',['UCS_BCD_RES_NO_RING_BREAK',['../group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#gga08b88fcd49483ac8d0ce004c104a4c12aa33f4df6db0d7b979097f3ea10b680af',1,'ucs_inic_pb.h']]],
+ ['ucs_5fbcd_5fres_5fring_5fbreak',['UCS_BCD_RES_RING_BREAK',['../group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#gga08b88fcd49483ac8d0ce004c104a4c12a135f26c3f41683d98230208b952f238f',1,'ucs_inic_pb.h']]],
+ ['ucs_5fbcd_5fres_5fsuccess',['UCS_BCD_RES_SUCCESS',['../group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#gga08b88fcd49483ac8d0ce004c104a4c12a9efd7ed8009ce371525bd17ba8cd33bb',1,'ucs_inic_pb.h']]],
+ ['ucs_5fbcd_5fres_5ftimeout1',['UCS_BCD_RES_TIMEOUT1',['../group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#gga08b88fcd49483ac8d0ce004c104a4c12a249b89261ce8db86eca6d76f43b84e1b',1,'ucs_inic_pb.h']]],
+ ['ucs_5fbcd_5fres_5ftimeout2',['UCS_BCD_RES_TIMEOUT2',['../group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s_ga08b88fcd49483ac8d0ce004c104a4c12.html#gga08b88fcd49483ac8d0ce004c104a4c12a5782a90257b123278c8ebb4a17b2f264',1,'ucs_inic_pb.h']]],
+ ['ucs_5fcmd_5fret_5ferr_5falready_5fentered',['UCS_CMD_RET_ERR_ALREADY_ENTERED',['../group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#gga91f6db002b6fe98cdeb2969b19131cbbab4d57d230971b9f73d85ddd19f3f06ee',1,'ucs_cmd_pb.h']]],
+ ['ucs_5fcmd_5fret_5ferr_5fappl',['UCS_CMD_RET_ERR_APPL',['../group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#gga91f6db002b6fe98cdeb2969b19131cbba676c8302cdc00e5190d763b09dbe2e2f',1,'ucs_cmd_pb.h']]],
+ ['ucs_5fcmd_5fret_5ferr_5fmsgid_5fnotavail',['UCS_CMD_RET_ERR_MSGID_NOTAVAIL',['../group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#gga91f6db002b6fe98cdeb2969b19131cbbaa33605aae463493dea404f2d7390ec15',1,'ucs_cmd_pb.h']]],
+ ['ucs_5fcmd_5fret_5ferr_5fnull_5fptr',['UCS_CMD_RET_ERR_NULL_PTR',['../group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#gga91f6db002b6fe98cdeb2969b19131cbba5e844ee693f7195bf00120c79e8235c5',1,'ucs_cmd_pb.h']]],
+ ['ucs_5fcmd_5fret_5ferr_5ftx_5fbusy',['UCS_CMD_RET_ERR_TX_BUSY',['../group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#gga91f6db002b6fe98cdeb2969b19131cbba20d632ad52c0b2e0458849604f422dba',1,'ucs_cmd_pb.h']]],
+ ['ucs_5fcmd_5fret_5fsuccess',['UCS_CMD_RET_SUCCESS',['../group___g___u_c_s___c_m_d___t_y_p_e_s_ga91f6db002b6fe98cdeb2969b19131cbb.html#gga91f6db002b6fe98cdeb2969b19131cbba30cf8ec25015b74f098bb0e1e501d7c6',1,'ucs_cmd_pb.h']]],
+ ['ucs_5fgen_5ferr_5fcommunication',['UCS_GEN_ERR_COMMUNICATION',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga9551cd80ce8a13fa6cce717cbc13e499.html#gga9551cd80ce8a13fa6cce717cbc13e499ad407f31040ff1757ca3a3b98643e406d',1,'ucs_eh_pb.h']]],
+ ['ucs_5fgen_5ferr_5finic',['UCS_GEN_ERR_INIC',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga9551cd80ce8a13fa6cce717cbc13e499.html#gga9551cd80ce8a13fa6cce717cbc13e499a6c90c86ae1e93413b08142ea356336a4',1,'ucs_eh_pb.h']]],
+ ['ucs_5fgpio_5fin_5fdb_5ftrigger_5ffe',['UCS_GPIO_IN_DB_TRIGGER_FE',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a6b3ef7f6a36417340134f8515ca3cacc',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5fin_5fdb_5ftrigger_5fhl',['UCS_GPIO_IN_DB_TRIGGER_HL',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a0097aaff89dc2390f8cb2538759e7dd1',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5fin_5fdb_5ftrigger_5fll',['UCS_GPIO_IN_DB_TRIGGER_LL',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a7e3847141ff0ee6fd999d9fc1d87fbae',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5fin_5fdb_5ftrigger_5fre',['UCS_GPIO_IN_DB_TRIGGER_RE',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a2b1bbeedf9af00d3ca2ae66cb1c5e24e',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5fin_5fdebounced',['UCS_GPIO_IN_DEBOUNCED',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a58dd9cd05f9b030ea62b58a0a1d0466e',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5fin_5fsticky_5fhl',['UCS_GPIO_IN_STICKY_HL',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a1879711b642763de0a241c05ef37a8d1',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5fin_5fsticky_5fll',['UCS_GPIO_IN_STICKY_LL',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a40f39256ead895d688c6b4453dcc50fd',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5fin_5ftrigger_5ffe',['UCS_GPIO_IN_TRIGGER_FE',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49ae2e19388cad9b8b469f01fcf28386282',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5fin_5ftrigger_5fhl',['UCS_GPIO_IN_TRIGGER_HL',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49ad93bd4a0972f3b9d219d5ee944191adc',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5fin_5ftrigger_5fll',['UCS_GPIO_IN_TRIGGER_LL',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a3afeffaf0739a0c83b4a4f5c8b2819a9',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5fin_5ftrigger_5fre',['UCS_GPIO_IN_TRIGGER_RE',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49aa45d36ca2a1e7cf7784cf1a1c584f211',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5finput',['UCS_GPIO_INPUT',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49ae900752d71b764e1d516d7f4851a5ad5',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5fout_5fdefault_5fhigh',['UCS_GPIO_OUT_DEFAULT_HIGH',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49ae5cfa651166ae5731b1d2677ab20c32c',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5fout_5fdefault_5flow',['UCS_GPIO_OUT_DEFAULT_LOW',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a97eb6c69f81b2438926688ef447bf7ee',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5fout_5fod_5ftrigger_5ffe',['UCS_GPIO_OUT_OD_TRIGGER_FE',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49abc808199f07f8d370cedf914243dc6a8',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5fout_5fod_5ftrigger_5fhl',['UCS_GPIO_OUT_OD_TRIGGER_HL',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a35d170a50162566d22e7060f332e1853',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5fout_5fod_5ftrigger_5fll',['UCS_GPIO_OUT_OD_TRIGGER_LL',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a8f4405ba3c6e04e5b753e716f923ebd2',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5fout_5fod_5ftrigger_5fre',['UCS_GPIO_OUT_OD_TRIGGER_RE',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a70501fdc88378cf07868868fb90557fd',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5fout_5fopen_5fdrain',['UCS_GPIO_OUT_OPEN_DRAIN',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49aa2c5f837c034c9ac5fb048a7e9047d2f',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5fres_5ferr_5fcmd',['UCS_GPIO_RES_ERR_CMD',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga7432b6d95eb2af7bce5fe5809b08d88b.html#gga7432b6d95eb2af7bce5fe5809b08d88ba204d1c257b844f4ed9d31f2a614f7f24',1,'ucs_gpio_pb.h']]],
+ ['ucs_5fgpio_5fres_5ferr_5fsync',['UCS_GPIO_RES_ERR_SYNC',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga7432b6d95eb2af7bce5fe5809b08d88b.html#gga7432b6d95eb2af7bce5fe5809b08d88ba7a5b3cf49d177ac97cfbb4a2e7796d68',1,'ucs_gpio_pb.h']]],
+ ['ucs_5fgpio_5fres_5fsuccess',['UCS_GPIO_RES_SUCCESS',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga7432b6d95eb2af7bce5fe5809b08d88b.html#gga7432b6d95eb2af7bce5fe5809b08d88ba00b6d2bbc409c15ce1f4bbdd53dab993',1,'ucs_gpio_pb.h']]],
+ ['ucs_5fgpio_5fresult_5ftype_5ftgt',['UCS_GPIO_RESULT_TYPE_TGT',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga292134dc6bc30b6b4f0e3e8882c2e772.html#gga292134dc6bc30b6b4f0e3e8882c2e772abd0caef5b4b9f4f2b75f65c7f67f65bc',1,'ucs_gpio_pb.h']]],
+ ['ucs_5fgpio_5fresult_5ftype_5ftx',['UCS_GPIO_RESULT_TYPE_TX',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga292134dc6bc30b6b4f0e3e8882c2e772.html#gga292134dc6bc30b6b4f0e3e8882c2e772aa402809c65ce64324a827eb0ab4475b1',1,'ucs_gpio_pb.h']]],
+ ['ucs_5fgpio_5funavailable',['UCS_GPIO_UNAVAILABLE',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49a3b1cbb2c0c6d6b0cc2ffab0fca8c0db6',1,'ucs_inic_pb.h']]],
+ ['ucs_5fgpio_5funused',['UCS_GPIO_UNUSED',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#ggacfcf034325bd7eff2f6fc78e8696ed49ad873d79be503a0c950b11f9c2bb78005',1,'ucs_inic_pb.h']]],
+ ['ucs_5fi2c_5fburst_5fmode',['UCS_I2C_BURST_MODE',['../group___g___u_c_s___i2_c___t_y_p_e_s_ga631c2b70299a4c07ac77b6741b5b5e44.html#gga631c2b70299a4c07ac77b6741b5b5e44a3380b0b2a253a389aec424ef348a34b7',1,'ucs_inic_pb.h']]],
+ ['ucs_5fi2c_5fdefault_5fmode',['UCS_I2C_DEFAULT_MODE',['../group___g___u_c_s___i2_c___t_y_p_e_s_ga631c2b70299a4c07ac77b6741b5b5e44.html#gga631c2b70299a4c07ac77b6741b5b5e44ad6f21f4e04e8f755a59c8e7cef9cb7ad',1,'ucs_inic_pb.h']]],
+ ['ucs_5fi2c_5ffast_5fmode',['UCS_I2C_FAST_MODE',['../group___g___u_c_s___i2_c___t_y_p_e_s_ga8492cc027b5b9e2f436a172e526e1d5e.html#gga8492cc027b5b9e2f436a172e526e1d5ea577d5efdff88c202f2e2f43aed2b0391',1,'ucs_inic_pb.h']]],
+ ['ucs_5fi2c_5frepeated_5fmode',['UCS_I2C_REPEATED_MODE',['../group___g___u_c_s___i2_c___t_y_p_e_s_ga631c2b70299a4c07ac77b6741b5b5e44.html#gga631c2b70299a4c07ac77b6741b5b5e44ad5c54c3051eef15fbb36f003dc1633d4',1,'ucs_inic_pb.h']]],
+ ['ucs_5fi2c_5fres_5ferr_5fcmd',['UCS_I2C_RES_ERR_CMD',['../group___g___u_c_s___i2_c___t_y_p_e_s_ga930e829c3c689b8ead8f9fbf7f2ca237.html#gga930e829c3c689b8ead8f9fbf7f2ca237a7f9bec3206cf8dea98f72710bd6219e8',1,'ucs_i2c_pb.h']]],
+ ['ucs_5fi2c_5fres_5ferr_5fsync',['UCS_I2C_RES_ERR_SYNC',['../group___g___u_c_s___i2_c___t_y_p_e_s_ga930e829c3c689b8ead8f9fbf7f2ca237.html#gga930e829c3c689b8ead8f9fbf7f2ca237a3f4942e0d97505a6f343621b6a5d03a8',1,'ucs_i2c_pb.h']]],
+ ['ucs_5fi2c_5fres_5fsuccess',['UCS_I2C_RES_SUCCESS',['../group___g___u_c_s___i2_c___t_y_p_e_s_ga930e829c3c689b8ead8f9fbf7f2ca237.html#gga930e829c3c689b8ead8f9fbf7f2ca237a1f0bb0636d1fbe3a3c94541d3725b864',1,'ucs_i2c_pb.h']]],
+ ['ucs_5fi2c_5fresult_5ftype_5ftgt',['UCS_I2C_RESULT_TYPE_TGT',['../group___g___u_c_s___i2_c___t_y_p_e_s_ga7c7b4521cb5391bd20c02104876a811d.html#gga7c7b4521cb5391bd20c02104876a811da5f9dc425604e39a96af53cc4fb940cd6',1,'ucs_i2c_pb.h']]],
+ ['ucs_5fi2c_5fresult_5ftype_5ftx',['UCS_I2C_RESULT_TYPE_TX',['../group___g___u_c_s___i2_c___t_y_p_e_s_ga7c7b4521cb5391bd20c02104876a811d.html#gga7c7b4521cb5391bd20c02104876a811da1e9f8a38a7bf67986bb52aae45326f0e',1,'ucs_i2c_pb.h']]],
+ ['ucs_5fi2c_5fslow_5fmode',['UCS_I2C_SLOW_MODE',['../group___g___u_c_s___i2_c___t_y_p_e_s_ga8492cc027b5b9e2f436a172e526e1d5e.html#gga8492cc027b5b9e2f436a172e526e1d5ea91d8d37db8f69a15ca3d6d19b3f5d981',1,'ucs_inic_pb.h']]],
+ ['ucs_5finic_5fpws_5fno_5fmonitoring',['UCS_INIC_PWS_NO_MONITORING',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga132c4c68227062e63ffb99b321b9a677.html#gga132c4c68227062e63ffb99b321b9a677aa33c9585db02ba2136a5214e9a0fc72e',1,'ucs_inic_pb.h']]],
+ ['ucs_5finic_5fpws_5fstp',['UCS_INIC_PWS_STP',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga132c4c68227062e63ffb99b321b9a677.html#gga132c4c68227062e63ffb99b321b9a677abca288e1dc24d1dae285b7be73abe1d2',1,'ucs_inic_pb.h']]],
+ ['ucs_5finic_5fpws_5fu_5fcritical',['UCS_INIC_PWS_U_CRITICAL',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga132c4c68227062e63ffb99b321b9a677.html#gga132c4c68227062e63ffb99b321b9a677a64b91caa822c22017b4aca60d38c78c8',1,'ucs_inic_pb.h']]],
+ ['ucs_5finic_5fpws_5fu_5flow',['UCS_INIC_PWS_U_LOW',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga132c4c68227062e63ffb99b321b9a677.html#gga132c4c68227062e63ffb99b321b9a677a11e4fbe29a4fdb2c2e0afeb25e09965a',1,'ucs_inic_pb.h']]],
+ ['ucs_5finic_5fpws_5fu_5fnormal',['UCS_INIC_PWS_U_NORMAL',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga132c4c68227062e63ffb99b321b9a677.html#gga132c4c68227062e63ffb99b321b9a677ad9a4e228862a8bb126d2e508d85a0389',1,'ucs_inic_pb.h']]],
+ ['ucs_5finic_5frst_5fhw_5fwatchdog',['UCS_INIC_RST_HW_WATCHDOG',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga17139fe9e7d72bdb5a09d5a1ab39de4e.html#gga17139fe9e7d72bdb5a09d5a1ab39de4ea300964cfd947816911fc84b377645b66',1,'ucs_inic_pb.h']]],
+ ['ucs_5finic_5frst_5fstack_5foverflow',['UCS_INIC_RST_STACK_OVERFLOW',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga17139fe9e7d72bdb5a09d5a1ab39de4e.html#gga17139fe9e7d72bdb5a09d5a1ab39de4ea1d4d0eca4c7fe754ecdfa67ecafcdb66',1,'ucs_inic_pb.h']]],
+ ['ucs_5finic_5frst_5fstartup',['UCS_INIC_RST_STARTUP',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga17139fe9e7d72bdb5a09d5a1ab39de4e.html#gga17139fe9e7d72bdb5a09d5a1ab39de4ea68f49058a3c2aa114b5648ebd5913127',1,'ucs_inic_pb.h']]],
+ ['ucs_5finit_5fres_5ferr_5fbuf_5foverflow',['UCS_INIT_RES_ERR_BUF_OVERFLOW',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78ca5e10b22e7790c92189a9919144403a62',1,'ucs_ret_pb.h']]],
+ ['ucs_5finit_5fres_5ferr_5fdev_5fatt_5fcfg',['UCS_INIT_RES_ERR_DEV_ATT_CFG',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78cabf7bd2e232e7c79cc52158c39f33cfce',1,'ucs_ret_pb.h']]],
+ ['ucs_5finit_5fres_5ferr_5fdev_5fatt_5fproc',['UCS_INIT_RES_ERR_DEV_ATT_PROC',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78ca7396a1d49772aea15554fa43a0f70aa1',1,'ucs_ret_pb.h']]],
+ ['ucs_5finit_5fres_5ferr_5finic_5fsync',['UCS_INIT_RES_ERR_INIC_SYNC',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78ca8191a6141de6a807faf20d10f891ae1b',1,'ucs_ret_pb.h']]],
+ ['ucs_5finit_5fres_5ferr_5finic_5fsystem',['UCS_INIT_RES_ERR_INIC_SYSTEM',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78cade535af6ab10db100b979034ab8d0b42',1,'ucs_ret_pb.h']]],
+ ['ucs_5finit_5fres_5ferr_5finic_5fversion',['UCS_INIT_RES_ERR_INIC_VERSION',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78ca735eb5f7e05170ce9795455a2edc8ff8',1,'ucs_ret_pb.h']]],
+ ['ucs_5finit_5fres_5ferr_5finternal',['UCS_INIT_RES_ERR_INTERNAL',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78ca994453c34eb59dd6c4aff21c7cec7346',1,'ucs_ret_pb.h']]],
+ ['ucs_5finit_5fres_5ferr_5fnet_5fcfg',['UCS_INIT_RES_ERR_NET_CFG',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78ca6e5f7ef8de83f043b212140987ed8d17',1,'ucs_ret_pb.h']]],
+ ['ucs_5finit_5fres_5ferr_5ftimeout',['UCS_INIT_RES_ERR_TIMEOUT',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78ca64e1be1198542a86cdc7082a3ee4fc13',1,'ucs_ret_pb.h']]],
+ ['ucs_5finit_5fres_5fsuccess',['UCS_INIT_RES_SUCCESS',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga0a933f34b9acbf21dc68f426c324e78c.html#gga0a933f34b9acbf21dc68f426c324e78cac4d2785b5c79a9b38389e08d30494714',1,'ucs_ret_pb.h']]],
+ ['ucs_5fisoc_5fpckt_5fsize_5f188',['UCS_ISOC_PCKT_SIZE_188',['../group___g___u_c_s___x_r_m___e_n_u_m_ga8836a818f79ff1315f7f76bcd8e50a4d.html#gga8836a818f79ff1315f7f76bcd8e50a4da5b103421ef1b66b0f939bf1331070d31',1,'ucs_inic_pb.h']]],
+ ['ucs_5fisoc_5fpckt_5fsize_5f196',['UCS_ISOC_PCKT_SIZE_196',['../group___g___u_c_s___x_r_m___e_n_u_m_ga8836a818f79ff1315f7f76bcd8e50a4d.html#gga8836a818f79ff1315f7f76bcd8e50a4da25b3c21607a88231bab533a93b8d6849',1,'ucs_inic_pb.h']]],
+ ['ucs_5fisoc_5fpckt_5fsize_5f206',['UCS_ISOC_PCKT_SIZE_206',['../group___g___u_c_s___x_r_m___e_n_u_m_ga8836a818f79ff1315f7f76bcd8e50a4d.html#gga8836a818f79ff1315f7f76bcd8e50a4da36f9f325486cb5312551b573efdaae61',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmgr_5frep_5favailable',['UCS_MGR_REP_AVAILABLE',['../group___g___u_c_s___m_g_r_gab85aa9ce377050505124af5e9549e445.html#ggab85aa9ce377050505124af5e9549e445ac7d7f8d978224660f4c6b94f2651d19e',1,'ucs_nodeobserver_pb.h']]],
+ ['ucs_5fmgr_5frep_5fignored_5fduplicate',['UCS_MGR_REP_IGNORED_DUPLICATE',['../group___g___u_c_s___m_g_r_gab85aa9ce377050505124af5e9549e445.html#ggab85aa9ce377050505124af5e9549e445afe4f1822be465b7a8891dccf0af36945',1,'ucs_nodeobserver_pb.h']]],
+ ['ucs_5fmgr_5frep_5fignored_5funknown',['UCS_MGR_REP_IGNORED_UNKNOWN',['../group___g___u_c_s___m_g_r_gab85aa9ce377050505124af5e9549e445.html#ggab85aa9ce377050505124af5e9549e445a6fcfe54d64bd8cf6b24361bf326f6c49',1,'ucs_nodeobserver_pb.h']]],
+ ['ucs_5fmgr_5frep_5fnot_5favailable',['UCS_MGR_REP_NOT_AVAILABLE',['../group___g___u_c_s___m_g_r_gab85aa9ce377050505124af5e9549e445.html#ggab85aa9ce377050505124af5e9549e445a8c94fd8dfa39ea4a65b30a9ebfb5a38b',1,'ucs_nodeobserver_pb.h']]],
+ ['ucs_5fmlb_5fclk_5fcfg_5f1024_5ffs',['UCS_MLB_CLK_CFG_1024_FS',['../group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63a8da54fd7f88cdcea8971667824e2c5b7',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmlb_5fclk_5fcfg_5f2048_5ffs',['UCS_MLB_CLK_CFG_2048_FS',['../group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63afcdf9e1f4b0c6f42d1491384192f3578',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmlb_5fclk_5fcfg_5f256_5ffs',['UCS_MLB_CLK_CFG_256_FS',['../group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63a25478748c90e08007550f3b6e069378a',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmlb_5fclk_5fcfg_5f3072_5ffs',['UCS_MLB_CLK_CFG_3072_FS',['../group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63a72d60c9e85da4923a494f394d8e644dd',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmlb_5fclk_5fcfg_5f4096_5ffs',['UCS_MLB_CLK_CFG_4096_FS',['../group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63ab1210db92ad1770f156c2686e0189024',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmlb_5fclk_5fcfg_5f512_5ffs',['UCS_MLB_CLK_CFG_512_FS',['../group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63a13645115ff4864a09293ef5cdaaaf963',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmlb_5fclk_5fcfg_5f6144_5ffs',['UCS_MLB_CLK_CFG_6144_FS',['../group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63abbb9505a7b8b38cd4a402a66adfba660',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmlb_5fclk_5fcfg_5f8192_5ffs',['UCS_MLB_CLK_CFG_8192_FS',['../group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63ade97fa17799ee97eebea56f563ef8e55',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmlb_5fclk_5fcfg_5fwildcard',['UCS_MLB_CLK_CFG_WILDCARD',['../group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#gga12193f5b8d160e84ad8b9853b0308f63a0bd2aca9cfb3e4965d2a3b61aca9681f',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmlb_5fsckt_5fav_5fpacketized',['UCS_MLB_SCKT_AV_PACKETIZED',['../group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html#ggaf3facaf3378409c31465c68380990b53a6b4873430ce4475a59af9c849238b8a1',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmlb_5fsckt_5fcontrol_5fdata',['UCS_MLB_SCKT_CONTROL_DATA',['../group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html#ggaf3facaf3378409c31465c68380990b53a8f7c19482d19a5e61d7f57a41f1605a5',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmlb_5fsckt_5fdisc_5fframe_5fphase',['UCS_MLB_SCKT_DISC_FRAME_PHASE',['../group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html#ggaf3facaf3378409c31465c68380990b53aa26b21e1fb0aca35442102baa8f4a11a',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmlb_5fsckt_5fipc_5fpacket',['UCS_MLB_SCKT_IPC_PACKET',['../group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html#ggaf3facaf3378409c31465c68380990b53ac365dd966ebfeeff2906e73f16c5e441',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmlb_5fsckt_5fqos_5fip',['UCS_MLB_SCKT_QOS_IP',['../group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html#ggaf3facaf3378409c31465c68380990b53a093d3a85730728a90043a05ab042bd25',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmlb_5fsckt_5fsync_5fdata',['UCS_MLB_SCKT_SYNC_DATA',['../group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html#ggaf3facaf3378409c31465c68380990b53a09527a2a481a353e06071b0d83a97fd9',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmost_5fport_5favail',['UCS_MOST_PORT_AVAIL',['../group___g___u_c_s___x_r_m___e_n_u_m_ga902951b9083ff58a88e19e151b57106a.html#gga902951b9083ff58a88e19e151b57106aaa0255a1f099a88d43d562c2c3f9e7307',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmost_5fport_5fnot_5favail',['UCS_MOST_PORT_NOT_AVAIL',['../group___g___u_c_s___x_r_m___e_n_u_m_ga902951b9083ff58a88e19e151b57106a.html#gga902951b9083ff58a88e19e151b57106aa367f9c085169b943f1084f48e2db430c',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmost_5fprt_5favl_5finf_5fregular',['UCS_MOST_PRT_AVL_INF_REGULAR',['../group___g___u_c_s___x_r_m___e_n_u_m_ga24bf81b4e52fc1fb01deba9165d7c79e.html#gga24bf81b4e52fc1fb01deba9165d7c79eae407528edcdb4d1b773340cf024e7c30',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmost_5fprt_5favl_5finf_5fstable',['UCS_MOST_PRT_AVL_INF_STABLE',['../group___g___u_c_s___x_r_m___e_n_u_m_ga24bf81b4e52fc1fb01deba9165d7c79e.html#gga24bf81b4e52fc1fb01deba9165d7c79ea0633c428576d7cd9411e2594166b9227',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmost_5fprt_5favl_5finf_5funstable',['UCS_MOST_PRT_AVL_INF_UNSTABLE',['../group___g___u_c_s___x_r_m___e_n_u_m_ga24bf81b4e52fc1fb01deba9165d7c79e.html#gga24bf81b4e52fc1fb01deba9165d7c79ea2c0ceb407c48e14845e2218c121dfeea',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmost_5fsckt_5fav_5fpacketized',['UCS_MOST_SCKT_AV_PACKETIZED',['../group___g___u_c_s___x_r_m___e_n_u_m_gab29e10223e27331045485facbe4102ee.html#ggab29e10223e27331045485facbe4102eeac9bedb4912676bc0a2fdca379f5dc9e7',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmost_5fsckt_5fdisc_5fframe_5fphase',['UCS_MOST_SCKT_DISC_FRAME_PHASE',['../group___g___u_c_s___x_r_m___e_n_u_m_gab29e10223e27331045485facbe4102ee.html#ggab29e10223e27331045485facbe4102eea17d7e05acbb595e6d96d985e90c874ba',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmost_5fsckt_5fqos_5fip',['UCS_MOST_SCKT_QOS_IP',['../group___g___u_c_s___x_r_m___e_n_u_m_gab29e10223e27331045485facbe4102ee.html#ggab29e10223e27331045485facbe4102eeab11bbea636b1bbfbba10d9073ba09896',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmost_5fsckt_5fsync_5fdata',['UCS_MOST_SCKT_SYNC_DATA',['../group___g___u_c_s___x_r_m___e_n_u_m_gab29e10223e27331045485facbe4102ee.html#ggab29e10223e27331045485facbe4102eea345ad57d9919545fa5e5bf8393b0224f',1,'ucs_inic_pb.h']]],
+ ['ucs_5fmsg_5fstat_5ferror_5fack',['UCS_MSG_STAT_ERROR_ACK',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a0b34261bd4e959454ee3b4eab0f72e4c',1,'ucs_message_pb.h']]],
+ ['ucs_5fmsg_5fstat_5ferror_5fbf',['UCS_MSG_STAT_ERROR_BF',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a4e0b2b5525b1de2e4305f95ecd39b652',1,'ucs_message_pb.h']]],
+ ['ucs_5fmsg_5fstat_5ferror_5fcfg_5fno_5frcvr',['UCS_MSG_STAT_ERROR_CFG_NO_RCVR',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a9a33312cd89f2f2e917c30bd304a9e64',1,'ucs_message_pb.h']]],
+ ['ucs_5fmsg_5fstat_5ferror_5fcrc',['UCS_MSG_STAT_ERROR_CRC',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6ab82dfa03424d6bb820ccec46e51b3fa4',1,'ucs_message_pb.h']]],
+ ['ucs_5fmsg_5fstat_5ferror_5ffatal_5foa',['UCS_MSG_STAT_ERROR_FATAL_OA',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6aa86b80e9a990af483bf757fc147ba7c5',1,'ucs_message_pb.h']]],
+ ['ucs_5fmsg_5fstat_5ferror_5ffatal_5fwt',['UCS_MSG_STAT_ERROR_FATAL_WT',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a648be71e021d246fe90ce1b2cb4166b1',1,'ucs_message_pb.h']]],
+ ['ucs_5fmsg_5fstat_5ferror_5fid',['UCS_MSG_STAT_ERROR_ID',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a451d05814d329a24ef6820b885569370',1,'ucs_message_pb.h']]],
+ ['ucs_5fmsg_5fstat_5ferror_5fna_5foff',['UCS_MSG_STAT_ERROR_NA_OFF',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a75e329b060753596c4102c798752f4da',1,'ucs_message_pb.h']]],
+ ['ucs_5fmsg_5fstat_5ferror_5fna_5ftrans',['UCS_MSG_STAT_ERROR_NA_TRANS',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6ac6dbca4bb4f732e389d8b242eebc424e',1,'ucs_message_pb.h']]],
+ ['ucs_5fmsg_5fstat_5ferror_5fsync',['UCS_MSG_STAT_ERROR_SYNC',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a8e0466e6c50ca8200d3a5a60e6922769',1,'ucs_message_pb.h']]],
+ ['ucs_5fmsg_5fstat_5ferror_5ftimeout',['UCS_MSG_STAT_ERROR_TIMEOUT',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a9bc8c6ee18b2265f67413894e75073f1',1,'ucs_message_pb.h']]],
+ ['ucs_5fmsg_5fstat_5ferror_5funknown',['UCS_MSG_STAT_ERROR_UNKNOWN',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a2f33c4f038e0ddac2c4c4e10ddfe9ae6',1,'ucs_message_pb.h']]],
+ ['ucs_5fmsg_5fstat_5fok',['UCS_MSG_STAT_OK',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#ggac5aa79eb466a98f645c0302f402294d6a86fbcae96541ea83f7a283fc973288f2',1,'ucs_message_pb.h']]],
+ ['ucs_5fnd_5fchk_5funique',['UCS_ND_CHK_UNIQUE',['../group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_gae1f89dbd75e3d76917273450df37ff66.html#ggae1f89dbd75e3d76917273450df37ff66acdbc82cdd701e67cdd7520172767ba75',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnd_5fchk_5funknown',['UCS_ND_CHK_UNKNOWN',['../group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_gae1f89dbd75e3d76917273450df37ff66.html#ggae1f89dbd75e3d76917273450df37ff66a4ed7307250366668604925bf3650be4c',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnd_5fchk_5fwelcome',['UCS_ND_CHK_WELCOME',['../group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_gae1f89dbd75e3d76917273450df37ff66.html#ggae1f89dbd75e3d76917273450df37ff66a0c15fbb8aa9ee8dbf0362b9e9a8b6942',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnd_5fres_5ferror',['UCS_ND_RES_ERROR',['../group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#gga6736f9abd905dafe99d1337ac672f94ea6012ff8c839a76de8761723d08e7fe60',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnd_5fres_5fmulti',['UCS_ND_RES_MULTI',['../group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#gga6736f9abd905dafe99d1337ac672f94ea2cc431bce680f2c35dd55da8a7946a42',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnd_5fres_5fnetoff',['UCS_ND_RES_NETOFF',['../group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#gga6736f9abd905dafe99d1337ac672f94ead82683dc383edac131c5d4edaa3743ee',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnd_5fres_5fstopped',['UCS_ND_RES_STOPPED',['../group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#gga6736f9abd905dafe99d1337ac672f94ea6a027a5f3ac858db61db8867da370bb1',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnd_5fres_5funknown',['UCS_ND_RES_UNKNOWN',['../group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#gga6736f9abd905dafe99d1337ac672f94ea9c00fd1653c0246f2a13a435186f13f2',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnd_5fres_5fwelcome_5fsuccess',['UCS_ND_RES_WELCOME_SUCCESS',['../group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s_ga6736f9abd905dafe99d1337ac672f94e.html#gga6736f9abd905dafe99d1337ac672f94ea5bbe1036a7d23ba01e57c0a1f81875cf',1,'ucs_inic_pb.h']]],
+ ['ucs_5fns_5fres_5ferror',['UCS_NS_RES_ERROR',['../group___g___u_c_s___s_c_r_i_p_t_i_n_g_gabd3ecc8ab539f3b9de3fc8045c083b60.html#ggabd3ecc8ab539f3b9de3fc8045c083b60ad0ba0f8f6ba494e7685980d490e48b72',1,'ucs_nsm_pb.h']]],
+ ['ucs_5fns_5fres_5fsuccess',['UCS_NS_RES_SUCCESS',['../group___g___u_c_s___s_c_r_i_p_t_i_n_g_gabd3ecc8ab539f3b9de3fc8045c083b60.html#ggabd3ecc8ab539f3b9de3fc8045c083b60af22bd910a1d7e2271b5b3cddf5892962',1,'ucs_nsm_pb.h']]],
+ ['ucs_5fnw_5fav_5ftr_5fca_5fcmd',['UCS_NW_AV_TR_CA_CMD',['../group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#ggab4ec40bf01de998abc4f2ae34c26ac46a69da70cbc0d72fa912330df7d6f95805',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnw_5fav_5ftr_5fca_5ferr_5fcrit_5funlock',['UCS_NW_AV_TR_CA_ERR_CRIT_UNLOCK',['../group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#ggab4ec40bf01de998abc4f2ae34c26ac46a26a6a280eb53c98f5bb0cc7f753608c0',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnw_5fav_5ftr_5fca_5ferr_5fsso',['UCS_NW_AV_TR_CA_ERR_SSO',['../group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#ggab4ec40bf01de998abc4f2ae34c26ac46a5f2f79813d9cdc51a9b01baedcd115c7',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnw_5fav_5ftr_5fca_5ferr_5fsystem',['UCS_NW_AV_TR_CA_ERR_SYSTEM',['../group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#ggab4ec40bf01de998abc4f2ae34c26ac46a163cc94df0ecbc01a5a0ad28ff0d2275',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnw_5fav_5ftr_5fca_5fno_5ftransition',['UCS_NW_AV_TR_CA_NO_TRANSITION',['../group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#ggab4ec40bf01de998abc4f2ae34c26ac46a6b7b5cef497a453a98714f09d4b037be',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnw_5fav_5ftr_5fca_5fnormal',['UCS_NW_AV_TR_CA_NORMAL',['../group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#ggab4ec40bf01de998abc4f2ae34c26ac46a35193eafdb2690c7f1750e7e086528a0',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnw_5fav_5ftr_5fca_5frx_5factivity',['UCS_NW_AV_TR_CA_RX_ACTIVITY',['../group___g___u_c_s___n_e_t___t_y_p_e_s_gab4ec40bf01de998abc4f2ae34c26ac46.html#ggab4ec40bf01de998abc4f2ae34c26ac46a6ac2248030e3550a61f1e296a2e5d735',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnw_5favail_5finfo_5fdiagnosis',['UCS_NW_AVAIL_INFO_DIAGNOSIS',['../group___g___u_c_s___n_e_t___t_y_p_e_s_gad5ed0387c3c156602826d50ce94c9df7.html#ggad5ed0387c3c156602826d50ce94c9df7a754bb411728af7ee41315b2257c9f409',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnw_5favail_5finfo_5fforced_5fna',['UCS_NW_AVAIL_INFO_FORCED_NA',['../group___g___u_c_s___n_e_t___t_y_p_e_s_gad5ed0387c3c156602826d50ce94c9df7.html#ggad5ed0387c3c156602826d50ce94c9df7a95e0a195f246b6c474781b42fda0e1cb',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnw_5favail_5finfo_5fregular',['UCS_NW_AVAIL_INFO_REGULAR',['../group___g___u_c_s___n_e_t___t_y_p_e_s_gad5ed0387c3c156602826d50ce94c9df7.html#ggad5ed0387c3c156602826d50ce94c9df7ace556bfc10aa45dcd561a6c75680e99e',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnw_5favail_5finfo_5fstable',['UCS_NW_AVAIL_INFO_STABLE',['../group___g___u_c_s___n_e_t___t_y_p_e_s_gad5ed0387c3c156602826d50ce94c9df7.html#ggad5ed0387c3c156602826d50ce94c9df7aac87fccc7041c51b30c04dbd42c963ba',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnw_5favail_5finfo_5funstable',['UCS_NW_AVAIL_INFO_UNSTABLE',['../group___g___u_c_s___n_e_t___t_y_p_e_s_gad5ed0387c3c156602826d50ce94c9df7.html#ggad5ed0387c3c156602826d50ce94c9df7a1e35e06faaf9537517a3b77c172c9e6a',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnw_5favailable',['UCS_NW_AVAILABLE',['../group___g___u_c_s___n_e_t___t_y_p_e_s_ga6b0bec2ae9e4d0fb93eefd65752f0c74.html#gga6b0bec2ae9e4d0fb93eefd65752f0c74a37fb322b410de335478f6bed31cd33f1',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnw_5fm_5favail',['UCS_NW_M_AVAIL',['../group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8a707f78e3b7a58f4ce21f31da38e00573',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnw_5fm_5favail_5finfo',['UCS_NW_M_AVAIL_INFO',['../group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8a9c2971b3e618e402a6d5452dc1c30738',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnw_5fm_5favail_5ftr_5fcause',['UCS_NW_M_AVAIL_TR_CAUSE',['../group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8af36c80b9128eb740ebfca15dd7c7c6be',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnw_5fm_5fevents',['UCS_NW_M_EVENTS',['../group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8a8ad2af6dd9a9c5358a8b743c1ada77cd',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnw_5fm_5fmax_5fpos',['UCS_NW_M_MAX_POS',['../group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8a043ec67877e6a38b5a13fb544681b767',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnw_5fm_5fnode_5faddr',['UCS_NW_M_NODE_ADDR',['../group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8ab698174c497186f8e738111f6d0a7036',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnw_5fm_5fnode_5fpos',['UCS_NW_M_NODE_POS',['../group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8a89bb7ec3c55087159a8a19b5e9cc7fa0',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnw_5fm_5fpacket_5fbw',['UCS_NW_M_PACKET_BW',['../group___g___u_c_s___n_e_t___t_y_p_e_s_ga779e730fce488874146678e0971f52a8.html#gga779e730fce488874146678e0971f52a8aa545cf71946b90b29bcf58581e8b1e2a',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnw_5fnot_5favailable',['UCS_NW_NOT_AVAILABLE',['../group___g___u_c_s___n_e_t___t_y_p_e_s_ga6b0bec2ae9e4d0fb93eefd65752f0c74.html#gga6b0bec2ae9e4d0fb93eefd65752f0c74afb1201dc3a998b9d4f9c48d5978d9ffc',1,'ucs_inic_pb.h']]],
+ ['ucs_5fop_5fabort',['UCS_OP_ABORT',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa16fce7c1ed324daa8942b21951b805cb',1,'ucs_message_pb.h']]],
+ ['ucs_5fop_5fabortack',['UCS_OP_ABORTACK',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa1ba506fde54dfb0ad969028ab16a6c98',1,'ucs_message_pb.h']]],
+ ['ucs_5fop_5fdec',['UCS_OP_DEC',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa53d0fbdf31fa445a02e84ed4a494153d',1,'ucs_message_pb.h']]],
+ ['ucs_5fop_5ferror',['UCS_OP_ERROR',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa7dca59717427fc0b806a2e5353cc2ece',1,'ucs_message_pb.h']]],
+ ['ucs_5fop_5ferrorack',['UCS_OP_ERRORACK',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaac8a58af946fe576138bfb6fbb156700e',1,'ucs_message_pb.h']]],
+ ['ucs_5fop_5fget',['UCS_OP_GET',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa3f69bc6e06a743468e1f1635d77adad8',1,'ucs_message_pb.h']]],
+ ['ucs_5fop_5fgetinterface',['UCS_OP_GETINTERFACE',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa64c538f9ef7c103a2541c81ae4bd501d',1,'ucs_message_pb.h']]],
+ ['ucs_5fop_5finc',['UCS_OP_INC',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa8d751c97bde87443c2259dffed699e1b',1,'ucs_message_pb.h']]],
+ ['ucs_5fop_5finterface',['UCS_OP_INTERFACE',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa3ffc2003b1ea184bfb36a8a50af424ba',1,'ucs_message_pb.h']]],
+ ['ucs_5fop_5fprocessing',['UCS_OP_PROCESSING',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa8c2b26389a77be12f491fc3154987c58',1,'ucs_message_pb.h']]],
+ ['ucs_5fop_5fprocessingack',['UCS_OP_PROCESSINGACK',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa289256756b3f271d04535462235b9d8a',1,'ucs_message_pb.h']]],
+ ['ucs_5fop_5fresult',['UCS_OP_RESULT',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa7fc5e535407db1fe019d6db6e89ffd66',1,'ucs_message_pb.h']]],
+ ['ucs_5fop_5fresultack',['UCS_OP_RESULTACK',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa5b48c9460922585b8b25868e05cc6d6c',1,'ucs_message_pb.h']]],
+ ['ucs_5fop_5fset',['UCS_OP_SET',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaacedf024e681e29824a04eaaa8215ceec',1,'ucs_message_pb.h']]],
+ ['ucs_5fop_5fsetget',['UCS_OP_SETGET',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa30680ea01486e5729efd9b8a3a22313f',1,'ucs_message_pb.h']]],
+ ['ucs_5fop_5fstart',['UCS_OP_START',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaab4e6745410e913098b6fe8628337bd0b',1,'ucs_message_pb.h']]],
+ ['ucs_5fop_5fstartack',['UCS_OP_STARTACK',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa7f78b7ab9308fc50de2b440efac06fea',1,'ucs_message_pb.h']]],
+ ['ucs_5fop_5fstartresult',['UCS_OP_STARTRESULT',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaae3056001809b7338835a44d0ffd5f6c5',1,'ucs_message_pb.h']]],
+ ['ucs_5fop_5fstartresultack',['UCS_OP_STARTRESULTACK',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaa9cd8321db02fe32bb577a3654487fba7',1,'ucs_message_pb.h']]],
+ ['ucs_5fop_5fstatus',['UCS_OP_STATUS',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#gga02d4f5d689f2583ee620ff4c26a51afaafc94e06298ee531eb4557a4a066dfb59',1,'ucs_message_pb.h']]],
+ ['ucs_5fpci_5fsckt_5fav_5fpacketized',['UCS_PCI_SCKT_AV_PACKETIZED',['../group___g___u_c_s___x_r_m___e_n_u_m_ga066850ed913a19025120619cca07fac6.html#gga066850ed913a19025120619cca07fac6a20039c896aa6b0c03a6e753040ae4db2',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5ffkt_5fdummy',['UCS_PRG_FKT_DUMMY',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#gga25cd4c3a9113e0a25b65136fec561c83a571bfec1b0e2f178223e6ad468ecfb92',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5ffkt_5finit',['UCS_PRG_FKT_INIT',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#gga25cd4c3a9113e0a25b65136fec561c83a1cefbe47e784b8a872bec98922a7d1f6',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5ffkt_5fmem_5fclose',['UCS_PRG_FKT_MEM_CLOSE',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#gga25cd4c3a9113e0a25b65136fec561c83a0071da47fdc967e0c6ce18cc464c3c1c',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5ffkt_5fmem_5fopen',['UCS_PRG_FKT_MEM_OPEN',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#gga25cd4c3a9113e0a25b65136fec561c83a062c6eb1a133b3b61dd24244121fda4b',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5ffkt_5fmem_5fwrite',['UCS_PRG_FKT_MEM_WRITE',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#gga25cd4c3a9113e0a25b65136fec561c83a359370a24ff37bdde070efc8c887599f',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5ffkt_5fwelcome',['UCS_PRG_FKT_WELCOME',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#gga25cd4c3a9113e0a25b65136fec561c83a6bc3776ea617b865cde396fac4df9a5a',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5ffkt_5fwelcome_5fnosuccess',['UCS_PRG_FKT_WELCOME_NOSUCCESS',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#gga25cd4c3a9113e0a25b65136fec561c83a308862104fb675865f9ae6d9670ec40b',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5fmid_5fcs',['UCS_PRG_MID_CS',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gae01f703f9ca91d9d1b9efdcfddfe8464.html#ggae01f703f9ca91d9d1b9efdcfddfe8464a7b9d362953b3eb6650b502e0a2de1d87',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5fmid_5fcstest',['UCS_PRG_MID_CSTEST',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gae01f703f9ca91d9d1b9efdcfddfe8464.html#ggae01f703f9ca91d9d1b9efdcfddfe8464aee7f85fb6df6f70f6f09757f41a1ff3e',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5fmid_5fis',['UCS_PRG_MID_IS',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gae01f703f9ca91d9d1b9efdcfddfe8464.html#ggae01f703f9ca91d9d1b9efdcfddfe8464a7aec4bc748bba83bc72b20589dbb8187',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5fmid_5fistest',['UCS_PRG_MID_ISTEST',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gae01f703f9ca91d9d1b9efdcfddfe8464.html#ggae01f703f9ca91d9d1b9efdcfddfe8464a6aebc0c00f88f30ddfcea30b9a1d79bd',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5fres_5ferror',['UCS_PRG_RES_ERROR',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html#ggaa998005dc2e710169a39af0c3739ade2afd20cb6be3412f26421e5878d4123fc0',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5fres_5ffkt_5fasynch',['UCS_PRG_RES_FKT_ASYNCH',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html#ggaa998005dc2e710169a39af0c3739ade2ae99cf57eece62df6910adeafbb900a49',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5fres_5ffkt_5fsynch',['UCS_PRG_RES_FKT_SYNCH',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html#ggaa998005dc2e710169a39af0c3739ade2a47fc805dfdab644983d36b195e6de5e9',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5fres_5fnet_5foff',['UCS_PRG_RES_NET_OFF',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html#ggaa998005dc2e710169a39af0c3739ade2a960ff74b4fab89700a44087c8f51a546',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5fres_5fsuccess',['UCS_PRG_RES_SUCCESS',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html#ggaa998005dc2e710169a39af0c3739ade2a9fa199d254d8b56a36b83bdefc5e213e',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5fres_5ftimeout',['UCS_PRG_RES_TIMEOUT',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gaa998005dc2e710169a39af0c3739ade2.html#ggaa998005dc2e710169a39af0c3739ade2a4895d31da9d98951666b8bebf31dd316',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5fst_5fcfg_5fread',['UCS_PRG_ST_CFG_READ',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gab29d4eadce18cb68209671a44c1eaa3a.html#ggab29d4eadce18cb68209671a44c1eaa3aae957e9ff8674900c12d4ced7f317bf83',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5fst_5fcs',['UCS_PRG_ST_CS',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gab29d4eadce18cb68209671a44c1eaa3a.html#ggab29d4eadce18cb68209671a44c1eaa3aa755ae5dbb2894e672423f34fcf94d4fe',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5fst_5fcs_5fis',['UCS_PRG_ST_CS_IS',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gab29d4eadce18cb68209671a44c1eaa3a.html#ggab29d4eadce18cb68209671a44c1eaa3aa344e76565c336dc329af00a8757242db',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5fst_5ferase_5fem',['UCS_PRG_ST_ERASE_EM',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gab29d4eadce18cb68209671a44c1eaa3a.html#ggab29d4eadce18cb68209671a44c1eaa3aa520aca46c3115f7cef0d37e084f68cd2',1,'ucs_inic_pb.h']]],
+ ['ucs_5fprg_5fst_5fis',['UCS_PRG_ST_IS',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gab29d4eadce18cb68209671a44c1eaa3a.html#ggab29d4eadce18cb68209671a44c1eaa3aa1301855aa66797f8170b86d61a0240dd',1,'ucs_inic_pb.h']]],
+ ['ucs_5fres_5ferr_5fbusy',['UCS_RES_ERR_BUSY',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540ca8ff50e770356e4fca8d36a308e323d83',1,'ucs_ret_pb.h']]],
+ ['ucs_5fres_5ferr_5fconfiguration',['UCS_RES_ERR_CONFIGURATION',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540caa142d5f1f196cbf759f2cbd6d8a7468a',1,'ucs_ret_pb.h']]],
+ ['ucs_5fres_5ferr_5fmost_5fstandard',['UCS_RES_ERR_MOST_STANDARD',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540ca4f4226f6e507caf5a9e044759c6409cf',1,'ucs_ret_pb.h']]],
+ ['ucs_5fres_5ferr_5fprocessing',['UCS_RES_ERR_PROCESSING',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540caa7f09aea37cedd8dfbe3665781aae6aa',1,'ucs_ret_pb.h']]],
+ ['ucs_5fres_5ferr_5fsystem',['UCS_RES_ERR_SYSTEM',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540cae64970c5c3ad3d0dc6996b77cd528dbb',1,'ucs_ret_pb.h']]],
+ ['ucs_5fres_5ferr_5ftimeout',['UCS_RES_ERR_TIMEOUT',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540ca3099d31f6d533972cf96c86dca0b0cc7',1,'ucs_ret_pb.h']]],
+ ['ucs_5fres_5ferr_5ftransmission',['UCS_RES_ERR_TRANSMISSION',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540ca4e2229e49fe1197dd9df919719fcd38a',1,'ucs_ret_pb.h']]],
+ ['ucs_5fres_5fsuccess',['UCS_RES_SUCCESS',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#ggac844b77cf41aef663782bc0b43d3540cae19d5a51de78bbf903a108a4e36a0fdf',1,'ucs_ret_pb.h']]],
+ ['ucs_5fret_5ferr_5falready_5fset',['UCS_RET_ERR_ALREADY_SET',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda6e3654d081184da037670c8af1950ea7',1,'ucs_ret_pb.h']]],
+ ['ucs_5fret_5ferr_5fapi_5flocked',['UCS_RET_ERR_API_LOCKED',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cdad4a30091202638c890abbdb682ca4fe5',1,'ucs_ret_pb.h']]],
+ ['ucs_5fret_5ferr_5fbuffer_5foverflow',['UCS_RET_ERR_BUFFER_OVERFLOW',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cdabb64ac46e62c58382dc65f3fd7bf12d2',1,'ucs_ret_pb.h']]],
+ ['ucs_5fret_5ferr_5finvalid_5fshadow',['UCS_RET_ERR_INVALID_SHADOW',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda6384d8a38b3298f50efd7bd42a60a2ec',1,'ucs_ret_pb.h']]],
+ ['ucs_5fret_5ferr_5fnot_5favailable',['UCS_RET_ERR_NOT_AVAILABLE',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda7e6114552879861375322bf68dafe3a3',1,'ucs_ret_pb.h']]],
+ ['ucs_5fret_5ferr_5fnot_5finitialized',['UCS_RET_ERR_NOT_INITIALIZED',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda9e2acee4f83d89585e959b143b7aafb8',1,'ucs_ret_pb.h']]],
+ ['ucs_5fret_5ferr_5fnot_5fsupported',['UCS_RET_ERR_NOT_SUPPORTED',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda8820168a0730173889011958189733e2',1,'ucs_ret_pb.h']]],
+ ['ucs_5fret_5ferr_5fparam',['UCS_RET_ERR_PARAM',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cdab98b74c51324859f3138fed96afd1573',1,'ucs_ret_pb.h']]],
+ ['ucs_5fret_5fsuccess',['UCS_RET_SUCCESS',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda3fb51656e17ee4802f23706f35e349bc',1,'ucs_ret_pb.h']]],
+ ['ucs_5frm_5fep_5fsink',['UCS_RM_EP_SINK',['../group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga127a72f023d3c0289ab74b001f6edc25.html#gga127a72f023d3c0289ab74b001f6edc25a63c4dfa3683ce8122d760c4e2d580138',1,'ucs_rm_pb.h']]],
+ ['ucs_5frm_5fep_5fsource',['UCS_RM_EP_SOURCE',['../group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga127a72f023d3c0289ab74b001f6edc25.html#gga127a72f023d3c0289ab74b001f6edc25ac1244d5bc6a569137f6f9132b8b0a3da',1,'ucs_rm_pb.h']]],
+ ['ucs_5frm_5froute_5finfos_5fbuilt',['UCS_RM_ROUTE_INFOS_BUILT',['../group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#gga75ffbf28e4afc99a6abdbff0887baf9ba5778af29569eb74e7546749e93ed9c1e',1,'ucs_rm_pb.h']]],
+ ['ucs_5frm_5froute_5finfos_5fdestroyed',['UCS_RM_ROUTE_INFOS_DESTROYED',['../group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#gga75ffbf28e4afc99a6abdbff0887baf9ba5458da57325825b8922710a90a9ea4d5',1,'ucs_rm_pb.h']]],
+ ['ucs_5frm_5froute_5finfos_5fprocess_5fstop',['UCS_RM_ROUTE_INFOS_PROCESS_STOP',['../group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#gga75ffbf28e4afc99a6abdbff0887baf9bace1ac2f05b198d3d223baa33ca71493a',1,'ucs_rm_pb.h']]],
+ ['ucs_5frm_5froute_5finfos_5fsuspended',['UCS_RM_ROUTE_INFOS_SUSPENDED',['../group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#gga75ffbf28e4afc99a6abdbff0887baf9ba0a444b476e91de5d0954a007a78a387b',1,'ucs_rm_pb.h']]],
+ ['ucs_5frmck_5fport_5fclk_5fsrc_5fnw_5fsystem',['UCS_RMCK_PORT_CLK_SRC_NW_SYSTEM',['../group___g___u_c_s___x_r_m___e_n_u_m_ga793fd94e2e48ff7a7fce092e6e0039e4.html#gga793fd94e2e48ff7a7fce092e6e0039e4a0c106f34e8415ab3f01748a6bde15d8c',1,'ucs_inic_pb.h']]],
+ ['ucs_5fsd_5faborted',['UCS_SD_ABORTED',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga4d4ad405b114eba3e3a2e5581a0b5d9c.html#gga4d4ad405b114eba3e3a2e5581a0b5d9ca24eb65098a000880b49bdec23df59875',1,'ucs_inic_pb.h']]],
+ ['ucs_5fsd_5fcable_5flink_5fres',['UCS_SD_CABLE_LINK_RES',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga4d4ad405b114eba3e3a2e5581a0b5d9c.html#gga4d4ad405b114eba3e3a2e5581a0b5d9ca6905a0a0e360528a3a8bc2a019b83f5e',1,'ucs_inic_pb.h']]],
+ ['ucs_5fsd_5ferr_5fstop_5fsysdiag_5ffailed',['UCS_SD_ERR_STOP_SYSDIAG_FAILED',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_gad0e1473ecd96b8d94131cb5d81295fc3.html#ggad0e1473ecd96b8d94131cb5d81295fc3a2e4d4e1fe5f54e2f5855e26483670aea',1,'ucs_inic_pb.h']]],
+ ['ucs_5fsd_5ferr_5fterminated',['UCS_SD_ERR_TERMINATED',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_gad0e1473ecd96b8d94131cb5d81295fc3.html#ggad0e1473ecd96b8d94131cb5d81295fc3aa90c57ed3372954deabffda0100a2da3',1,'ucs_inic_pb.h']]],
+ ['ucs_5fsd_5ferr_5funspecified',['UCS_SD_ERR_UNSPECIFIED',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_gad0e1473ecd96b8d94131cb5d81295fc3.html#ggad0e1473ecd96b8d94131cb5d81295fc3a93dead118b00c19d7d17401be8ce72cd',1,'ucs_inic_pb.h']]],
+ ['ucs_5fsd_5ferr_5fwelcome_5fno_5fsuccess',['UCS_SD_ERR_WELCOME_NO_SUCCESS',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_gad0e1473ecd96b8d94131cb5d81295fc3.html#ggad0e1473ecd96b8d94131cb5d81295fc3a6702bd287f88f76e4d13ac87f8b3c721',1,'ucs_inic_pb.h']]],
+ ['ucs_5fsd_5ferror',['UCS_SD_ERROR',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga4d4ad405b114eba3e3a2e5581a0b5d9c.html#gga4d4ad405b114eba3e3a2e5581a0b5d9caf1cfc47eb0bb457e7627178aa04ec292',1,'ucs_inic_pb.h']]],
+ ['ucs_5fsd_5ffinished',['UCS_SD_FINISHED',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga4d4ad405b114eba3e3a2e5581a0b5d9c.html#gga4d4ad405b114eba3e3a2e5581a0b5d9ca4bb8732a74d1e48108c59ee15b99f2dc',1,'ucs_inic_pb.h']]],
+ ['ucs_5fsd_5ftarget_5ffound',['UCS_SD_TARGET_FOUND',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga4d4ad405b114eba3e3a2e5581a0b5d9c.html#gga4d4ad405b114eba3e3a2e5581a0b5d9ca863e9f716a0aaaa31a88e2362e0b20c9',1,'ucs_inic_pb.h']]],
+ ['ucs_5fsocket_5fdir_5finput',['UCS_SOCKET_DIR_INPUT',['../group___g___u_c_s___x_r_m___e_n_u_m_ga28477f727fe10f9d6fd21cfc98a9c115.html#gga28477f727fe10f9d6fd21cfc98a9c115a02fdd605a809a4a660e25cfd888347c7',1,'ucs_inic_pb.h']]],
+ ['ucs_5fsocket_5fdir_5foutput',['UCS_SOCKET_DIR_OUTPUT',['../group___g___u_c_s___x_r_m___e_n_u_m_ga28477f727fe10f9d6fd21cfc98a9c115.html#gga28477f727fe10f9d6fd21cfc98a9c115aa14fc95a1f8c5f54aa6d601614a887fe',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5falgn_5fleft16bit',['UCS_STREAM_PORT_ALGN_LEFT16BIT',['../group___g___u_c_s___x_r_m___e_n_u_m_ga02741bef1059621aaf6cf4fa956cfccf.html#gga02741bef1059621aaf6cf4fa956cfccfa7505ae359df8d66ec68bacb78c049f52',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5falgn_5fleft24bit',['UCS_STREAM_PORT_ALGN_LEFT24BIT',['../group___g___u_c_s___x_r_m___e_n_u_m_ga02741bef1059621aaf6cf4fa956cfccf.html#gga02741bef1059621aaf6cf4fa956cfccfa64ff85efa59d4760e4dba13678c7b802',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5falgn_5fright16bit',['UCS_STREAM_PORT_ALGN_RIGHT16BIT',['../group___g___u_c_s___x_r_m___e_n_u_m_ga02741bef1059621aaf6cf4fa956cfccf.html#gga02741bef1059621aaf6cf4fa956cfccfae288dcb736db417e450f52b59da4efd6',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5falgn_5fright24bit',['UCS_STREAM_PORT_ALGN_RIGHT24BIT',['../group___g___u_c_s___x_r_m___e_n_u_m_ga02741bef1059621aaf6cf4fa956cfccf.html#gga02741bef1059621aaf6cf4fa956cfccfa1c36b204751eff3352215d86b703d9d6',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5falgn_5fseq',['UCS_STREAM_PORT_ALGN_SEQ',['../group___g___u_c_s___x_r_m___e_n_u_m_ga02741bef1059621aaf6cf4fa956cfccf.html#gga02741bef1059621aaf6cf4fa956cfccfa8511f386d32e3e1eacfb7763528ae198',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fclk_5fcfg_5f128fs',['UCS_STREAM_PORT_CLK_CFG_128FS',['../group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#gga0e856884fa1c7908c59718da0f396484a070b6e6a42de4464e8c702b27fc56b26',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fclk_5fcfg_5f16fs',['UCS_STREAM_PORT_CLK_CFG_16FS',['../group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#gga0e856884fa1c7908c59718da0f396484ad4d29b36625c2a20c585524b9bbeab10',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fclk_5fcfg_5f256fs',['UCS_STREAM_PORT_CLK_CFG_256FS',['../group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#gga0e856884fa1c7908c59718da0f396484ab74d511c86daf3ce6aa90a98381c7e8a',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fclk_5fcfg_5f32fs',['UCS_STREAM_PORT_CLK_CFG_32FS',['../group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#gga0e856884fa1c7908c59718da0f396484a23baa6e65f75b4b7bb11716bf01a2bda',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fclk_5fcfg_5f512fs',['UCS_STREAM_PORT_CLK_CFG_512FS',['../group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#gga0e856884fa1c7908c59718da0f396484a5db76daf8c6e915500433b291457d2de',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fclk_5fcfg_5f64fs',['UCS_STREAM_PORT_CLK_CFG_64FS',['../group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#gga0e856884fa1c7908c59718da0f396484a6ecefb4d6d534dfc6225644bf6cb9823',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fclk_5fcfg_5f8fs',['UCS_STREAM_PORT_CLK_CFG_8FS',['../group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#gga0e856884fa1c7908c59718da0f396484ae3b3cf726190fda9d105b4b7561cb455',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fclk_5fcfg_5fwild',['UCS_STREAM_PORT_CLK_CFG_WILD',['../group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#gga0e856884fa1c7908c59718da0f396484ae8ea56789961bd68181d059180ecccd6',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fclk_5fdly_5fdelayed',['UCS_STREAM_PORT_CLK_DLY_DELAYED',['../group___g___u_c_s___x_r_m___e_n_u_m_ga16d6cd08e925676dfade13e980f460b0.html#gga16d6cd08e925676dfade13e980f460b0a57fd16fd3f918e55cb4fc665f4023c79',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fclk_5fdly_5fnone',['UCS_STREAM_PORT_CLK_DLY_NONE',['../group___g___u_c_s___x_r_m___e_n_u_m_ga16d6cd08e925676dfade13e980f460b0.html#gga16d6cd08e925676dfade13e980f460b0a4a03b7fe83667b4e5f2a355e2810ed6f',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fclk_5fdly_5fwild',['UCS_STREAM_PORT_CLK_DLY_WILD',['../group___g___u_c_s___x_r_m___e_n_u_m_ga16d6cd08e925676dfade13e980f460b0.html#gga16d6cd08e925676dfade13e980f460b0ae852c8c7676b739182f522d3ac1d54bd',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fclk_5fmode_5finput',['UCS_STREAM_PORT_CLK_MODE_INPUT',['../group___g___u_c_s___x_r_m___e_n_u_m_ga3139c2b4d435622104235bd9fd9f478c.html#gga3139c2b4d435622104235bd9fd9f478ca3add1d998c379f1ece1dabd41e89d832',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fclk_5fmode_5foutput',['UCS_STREAM_PORT_CLK_MODE_OUTPUT',['../group___g___u_c_s___x_r_m___e_n_u_m_ga3139c2b4d435622104235bd9fd9f478c.html#gga3139c2b4d435622104235bd9fd9f478ca3c768bceb59f2b4ef488e285a9d11b20',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fclk_5fmode_5fwild',['UCS_STREAM_PORT_CLK_MODE_WILD',['../group___g___u_c_s___x_r_m___e_n_u_m_ga3139c2b4d435622104235bd9fd9f478c.html#gga3139c2b4d435622104235bd9fd9f478ca5614198d8e257bc689bcfccf09ad0d8f',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fop_5fmode_5fgeneric',['UCS_STREAM_PORT_OP_MODE_GENERIC',['../group___g___u_c_s___x_r_m___e_n_u_m_ga6ea92012ace1c507dab36b727698a08e.html#gga6ea92012ace1c507dab36b727698a08ea10bf424b1ddb5c25b7659991fa761946',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fopt_5fdual_5fin',['UCS_STREAM_PORT_OPT_DUAL_IN',['../group___g___u_c_s___x_r_m___e_n_u_m_ga83e210aa76632ea2191bd59ef7894432.html#gga83e210aa76632ea2191bd59ef7894432ab2cb6fba4c684773db5ef4c7d4650311',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fopt_5fdual_5fout',['UCS_STREAM_PORT_OPT_DUAL_OUT',['../group___g___u_c_s___x_r_m___e_n_u_m_ga83e210aa76632ea2191bd59ef7894432.html#gga83e210aa76632ea2191bd59ef7894432a045ee94e54b8cb575ec5579ecded373a',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fopt_5fin_5fout',['UCS_STREAM_PORT_OPT_IN_OUT',['../group___g___u_c_s___x_r_m___e_n_u_m_ga83e210aa76632ea2191bd59ef7894432.html#gga83e210aa76632ea2191bd59ef7894432a5953e1aaabaaa5ae4a74fe0ec5842246',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fpin_5fid_5fsrxa0',['UCS_STREAM_PORT_PIN_ID_SRXA0',['../group___g___u_c_s___x_r_m___e_n_u_m_gaadbd9007127f39c3c257040adf063d07.html#ggaadbd9007127f39c3c257040adf063d07a16eeeaad94f4398034b16f32832b2b52',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fpin_5fid_5fsrxa1',['UCS_STREAM_PORT_PIN_ID_SRXA1',['../group___g___u_c_s___x_r_m___e_n_u_m_gaadbd9007127f39c3c257040adf063d07.html#ggaadbd9007127f39c3c257040adf063d07a111c042a8036aef129575cee99766a50',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fpin_5fid_5fsrxb0',['UCS_STREAM_PORT_PIN_ID_SRXB0',['../group___g___u_c_s___x_r_m___e_n_u_m_gaadbd9007127f39c3c257040adf063d07.html#ggaadbd9007127f39c3c257040adf063d07a9c838b934823acccb059f360dd23d4d3',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fpin_5fid_5fsrxb1',['UCS_STREAM_PORT_PIN_ID_SRXB1',['../group___g___u_c_s___x_r_m___e_n_u_m_gaadbd9007127f39c3c257040adf063d07.html#ggaadbd9007127f39c3c257040adf063d07a743fac004ed325564161877611bdd074',1,'ucs_inic_pb.h']]],
+ ['ucs_5fstream_5fport_5fsckt_5fsync_5fdata',['UCS_STREAM_PORT_SCKT_SYNC_DATA',['../group___g___u_c_s___x_r_m___e_n_u_m_gae12684f1b74844d622e59da79f1a23f8.html#ggae12684f1b74844d622e59da79f1a23f8a547bb39c45cc5788c3e5352f2b7fa76f',1,'ucs_inic_pb.h']]],
+ ['ucs_5fsync_5fmute_5fmode_5fmute_5fsignal',['UCS_SYNC_MUTE_MODE_MUTE_SIGNAL',['../group___g___u_c_s___x_r_m___e_n_u_m_gaef12892b897a1cd1013357cfe63f2434.html#ggaef12892b897a1cd1013357cfe63f2434a0648d4c524869e191575e69531947171',1,'ucs_inic_pb.h']]],
+ ['ucs_5fsync_5fmute_5fmode_5fno_5fmuting',['UCS_SYNC_MUTE_MODE_NO_MUTING',['../group___g___u_c_s___x_r_m___e_n_u_m_gaef12892b897a1cd1013357cfe63f2434.html#ggaef12892b897a1cd1013357cfe63f2434a6e21656de3fa891d522f272307fca772',1,'ucs_inic_pb.h']]],
+ ['ucs_5fusb_5fphy_5flayer_5fhsci',['UCS_USB_PHY_LAYER_HSCI',['../group___g___u_c_s___x_r_m___e_n_u_m_gaa573e5854eb036998eec837e9fbf0ae1.html#ggaa573e5854eb036998eec837e9fbf0ae1a94962f9a6bce23c8ab29d9da551ef2c3',1,'ucs_inic_pb.h']]],
+ ['ucs_5fusb_5fphy_5flayer_5fstandard',['UCS_USB_PHY_LAYER_STANDARD',['../group___g___u_c_s___x_r_m___e_n_u_m_gaa573e5854eb036998eec837e9fbf0ae1.html#ggaa573e5854eb036998eec837e9fbf0ae1aea428e9f9e380e629584c3989e4318b3',1,'ucs_inic_pb.h']]],
+ ['ucs_5fusb_5fsckt_5fav_5fpacketized',['UCS_USB_SCKT_AV_PACKETIZED',['../group___g___u_c_s___x_r_m___e_n_u_m_gafd56377a5a1f782e64260d18caf17dc9.html#ggafd56377a5a1f782e64260d18caf17dc9afbd766c42efdcb7bb7f7dddbbe863f0b',1,'ucs_inic_pb.h']]],
+ ['ucs_5fusb_5fsckt_5fcontrol_5fdata',['UCS_USB_SCKT_CONTROL_DATA',['../group___g___u_c_s___x_r_m___e_n_u_m_gafd56377a5a1f782e64260d18caf17dc9.html#ggafd56377a5a1f782e64260d18caf17dc9a257142db7cda65de457ce1b5614de162',1,'ucs_inic_pb.h']]],
+ ['ucs_5fusb_5fsckt_5fipc_5fpacket',['UCS_USB_SCKT_IPC_PACKET',['../group___g___u_c_s___x_r_m___e_n_u_m_gafd56377a5a1f782e64260d18caf17dc9.html#ggafd56377a5a1f782e64260d18caf17dc9a6a225da98d0fb6f08845c7b0c3480109',1,'ucs_inic_pb.h']]],
+ ['ucs_5fusb_5fsckt_5fsync_5fdata',['UCS_USB_SCKT_SYNC_DATA',['../group___g___u_c_s___x_r_m___e_n_u_m_gafd56377a5a1f782e64260d18caf17dc9.html#ggafd56377a5a1f782e64260d18caf17dc9a4df4e4d4848358e18a3ef6386db80acf',1,'ucs_inic_pb.h']]],
+ ['ucs_5fxrm_5finfos_5fbuilt',['UCS_XRM_INFOS_BUILT',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#gga5299ac232aaeba37eb6fceb53e32b2eaaf17abdbe8fab65a069b6a8af1079066a',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5finfos_5fdestroyed',['UCS_XRM_INFOS_DESTROYED',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#gga5299ac232aaeba37eb6fceb53e32b2eaa6e7faa32a0cb82c3fdf4450d80188262',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5finfos_5ferr_5fbuilt',['UCS_XRM_INFOS_ERR_BUILT',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#gga5299ac232aaeba37eb6fceb53e32b2eaac57d4f29bbfd2f62eefddc4e31a7ad81',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5finfos_5ferr_5fdestroyed',['UCS_XRM_INFOS_ERR_DESTROYED',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#gga5299ac232aaeba37eb6fceb53e32b2eaa3506ba144d511cba046ed09d7de265d2',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fport_5ftype_5fmlb',['UCS_XRM_PORT_TYPE_MLB',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga50384bb32b088e9cfd50c889ef562015.html#gga50384bb32b088e9cfd50c889ef562015af7f4a6893afb4f0f50a16a58e815f33e',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fport_5ftype_5fstrm',['UCS_XRM_PORT_TYPE_STRM',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga50384bb32b088e9cfd50c889ef562015.html#gga50384bb32b088e9cfd50c889ef562015a9a8488efe5ea3c20d4a172ccc547951a',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fport_5ftype_5fusb',['UCS_XRM_PORT_TYPE_USB',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga50384bb32b088e9cfd50c889ef562015.html#gga50384bb32b088e9cfd50c889ef562015a7b31f75e1806723739f4d7fd2bc483d3',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5frc_5ftype_5favp_5fcon',['UCS_XRM_RC_TYPE_AVP_CON',['../group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36cccad0ca5b1fdc6b922e235ba53c5e09b8fb',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5frc_5ftype_5fcombiner',['UCS_XRM_RC_TYPE_COMBINER',['../group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca7224e84dd09ec73062bfaf395d645669',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5frc_5ftype_5fdc_5fport',['UCS_XRM_RC_TYPE_DC_PORT',['../group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36cccacf416b59b369504088ef6810b4c545e1',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5frc_5ftype_5fdfiphase_5fcon',['UCS_XRM_RC_TYPE_DFIPHASE_CON',['../group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36cccafc1fc13e092cd54eebdfe81d709213ef',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5frc_5ftype_5fmlb_5fport',['UCS_XRM_RC_TYPE_MLB_PORT',['../group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca2c31643fe2ccea0ecb44424ef0ba0472',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5frc_5ftype_5fmlb_5fsocket',['UCS_XRM_RC_TYPE_MLB_SOCKET',['../group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca51a0ec5a470cb37f90a79a73f0f83be4',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5frc_5ftype_5fmost_5fsocket',['UCS_XRM_RC_TYPE_MOST_SOCKET',['../group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36cccaeebb673b9abc5172f688f8e9e692441c',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5frc_5ftype_5fqos_5fcon',['UCS_XRM_RC_TYPE_QOS_CON',['../group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca23a015384da5963bcd03626084acd531',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5frc_5ftype_5frmck_5fport',['UCS_XRM_RC_TYPE_RMCK_PORT',['../group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca1d473f725ad3b8c99a3aa7a7e4915695',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5frc_5ftype_5fsplitter',['UCS_XRM_RC_TYPE_SPLITTER',['../group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36cccade63ac4286473169114caa4b890c5a65',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5frc_5ftype_5fstrm_5fport',['UCS_XRM_RC_TYPE_STRM_PORT',['../group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca1956e37c3cfebc66ed6f5da75f67d589',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5frc_5ftype_5fstrm_5fsocket',['UCS_XRM_RC_TYPE_STRM_SOCKET',['../group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca42a35dfe6f0054952406aeb6cdcf5119',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5frc_5ftype_5fsync_5fcon',['UCS_XRM_RC_TYPE_SYNC_CON',['../group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca47342ee294555a9b7e738c9fc34b5265',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5frc_5ftype_5fusb_5fport',['UCS_XRM_RC_TYPE_USB_PORT',['../group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca0060f6125299f66c37b3b9111358caaf',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5frc_5ftype_5fusb_5fsocket',['UCS_XRM_RC_TYPE_USB_SOCKET',['../group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#ggac238d98be8f9df6340eb4ee72de36ccca5e2f20f818f67af2502a600f06b9ab11',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fres_5ferr_5fbuild',['UCS_XRM_RES_ERR_BUILD',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a919a5b68148cb601b4493861fc327cb4',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fres_5ferr_5fconfig',['UCS_XRM_RES_ERR_CONFIG',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a5be1bc94fb04a96c19169ced4b332c22',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fres_5ferr_5fdestroy',['UCS_XRM_RES_ERR_DESTROY',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a98009aefa81c980cfd7271870a8f5935',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fres_5ferr_5finv_5flist',['UCS_XRM_RES_ERR_INV_LIST',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a271d672a3235b37ade92cc90703e2818',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fres_5ferr_5fsync',['UCS_XRM_RES_ERR_SYNC',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a8756918bcca4958921f4998e4279290a',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fres_5frc_5fauto_5fdestroyed',['UCS_XRM_RES_RC_AUTO_DESTROYED',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a1c701f3c6cf1906ec7b9ab128f716ddd',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fres_5fsuccess_5fbuild',['UCS_XRM_RES_SUCCESS_BUILD',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a87626ffba05e93e00d937e02ffa6f11f',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fres_5fsuccess_5fdestroy',['UCS_XRM_RES_SUCCESS_DESTROY',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a5598f375b65cc34614b9da0fa26eac7b',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fres_5funknown',['UCS_XRM_RES_UNKNOWN',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#gga60bd3f9fa02e15fb8841236470502939a9710ae95e40d16090a0c89db7dd2b17c',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fresult_5ftype_5fint',['UCS_XRM_RESULT_TYPE_INT',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga80967b5f9bca0e603511f6ae4f8ac80d.html#gga80967b5f9bca0e603511f6ae4f8ac80da5b4112471bfa589121d71a7a4a615488',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fresult_5ftype_5ftgt',['UCS_XRM_RESULT_TYPE_TGT',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga80967b5f9bca0e603511f6ae4f8ac80d.html#gga80967b5f9bca0e603511f6ae4f8ac80daf7685915f03d5f4d71146c0802ec0ca3',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fresult_5ftype_5ftx',['UCS_XRM_RESULT_TYPE_TX',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga80967b5f9bca0e603511f6ae4f8ac80d.html#gga80967b5f9bca0e603511f6ae4f8ac80da5697459fe3277c55bcd1a733339bea9b',1,'ucs_xrm_pb.h']]]
+];
diff --git a/ucs2-lib/doc/html/search/functions_75.html b/ucs2-lib/doc/html/search/functions_75.html
new file mode 100644
index 0000000..2d61754
--- /dev/null
+++ b/ucs2-lib/doc/html/search/functions_75.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_75.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/functions_75.js b/ucs2-lib/doc/html/search/functions_75.js
new file mode 100644
index 0000000..386b7f7
--- /dev/null
+++ b/ucs2-lib/doc/html/search/functions_75.js
@@ -0,0 +1,45 @@
+var searchData=
+[
+ ['ucs_5famsrx_5fgetmsgcnt',['Ucs_AmsRx_GetMsgCnt',['../group___g___u_c_s___a_m_s_ga9fe2ca761b3856b5e7c3446cc49e90ad.html#ga9fe2ca761b3856b5e7c3446cc49e90ad',1,'ucs_class_pb.h']]],
+ ['ucs_5famsrx_5fpeekmsg',['Ucs_AmsRx_PeekMsg',['../group___g___u_c_s___a_m_s_gab096e481474195cc57d4d801f1d295f2.html#gab096e481474195cc57d4d801f1d295f2',1,'ucs_class_pb.h']]],
+ ['ucs_5famsrx_5freleasemsg',['Ucs_AmsRx_ReleaseMsg',['../group___g___u_c_s___a_m_s_ga6f571e2e15fac1e4be068cdf0ccac44d.html#ga6f571e2e15fac1e4be068cdf0ccac44d',1,'ucs_class_pb.h']]],
+ ['ucs_5famstx_5fallocmsg',['Ucs_AmsTx_AllocMsg',['../group___g___u_c_s___a_m_s_gafbcfeaaa6ff3d255609e404b16dbdf0f.html#gafbcfeaaa6ff3d255609e404b16dbdf0f',1,'ucs_class_pb.h']]],
+ ['ucs_5famstx_5ffreeunusedmsg',['Ucs_AmsTx_FreeUnusedMsg',['../group___g___u_c_s___a_m_s_ga9e03946330dcc4ed4111b1d43714308d.html#ga9e03946330dcc4ed4111b1d43714308d',1,'ucs_class_pb.h']]],
+ ['ucs_5famstx_5fsendmsg',['Ucs_AmsTx_SendMsg',['../group___g___u_c_s___a_m_s_ga6486fc060d0aa8b1bb34851d2e63b755.html#ga6486fc060d0aa8b1bb34851d2e63b755',1,'ucs_class_pb.h']]],
+ ['ucs_5fbcd_5fstart',['Ucs_Bcd_Start',['../group___g___u_c_s___b_c___d_i_a_g_gaaefed31b3c57ef52a29237c3f84fb566.html#gaaefed31b3c57ef52a29237c3f84fb566',1,'ucs_class_pb.h']]],
+ ['ucs_5fcmd_5faddmsgidtable',['Ucs_Cmd_AddMsgIdTable',['../group___g___u_c_s___c_m_d_ga70c8351102177badff83fe412c4962b7.html#ga70c8351102177badff83fe412c4962b7',1,'ucs_class_pb.h']]],
+ ['ucs_5fcmd_5fdecodemsg',['Ucs_Cmd_DecodeMsg',['../group___g___u_c_s___c_m_d_gaaad9e557acfca6cc8c125c7b191515f1.html#gaaad9e557acfca6cc8c125c7b191515f1',1,'ucs_class_pb.h']]],
+ ['ucs_5fcmd_5fremovemsgidtable',['Ucs_Cmd_RemoveMsgIdTable',['../group___g___u_c_s___c_m_d_gafe38ecf4cd5bc81074af03affa2374a4.html#gafe38ecf4cd5bc81074af03affa2374a4',1,'ucs_class_pb.h']]],
+ ['ucs_5fcreateinstance',['Ucs_CreateInstance',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga85a99b5d236b29e2d598bef51edad638.html#ga85a99b5d236b29e2d598bef51edad638',1,'ucs_class_pb.h']]],
+ ['ucs_5fgpio_5fcreateport',['Ucs_Gpio_CreatePort',['../group___g___u_c_s___g_p_i_o_ga76f4de37c98b0cdd7cc25a22a9dac8a9.html#ga76f4de37c98b0cdd7cc25a22a9dac8a9',1,'ucs_class_pb.h']]],
+ ['ucs_5fgpio_5fgetpinmode',['Ucs_Gpio_GetPinMode',['../group___g___u_c_s___g_p_i_o_ga10b73bad28ba7e0f24d3676f082a11a1.html#ga10b73bad28ba7e0f24d3676f082a11a1',1,'ucs_class_pb.h']]],
+ ['ucs_5fgpio_5freadport',['Ucs_Gpio_ReadPort',['../group___g___u_c_s___g_p_i_o_gaa2dc67622555e9e64e4bb524a8e18642.html#gaa2dc67622555e9e64e4bb524a8e18642',1,'ucs_class_pb.h']]],
+ ['ucs_5fgpio_5fsetpinmode',['Ucs_Gpio_SetPinMode',['../group___g___u_c_s___g_p_i_o_gaf9ecc1f20870bf49d40521db09854a68.html#gaf9ecc1f20870bf49d40521db09854a68',1,'ucs_class_pb.h']]],
+ ['ucs_5fgpio_5fwriteport',['Ucs_Gpio_WritePort',['../group___g___u_c_s___g_p_i_o_gaff68acc9fb26096cae9374694b43ae92.html#gaff68acc9fb26096cae9374694b43ae92',1,'ucs_class_pb.h']]],
+ ['ucs_5fi2c_5fcreateport',['Ucs_I2c_CreatePort',['../group___g___u_c_s___i2_c_gac06f58d8a7775703373f12c3c677d687.html#gac06f58d8a7775703373f12c3c677d687',1,'ucs_class_pb.h']]],
+ ['ucs_5fi2c_5freadport',['Ucs_I2c_ReadPort',['../group___g___u_c_s___i2_c_ga153f7ce3ea500b2f39544e0ccfc86503.html#ga153f7ce3ea500b2f39544e0ccfc86503',1,'ucs_class_pb.h']]],
+ ['ucs_5fi2c_5fwriteport',['Ucs_I2c_WritePort',['../group___g___u_c_s___i2_c_gade4a94669fe4f29f18fe5bfd4e102474.html#gade4a94669fe4f29f18fe5bfd4e102474',1,'ucs_class_pb.h']]],
+ ['ucs_5finit',['Ucs_Init',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_gaea8d7735d41853167a2befdc06febe43.html#gaea8d7735d41853167a2befdc06febe43',1,'ucs_class_pb.h']]],
+ ['ucs_5fnd_5finitall',['Ucs_Nd_InitAll',['../group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_gabab6c431e235fe0211f5f1525f9cff2e.html#gabab6c431e235fe0211f5f1525f9cff2e',1,'ucs_class_pb.h']]],
+ ['ucs_5fnd_5fstart',['Ucs_Nd_Start',['../group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_ga50a5b00d5bbd1ad324478509dc524eec.html#ga50a5b00d5bbd1ad324478509dc524eec',1,'ucs_class_pb.h']]],
+ ['ucs_5fnd_5fstop',['Ucs_Nd_Stop',['../group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_ga637e441520f7b203e551274f17febfb6.html#ga637e441520f7b203e551274f17febfb6',1,'ucs_class_pb.h']]],
+ ['ucs_5fnetwork_5fforcenotavailable',['Ucs_Network_ForceNotAvailable',['../group___g___u_c_s___n_e_t_ga3a71b7772ce265a77eefa7ad069c4819.html#ga3a71b7772ce265a77eefa7ad069c4819',1,'ucs_class_pb.h']]],
+ ['ucs_5fnetwork_5fgetframecounter',['Ucs_Network_GetFrameCounter',['../group___g___u_c_s___n_e_t_ga3360b1585b5a9b54d24a934c22a44281.html#ga3360b1585b5a9b54d24a934c22a44281',1,'ucs_class_pb.h']]],
+ ['ucs_5fnetwork_5fgetnodescount',['Ucs_Network_GetNodesCount',['../group___g___u_c_s___n_e_t_gaf08bc0be54565e30143166d675866f87.html#gaf08bc0be54565e30143166d675866f87',1,'ucs_class_pb.h']]],
+ ['ucs_5fnetwork_5fshutdown',['Ucs_Network_Shutdown',['../group___g___u_c_s___n_e_t_ga1e49ce81a42f09bcecc2202edc2b93fc.html#ga1e49ce81a42f09bcecc2202edc2b93fc',1,'ucs_class_pb.h']]],
+ ['ucs_5fnetwork_5fstartup',['Ucs_Network_Startup',['../group___g___u_c_s___n_e_t_ga83c2e74a4cc216aa10d7c6a1a517d459.html#ga83c2e74a4cc216aa10d7c6a1a517d459',1,'ucs_class_pb.h']]],
+ ['ucs_5fns_5frun',['Ucs_Ns_Run',['../group___g___u_c_s___s_c_r_i_p_t_i_n_g_ga2f2737e4d507b9c15e165918db3f1456.html#ga2f2737e4d507b9c15e165918db3f1456',1,'ucs_class_pb.h']]],
+ ['ucs_5fprog_5fstart',['Ucs_Prog_Start',['../group___g___u_c_s___p_r_o_g___m_o_d_e_ga12071385b86ab6375472db80c00b80c7.html#ga12071385b86ab6375472db80c00b80c7',1,'ucs_class_pb.h']]],
+ ['ucs_5freporttimeout',['Ucs_ReportTimeout',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga369c86a27ffee30a3af3423f6b3f3e59.html#ga369c86a27ffee30a3af3423f6b3f3e59',1,'ucs_class_pb.h']]],
+ ['ucs_5frm_5fgetattachedroutes',['Ucs_Rm_GetAttachedRoutes',['../group___g___u_c_s___r_o_u_t_i_n_g_gaf34398118f6a683a7e295f2fb89c5940.html#gaf34398118f6a683a7e295f2fb89c5940',1,'ucs_class_pb.h']]],
+ ['ucs_5frm_5fgetconnectionlabel',['Ucs_Rm_GetConnectionLabel',['../group___g___u_c_s___r_o_u_t_i_n_g_ga87a46a3aa0657e13f5884e5a04d16e17.html#ga87a46a3aa0657e13f5884e5a04d16e17',1,'ucs_class_pb.h']]],
+ ['ucs_5frm_5fgetnodeavailable',['Ucs_Rm_GetNodeAvailable',['../group___g___u_c_s___r_o_u_t_i_n_g_ga32d004eb96f434f379614b29fe2a486a.html#ga32d004eb96f434f379614b29fe2a486a',1,'ucs_class_pb.h']]],
+ ['ucs_5frm_5fsetnodeavailable',['Ucs_Rm_SetNodeAvailable',['../group___g___u_c_s___r_o_u_t_i_n_g_ga57ca34a488f06d57f2219be23fa0259f.html#ga57ca34a488f06d57f2219be23fa0259f',1,'ucs_class_pb.h']]],
+ ['ucs_5frm_5fsetrouteactive',['Ucs_Rm_SetRouteActive',['../group___g___u_c_s___r_o_u_t_i_n_g_gabb9185254132bb29ee0af137c36f50b8.html#gabb9185254132bb29ee0af137c36f50b8',1,'ucs_class_pb.h']]],
+ ['ucs_5frm_5fstart',['Ucs_Rm_Start',['../group___g___u_c_s___r_o_u_t_i_n_g_gaaa23aca8279da197192210fe11889452.html#gaaa23aca8279da197192210fe11889452',1,'ucs_class_pb.h']]],
+ ['ucs_5fservice',['Ucs_Service',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga649fb9128df6f634fc86aa03b374d822.html#ga649fb9128df6f634fc86aa03b374d822',1,'ucs_class_pb.h']]],
+ ['ucs_5fsetdefaultconfig',['Ucs_SetDefaultConfig',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga64b50780725a0dc8693b5b73f8345ad6.html#ga64b50780725a0dc8693b5b73f8345ad6',1,'ucs_class_pb.h']]],
+ ['ucs_5fstop',['Ucs_Stop',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga61381bd30fb6630b6c5d6ecc8968e983.html#ga61381bd30fb6630b6c5d6ecc8968e983',1,'ucs_class_pb.h']]],
+ ['ucs_5fxrm_5fstream_5fgetportconfig',['Ucs_Xrm_Stream_GetPortConfig',['../group___g___u_c_s___x_r_m___s_t_r_e_a_m_ga05e65cb477a3ff894de32425eb41294f.html#ga05e65cb477a3ff894de32425eb41294f',1,'ucs_class_pb.h']]],
+ ['ucs_5fxrm_5fstream_5fsetportconfig',['Ucs_Xrm_Stream_SetPortConfig',['../group___g___u_c_s___x_r_m___s_t_r_e_a_m_ga481fb8455d6165c5913ead778765d46e.html#ga481fb8455d6165c5913ead778765d46e',1,'ucs_class_pb.h']]]
+];
diff --git a/ucs2-lib/doc/html/search/groups_61.html b/ucs2-lib/doc/html/search/groups_61.html
new file mode 100644
index 0000000..260ea61
--- /dev/null
+++ b/ucs2-lib/doc/html/search/groups_61.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_61.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/groups_61.js b/ucs2-lib/doc/html/search/groups_61.js
new file mode 100644
index 0000000..14a5247
--- /dev/null
+++ b/ucs2-lib/doc/html/search/groups_61.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['application_20message_20service',['Application Message Service',['../group___g___u_c_s___a_m_s.html',1,'']]],
+ ['additional_20streaming_20port_20functions',['Additional Streaming Port Functions',['../group___g___u_c_s___x_r_m___s_t_r_e_a_m.html',1,'']]]
+];
diff --git a/ucs2-lib/doc/html/search/groups_62.html b/ucs2-lib/doc/html/search/groups_62.html
new file mode 100644
index 0000000..9c8b752
--- /dev/null
+++ b/ucs2-lib/doc/html/search/groups_62.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_62.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/groups_62.js b/ucs2-lib/doc/html/search/groups_62.js
new file mode 100644
index 0000000..5c4f987
--- /dev/null
+++ b/ucs2-lib/doc/html/search/groups_62.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['backchannel_20diagnosis',['BackChannel Diagnosis',['../group___g___u_c_s___b_c___d_i_a_g.html',1,'']]]
+];
diff --git a/ucs2-lib/doc/html/search/groups_63.html b/ucs2-lib/doc/html/search/groups_63.html
new file mode 100644
index 0000000..dd75625
--- /dev/null
+++ b/ucs2-lib/doc/html/search/groups_63.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_63.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/groups_63.js b/ucs2-lib/doc/html/search/groups_63.js
new file mode 100644
index 0000000..ef1d9d8
--- /dev/null
+++ b/ucs2-lib/doc/html/search/groups_63.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['command_20interpreter',['Command Interpreter',['../group___g___u_c_s___c_m_d.html',1,'']]]
+];
diff --git a/ucs2-lib/doc/html/search/groups_65.html b/ucs2-lib/doc/html/search/groups_65.html
new file mode 100644
index 0000000..f084d02
--- /dev/null
+++ b/ucs2-lib/doc/html/search/groups_65.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_65.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/groups_65.js b/ucs2-lib/doc/html/search/groups_65.js
new file mode 100644
index 0000000..ec3f941
--- /dev/null
+++ b/ucs2-lib/doc/html/search/groups_65.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['extended_20resources_20management',['Extended Resources Management',['../group___g___u_c_s___i_r_m.html',1,'']]]
+];
diff --git a/ucs2-lib/doc/html/search/groups_67.html b/ucs2-lib/doc/html/search/groups_67.html
new file mode 100644
index 0000000..4fc9422
--- /dev/null
+++ b/ucs2-lib/doc/html/search/groups_67.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_67.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/groups_67.js b/ucs2-lib/doc/html/search/groups_67.js
new file mode 100644
index 0000000..0787322
--- /dev/null
+++ b/ucs2-lib/doc/html/search/groups_67.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['gpio',['GPIO',['../group___g___u_c_s___g_p_i_o.html',1,'']]],
+ ['gpio_20referred_20types',['GPIO Referred Types',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s.html',1,'']]]
+];
diff --git a/ucs2-lib/doc/html/search/groups_69.html b/ucs2-lib/doc/html/search/groups_69.html
new file mode 100644
index 0000000..2bcea06
--- /dev/null
+++ b/ucs2-lib/doc/html/search/groups_69.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_69.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/groups_69.js b/ucs2-lib/doc/html/search/groups_69.js
new file mode 100644
index 0000000..28f8321
--- /dev/null
+++ b/ucs2-lib/doc/html/search/groups_69.js
@@ -0,0 +1,8 @@
+var searchData=
+[
+ ['i2c',['I2C',['../group___g___u_c_s___i2_c.html',1,'']]],
+ ['i2c_20referred_20types',['I2C Referred Types',['../group___g___u_c_s___i2_c___t_y_p_e_s.html',1,'']]],
+ ['inic',['INIC',['../group___g___u_c_s___i_n_i_c.html',1,'']]],
+ ['initialization_20and_20service',['Initialization and Service',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v.html',1,'']]],
+ ['initialization_20and_20service_20types',['Initialization and Service Types',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s.html',1,'']]]
+];
diff --git a/ucs2-lib/doc/html/search/groups_6c.html b/ucs2-lib/doc/html/search/groups_6c.html
new file mode 100644
index 0000000..157903c
--- /dev/null
+++ b/ucs2-lib/doc/html/search/groups_6c.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_6c.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/groups_6c.js b/ucs2-lib/doc/html/search/groups_6c.js
new file mode 100644
index 0000000..0b5db41
--- /dev/null
+++ b/ucs2-lib/doc/html/search/groups_6c.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['low_2dlevel_20driver',['Low-Level Driver',['../group___g___u_c_s___l_l_d.html',1,'']]],
+ ['low_2dlevel_20driver_20api',['Low-Level Driver API',['../group___g___u_c_s___l_l_d___a_p_i.html',1,'']]]
+];
diff --git a/ucs2-lib/doc/html/search/groups_6d.html b/ucs2-lib/doc/html/search/groups_6d.html
new file mode 100644
index 0000000..7caa8d7
--- /dev/null
+++ b/ucs2-lib/doc/html/search/groups_6d.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_6d.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/groups_6d.js b/ucs2-lib/doc/html/search/groups_6d.js
new file mode 100644
index 0000000..d7fc004
--- /dev/null
+++ b/ucs2-lib/doc/html/search/groups_6d.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['manager',['Manager',['../group___g___u_c_s___m_g_r.html',1,'']]],
+ ['miscellaneous',['Miscellaneous',['../group___g___u_c_s___m_i_s_c.html',1,'']]]
+];
diff --git a/ucs2-lib/doc/html/search/groups_6e.html b/ucs2-lib/doc/html/search/groups_6e.html
new file mode 100644
index 0000000..5e9e7d8
--- /dev/null
+++ b/ucs2-lib/doc/html/search/groups_6e.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_6e.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/groups_6e.js b/ucs2-lib/doc/html/search/groups_6e.js
new file mode 100644
index 0000000..e26d658
--- /dev/null
+++ b/ucs2-lib/doc/html/search/groups_6e.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+ ['network',['Network',['../group___g___u_c_s___n_e_t.html',1,'']]],
+ ['node_20discovery',['Node Discovery',['../group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y.html',1,'']]],
+ ['node_20scripting',['Node Scripting',['../group___g___u_c_s___s_c_r_i_p_t_i_n_g.html',1,'']]]
+];
diff --git a/ucs2-lib/doc/html/search/groups_70.html b/ucs2-lib/doc/html/search/groups_70.html
new file mode 100644
index 0000000..2cb8f74
--- /dev/null
+++ b/ucs2-lib/doc/html/search/groups_70.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_70.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/groups_70.js b/ucs2-lib/doc/html/search/groups_70.js
new file mode 100644
index 0000000..e3bc797
--- /dev/null
+++ b/ucs2-lib/doc/html/search/groups_70.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['peripheral_20bus_20interface',['Peripheral Bus Interface',['../group___g___u_c_s___p_b_i.html',1,'']]],
+ ['programming',['Programming',['../group___g___u_c_s___p_r_o_g___m_o_d_e.html',1,'']]]
+];
diff --git a/ucs2-lib/doc/html/search/groups_72.html b/ucs2-lib/doc/html/search/groups_72.html
new file mode 100644
index 0000000..a4430da
--- /dev/null
+++ b/ucs2-lib/doc/html/search/groups_72.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_72.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/groups_72.js b/ucs2-lib/doc/html/search/groups_72.js
new file mode 100644
index 0000000..c86248b
--- /dev/null
+++ b/ucs2-lib/doc/html/search/groups_72.js
@@ -0,0 +1,13 @@
+var searchData=
+[
+ ['referred_20types',['Referred Types',['../group___g___u_c_s___a_m_s___t_y_p_e_s.html',1,'']]],
+ ['referred_20types',['Referred Types',['../group___g___u_c_s___b_c___d_i_a_g___t_y_p_e_s.html',1,'']]],
+ ['referred_20types',['Referred Types',['../group___g___u_c_s___c_m_d___t_y_p_e_s.html',1,'']]],
+ ['referred_20types',['Referred Types',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s.html',1,'']]],
+ ['referred_20types',['Referred Types',['../group___g___u_c_s___l_l_d___t_y_p_e_s.html',1,'']]],
+ ['referred_20types',['Referred Types',['../group___g___u_c_s___n_e_t___t_y_p_e_s.html',1,'']]],
+ ['referred_20types',['Referred Types',['../group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y___t_y_p_e_s.html',1,'']]],
+ ['referred_20types',['Referred Types',['../group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s.html',1,'']]],
+ ['routing_20management',['Routing Management',['../group___g___u_c_s___r_o_u_t_i_n_g.html',1,'']]],
+ ['referred_20types',['Referred Types',['../group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s.html',1,'']]]
+];
diff --git a/ucs2-lib/doc/html/search/groups_74.html b/ucs2-lib/doc/html/search/groups_74.html
new file mode 100644
index 0000000..315d58c
--- /dev/null
+++ b/ucs2-lib/doc/html/search/groups_74.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_74.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/groups_74.js b/ucs2-lib/doc/html/search/groups_74.js
new file mode 100644
index 0000000..e62b582
--- /dev/null
+++ b/ucs2-lib/doc/html/search/groups_74.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['tracing_2fdebugging',['Tracing/Debugging',['../group___g___u_c_s___t_r_a_c_e.html',1,'']]],
+ ['tracing_2fdebugging_20types',['Tracing/Debugging Types',['../group___g___u_c_s___t_r_a_c_e___t_y_p_e_s.html',1,'']]]
+];
diff --git a/ucs2-lib/doc/html/search/groups_78.html b/ucs2-lib/doc/html/search/groups_78.html
new file mode 100644
index 0000000..94e9927
--- /dev/null
+++ b/ucs2-lib/doc/html/search/groups_78.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_78.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/groups_78.js b/ucs2-lib/doc/html/search/groups_78.js
new file mode 100644
index 0000000..d7c21da
--- /dev/null
+++ b/ucs2-lib/doc/html/search/groups_78.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+ ['xrm_20configuration_20macros',['XRM Configuration Macros',['../group___g___u_c_s___x_r_m___c_f_g.html',1,'']]],
+ ['xrm_20subtypes',['XRM SubTypes',['../group___g___u_c_s___x_r_m___e_n_u_m.html',1,'']]],
+ ['xrm_20referred_20types',['XRM Referred Types',['../group___g___u_c_s___x_r_m___t_y_p_e_s.html',1,'']]]
+];
diff --git a/ucs2-lib/doc/html/search/mag_sel.png b/ucs2-lib/doc/html/search/mag_sel.png
new file mode 100644
index 0000000..81f6040
--- /dev/null
+++ b/ucs2-lib/doc/html/search/mag_sel.png
Binary files differ
diff --git a/ucs2-lib/doc/html/search/nomatches.html b/ucs2-lib/doc/html/search/nomatches.html
new file mode 100644
index 0000000..b1ded27
--- /dev/null
+++ b/ucs2-lib/doc/html/search/nomatches.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/pages_61.html b/ucs2-lib/doc/html/search/pages_61.html
new file mode 100644
index 0000000..d5d1efa
--- /dev/null
+++ b/ucs2-lib/doc/html/search/pages_61.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_61.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/pages_61.js b/ucs2-lib/doc/html/search/pages_61.js
new file mode 100644
index 0000000..7c713be
--- /dev/null
+++ b/ucs2-lib/doc/html/search/pages_61.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['appendix',['Appendix',['../_p__d_o_c_u__a_p_p_e_n_d_i_x.html',1,'index']]],
+ ['application_20message_20service',['Application Message Service',['../_p__u_m__s_t_a_r_t_e_d__a_m_s.html',1,'P_UM_GETTING_STARTED']]]
+];
diff --git a/ucs2-lib/doc/html/search/pages_62.html b/ucs2-lib/doc/html/search/pages_62.html
new file mode 100644
index 0000000..d777475
--- /dev/null
+++ b/ucs2-lib/doc/html/search/pages_62.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_62.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/pages_62.js b/ucs2-lib/doc/html/search/pages_62.js
new file mode 100644
index 0000000..342eb74
--- /dev/null
+++ b/ucs2-lib/doc/html/search/pages_62.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['backchannel_20diagnosis',['BackChannel Diagnosis',['../_p__u_m__b_a_c_k_c_h_a_n_n_e_l__d_i_a_g.html',1,'P_UM_GETTING_STARTED']]]
+];
diff --git a/ucs2-lib/doc/html/search/pages_63.html b/ucs2-lib/doc/html/search/pages_63.html
new file mode 100644
index 0000000..3971181
--- /dev/null
+++ b/ucs2-lib/doc/html/search/pages_63.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_63.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/pages_63.js b/ucs2-lib/doc/html/search/pages_63.js
new file mode 100644
index 0000000..b0c6cde
--- /dev/null
+++ b/ucs2-lib/doc/html/search/pages_63.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['command_20interpreter',['Command Interpreter',['../_p__u_m__s_t_a_r_t_e_d__c_m_d.html',1,'P_UM_GETTING_STARTED']]]
+];
diff --git a/ucs2-lib/doc/html/search/pages_67.html b/ucs2-lib/doc/html/search/pages_67.html
new file mode 100644
index 0000000..aab7556
--- /dev/null
+++ b/ucs2-lib/doc/html/search/pages_67.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_67.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/pages_67.js b/ucs2-lib/doc/html/search/pages_67.js
new file mode 100644
index 0000000..ca09dff
--- /dev/null
+++ b/ucs2-lib/doc/html/search/pages_67.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['getting_20started',['Getting Started',['../_p__u_m__g_e_t_t_i_n_g__s_t_a_r_t_e_d.html',1,'index']]]
+];
diff --git a/ucs2-lib/doc/html/search/pages_69.html b/ucs2-lib/doc/html/search/pages_69.html
new file mode 100644
index 0000000..e90d62d
--- /dev/null
+++ b/ucs2-lib/doc/html/search/pages_69.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_69.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/pages_69.js b/ucs2-lib/doc/html/search/pages_69.js
new file mode 100644
index 0000000..2e0f874
--- /dev/null
+++ b/ucs2-lib/doc/html/search/pages_69.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['initialization',['Initialization',['../_p__u_m__s_t_a_r_t_e_d__i_n_i_t.html',1,'P_UM_GETTING_STARTED']]]
+];
diff --git a/ucs2-lib/doc/html/search/pages_6c.html b/ucs2-lib/doc/html/search/pages_6c.html
new file mode 100644
index 0000000..d3f9c93
--- /dev/null
+++ b/ucs2-lib/doc/html/search/pages_6c.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_6c.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/pages_6c.js b/ucs2-lib/doc/html/search/pages_6c.js
new file mode 100644
index 0000000..5f3b8ac
--- /dev/null
+++ b/ucs2-lib/doc/html/search/pages_6c.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['list_20of_20images',['List of Images',['../_p__u_m__o_s81118__i_m_g.html',1,'']]],
+ ['low_2dlevel_20driver',['Low-Level Driver',['../_p__u_m__s_t_a_r_t_e_d__l_l_d.html',1,'P_UM_GETTING_STARTED']]]
+];
diff --git a/ucs2-lib/doc/html/search/pages_6d.html b/ucs2-lib/doc/html/search/pages_6d.html
new file mode 100644
index 0000000..958ccc6
--- /dev/null
+++ b/ucs2-lib/doc/html/search/pages_6d.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_6d.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/pages_6d.js b/ucs2-lib/doc/html/search/pages_6d.js
new file mode 100644
index 0000000..7f69dee
--- /dev/null
+++ b/ucs2-lib/doc/html/search/pages_6d.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['manager',['Manager',['../_p__u_m__s_t_a_r_t_e_d__m_g_r.html',1,'P_UM_GETTING_STARTED']]]
+];
diff --git a/ucs2-lib/doc/html/search/pages_6e.html b/ucs2-lib/doc/html/search/pages_6e.html
new file mode 100644
index 0000000..8594b50
--- /dev/null
+++ b/ucs2-lib/doc/html/search/pages_6e.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_6e.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/pages_6e.js b/ucs2-lib/doc/html/search/pages_6e.js
new file mode 100644
index 0000000..b7b9596
--- /dev/null
+++ b/ucs2-lib/doc/html/search/pages_6e.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+ ['notitle',['notitle',['../index.html',1,'']]],
+ ['networking_20management',['Networking Management',['../_p__u_m__s_t_a_r_t_e_d__n_e_t.html',1,'P_UM_GETTING_STARTED']]],
+ ['node_20discovery',['Node Discovery',['../_p__u_m__s_t_a_r_t_e_d__n_o_d_e__d_i_s.html',1,'P_UM_GETTING_STARTED']]],
+ ['node_20scripting',['Node Scripting',['../_p__u_m__s_t_a_r_t_e_d__n_o_d_e__s_c_r_i_p_t.html',1,'P_UM_GETTING_STARTED']]]
+];
diff --git a/ucs2-lib/doc/html/search/pages_6f.html b/ucs2-lib/doc/html/search/pages_6f.html
new file mode 100644
index 0000000..9c79c3f
--- /dev/null
+++ b/ucs2-lib/doc/html/search/pages_6f.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_6f.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/pages_6f.js b/ucs2-lib/doc/html/search/pages_6f.js
new file mode 100644
index 0000000..da2a0c9
--- /dev/null
+++ b/ucs2-lib/doc/html/search/pages_6f.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['os81118_20user_27s_20guide',['OS81118 User&apos;s Guide',['../_p__u_m__o_s81118.html',1,'P_DOCU_APPENDIX']]]
+];
diff --git a/ucs2-lib/doc/html/search/pages_70.html b/ucs2-lib/doc/html/search/pages_70.html
new file mode 100644
index 0000000..f85921e
--- /dev/null
+++ b/ucs2-lib/doc/html/search/pages_70.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_70.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/pages_70.js b/ucs2-lib/doc/html/search/pages_70.js
new file mode 100644
index 0000000..196f0d3
--- /dev/null
+++ b/ucs2-lib/doc/html/search/pages_70.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['preparations',['Preparations',['../_p__u_m__s_t_a_r_t_e_d__p_r_e_p.html',1,'P_UM_GETTING_STARTED']]],
+ ['programming',['Programming',['../_p__u_m__s_t_a_r_t_e_d__p_r_o_g_r_a_m_m_i_n_g.html',1,'P_UM_GETTING_STARTED']]]
+];
diff --git a/ucs2-lib/doc/html/search/pages_72.html b/ucs2-lib/doc/html/search/pages_72.html
new file mode 100644
index 0000000..ee0d002
--- /dev/null
+++ b/ucs2-lib/doc/html/search/pages_72.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_72.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/pages_72.js b/ucs2-lib/doc/html/search/pages_72.js
new file mode 100644
index 0000000..4e7e03a
--- /dev/null
+++ b/ucs2-lib/doc/html/search/pages_72.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['release_20history',['Release History',['../_p__u_m__h_i_s_t_o_r_y.html',1,'P_DOCU_APPENDIX']]],
+ ['routing_20management',['Routing Management',['../_p__u_m__s_t_a_r_t_e_d__r_m.html',1,'P_UM_GETTING_STARTED']]]
+];
diff --git a/ucs2-lib/doc/html/search/pages_73.html b/ucs2-lib/doc/html/search/pages_73.html
new file mode 100644
index 0000000..ba42c50
--- /dev/null
+++ b/ucs2-lib/doc/html/search/pages_73.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_73.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/pages_73.js b/ucs2-lib/doc/html/search/pages_73.js
new file mode 100644
index 0000000..0d13774
--- /dev/null
+++ b/ucs2-lib/doc/html/search/pages_73.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['service',['Service',['../_p__u_m__s_t_a_r_t_e_d__s_r_v.html',1,'P_UM_GETTING_STARTED']]],
+ ['synchronous_20vs_2e_20asynchronous_20results',['Synchronous vs. Asynchronous Results',['../_p__u_m__s_y_n_c__a_n_d__a_s_y_n_c__r_e_s_u_l_t_s.html',1,'P_UM_GETTING_STARTED']]]
+];
diff --git a/ucs2-lib/doc/html/search/search.css b/ucs2-lib/doc/html/search/search.css
new file mode 100644
index 0000000..31db98d
--- /dev/null
+++ b/ucs2-lib/doc/html/search/search.css
@@ -0,0 +1,238 @@
+/*---------------- Search Box */
+
+#FSearchBox {
+ float: left;
+}
+
+#MSearchBox {
+ white-space : nowrap;
+ position: absolute;
+ float: none;
+ display: inline;
+ margin-top: 0px;
+ right: 0px;
+ width: 170px;
+ z-index: 102;
+ background-color: white;
+}
+
+#MSearchBox .left
+{
+ display:block;
+ position:absolute;
+ left:10px;
+ width:20px;
+ height:19px;
+ background:url('search_l.png') no-repeat;
+ background-position:right;
+}
+
+#MSearchSelect {
+ display:block;
+ position:absolute;
+ width:20px;
+ height:19px;
+}
+
+.left #MSearchSelect {
+ left:4px;
+}
+
+.right #MSearchSelect {
+ right:5px;
+}
+
+#MSearchField {
+ display:block;
+ position:absolute;
+ height:19px;
+ background:url('search_m.png') repeat-x;
+ border:none;
+ width:116px;
+ margin-left:20px;
+ padding-left:4px;
+ color: #909090;
+ outline: none;
+ font: 9pt Arial, Verdana, sans-serif;
+}
+
+#FSearchBox #MSearchField {
+ margin-left:15px;
+}
+
+#MSearchBox .right {
+ display:block;
+ position:absolute;
+ right:10px;
+ top:0px;
+ width:20px;
+ height:19px;
+ background:url('search_r.png') no-repeat;
+ background-position:left;
+}
+
+#MSearchClose {
+ display: none;
+ position: absolute;
+ top: 4px;
+ background : none;
+ border: none;
+ margin: 0px 4px 0px 0px;
+ padding: 0px 0px;
+ outline: none;
+}
+
+.left #MSearchClose {
+ left: 6px;
+}
+
+.right #MSearchClose {
+ right: 2px;
+}
+
+.MSearchBoxActive #MSearchField {
+ color: #000000;
+}
+
+/*---------------- Search filter selection */
+
+#MSearchSelectWindow {
+ display: none;
+ position: absolute;
+ left: 0; top: 0;
+ border: 1px solid #8A8A8A;
+ background-color: #F8F8F8;
+ z-index: 1;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ -moz-border-radius: 4px;
+ -webkit-border-top-left-radius: 4px;
+ -webkit-border-top-right-radius: 4px;
+ -webkit-border-bottom-left-radius: 4px;
+ -webkit-border-bottom-right-radius: 4px;
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+}
+
+.SelectItem {
+ font: 8pt Arial, Verdana, sans-serif;
+ padding-left: 2px;
+ padding-right: 12px;
+ border: 0px;
+}
+
+span.SelectionMark {
+ margin-right: 4px;
+ font-family: monospace;
+ outline-style: none;
+ text-decoration: none;
+}
+
+a.SelectItem {
+ display: block;
+ outline-style: none;
+ color: #000000;
+ text-decoration: none;
+ padding-left: 6px;
+ padding-right: 12px;
+}
+
+a.SelectItem:focus,
+a.SelectItem:active {
+ color: #000000;
+ outline-style: none;
+ text-decoration: none;
+}
+
+a.SelectItem:hover {
+ color: #FFFFFF;
+ background-color: #373737;
+ outline-style: none;
+ text-decoration: none;
+ cursor: pointer;
+ display: block;
+}
+
+/*---------------- Search results window */
+
+iframe#MSearchResults {
+ width: 60ex;
+ height: 15em;
+}
+
+#MSearchResultsWindow {
+ display: none;
+ position: absolute;
+ left: 0; top: 0;
+ border: 1px solid #000;
+ background-color: #EBEBEB;
+}
+
+/* ----------------------------------- */
+
+
+#SRIndex {
+ clear:both;
+ padding-bottom: 15px;
+}
+
+.SREntry {
+ font-size: 10pt;
+ padding-left: 1ex;
+}
+
+.SRPage .SREntry {
+ font-size: 8pt;
+ padding: 1px 5px;
+}
+
+body.SRPage {
+ margin: 5px 2px;
+}
+
+.SRChildren {
+ padding-left: 3ex; padding-bottom: .5em
+}
+
+.SRPage .SRChildren {
+ display: none;
+}
+
+.SRSymbol {
+ font-weight: bold;
+ color: #3F3F3F;
+ font-family: Arial, Verdana, sans-serif;
+ text-decoration: none;
+ outline: none;
+}
+
+a.SRScope {
+ display: block;
+ color: #3F3F3F;
+ font-family: Arial, Verdana, sans-serif;
+ text-decoration: none;
+ outline: none;
+}
+
+a.SRSymbol:focus, a.SRSymbol:active,
+a.SRScope:focus, a.SRScope:active {
+ text-decoration: underline;
+}
+
+span.SRScope {
+ padding-left: 4px;
+}
+
+.SRPage .SRStatus {
+ padding: 2px 5px;
+ font-size: 8pt;
+ font-style: italic;
+}
+
+.SRResult {
+ display: none;
+}
+
+DIV.searchresults {
+ margin-left: 10px;
+ margin-right: 10px;
+}
diff --git a/ucs2-lib/doc/html/search/search.js b/ucs2-lib/doc/html/search/search.js
new file mode 100644
index 0000000..0e0318e
--- /dev/null
+++ b/ucs2-lib/doc/html/search/search.js
@@ -0,0 +1,811 @@
+// Search script generated by doxygen
+// Copyright (C) 2009 by Dimitri van Heesch.
+
+// The code in this file is loosly based on main.js, part of Natural Docs,
+// which is Copyright (C) 2003-2008 Greg Valure
+// Natural Docs is licensed under the GPL.
+
+var indexSectionsWithContent =
+{
+ 0: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111101111101111001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ 1: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000100000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ 2: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ 3: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111101111101111001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ 4: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ 5: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ 6: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ 7: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111010101001110101010001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ 8: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111000101001111101100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+};
+
+var indexSectionNames =
+{
+ 0: "all",
+ 1: "classes",
+ 2: "functions",
+ 3: "variables",
+ 4: "typedefs",
+ 5: "enums",
+ 6: "enumvalues",
+ 7: "groups",
+ 8: "pages"
+};
+
+function convertToId(search)
+{
+ var result = '';
+ for (i=0;i<search.length;i++)
+ {
+ var c = search.charAt(i);
+ var cn = c.charCodeAt(0);
+ if (c.match(/[a-z0-9]/))
+ {
+ result+=c;
+ }
+ else if (cn<16)
+ {
+ result+="_0"+cn.toString(16);
+ }
+ else
+ {
+ result+="_"+cn.toString(16);
+ }
+ }
+ return result;
+}
+
+function getXPos(item)
+{
+ var x = 0;
+ if (item.offsetWidth)
+ {
+ while (item && item!=document.body)
+ {
+ x += item.offsetLeft;
+ item = item.offsetParent;
+ }
+ }
+ return x;
+}
+
+function getYPos(item)
+{
+ var y = 0;
+ if (item.offsetWidth)
+ {
+ while (item && item!=document.body)
+ {
+ y += item.offsetTop;
+ item = item.offsetParent;
+ }
+ }
+ return y;
+}
+
+/* A class handling everything associated with the search panel.
+
+ Parameters:
+ name - The name of the global variable that will be
+ storing this instance. Is needed to be able to set timeouts.
+ resultPath - path to use for external files
+*/
+function SearchBox(name, resultsPath, inFrame, label)
+{
+ if (!name || !resultsPath) { alert("Missing parameters to SearchBox."); }
+
+ // ---------- Instance variables
+ this.name = name;
+ this.resultsPath = resultsPath;
+ this.keyTimeout = 0;
+ this.keyTimeoutLength = 500;
+ this.closeSelectionTimeout = 300;
+ this.lastSearchValue = "";
+ this.lastResultsPage = "";
+ this.hideTimeout = 0;
+ this.searchIndex = 0;
+ this.searchActive = false;
+ this.insideFrame = inFrame;
+ this.searchLabel = label;
+
+ // ----------- DOM Elements
+
+ this.DOMSearchField = function()
+ { return document.getElementById("MSearchField"); }
+
+ this.DOMSearchSelect = function()
+ { return document.getElementById("MSearchSelect"); }
+
+ this.DOMSearchSelectWindow = function()
+ { return document.getElementById("MSearchSelectWindow"); }
+
+ this.DOMPopupSearchResults = function()
+ { return document.getElementById("MSearchResults"); }
+
+ this.DOMPopupSearchResultsWindow = function()
+ { return document.getElementById("MSearchResultsWindow"); }
+
+ this.DOMSearchClose = function()
+ { return document.getElementById("MSearchClose"); }
+
+ this.DOMSearchBox = function()
+ { return document.getElementById("MSearchBox"); }
+
+ // ------------ Event Handlers
+
+ // Called when focus is added or removed from the search field.
+ this.OnSearchFieldFocus = function(isActive)
+ {
+ this.Activate(isActive);
+ }
+
+ this.OnSearchSelectShow = function()
+ {
+ var searchSelectWindow = this.DOMSearchSelectWindow();
+ var searchField = this.DOMSearchSelect();
+
+ if (this.insideFrame)
+ {
+ var left = getXPos(searchField);
+ var top = getYPos(searchField);
+ left += searchField.offsetWidth + 6;
+ top += searchField.offsetHeight;
+
+ // show search selection popup
+ searchSelectWindow.style.display='block';
+ left -= searchSelectWindow.offsetWidth;
+ searchSelectWindow.style.left = left + 'px';
+ searchSelectWindow.style.top = top + 'px';
+ }
+ else
+ {
+ var left = getXPos(searchField);
+ var top = getYPos(searchField);
+ top += searchField.offsetHeight;
+
+ // show search selection popup
+ searchSelectWindow.style.display='block';
+ searchSelectWindow.style.left = left + 'px';
+ searchSelectWindow.style.top = top + 'px';
+ }
+
+ // stop selection hide timer
+ if (this.hideTimeout)
+ {
+ clearTimeout(this.hideTimeout);
+ this.hideTimeout=0;
+ }
+ return false; // to avoid "image drag" default event
+ }
+
+ this.OnSearchSelectHide = function()
+ {
+ this.hideTimeout = setTimeout(this.name +".CloseSelectionWindow()",
+ this.closeSelectionTimeout);
+ }
+
+ // Called when the content of the search field is changed.
+ this.OnSearchFieldChange = function(evt)
+ {
+ if (this.keyTimeout) // kill running timer
+ {
+ clearTimeout(this.keyTimeout);
+ this.keyTimeout = 0;
+ }
+
+ var e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==40 || e.keyCode==13)
+ {
+ if (e.shiftKey==1)
+ {
+ this.OnSearchSelectShow();
+ var win=this.DOMSearchSelectWindow();
+ for (i=0;i<win.childNodes.length;i++)
+ {
+ var child = win.childNodes[i]; // get span within a
+ if (child.className=='SelectItem')
+ {
+ child.focus();
+ return;
+ }
+ }
+ return;
+ }
+ else if (window.frames.MSearchResults.searchResults)
+ {
+ var elem = window.frames.MSearchResults.searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+ }
+ else if (e.keyCode==27) // Escape out of the search field
+ {
+ this.DOMSearchField().blur();
+ this.DOMPopupSearchResultsWindow().style.display = 'none';
+ this.DOMSearchClose().style.display = 'none';
+ this.lastSearchValue = '';
+ this.Activate(false);
+ return;
+ }
+
+ // strip whitespaces
+ var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+
+ if (searchValue != this.lastSearchValue) // search value has changed
+ {
+ if (searchValue != "") // non-empty search
+ {
+ // set timer for search update
+ this.keyTimeout = setTimeout(this.name + '.Search()',
+ this.keyTimeoutLength);
+ }
+ else // empty search field
+ {
+ this.DOMPopupSearchResultsWindow().style.display = 'none';
+ this.DOMSearchClose().style.display = 'none';
+ this.lastSearchValue = '';
+ }
+ }
+ }
+
+ this.SelectItemCount = function(id)
+ {
+ var count=0;
+ var win=this.DOMSearchSelectWindow();
+ for (i=0;i<win.childNodes.length;i++)
+ {
+ var child = win.childNodes[i]; // get span within a
+ if (child.className=='SelectItem')
+ {
+ count++;
+ }
+ }
+ return count;
+ }
+
+ this.SelectItemSet = function(id)
+ {
+ var i,j=0;
+ var win=this.DOMSearchSelectWindow();
+ for (i=0;i<win.childNodes.length;i++)
+ {
+ var child = win.childNodes[i]; // get span within a
+ if (child.className=='SelectItem')
+ {
+ var node = child.firstChild;
+ if (j==id)
+ {
+ node.innerHTML='&#8226;';
+ }
+ else
+ {
+ node.innerHTML='&#160;';
+ }
+ j++;
+ }
+ }
+ }
+
+ // Called when an search filter selection is made.
+ // set item with index id as the active item
+ this.OnSelectItem = function(id)
+ {
+ this.searchIndex = id;
+ this.SelectItemSet(id);
+ var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+ if (searchValue!="" && this.searchActive) // something was found -> do a search
+ {
+ this.Search();
+ }
+ }
+
+ this.OnSearchSelectKey = function(evt)
+ {
+ var e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==40 && this.searchIndex<this.SelectItemCount()) // Down
+ {
+ this.searchIndex++;
+ this.OnSelectItem(this.searchIndex);
+ }
+ else if (e.keyCode==38 && this.searchIndex>0) // Up
+ {
+ this.searchIndex--;
+ this.OnSelectItem(this.searchIndex);
+ }
+ else if (e.keyCode==13 || e.keyCode==27)
+ {
+ this.OnSelectItem(this.searchIndex);
+ this.CloseSelectionWindow();
+ this.DOMSearchField().focus();
+ }
+ return false;
+ }
+
+ // --------- Actions
+
+ // Closes the results window.
+ this.CloseResultsWindow = function()
+ {
+ this.DOMPopupSearchResultsWindow().style.display = 'none';
+ this.DOMSearchClose().style.display = 'none';
+ this.Activate(false);
+ }
+
+ this.CloseSelectionWindow = function()
+ {
+ this.DOMSearchSelectWindow().style.display = 'none';
+ }
+
+ // Performs a search.
+ this.Search = function()
+ {
+ this.keyTimeout = 0;
+
+ // strip leading whitespace
+ var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
+
+ var code = searchValue.toLowerCase().charCodeAt(0);
+ var hexCode;
+ if (code<16)
+ {
+ hexCode="0"+code.toString(16);
+ }
+ else
+ {
+ hexCode=code.toString(16);
+ }
+
+ var resultsPage;
+ var resultsPageWithSearch;
+ var hasResultsPage;
+
+ if (indexSectionsWithContent[this.searchIndex].charAt(code) == '1')
+ {
+ resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html';
+ resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
+ hasResultsPage = true;
+ }
+ else // nothing available for this search term
+ {
+ resultsPage = this.resultsPath + '/nomatches.html';
+ resultsPageWithSearch = resultsPage;
+ hasResultsPage = false;
+ }
+
+ window.frames.MSearchResults.location = resultsPageWithSearch;
+ var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
+
+ if (domPopupSearchResultsWindow.style.display!='block')
+ {
+ var domSearchBox = this.DOMSearchBox();
+ this.DOMSearchClose().style.display = 'inline';
+ if (this.insideFrame)
+ {
+ var domPopupSearchResults = this.DOMPopupSearchResults();
+ domPopupSearchResultsWindow.style.position = 'relative';
+ domPopupSearchResultsWindow.style.display = 'block';
+ var width = document.body.clientWidth - 8; // the -8 is for IE :-(
+ domPopupSearchResultsWindow.style.width = width + 'px';
+ domPopupSearchResults.style.width = width + 'px';
+ }
+ else
+ {
+ var domPopupSearchResults = this.DOMPopupSearchResults();
+ var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth;
+ var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1;
+ domPopupSearchResultsWindow.style.display = 'block';
+ left -= domPopupSearchResults.offsetWidth;
+ domPopupSearchResultsWindow.style.top = top + 'px';
+ domPopupSearchResultsWindow.style.left = left + 'px';
+ }
+ }
+
+ this.lastSearchValue = searchValue;
+ this.lastResultsPage = resultsPage;
+ }
+
+ // -------- Activation Functions
+
+ // Activates or deactivates the search panel, resetting things to
+ // their default values if necessary.
+ this.Activate = function(isActive)
+ {
+ if (isActive || // open it
+ this.DOMPopupSearchResultsWindow().style.display == 'block'
+ )
+ {
+ this.DOMSearchBox().className = 'MSearchBoxActive';
+
+ var searchField = this.DOMSearchField();
+
+ if (searchField.value == this.searchLabel) // clear "Search" term upon entry
+ {
+ searchField.value = '';
+ this.searchActive = true;
+ }
+ }
+ else if (!isActive) // directly remove the panel
+ {
+ this.DOMSearchBox().className = 'MSearchBoxInactive';
+ this.DOMSearchField().value = this.searchLabel;
+ this.searchActive = false;
+ this.lastSearchValue = ''
+ this.lastResultsPage = '';
+ }
+ }
+}
+
+// -----------------------------------------------------------------------
+
+// The class that handles everything on the search results page.
+function SearchResults(name)
+{
+ // The number of matches from the last run of <Search()>.
+ this.lastMatchCount = 0;
+ this.lastKey = 0;
+ this.repeatOn = false;
+
+ // Toggles the visibility of the passed element ID.
+ this.FindChildElement = function(id)
+ {
+ var parentElement = document.getElementById(id);
+ var element = parentElement.firstChild;
+
+ while (element && element!=parentElement)
+ {
+ if (element.nodeName == 'DIV' && element.className == 'SRChildren')
+ {
+ return element;
+ }
+
+ if (element.nodeName == 'DIV' && element.hasChildNodes())
+ {
+ element = element.firstChild;
+ }
+ else if (element.nextSibling)
+ {
+ element = element.nextSibling;
+ }
+ else
+ {
+ do
+ {
+ element = element.parentNode;
+ }
+ while (element && element!=parentElement && !element.nextSibling);
+
+ if (element && element!=parentElement)
+ {
+ element = element.nextSibling;
+ }
+ }
+ }
+ }
+
+ this.Toggle = function(id)
+ {
+ var element = this.FindChildElement(id);
+ if (element)
+ {
+ if (element.style.display == 'block')
+ {
+ element.style.display = 'none';
+ }
+ else
+ {
+ element.style.display = 'block';
+ }
+ }
+ }
+
+ // Searches for the passed string. If there is no parameter,
+ // it takes it from the URL query.
+ //
+ // Always returns true, since other documents may try to call it
+ // and that may or may not be possible.
+ this.Search = function(search)
+ {
+ if (!search) // get search word from URL
+ {
+ search = window.location.search;
+ search = search.substring(1); // Remove the leading '?'
+ search = unescape(search);
+ }
+
+ search = search.replace(/^ +/, ""); // strip leading spaces
+ search = search.replace(/ +$/, ""); // strip trailing spaces
+ search = search.toLowerCase();
+ search = convertToId(search);
+
+ var resultRows = document.getElementsByTagName("div");
+ var matches = 0;
+
+ var i = 0;
+ while (i < resultRows.length)
+ {
+ var row = resultRows.item(i);
+ if (row.className == "SRResult")
+ {
+ var rowMatchName = row.id.toLowerCase();
+ rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_'
+
+ if (search.length<=rowMatchName.length &&
+ rowMatchName.substr(0, search.length)==search)
+ {
+ row.style.display = 'block';
+ matches++;
+ }
+ else
+ {
+ row.style.display = 'none';
+ }
+ }
+ i++;
+ }
+ document.getElementById("Searching").style.display='none';
+ if (matches == 0) // no results
+ {
+ document.getElementById("NoMatches").style.display='block';
+ }
+ else // at least one result
+ {
+ document.getElementById("NoMatches").style.display='none';
+ }
+ this.lastMatchCount = matches;
+ return true;
+ }
+
+ // return the first item with index index or higher that is visible
+ this.NavNext = function(index)
+ {
+ var focusItem;
+ while (1)
+ {
+ var focusName = 'Item'+index;
+ focusItem = document.getElementById(focusName);
+ if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
+ {
+ break;
+ }
+ else if (!focusItem) // last element
+ {
+ break;
+ }
+ focusItem=null;
+ index++;
+ }
+ return focusItem;
+ }
+
+ this.NavPrev = function(index)
+ {
+ var focusItem;
+ while (1)
+ {
+ var focusName = 'Item'+index;
+ focusItem = document.getElementById(focusName);
+ if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
+ {
+ break;
+ }
+ else if (!focusItem) // last element
+ {
+ break;
+ }
+ focusItem=null;
+ index--;
+ }
+ return focusItem;
+ }
+
+ this.ProcessKeys = function(e)
+ {
+ if (e.type == "keydown")
+ {
+ this.repeatOn = false;
+ this.lastKey = e.keyCode;
+ }
+ else if (e.type == "keypress")
+ {
+ if (!this.repeatOn)
+ {
+ if (this.lastKey) this.repeatOn = true;
+ return false; // ignore first keypress after keydown
+ }
+ }
+ else if (e.type == "keyup")
+ {
+ this.lastKey = 0;
+ this.repeatOn = false;
+ }
+ return this.lastKey!=0;
+ }
+
+ this.Nav = function(evt,itemIndex)
+ {
+ var e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==13) return true;
+ if (!this.ProcessKeys(e)) return false;
+
+ if (this.lastKey==38) // Up
+ {
+ var newIndex = itemIndex-1;
+ var focusItem = this.NavPrev(newIndex);
+ if (focusItem)
+ {
+ var child = this.FindChildElement(focusItem.parentNode.parentNode.id);
+ if (child && child.style.display == 'block') // children visible
+ {
+ var n=0;
+ var tmpElem;
+ while (1) // search for last child
+ {
+ tmpElem = document.getElementById('Item'+newIndex+'_c'+n);
+ if (tmpElem)
+ {
+ focusItem = tmpElem;
+ }
+ else // found it!
+ {
+ break;
+ }
+ n++;
+ }
+ }
+ }
+ if (focusItem)
+ {
+ focusItem.focus();
+ }
+ else // return focus to search field
+ {
+ parent.document.getElementById("MSearchField").focus();
+ }
+ }
+ else if (this.lastKey==40) // Down
+ {
+ var newIndex = itemIndex+1;
+ var focusItem;
+ var item = document.getElementById('Item'+itemIndex);
+ var elem = this.FindChildElement(item.parentNode.parentNode.id);
+ if (elem && elem.style.display == 'block') // children visible
+ {
+ focusItem = document.getElementById('Item'+itemIndex+'_c0');
+ }
+ if (!focusItem) focusItem = this.NavNext(newIndex);
+ if (focusItem) focusItem.focus();
+ }
+ else if (this.lastKey==39) // Right
+ {
+ var item = document.getElementById('Item'+itemIndex);
+ var elem = this.FindChildElement(item.parentNode.parentNode.id);
+ if (elem) elem.style.display = 'block';
+ }
+ else if (this.lastKey==37) // Left
+ {
+ var item = document.getElementById('Item'+itemIndex);
+ var elem = this.FindChildElement(item.parentNode.parentNode.id);
+ if (elem) elem.style.display = 'none';
+ }
+ else if (this.lastKey==27) // Escape
+ {
+ parent.searchBox.CloseResultsWindow();
+ parent.document.getElementById("MSearchField").focus();
+ }
+ else if (this.lastKey==13) // Enter
+ {
+ return true;
+ }
+ return false;
+ }
+
+ this.NavChild = function(evt,itemIndex,childIndex)
+ {
+ var e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==13) return true;
+ if (!this.ProcessKeys(e)) return false;
+
+ if (this.lastKey==38) // Up
+ {
+ if (childIndex>0)
+ {
+ var newIndex = childIndex-1;
+ document.getElementById('Item'+itemIndex+'_c'+newIndex).focus();
+ }
+ else // already at first child, jump to parent
+ {
+ document.getElementById('Item'+itemIndex).focus();
+ }
+ }
+ else if (this.lastKey==40) // Down
+ {
+ var newIndex = childIndex+1;
+ var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex);
+ if (!elem) // last child, jump to parent next parent
+ {
+ elem = this.NavNext(itemIndex+1);
+ }
+ if (elem)
+ {
+ elem.focus();
+ }
+ }
+ else if (this.lastKey==27) // Escape
+ {
+ parent.searchBox.CloseResultsWindow();
+ parent.document.getElementById("MSearchField").focus();
+ }
+ else if (this.lastKey==13) // Enter
+ {
+ return true;
+ }
+ return false;
+ }
+}
+
+function setKeyActions(elem,action)
+{
+ elem.setAttribute('onkeydown',action);
+ elem.setAttribute('onkeypress',action);
+ elem.setAttribute('onkeyup',action);
+}
+
+function setClassAttr(elem,attr)
+{
+ elem.setAttribute('class',attr);
+ elem.setAttribute('className',attr);
+}
+
+function createResults()
+{
+ var results = document.getElementById("SRResults");
+ for (var e=0; e<searchData.length; e++)
+ {
+ var id = searchData[e][0];
+ var srResult = document.createElement('div');
+ srResult.setAttribute('id','SR_'+id);
+ setClassAttr(srResult,'SRResult');
+ var srEntry = document.createElement('div');
+ setClassAttr(srEntry,'SREntry');
+ var srLink = document.createElement('a');
+ srLink.setAttribute('id','Item'+e);
+ setKeyActions(srLink,'return searchResults.Nav(event,'+e+')');
+ setClassAttr(srLink,'SRSymbol');
+ srLink.innerHTML = searchData[e][1][0];
+ srEntry.appendChild(srLink);
+ if (searchData[e][1].length==2) // single result
+ {
+ srLink.setAttribute('href',searchData[e][1][1][0]);
+ if (searchData[e][1][1][1])
+ {
+ srLink.setAttribute('target','_parent');
+ }
+ var srScope = document.createElement('span');
+ setClassAttr(srScope,'SRScope');
+ srScope.innerHTML = searchData[e][1][1][2];
+ srEntry.appendChild(srScope);
+ }
+ else // multiple results
+ {
+ srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")');
+ var srChildren = document.createElement('div');
+ setClassAttr(srChildren,'SRChildren');
+ for (var c=0; c<searchData[e][1].length-1; c++)
+ {
+ var srChild = document.createElement('a');
+ srChild.setAttribute('id','Item'+e+'_c'+c);
+ setKeyActions(srChild,'return searchResults.NavChild(event,'+e+','+c+')');
+ setClassAttr(srChild,'SRScope');
+ srChild.setAttribute('href',searchData[e][1][c+1][0]);
+ if (searchData[e][1][c+1][1])
+ {
+ srChild.setAttribute('target','_parent');
+ }
+ srChild.innerHTML = searchData[e][1][c+1][2];
+ srChildren.appendChild(srChild);
+ }
+ srEntry.appendChild(srChildren);
+ }
+ srResult.appendChild(srEntry);
+ results.appendChild(srResult);
+ }
+}
+
diff --git a/ucs2-lib/doc/html/search/search_l.png b/ucs2-lib/doc/html/search/search_l.png
new file mode 100644
index 0000000..c872f4d
--- /dev/null
+++ b/ucs2-lib/doc/html/search/search_l.png
Binary files differ
diff --git a/ucs2-lib/doc/html/search/search_m.png b/ucs2-lib/doc/html/search/search_m.png
new file mode 100644
index 0000000..b429a16
--- /dev/null
+++ b/ucs2-lib/doc/html/search/search_m.png
Binary files differ
diff --git a/ucs2-lib/doc/html/search/search_r.png b/ucs2-lib/doc/html/search/search_r.png
new file mode 100644
index 0000000..97ee8b4
--- /dev/null
+++ b/ucs2-lib/doc/html/search/search_r.png
Binary files differ
diff --git a/ucs2-lib/doc/html/search/typedefs_75.html b/ucs2-lib/doc/html/search/typedefs_75.html
new file mode 100644
index 0000000..35bb005
--- /dev/null
+++ b/ucs2-lib/doc/html/search/typedefs_75.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="typedefs_75.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/typedefs_75.js b/ucs2-lib/doc/html/search/typedefs_75.js
new file mode 100644
index 0000000..14ece7e
--- /dev/null
+++ b/ucs2-lib/doc/html/search/typedefs_75.js
@@ -0,0 +1,48 @@
+var searchData=
+[
+ ['ucs_5famsrx_5fmsgreceivedcb_5ft',['Ucs_AmsRx_MsgReceivedCb_t',['../group___g___u_c_s___a_m_s_ga80fa395bc924dca9ae92c185656db089.html#ga80fa395bc924dca9ae92c185656db089',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5fcompletecb_5ft',['Ucs_AmsTx_CompleteCb_t',['../group___g___u_c_s___a_m_s___t_y_p_e_s_ga60acfdd5b93a99906d751ac2f14623a9.html#ga60acfdd5b93a99906d751ac2f14623a9',1,'ucs_ams_pb.h']]],
+ ['ucs_5famstx_5fmsgfreedcb_5ft',['Ucs_AmsTx_MsgFreedCb_t',['../group___g___u_c_s___a_m_s_ga79608ce8c26f58a6875e72c30ac60bda.html#ga79608ce8c26f58a6875e72c30ac60bda',1,'ucs_ams_pb.h']]],
+ ['ucs_5fbcd_5freportcb_5ft',['Ucs_Bcd_ReportCb_t',['../group___g___u_c_s___b_c___d_i_a_g_ga9dcf9bd698b30335336ff78524866794.html#ga9dcf9bd698b30335336ff78524866794',1,'ucs_inic_pb.h']]],
+ ['ucs_5fcmd_5fhandler_5ffunction_5ft',['Ucs_Cmd_Handler_Function_t',['../group___g___u_c_s___c_m_d___t_y_p_e_s_ga88dfb52f565e25938a8162e67aecd580.html#ga88dfb52f565e25938a8162e67aecd580',1,'ucs_cmd_pb.h']]],
+ ['ucs_5fdebugerrormsgcb_5ft',['Ucs_DebugErrorMsgCb_t',['../group___g___u_c_s___t_r_a_c_e_gaf18b6867951fd06359788f6595b78195.html#gaf18b6867951fd06359788f6595b78195',1,'ucs_class_pb.h']]],
+ ['ucs_5ferrorcb_5ft',['Ucs_ErrorCb_t',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga64926a6a194cfb06703835e3d06475c6.html#ga64926a6a194cfb06703835e3d06475c6',1,'ucs_class_pb.h']]],
+ ['ucs_5fgettickcountcb_5ft',['Ucs_GetTickCountCb_t',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga981854177aa9ebd554ab522199193bd3.html#ga981854177aa9ebd554ab522199193bd3',1,'ucs_class_pb.h']]],
+ ['ucs_5fgpio_5fconfigpinmoderescb_5ft',['Ucs_Gpio_ConfigPinModeResCb_t',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga69f4d52dfc38232662abd4568e18e3c2.html#ga69f4d52dfc38232662abd4568e18e3c2',1,'ucs_gpio_pb.h']]],
+ ['ucs_5fgpio_5fcreateportrescb_5ft',['Ucs_Gpio_CreatePortResCb_t',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga14238b74c9e86db4e775461f2cf9b1cb.html#ga14238b74c9e86db4e775461f2cf9b1cb',1,'ucs_gpio_pb.h']]],
+ ['ucs_5fgpio_5fpinstaterescb_5ft',['Ucs_Gpio_PinStateResCb_t',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga106c6afdd6f996c8bc5d632f08236912.html#ga106c6afdd6f996c8bc5d632f08236912',1,'ucs_gpio_pb.h']]],
+ ['ucs_5fgpio_5ftriggereventresultcb_5ft',['Ucs_Gpio_TriggerEventResultCb_t',['../group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga99bb3bcb2b588bc66d41f3e03d478020.html#ga99bb3bcb2b588bc66d41f3e03d478020',1,'ucs_gpio_pb.h']]],
+ ['ucs_5fi2c_5fcreateportrescb_5ft',['Ucs_I2c_CreatePortResCb_t',['../group___g___u_c_s___i2_c___t_y_p_e_s_gae1f1b25aca1c240022464571187ea98f.html#gae1f1b25aca1c240022464571187ea98f',1,'ucs_i2c_pb.h']]],
+ ['ucs_5fi2c_5finteventreportcb_5ft',['Ucs_I2c_IntEventReportCb_t',['../group___g___u_c_s___i2_c___t_y_p_e_s_ga3bdd3013545f8249a73c73e0d28713f7.html#ga3bdd3013545f8249a73c73e0d28713f7',1,'ucs_i2c_pb.h']]],
+ ['ucs_5fi2c_5freadportrescb_5ft',['Ucs_I2c_ReadPortResCb_t',['../group___g___u_c_s___i2_c___t_y_p_e_s_ga8dd5d3515acabc6a95e9bf32629eb644.html#ga8dd5d3515acabc6a95e9bf32629eb644',1,'ucs_i2c_pb.h']]],
+ ['ucs_5fi2c_5fwriteportrescb_5ft',['Ucs_I2c_WritePortResCb_t',['../group___g___u_c_s___i2_c___t_y_p_e_s_ga50029da1794f34d3ddac9df8d537c234.html#ga50029da1794f34d3ddac9df8d537c234',1,'ucs_i2c_pb.h']]],
+ ['ucs_5finic_5fpowerstatecb_5ft',['Ucs_Inic_PowerStateCb_t',['../group___g___u_c_s___i_n_i_c___t_y_p_e_s_gaca78cd7da871ae21b1d546c31e604772.html#gaca78cd7da871ae21b1d546c31e604772',1,'ucs_class_pb.h']]],
+ ['ucs_5finitresultcb_5ft',['Ucs_InitResultCb_t',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gaba3a47e6c1d360c77e560cefe8c541e3.html#gaba3a47e6c1d360c77e560cefe8c541e3',1,'ucs_ret_pb.h']]],
+ ['ucs_5finst_5ft',['Ucs_Inst_t',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda',1,'ucs_class_pb.h']]],
+ ['ucs_5flld_5fresetiniccb_5ft',['Ucs_Lld_ResetInicCb_t',['../group___g___u_c_s___l_l_d_gabb4b73751b87fe9a63b3d15403a81965.html#gabb4b73751b87fe9a63b3d15403a81965',1,'ucs_lld_pb.h']]],
+ ['ucs_5flld_5frxallocatecb_5ft',['Ucs_Lld_RxAllocateCb_t',['../group___g___u_c_s___l_l_d___a_p_i_ga5bfaf97236d417072fe606f24bb3c8ad.html#ga5bfaf97236d417072fe606f24bb3c8ad',1,'ucs_lld_pb.h']]],
+ ['ucs_5flld_5frxfreeunusedcb_5ft',['Ucs_Lld_RxFreeUnusedCb_t',['../group___g___u_c_s___l_l_d___a_p_i_gadc535a5be0f7bf336dc66cecfff8067d.html#gadc535a5be0f7bf336dc66cecfff8067d',1,'ucs_lld_pb.h']]],
+ ['ucs_5flld_5frxmsgavailablecb_5ft',['Ucs_Lld_RxMsgAvailableCb_t',['../group___g___u_c_s___l_l_d_gae49a0953d88e8fbd4ebf2ce9c5f7b7f1.html#gae49a0953d88e8fbd4ebf2ce9c5f7b7f1',1,'ucs_lld_pb.h']]],
+ ['ucs_5flld_5frxreceivecb_5ft',['Ucs_Lld_RxReceiveCb_t',['../group___g___u_c_s___l_l_d___a_p_i_ga03c6fb96255dffab2fd1ca1a70204ad9.html#ga03c6fb96255dffab2fd1ca1a70204ad9',1,'ucs_lld_pb.h']]],
+ ['ucs_5flld_5fstartcb_5ft',['Ucs_Lld_StartCb_t',['../group___g___u_c_s___l_l_d_ga73f07fb097d3c1bb6c5bf048f088166e.html#ga73f07fb097d3c1bb6c5bf048f088166e',1,'ucs_lld_pb.h']]],
+ ['ucs_5flld_5fstopcb_5ft',['Ucs_Lld_StopCb_t',['../group___g___u_c_s___l_l_d_ga917011a0aed9ca6d0aaf2201dc8c0e9f.html#ga917011a0aed9ca6d0aaf2201dc8c0e9f',1,'ucs_lld_pb.h']]],
+ ['ucs_5flld_5ftxreleasecb_5ft',['Ucs_Lld_TxReleaseCb_t',['../group___g___u_c_s___l_l_d___a_p_i_ga59b99932c0fd7cd21f1c9788d60f1d4e.html#ga59b99932c0fd7cd21f1c9788d60f1d4e',1,'ucs_lld_pb.h']]],
+ ['ucs_5flld_5ftxtransmitcb_5ft',['Ucs_Lld_TxTransmitCb_t',['../group___g___u_c_s___l_l_d_gaa618347d194113c34f5b21d3c36ba7b6.html#gaa618347d194113c34f5b21d3c36ba7b6',1,'ucs_lld_pb.h']]],
+ ['ucs_5fmgrreportcb_5ft',['Ucs_MgrReportCb_t',['../group___g___u_c_s___m_g_r_gad54678ad2a4671ec224422a8647b20f6.html#gad54678ad2a4671ec224422a8647b20f6',1,'ucs_nodeobserver_pb.h']]],
+ ['ucs_5fnd_5fevalcb_5ft',['Ucs_Nd_EvalCb_t',['../group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_ga61b182f93d2815857f62ea51782bb13d.html#ga61b182f93d2815857f62ea51782bb13d',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnd_5freportcb_5ft',['Ucs_Nd_ReportCb_t',['../group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_gab3c981bc09b0e5033e5163b8e5aafca7.html#gab3c981bc09b0e5033e5163b8e5aafca7',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnetwork_5fframecountercb_5ft',['Ucs_Network_FrameCounterCb_t',['../group___g___u_c_s___n_e_t_ga43fb9c04d5ad142f6abbf9566af82f8c.html#ga43fb9c04d5ad142f6abbf9566af82f8c',1,'ucs_inic_pb.h']]],
+ ['ucs_5fnetwork_5fstatuscb_5ft',['Ucs_Network_StatusCb_t',['../group___g___u_c_s___n_e_t_gaf195e8ae396bc1fc358666fe50bf3f51.html#gaf195e8ae396bc1fc358666fe50bf3f51',1,'ucs_class_pb.h']]],
+ ['ucs_5fns_5fresultcb_5ft',['Ucs_Ns_ResultCb_t',['../group___g___u_c_s___s_c_r_i_p_t_i_n_g_gab0f1bc424462b8bbe0b2155d504025a5.html#gab0f1bc424462b8bbe0b2155d504025a5',1,'ucs_nsm_pb.h']]],
+ ['ucs_5fprg_5freportcb_5ft',['Ucs_Prg_ReportCb_t',['../group___g___u_c_s___p_r_o_g___m_o_d_e_ga15045bde4d6a35f1b1e20eb6e3c688ab.html#ga15045bde4d6a35f1b1e20eb6e3c688ab',1,'ucs_inic_pb.h']]],
+ ['ucs_5frequestservicecb_5ft',['Ucs_RequestServiceCb_t',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga61a038694eeb972f6d298478f16a2de2.html#ga61a038694eeb972f6d298478f16a2de2',1,'ucs_class_pb.h']]],
+ ['ucs_5frm_5freportcb_5ft',['Ucs_Rm_ReportCb_t',['../group___g___u_c_s___r_o_u_t_i_n_g_ga91d851f4665839e2aac982565b007805.html#ga91d851f4665839e2aac982565b007805',1,'ucs_class_pb.h']]],
+ ['ucs_5frm_5fxrmresdebugcb_5ft',['Ucs_Rm_XrmResDebugCb_t',['../group___g___u_c_s___r_o_u_t_i_n_g_gaefde5a8fbaeb6e5937e94b9e74ae70cb.html#gaefde5a8fbaeb6e5937e94b9e74ae70cb',1,'ucs_class_pb.h']]],
+ ['ucs_5fsetapptimercb_5ft',['Ucs_SetAppTimerCb_t',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga0238420959cc58ee52c0b385741fccc9.html#ga0238420959cc58ee52c0b385741fccc9',1,'ucs_class_pb.h']]],
+ ['ucs_5fstdresultcb_5ft',['Ucs_StdResultCb_t',['../group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gaa573fbe79f76f263a17e51d6de99036d.html#gaa573fbe79f76f263a17e51d6de99036d',1,'ucs_ret_pb.h']]],
+ ['ucs_5fxrm_5fcheckunmutecb_5ft',['Ucs_Xrm_CheckUnmuteCb_t',['../group___g___u_c_s___i_r_m_ga8d92898b48eeef24ac44a6e3ebdff460.html#ga8d92898b48eeef24ac44a6e3ebdff460',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fmost_5fportstatuscb_5ft',['Ucs_Xrm_Most_PortStatusCb_t',['../group___g___u_c_s___i_r_m_gae689267958c19afd9f9a097c36d017d3.html#gae689267958c19afd9f9a097c36d017d3',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fresobject_5ft',['Ucs_Xrm_ResObject_t',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fresourcedebugcb_5ft',['Ucs_Xrm_ResourceDebugCb_t',['../group___g___u_c_s___x_r_m___t_y_p_e_s_ga10b22839e9b7b2fe0148713aeea0172c.html#ga10b22839e9b7b2fe0148713aeea0172c',1,'ucs_xrm_pb.h']]],
+ ['ucs_5fxrm_5fstream_5fportcfgrescb_5ft',['Ucs_Xrm_Stream_PortCfgResCb_t',['../group___g___u_c_s___x_r_m___t_y_p_e_s_gab2f4b821b24db0cec150d1b30fe18783.html#gab2f4b821b24db0cec150d1b30fe18783',1,'ucs_xrm_pb.h']]]
+];
diff --git a/ucs2-lib/doc/html/search/variables_61.html b/ucs2-lib/doc/html/search/variables_61.html
new file mode 100644
index 0000000..ff1f937
--- /dev/null
+++ b/ucs2-lib/doc/html/search/variables_61.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_61.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/variables_61.js b/ucs2-lib/doc/html/search/variables_61.js
new file mode 100644
index 0000000..f607c44
--- /dev/null
+++ b/ucs2-lib/doc/html/search/variables_61.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+ ['active',['active',['../struct_ucs___rm___route__t_a05c940dbc220f5a723afd70071aebff8.html#a05c940dbc220f5a723afd70071aebff8',1,'Ucs_Rm_Route_t']]],
+ ['address',['address',['../struct_ucs___prg___command__t_ac0d31ca829f934cccd89f8054e02773e.html#ac0d31ca829f934cccd89f8054e02773e',1,'Ucs_Prg_Command_t']]],
+ ['admin_5fnode_5faddress',['admin_node_address',['../struct_c_programming_a9b9ca9dbb62f68667558e9ba9250f707.html#a9b9ca9dbb62f68667558e9ba9250f707',1,'CProgramming']]],
+ ['ams',['ams',['../struct_ucs___init_data__t_afc4097eb34fb5c24bb13e02b6f506b3c.html#afc4097eb34fb5c24bb13e02b6f506b3c',1,'Ucs_InitData_t']]]
+];
diff --git a/ucs2-lib/doc/html/search/variables_62.html b/ucs2-lib/doc/html/search/variables_62.html
new file mode 100644
index 0000000..c55a15e
--- /dev/null
+++ b/ucs2-lib/doc/html/search/variables_62.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_62.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/variables_62.js b/ucs2-lib/doc/html/search/variables_62.js
new file mode 100644
index 0000000..1562645
--- /dev/null
+++ b/ucs2-lib/doc/html/search/variables_62.js
@@ -0,0 +1,8 @@
+var searchData=
+[
+ ['bandwidth',['bandwidth',['../struct_ucs___xrm___most_socket__t_a0008a6d765e7752725ad3dd2eb446033.html#a0008a6d765e7752725ad3dd2eb446033',1,'Ucs_Xrm_MostSocket_t::bandwidth()'],['../struct_ucs___xrm___mlb_socket__t_a0008a6d765e7752725ad3dd2eb446033.html#a0008a6d765e7752725ad3dd2eb446033',1,'Ucs_Xrm_MlbSocket_t::bandwidth()'],['../struct_ucs___xrm___strm_socket__t_a0008a6d765e7752725ad3dd2eb446033.html#a0008a6d765e7752725ad3dd2eb446033',1,'Ucs_Xrm_StrmSocket_t::bandwidth()']]],
+ ['base',['base',['../struct_c_programming_a52f06fda08f2eb2b225c6201e38d1788.html#a52f06fda08f2eb2b225c6201e38d1788',1,'CProgramming']]],
+ ['branch',['branch',['../struct_ucs___sd___segment__t_a26bfba1996180ca29222aeccbd62068c.html#a26bfba1996180ca29222aeccbd62068c',1,'Ucs_Sd_Segment_t']]],
+ ['build_5fversion',['build_version',['../struct_ucs___inic___version__t_ab190dafd0511e594196f0d25f0cd99dc.html#ab190dafd0511e594196f0d25f0cd99dc',1,'Ucs_Inic_Version_t']]],
+ ['bytes_5fper_5fframe',['bytes_per_frame',['../struct_ucs___xrm___combiner__t_a155bb95b36c82e42f52872c92d49e102.html#a155bb95b36c82e42f52872c92d49e102',1,'Ucs_Xrm_Combiner_t::bytes_per_frame()'],['../struct_ucs___xrm___splitter__t_a155bb95b36c82e42f52872c92d49e102.html#a155bb95b36c82e42f52872c92d49e102',1,'Ucs_Xrm_Splitter_t::bytes_per_frame()']]]
+];
diff --git a/ucs2-lib/doc/html/search/variables_63.html b/ucs2-lib/doc/html/search/variables_63.html
new file mode 100644
index 0000000..c649c81
--- /dev/null
+++ b/ucs2-lib/doc/html/search/variables_63.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_63.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/variables_63.js b/ucs2-lib/doc/html/search/variables_63.js
new file mode 100644
index 0000000..08bfbbb
--- /dev/null
+++ b/ucs2-lib/doc/html/search/variables_63.js
@@ -0,0 +1,23 @@
+var searchData=
+[
+ ['cable_5flink_5finfo',['cable_link_info',['../struct_ucs___sd___report__t_a6caff4f48d1e2f1afc97934836388272.html#a6caff4f48d1e2f1afc97934836388272',1,'Ucs_Sd_Report_t']]],
+ ['cancel_5fid',['cancel_id',['../struct_msg___tx_options__t_a454f250afc20ddc93a508bc004df753e.html#a454f250afc20ddc93a508bc004df753e',1,'Msg_TxOptions_t']]],
+ ['cb_5ffptr',['cb_fptr',['../struct_ucs___network___status__t_a08f6acd8566e419c7017fc1874720223.html#a08f6acd8566e419c7017fc1874720223',1,'Ucs_Network_Status_t']]],
+ ['channel_5faddress',['channel_address',['../struct_ucs___xrm___mlb_socket__t_add5f2565470e3921623c880730abe765.html#add5f2565470e3921623c880730abe765',1,'Ucs_Xrm_MlbSocket_t']]],
+ ['check_5funmute_5ffptr',['check_unmute_fptr',['../struct_ucs___xrm___init_data__t_a7ad953f5414061df43df073ece15e25b.html#a7ad953f5414061df43df073ece15e25b',1,'Ucs_Xrm_InitData_t']]],
+ ['chip_5fid',['chip_id',['../struct_ucs___signature__t_a88e300db221e7a0382f2a4c289b9557d.html#a88e300db221e7a0382f2a4c289b9557d',1,'Ucs_Signature_t']]],
+ ['clock_5fconfig',['clock_config',['../struct_ucs___xrm___mlb_port__t_a7b2f976567481f67b381300eb1816c3e.html#a7b2f976567481f67b381300eb1816c3e',1,'Ucs_Xrm_MlbPort_t::clock_config()'],['../struct_ucs___xrm___strm_port__t_a62dd690bdc5ee223e9b91014df94614e.html#a62dd690bdc5ee223e9b91014df94614e',1,'Ucs_Xrm_StrmPort_t::clock_config()']]],
+ ['clock_5fsource',['clock_source',['../struct_ucs___xrm___rmck_port__t_abb3d396baa2a9ee33f499bf58c7ca8de.html#abb3d396baa2a9ee33f499bf58c7ca8de',1,'Ucs_Xrm_RmckPort_t']]],
+ ['code',['code',['../struct_ucs___sd___report__t_a4516a98acab86432eea6035e2856a7e4.html#a4516a98acab86432eea6035e2856a7e4',1,'Ucs_Sd_Report_t::code()'],['../struct_ucs___gpio___result__t_a5a25ac28b5135e04a465fdead03df796.html#a5a25ac28b5135e04a465fdead03df796',1,'Ucs_Gpio_Result_t::code()'],['../struct_ucs___i2c___result__t_aacd0e1eabaa18a3fe226a2b4f849832b.html#aacd0e1eabaa18a3fe226a2b4f849832b',1,'Ucs_I2c_Result_t::code()'],['../struct_ucs___xrm___result__t_a7d575938c9e5eed9032435e39b376e90.html#a7d575938c9e5eed9032435e39b376e90',1,'Ucs_Xrm_Result_t::code()'],['../struct_ucs___std_result__t_a02d8eefc721a797ac87f5030774972ef.html#a02d8eefc721a797ac87f5030774972ef',1,'Ucs_StdResult_t::code()']]],
+ ['command_5findex',['command_index',['../struct_c_programming_a87ab79c86a6b6023f00cfdf465dad09a.html#a87ab79c86a6b6023f00cfdf465dad09a',1,'CProgramming']]],
+ ['command_5flist',['command_list',['../struct_c_programming_ae6d9d0f0acd5d6473bfbb35d75a50857.html#ae6d9d0f0acd5d6473bfbb35d75a50857',1,'CProgramming']]],
+ ['cs_5fmajor',['cs_major',['../struct_ucs___signature__t_a0d446be5f898a8ae0738b2cefb0b8b37.html#a0d446be5f898a8ae0738b2cefb0b8b37',1,'Ucs_Signature_t']]],
+ ['cs_5fmajor_5fversion',['cs_major_version',['../struct_ucs___inic___version__t_abae3da4c5cc12b7d7470701f1811caa2.html#abae3da4c5cc12b7d7470701f1811caa2',1,'Ucs_Inic_Version_t']]],
+ ['cs_5fminor',['cs_minor',['../struct_ucs___signature__t_afd22089496c4f8c46afc7eabcbe3b8f7.html#afd22089496c4f8c46afc7eabcbe3b8f7',1,'Ucs_Signature_t']]],
+ ['cs_5fminor_5fversion',['cs_minor_version',['../struct_ucs___inic___version__t_aedae893bc0a52aed213d0dcef8262921.html#aedae893bc0a52aed213d0dcef8262921',1,'Ucs_Inic_Version_t']]],
+ ['cs_5frelease',['cs_release',['../struct_ucs___signature__t_a85df7718b1da0f0b195926db0f22e24f.html#a85df7718b1da0f0b195926db0f22e24f',1,'Ucs_Signature_t']]],
+ ['cs_5frelease_5fversion',['cs_release_version',['../struct_ucs___inic___version__t_aed9e506bf23c33ccb10ba21404859a74.html#aed9e506bf23c33ccb10ba21404859a74',1,'Ucs_Inic_Version_t']]],
+ ['current_5ffunction',['current_function',['../struct_c_programming_a6faea6381a3c39905de4fca5cb966a81.html#a6faea6381a3c39905de4fca5cb966a81',1,'CProgramming']]],
+ ['custom_5finfo_5fptr',['custom_info_ptr',['../struct_ucs___ams_tx___msg__t_a1c691c4fcbb0562f9a9c9e07f1166319.html#a1c691c4fcbb0562f9a9c9e07f1166319',1,'Ucs_AmsTx_Msg_t::custom_info_ptr()'],['../struct_ucs___ams_rx___msg__t_a1c691c4fcbb0562f9a9c9e07f1166319.html#a1c691c4fcbb0562f9a9c9e07f1166319',1,'Ucs_AmsRx_Msg_t::custom_info_ptr()']]],
+ ['custom_5fnext_5fmsg_5fptr',['custom_next_msg_ptr',['../struct_ucs___lld___tx_msg__t_ae6dfc382578b04d70665e7c805fdc4c2.html#ae6dfc382578b04d70665e7c805fdc4c2',1,'Ucs_Lld_TxMsg_t']]]
+];
diff --git a/ucs2-lib/doc/html/search/variables_64.html b/ucs2-lib/doc/html/search/variables_64.html
new file mode 100644
index 0000000..fee6769
--- /dev/null
+++ b/ucs2-lib/doc/html/search/variables_64.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_64.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/variables_64.js b/ucs2-lib/doc/html/search/variables_64.js
new file mode 100644
index 0000000..9160d96
--- /dev/null
+++ b/ucs2-lib/doc/html/search/variables_64.js
@@ -0,0 +1,21 @@
+var searchData=
+[
+ ['data',['data',['../struct_ucs___prg___command__t_abe222f6d3581e7920dcad5306cc906a8.html#abe222f6d3581e7920dcad5306cc906a8',1,'Ucs_Prg_Command_t']]],
+ ['data_5falignment',['data_alignment',['../struct_ucs___xrm___strm_port__t_a924dbd8d86d71e043a36523760c368b4.html#a924dbd8d86d71e043a36523760c368b4',1,'Ucs_Xrm_StrmPort_t']]],
+ ['data_5flength',['data_length',['../struct_ucs___prg___command__t_ad97c802f66f41e937c3f8b33337b8c6d.html#ad97c802f66f41e937c3f8b33337b8c6d',1,'Ucs_Prg_Command_t']]],
+ ['data_5fptr',['data_ptr',['../struct_ucs___ams_tx___msg__t_a6166cef59cbe432be35512925debeae6.html#a6166cef59cbe432be35512925debeae6',1,'Ucs_AmsTx_Msg_t::data_ptr()'],['../struct_ucs___ams_rx___msg__t_a6166cef59cbe432be35512925debeae6.html#a6166cef59cbe432be35512925debeae6',1,'Ucs_AmsRx_Msg_t::data_ptr()'],['../struct_ucs___lld___rx_msg__t_a6166cef59cbe432be35512925debeae6.html#a6166cef59cbe432be35512925debeae6',1,'Ucs_Lld_RxMsg_t::data_ptr()'],['../struct_ucs___mem___buffer__t_a6166cef59cbe432be35512925debeae6.html#a6166cef59cbe432be35512925debeae6',1,'Ucs_Mem_Buffer_t::data_ptr()']]],
+ ['data_5fsize',['data_size',['../struct_ucs___ams_tx___msg__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html#aae6bdbdf6ea1ad3da5af37f0a91d3ea0',1,'Ucs_AmsTx_Msg_t::data_size()'],['../struct_ucs___ams_rx___msg__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html#aae6bdbdf6ea1ad3da5af37f0a91d3ea0',1,'Ucs_AmsRx_Msg_t::data_size()'],['../struct_ucs___lld___rx_msg__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html#aae6bdbdf6ea1ad3da5af37f0a91d3ea0',1,'Ucs_Lld_RxMsg_t::data_size()'],['../struct_ucs___mem___buffer__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html#aae6bdbdf6ea1ad3da5af37f0a91d3ea0',1,'Ucs_Mem_Buffer_t::data_size()']]],
+ ['data_5ftype',['data_type',['../struct_ucs___xrm___most_socket__t_a963061c04c4b780e3f9a11d61746904e.html#a963061c04c4b780e3f9a11d61746904e',1,'Ucs_Xrm_MostSocket_t::data_type()'],['../struct_ucs___xrm___mlb_socket__t_a983b482b6f4a0468e6e76e8a53e848ea.html#a983b482b6f4a0468e6e76e8a53e848ea',1,'Ucs_Xrm_MlbSocket_t::data_type()'],['../struct_ucs___xrm___usb_socket__t_a211077f7fcb5f6de9739ec4a6d0b0277.html#a211077f7fcb5f6de9739ec4a6d0b0277',1,'Ucs_Xrm_UsbSocket_t::data_type()'],['../struct_ucs___xrm___strm_socket__t_a5a9618dfa6b3de3a36d0392911a4d421.html#a5a9618dfa6b3de3a36d0392911a4d421',1,'Ucs_Xrm_StrmSocket_t::data_type()']]],
+ ['datalen',['DataLen',['../struct_ucs___ns___config_msg__t_ab81bc4284c46cfa5378520e45441ef32.html#ab81bc4284c46cfa5378520e45441ef32',1,'Ucs_Ns_ConfigMsg_t']]],
+ ['dataptr',['DataPtr',['../struct_ucs___ns___config_msg__t_ad076d2b6eaae6f9b32363de4729e9349.html#ad076d2b6eaae6f9b32363de4729e9349',1,'Ucs_Ns_ConfigMsg_t']]],
+ ['debug_5ferror_5fmsg_5ffptr',['debug_error_msg_fptr',['../struct_ucs___general___init_data__t_ad21ca235fca8aa5dbc81e6a82ca0f867.html#ad21ca235fca8aa5dbc81e6a82ca0f867',1,'Ucs_General_InitData_t']]],
+ ['debug_5fresource_5fstatus_5ffptr',['debug_resource_status_fptr',['../struct_ucs___rm___init_data__t_a68590d8712353f94f2e9ccec1e21baa5.html#a68590d8712353f94f2e9ccec1e21baa5',1,'Ucs_Rm_InitData_t']]],
+ ['default_5fllrbc',['default_llrbc',['../struct_ucs___ams_tx___init_data__t_a804bd7e626fd73b27d18af9a036d7ad4.html#a804bd7e626fd73b27d18af9a036d7ad4',1,'Ucs_AmsTx_InitData_t']]],
+ ['destination_5faddr',['destination_addr',['../struct_msg___most_tel__t_a67473c671719a1e3f3fe0ad16e95dd83.html#a67473c671719a1e3f3fe0ad16e95dd83',1,'Msg_MostTel_t']]],
+ ['destination_5faddress',['destination_address',['../struct_ucs___ams_tx___msg__t_a9a199f6a8a711b94ff827e6807980cb3.html#a9a199f6a8a711b94ff827e6807980cb3',1,'Ucs_AmsTx_Msg_t']]],
+ ['details',['details',['../struct_ucs___gpio___result__t_a834bf2a84ecdbd878eb0edbf89bc0b88.html#a834bf2a84ecdbd878eb0edbf89bc0b88',1,'Ucs_Gpio_Result_t::details()'],['../struct_ucs___i2c___result__t_a288b89d26129791b83b01a3b464d7351.html#a288b89d26129791b83b01a3b464d7351',1,'Ucs_I2c_Result_t::details()'],['../struct_ucs___xrm___result__t_ac704c276d74638909521f29cc722c8db.html#ac704c276d74638909521f29cc722c8db',1,'Ucs_Xrm_Result_t::details()']]],
+ ['devices_5finterfaces',['devices_interfaces',['../struct_ucs___xrm___usb_port__t_a7d57b66daf059fcd226dc4b78be54e79.html#a7d57b66daf059fcd226dc4b78be54e79',1,'Ucs_Xrm_UsbPort_t']]],
+ ['diagnosis_5fid',['diagnosis_id',['../struct_ucs___inic___version__t_ab98cc6d6cb5cc92d5f6633419daa643e.html#ab98cc6d6cb5cc92d5f6633419daa643e',1,'Ucs_Inic_Version_t::diagnosis_id()'],['../struct_ucs___signature__t_ab98cc6d6cb5cc92d5f6633419daa643e.html#ab98cc6d6cb5cc92d5f6633419daa643e',1,'Ucs_Signature_t::diagnosis_id()']]],
+ ['direction',['direction',['../struct_ucs___xrm___most_socket__t_a6fc8b4a0550af42e193df56d3546108e.html#a6fc8b4a0550af42e193df56d3546108e',1,'Ucs_Xrm_MostSocket_t::direction()'],['../struct_ucs___xrm___mlb_socket__t_a6fc8b4a0550af42e193df56d3546108e.html#a6fc8b4a0550af42e193df56d3546108e',1,'Ucs_Xrm_MlbSocket_t::direction()'],['../struct_ucs___xrm___usb_socket__t_a6fc8b4a0550af42e193df56d3546108e.html#a6fc8b4a0550af42e193df56d3546108e',1,'Ucs_Xrm_UsbSocket_t::direction()'],['../struct_ucs___xrm___strm_socket__t_a6fc8b4a0550af42e193df56d3546108e.html#a6fc8b4a0550af42e193df56d3546108e',1,'Ucs_Xrm_StrmSocket_t::direction()']]],
+ ['divisor',['divisor',['../struct_ucs___xrm___rmck_port__t_a43e498c160eab1409e0ebdeabe62d31b.html#a43e498c160eab1409e0ebdeabe62d31b',1,'Ucs_Xrm_RmckPort_t']]]
+];
diff --git a/ucs2-lib/doc/html/search/variables_65.html b/ucs2-lib/doc/html/search/variables_65.html
new file mode 100644
index 0000000..95b64e6
--- /dev/null
+++ b/ucs2-lib/doc/html/search/variables_65.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_65.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/variables_65.js b/ucs2-lib/doc/html/search/variables_65.js
new file mode 100644
index 0000000..2fc2ba7
--- /dev/null
+++ b/ucs2-lib/doc/html/search/variables_65.js
@@ -0,0 +1,12 @@
+var searchData=
+[
+ ['enabled',['enabled',['../struct_ucs___ams___init_data__t_a8740ba80e30dd75e71d09fa1dcf04f3d.html#a8740ba80e30dd75e71d09fa1dcf04f3d',1,'Ucs_Ams_InitData_t::enabled()'],['../struct_ucs___mgr___init_data__t_a8740ba80e30dd75e71d09fa1dcf04f3d.html#a8740ba80e30dd75e71d09fa1dcf04f3d',1,'Ucs_Mgr_InitData_t::enabled()']]],
+ ['end_5fpoint_5faddr',['end_point_addr',['../struct_ucs___xrm___usb_socket__t_a10acc74574f398d6b12989cc1ed95fe0.html#a10acc74574f398d6b12989cc1ed95fe0',1,'Ucs_Xrm_UsbSocket_t']]],
+ ['endpoint_5ftype',['endpoint_type',['../struct_ucs___rm___end_point__t_a7e46feb849d169800b21d689de273901.html#a7e46feb849d169800b21d689de273901',1,'Ucs_Rm_EndPoint_t']]],
+ ['err_5finfo',['err_info',['../struct_ucs___sd___report__t_a4b94cabfc6ee64196ca32cf1f0c1040f.html#a4b94cabfc6ee64196ca32cf1f0c1040f',1,'Ucs_Sd_Report_t']]],
+ ['error',['error',['../struct_c_programming_a2e6eb03384cae6a78a3ab2a9a63229e9.html#a2e6eb03384cae6a78a3ab2a9a63229e9',1,'CProgramming']]],
+ ['error_5ffptr',['error_fptr',['../struct_ucs___general___init_data__t_aa197d5a04c7eee7b95eb9e1de232d161.html#aa197d5a04c7eee7b95eb9e1de232d161',1,'Ucs_General_InitData_t']]],
+ ['eval_5ffptr',['eval_fptr',['../struct_ucs___nd___init_data__t_ab9bc02a84c7daeff234344541d41be62.html#ab9bc02a84c7daeff234344541d41be62',1,'Ucs_Nd_InitData_t']]],
+ ['exc',['exc',['../struct_c_programming_a510e91e91f2f7b75fb6ea9d7760fc81c.html#a510e91e91f2f7b75fb6ea9d7760fc81c',1,'CProgramming']]],
+ ['exp_5fresult',['exp_result',['../struct_ucs___ns___script__t_a916bebb6486ddd6e58ded2f18d97ee62.html#a916bebb6486ddd6e58ded2f18d97ee62',1,'Ucs_Ns_Script_t']]]
+];
diff --git a/ucs2-lib/doc/html/search/variables_66.html b/ucs2-lib/doc/html/search/variables_66.html
new file mode 100644
index 0000000..9ff42ab
--- /dev/null
+++ b/ucs2-lib/doc/html/search/variables_66.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_66.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/variables_66.js b/ucs2-lib/doc/html/search/variables_66.js
new file mode 100644
index 0000000..8d64ece
--- /dev/null
+++ b/ucs2-lib/doc/html/search/variables_66.js
@@ -0,0 +1,13 @@
+var searchData=
+[
+ ['fblock_5fid',['fblock_id',['../struct_msg___msg_id__t_afadabe68185500b54de12bf7701db13b.html#afadabe68185500b54de12bf7701db13b',1,'Msg_MsgId_t']]],
+ ['fblockid',['FBlockId',['../struct_ucs___ns___config_msg__t_aeb1ff6787da243b8d6ced7bce3ee46d5.html#aeb1ff6787da243b8d6ced7bce3ee46d5',1,'Ucs_Ns_ConfigMsg_t']]],
+ ['frames_5fper_5ftransfer',['frames_per_transfer',['../struct_ucs___xrm___usb_socket__t_a35a2e808843151ff172ad4ddd8ad5b8a.html#a35a2e808843151ff172ad4ddd8ad5b8a',1,'Ucs_Xrm_UsbSocket_t']]],
+ ['fsm',['fsm',['../struct_c_programming_ae20a8288958f7ad71b35a1e460f25d4c.html#ae20a8288958f7ad71b35a1e460f25d4c',1,'CProgramming']]],
+ ['function_5fid',['function_id',['../struct_msg___msg_id__t_a6cb0848efba59a9a23dbbe0480f04c85.html#a6cb0848efba59a9a23dbbe0480f04c85',1,'Msg_MsgId_t']]],
+ ['funktid',['FunktId',['../struct_ucs___ns___config_msg__t_ad758e0bb7d48d20f40d5acbfcf916eb1.html#ad758e0bb7d48d20f40d5acbfcf916eb1',1,'Ucs_Ns_ConfigMsg_t']]],
+ ['fw_5fbuild',['fw_build',['../struct_ucs___signature__t_a1149e000267e8c93bed1aa393c09c047.html#a1149e000267e8c93bed1aa393c09c047',1,'Ucs_Signature_t']]],
+ ['fw_5fmajor',['fw_major',['../struct_ucs___signature__t_ac99479d164f096f8c3bc3c2c9043a75f.html#ac99479d164f096f8c3bc3c2c9043a75f',1,'Ucs_Signature_t']]],
+ ['fw_5fminor',['fw_minor',['../struct_ucs___signature__t_a15ea388e2fbe80fafdd20a6d8302ad05.html#a15ea388e2fbe80fafdd20a6d8302ad05',1,'Ucs_Signature_t']]],
+ ['fw_5frelease',['fw_release',['../struct_ucs___signature__t_a837edc8b3982713e064919786095b18d.html#a837edc8b3982713e064919786095b18d',1,'Ucs_Signature_t']]]
+];
diff --git a/ucs2-lib/doc/html/search/variables_67.html b/ucs2-lib/doc/html/search/variables_67.html
new file mode 100644
index 0000000..a7dd438
--- /dev/null
+++ b/ucs2-lib/doc/html/search/variables_67.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_67.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/variables_67.js b/ucs2-lib/doc/html/search/variables_67.js
new file mode 100644
index 0000000..ff7fb0a
--- /dev/null
+++ b/ucs2-lib/doc/html/search/variables_67.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+ ['general',['general',['../struct_ucs___init_data__t_a43e7559dfe1bc2860cb0d2749fa66071.html#a43e7559dfe1bc2860cb0d2749fa66071',1,'Ucs_InitData_t']]],
+ ['get_5ftick_5fcount_5ffptr',['get_tick_count_fptr',['../struct_ucs___general___init_data__t_a4e1140be3951f0e14d4071840f4ebc8e.html#a4e1140be3951f0e14d4071840f4ebc8e',1,'Ucs_General_InitData_t']]],
+ ['gpio',['gpio',['../struct_ucs___init_data__t_aaff1fbd74feb484366c4082f00f2aea7.html#aaff1fbd74feb484366c4082f00f2aea7',1,'Ucs_InitData_t']]],
+ ['group_5faddress',['group_address',['../struct_ucs___signature__t_a20ed5721c4d2a493d8abd061950bd675.html#a20ed5721c4d2a493d8abd061950bd675',1,'Ucs_Signature_t']]]
+];
diff --git a/ucs2-lib/doc/html/search/variables_68.html b/ucs2-lib/doc/html/search/variables_68.html
new file mode 100644
index 0000000..f11c2c9
--- /dev/null
+++ b/ucs2-lib/doc/html/search/variables_68.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_68.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/variables_68.js b/ucs2-lib/doc/html/search/variables_68.js
new file mode 100644
index 0000000..3939fe8
--- /dev/null
+++ b/ucs2-lib/doc/html/search/variables_68.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['handler_5ffunction_5fptr',['handler_function_ptr',['../struct_ucs___cmd___msg_id__t_a7a00edfeadc4cc2a50b9136d2d368c23.html#a7a00edfeadc4cc2a50b9136d2d368c23',1,'Ucs_Cmd_MsgId_t']]],
+ ['hw_5frevision',['hw_revision',['../struct_ucs___inic___version__t_afd5796c03158d03bb72378ce02535beb.html#afd5796c03158d03bb72378ce02535beb',1,'Ucs_Inic_Version_t']]]
+];
diff --git a/ucs2-lib/doc/html/search/variables_69.html b/ucs2-lib/doc/html/search/variables_69.html
new file mode 100644
index 0000000..d4ddaf0
--- /dev/null
+++ b/ucs2-lib/doc/html/search/variables_69.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_69.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/variables_69.js b/ucs2-lib/doc/html/search/variables_69.js
new file mode 100644
index 0000000..f2fe30e
--- /dev/null
+++ b/ucs2-lib/doc/html/search/variables_69.js
@@ -0,0 +1,17 @@
+var searchData=
+[
+ ['i2c',['i2c',['../struct_ucs___init_data__t_a1b49223d94d385d1229b6864ad7fa053.html#a1b49223d94d385d1229b6864ad7fa053',1,'Ucs_InitData_t']]],
+ ['id',['id',['../struct_msg___most_tel__t_a6d80d11eae3ae15f09cc8aff3dabb89b.html#a6d80d11eae3ae15f09cc8aff3dabb89b',1,'Msg_MostTel_t']]],
+ ['index',['index',['../struct_ucs___xrm___default_created_port__t_aae5a12e607d0f782506d9e6ec6179c64.html#aae5a12e607d0f782506d9e6ec6179c64',1,'Ucs_Xrm_DefaultCreatedPort_t::index()'],['../struct_ucs___xrm___mlb_port__t_aae5a12e607d0f782506d9e6ec6179c64.html#aae5a12e607d0f782506d9e6ec6179c64',1,'Ucs_Xrm_MlbPort_t::index()'],['../struct_ucs___xrm___usb_port__t_aae5a12e607d0f782506d9e6ec6179c64.html#aae5a12e607d0f782506d9e6ec6179c64',1,'Ucs_Xrm_UsbPort_t::index()'],['../struct_ucs___xrm___rmck_port__t_aae5a12e607d0f782506d9e6ec6179c64.html#aae5a12e607d0f782506d9e6ec6179c64',1,'Ucs_Xrm_RmckPort_t::index()'],['../struct_ucs___xrm___strm_port__t_aae5a12e607d0f782506d9e6ec6179c64.html#aae5a12e607d0f782506d9e6ec6179c64',1,'Ucs_Xrm_StrmPort_t::index()']]],
+ ['info_5fptr',['info_ptr',['../struct_ucs___std_result__t_ab89f4871a6526d4d409fca9ee58ce176.html#ab89f4871a6526d4d409fca9ee58ce176',1,'Ucs_StdResult_t::info_ptr()'],['../struct_msg___most_tel__t_abc779299d755d192cd021eb2c2a68013.html#abc779299d755d192cd021eb2c2a68013',1,'Msg_MostTel_t::info_ptr()']]],
+ ['info_5fsize',['info_size',['../struct_ucs___std_result__t_ab8c6e508e45bdac2dc20bfc1b0dff08c.html#ab8c6e508e45bdac2dc20bfc1b0dff08c',1,'Ucs_StdResult_t']]],
+ ['inic',['inic',['../struct_ucs___init_data__t_a6788f8bea24665769ce00897162f84d4.html#a6788f8bea24665769ce00897162f84d4',1,'Ucs_InitData_t::inic()'],['../struct_c_programming_a64c85894e8881b2b033cad0e08afb227.html#a64c85894e8881b2b033cad0e08afb227',1,'CProgramming::inic()']]],
+ ['inic_5fresult',['inic_result',['../struct_ucs___gpio___result_details__t_ac8f7bd459f5052601dbbab267d9d8067.html#ac8f7bd459f5052601dbbab267d9d8067',1,'Ucs_Gpio_ResultDetails_t::inic_result()'],['../struct_ucs___i2c___result_details__t_ac8f7bd459f5052601dbbab267d9d8067.html#ac8f7bd459f5052601dbbab267d9d8067',1,'Ucs_I2c_ResultDetails_t::inic_result()'],['../struct_ucs___xrm___result_details__t_ac8f7bd459f5052601dbbab267d9d8067.html#ac8f7bd459f5052601dbbab267d9d8067',1,'Ucs_Xrm_ResultDetails_t::inic_result()']]],
+ ['inic_5fwatchdog_5fenabled',['inic_watchdog_enabled',['../struct_ucs___general___init_data__t_a1694b517ad074d3b14b76b400f86c9db.html#a1694b517ad074d3b14b76b400f86c9db',1,'Ucs_General_InitData_t']]],
+ ['instance_5fid',['instance_id',['../struct_msg___msg_id__t_ab529e65a59b5c14626acf162f03fbfd4.html#ab529e65a59b5c14626acf162f03fbfd4',1,'Msg_MsgId_t']]],
+ ['instid',['InstId',['../struct_ucs___ns___config_msg__t_a08a6ee143e484d0a82593eb1ff632813.html#a08a6ee143e484d0a82593eb1ff632813',1,'Ucs_Ns_ConfigMsg_t']]],
+ ['int_5fresult',['int_result',['../struct_ucs___xrm___result_details__t_aee65ac620e16fd7b0fe4135514394901.html#aee65ac620e16fd7b0fe4135514394901',1,'Ucs_Xrm_ResultDetails_t']]],
+ ['internal_5finfos',['internal_infos',['../struct_ucs___rm___node__t_a83b42042de7afe0e4e421de3e82ba5d6.html#a83b42042de7afe0e4e421de3e82ba5d6',1,'Ucs_Rm_Node_t::internal_infos()'],['../struct_ucs___rm___end_point__t_afb41e308e548fde7dd754172cfb44ccf.html#afb41e308e548fde7dd754172cfb44ccf',1,'Ucs_Rm_EndPoint_t::internal_infos()'],['../struct_ucs___rm___route__t_abd3ce7c042005f4f8713f6c5359c1633.html#abd3ce7c042005f4f8713f6c5359c1633',1,'Ucs_Rm_Route_t::internal_infos()']]],
+ ['interrupt_5fstatus_5ffptr',['interrupt_status_fptr',['../struct_ucs___i2c___init_data__t_a2d31f7e7ace9d7a9998a9d9427706a45.html#a2d31f7e7ace9d7a9998a9d9427706a45',1,'Ucs_I2c_InitData_t']]],
+ ['isoc_5fpacket_5fsize',['isoc_packet_size',['../struct_ucs___xrm___avp_con__t_a1e377eede69f95567f72835634ac6241.html#a1e377eede69f95567f72835634ac6241',1,'Ucs_Xrm_AvpCon_t']]]
+];
diff --git a/ucs2-lib/doc/html/search/variables_6a.html b/ucs2-lib/doc/html/search/variables_6a.html
new file mode 100644
index 0000000..21bba5e
--- /dev/null
+++ b/ucs2-lib/doc/html/search/variables_6a.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_6a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/variables_6a.js b/ucs2-lib/doc/html/search/variables_6a.js
new file mode 100644
index 0000000..205b08f
--- /dev/null
+++ b/ucs2-lib/doc/html/search/variables_6a.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['jobs_5flist_5fptr',['jobs_list_ptr',['../struct_ucs___rm___end_point__t_a1022525e5f766bcdbcd0046c3313d3ac.html#a1022525e5f766bcdbcd0046c3313d3ac',1,'Ucs_Rm_EndPoint_t']]]
+];
diff --git a/ucs2-lib/doc/html/search/variables_6c.html b/ucs2-lib/doc/html/search/variables_6c.html
new file mode 100644
index 0000000..6016f5c
--- /dev/null
+++ b/ucs2-lib/doc/html/search/variables_6c.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_6c.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/variables_6c.js b/ucs2-lib/doc/html/search/variables_6c.js
new file mode 100644
index 0000000..5493314
--- /dev/null
+++ b/ucs2-lib/doc/html/search/variables_6c.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+ ['lld',['lld',['../struct_ucs___init_data__t_ac0b0a4478bafe6e81ed3c3e2c72f4fc9.html#ac0b0a4478bafe6e81ed3c3e2c72f4fc9',1,'Ucs_InitData_t']]],
+ ['lld_5fuser_5fptr',['lld_user_ptr',['../struct_ucs___lld___callbacks__t_a44afa0156353f9fba156ff0c91873968.html#a44afa0156353f9fba156ff0c91873968',1,'Ucs_Lld_Callbacks_t']]],
+ ['llrbc',['llrbc',['../struct_ucs___ams_tx___msg__t_a82997e00f317333173aa610d0902ab04.html#a82997e00f317333173aa610d0902ab04',1,'Ucs_AmsTx_Msg_t::llrbc()'],['../struct_msg___tx_options__t_a82997e00f317333173aa610d0902ab04.html#a82997e00f317333173aa610d0902ab04',1,'Msg_TxOptions_t::llrbc()']]]
+];
diff --git a/ucs2-lib/doc/html/search/variables_6d.html b/ucs2-lib/doc/html/search/variables_6d.html
new file mode 100644
index 0000000..b7924e3
--- /dev/null
+++ b/ucs2-lib/doc/html/search/variables_6d.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_6d.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/variables_6d.js b/ucs2-lib/doc/html/search/variables_6d.js
new file mode 100644
index 0000000..698f6d3
--- /dev/null
+++ b/ucs2-lib/doc/html/search/variables_6d.js
@@ -0,0 +1,19 @@
+var searchData=
+[
+ ['mac_5f15_5f0',['mac_15_0',['../struct_ucs___signature__t_ade0e080bbfc75844b7cbcc3dd13c48cb.html#ade0e080bbfc75844b7cbcc3dd13c48cb',1,'Ucs_Signature_t']]],
+ ['mac_5f31_5f16',['mac_31_16',['../struct_ucs___signature__t_a2139c6a8e2f491cdfbb8f3ce11ee39cb.html#a2139c6a8e2f491cdfbb8f3ce11ee39cb',1,'Ucs_Signature_t']]],
+ ['mac_5f47_5f32',['mac_47_32',['../struct_ucs___signature__t_a64f511e7134a5ebcab4fe44d180c2245.html#a64f511e7134a5ebcab4fe44d180c2245',1,'Ucs_Signature_t']]],
+ ['major_5fversion',['major_version',['../struct_ucs___inic___version__t_a79fca74d233fe79b334ecc712ca688ea.html#a79fca74d233fe79b334ecc712ca688ea',1,'Ucs_Inic_Version_t']]],
+ ['mem_5fid',['mem_id',['../struct_ucs___prg___command__t_ac6e0813f6e305faff5b36579a4d1d727.html#ac6e0813f6e305faff5b36579a4d1d727',1,'Ucs_Prg_Command_t']]],
+ ['memory_5fptr',['memory_ptr',['../struct_ucs___lld___tx_msg__t_a0fae6a3f19d8a9bbdad3c3b1ead3e868.html#a0fae6a3f19d8a9bbdad3c3b1ead3e868',1,'Ucs_Lld_TxMsg_t']]],
+ ['message_5ffreed_5ffptr',['message_freed_fptr',['../struct_ucs___ams_tx___init_data__t_a9217a093b6d7e68b7cd9d759c5cef192.html#a9217a093b6d7e68b7cd9d759c5cef192',1,'Ucs_AmsTx_InitData_t']]],
+ ['message_5freceived_5ffptr',['message_received_fptr',['../struct_ucs___ams_rx___init_data__t_a94cec5846cb407141e9c1e1a2ea205d3.html#a94cec5846cb407141e9c1e1a2ea205d3',1,'Ucs_AmsRx_InitData_t']]],
+ ['mgr',['mgr',['../struct_ucs___init_data__t_a517c2ec800639c8a91183e70189b1875.html#a517c2ec800639c8a91183e70189b1875',1,'Ucs_InitData_t']]],
+ ['minor_5fversion',['minor_version',['../struct_ucs___inic___version__t_a384e7593c5c4c33e1f7c9936dab0b937.html#a384e7593c5c4c33e1f7c9936dab0b937',1,'Ucs_Inic_Version_t']]],
+ ['mlb_5fport_5fobj_5fptr',['mlb_port_obj_ptr',['../struct_ucs___xrm___mlb_socket__t_a37fe80d7da3769557b97ce02522623f0.html#a37fe80d7da3769557b97ce02522623f0',1,'Ucs_Xrm_MlbSocket_t']]],
+ ['mode',['mode',['../struct_ucs___gpio___pin_configuration__t_a9f9602aa82b7dc511dfd57447039c1ab.html#a9f9602aa82b7dc511dfd57447039c1ab',1,'Ucs_Gpio_PinConfiguration_t']]],
+ ['most_5fport_5fhandle',['most_port_handle',['../struct_ucs___xrm___most_socket__t_a3d1f833dbb35db5fed7638006fda4138.html#a3d1f833dbb35db5fed7638006fda4138',1,'Ucs_Xrm_MostSocket_t::most_port_handle()'],['../struct_ucs___xrm___combiner__t_a3d1f833dbb35db5fed7638006fda4138.html#a3d1f833dbb35db5fed7638006fda4138',1,'Ucs_Xrm_Combiner_t::most_port_handle()'],['../struct_ucs___xrm___splitter__t_a3d1f833dbb35db5fed7638006fda4138.html#a3d1f833dbb35db5fed7638006fda4138',1,'Ucs_Xrm_Splitter_t::most_port_handle()']]],
+ ['most_5fport_5fstatus_5ffptr',['most_port_status_fptr',['../struct_ucs___xrm___init_data__t_a9497e039c582e7d2804ee470d6812e91.html#a9497e039c582e7d2804ee470d6812e91',1,'Ucs_Xrm_InitData_t']]],
+ ['msg_5fid',['msg_id',['../struct_ucs___ams_tx___msg__t_a689014fc11d4f26d264ddae2eaebc9d8.html#a689014fc11d4f26d264ddae2eaebc9d8',1,'Ucs_AmsTx_Msg_t::msg_id()'],['../struct_ucs___ams_rx___msg__t_a689014fc11d4f26d264ddae2eaebc9d8.html#a689014fc11d4f26d264ddae2eaebc9d8',1,'Ucs_AmsRx_Msg_t::msg_id()'],['../struct_ucs___cmd___msg_id__t_a689014fc11d4f26d264ddae2eaebc9d8.html#a689014fc11d4f26d264ddae2eaebc9d8',1,'Ucs_Cmd_MsgId_t::msg_id()']]],
+ ['mute_5fmode',['mute_mode',['../struct_ucs___xrm___sync_con__t_ad24def4858c3013652eba166fe48d267.html#ad24def4858c3013652eba166fe48d267',1,'Ucs_Xrm_SyncCon_t']]]
+];
diff --git a/ucs2-lib/doc/html/search/variables_6e.html b/ucs2-lib/doc/html/search/variables_6e.html
new file mode 100644
index 0000000..4cc41d5
--- /dev/null
+++ b/ucs2-lib/doc/html/search/variables_6e.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_6e.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/variables_6e.js b/ucs2-lib/doc/html/search/variables_6e.js
new file mode 100644
index 0000000..b52dec8
--- /dev/null
+++ b/ucs2-lib/doc/html/search/variables_6e.js
@@ -0,0 +1,16 @@
+var searchData=
+[
+ ['nd',['nd',['../struct_ucs___init_data__t_a97b13c03602cc54884ae1765c518bd7b.html#a97b13c03602cc54884ae1765c518bd7b',1,'Ucs_InitData_t']]],
+ ['neton',['neton',['../struct_c_programming_a98d71a61e60458dc0106353ce1fd43fe.html#a98d71a61e60458dc0106353ce1fd43fe',1,'CProgramming']]],
+ ['network',['network',['../struct_ucs___init_data__t_aa220785601aa16c0e0aff52f44380719.html#aa220785601aa16c0e0aff52f44380719',1,'Ucs_InitData_t']]],
+ ['next_5fbuffer_5fptr',['next_buffer_ptr',['../struct_ucs___mem___buffer__t_a5245ce4ea7d022a357642b645e7ac645.html#a5245ce4ea7d022a357642b645e7ac645',1,'Ucs_Mem_Buffer_t']]],
+ ['node_5faddress',['node_address',['../struct_ucs___signature__t_a550e0ded0fb13bc58b087d3a162d43c7.html#a550e0ded0fb13bc58b087d3a162d43c7',1,'Ucs_Signature_t']]],
+ ['node_5fid',['node_id',['../struct_c_programming_a07ec3cc0de32c2b7496197f15e96c475.html#a07ec3cc0de32c2b7496197f15e96c475',1,'CProgramming']]],
+ ['node_5fobj_5fptr',['node_obj_ptr',['../struct_ucs___rm___end_point__t_aeba772076fc522f4d27dfb647457bb6d.html#aeba772076fc522f4d27dfb647457bb6d',1,'Ucs_Rm_EndPoint_t']]],
+ ['node_5fpos_5faddr',['node_pos_addr',['../struct_ucs___signature__t_a0057a5f105488012ba3448bbb1099ebe.html#a0057a5f105488012ba3448bbb1099ebe',1,'Ucs_Signature_t']]],
+ ['nodes_5flist_5fptr',['nodes_list_ptr',['../struct_ucs___mgr___init_data__t_ae261d2df7a2be21b4e8e4a582113643c.html#ae261d2df7a2be21b4e8e4a582113643c',1,'Ucs_Mgr_InitData_t']]],
+ ['nodes_5flist_5fsize',['nodes_list_size',['../struct_ucs___mgr___init_data__t_ab0ad9592908a66a29460d67bf3146114.html#ab0ad9592908a66a29460d67bf3146114',1,'Ucs_Mgr_InitData_t']]],
+ ['notification_5fmask',['notification_mask',['../struct_ucs___network___status__t_ae7a618bc7852c52001d0756913c545c8.html#ae7a618bc7852c52001d0756913c545c8',1,'Ucs_Network_Status_t']]],
+ ['num',['num',['../struct_ucs___sd___segment__t_abea371f9030e15a5d2a4c181576833d8.html#abea371f9030e15a5d2a4c181576833d8',1,'Ucs_Sd_Segment_t']]],
+ ['num_5fports',['num_ports',['../struct_ucs___signature__t_a8584c5e1f2a1ec30387f93538bdf2b00.html#a8584c5e1f2a1ec30387f93538bdf2b00',1,'Ucs_Signature_t']]]
+];
diff --git a/ucs2-lib/doc/html/search/variables_6f.html b/ucs2-lib/doc/html/search/variables_6f.html
new file mode 100644
index 0000000..12fe64f
--- /dev/null
+++ b/ucs2-lib/doc/html/search/variables_6f.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_6f.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/variables_6f.js b/ucs2-lib/doc/html/search/variables_6f.js
new file mode 100644
index 0000000..a00e08a
--- /dev/null
+++ b/ucs2-lib/doc/html/search/variables_6f.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+ ['offset',['offset',['../struct_ucs___xrm___sync_con__t_ac681806181c80437cfab37335f62ff39.html#ac681806181c80437cfab37335f62ff39',1,'Ucs_Xrm_SyncCon_t']]],
+ ['op_5ftype',['op_type',['../struct_msg___msg_id__t_ac3f5682d1affe8931b94fa90c28f6f31.html#ac3f5682d1affe8931b94fa90c28f6f31',1,'Msg_MsgId_t']]],
+ ['opcode',['OpCode',['../struct_ucs___ns___config_msg__t_a4011d0b720d10f4eeacd939998ebe85d.html#a4011d0b720d10f4eeacd939998ebe85d',1,'Ucs_Ns_ConfigMsg_t']]],
+ ['opts',['opts',['../struct_msg___most_tel__t_a9420136f5d99f8b6c48445b5eb048d60.html#a9420136f5d99f8b6c48445b5eb048d60',1,'Msg_MostTel_t']]]
+];
diff --git a/ucs2-lib/doc/html/search/variables_70.html b/ucs2-lib/doc/html/search/variables_70.html
new file mode 100644
index 0000000..bc5c193
--- /dev/null
+++ b/ucs2-lib/doc/html/search/variables_70.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_70.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/variables_70.js b/ucs2-lib/doc/html/search/variables_70.js
new file mode 100644
index 0000000..f3407f2
--- /dev/null
+++ b/ucs2-lib/doc/html/search/variables_70.js
@@ -0,0 +1,17 @@
+var searchData=
+[
+ ['packet_5fbw',['packet_bw',['../struct_ucs___mgr___init_data__t_a980d5ec2fe728b8ca99de235be7858d2.html#a980d5ec2fe728b8ca99de235be7858d2',1,'Ucs_Mgr_InitData_t']]],
+ ['pause',['pause',['../struct_ucs___ns___script__t_a69ffffc951e73c7116876a2e908cf3ba.html#a69ffffc951e73c7116876a2e908cf3ba',1,'Ucs_Ns_Script_t']]],
+ ['physical_5flayer',['physical_layer',['../struct_ucs___xrm___usb_port__t_aea7ae4f766b52f8f4fa492449ba24c14.html#aea7ae4f766b52f8f4fa492449ba24c14',1,'Ucs_Xrm_UsbPort_t']]],
+ ['pin',['pin',['../struct_ucs___gpio___pin_configuration__t_ab40a673fb19c1e650e1f79de91788aa5.html#ab40a673fb19c1e650e1f79de91788aa5',1,'Ucs_Gpio_PinConfiguration_t']]],
+ ['port_5fsocket_5fobj_5fptr',['port_socket_obj_ptr',['../struct_ucs___xrm___combiner__t_ab4f0942e9c11cfa5e9db135b352c17a5.html#ab4f0942e9c11cfa5e9db135b352c17a5',1,'Ucs_Xrm_Combiner_t']]],
+ ['port_5ftype',['port_type',['../struct_ucs___xrm___default_created_port__t_a58cd72485f642399fb1815f026dbaae7.html#a58cd72485f642399fb1815f026dbaae7',1,'Ucs_Xrm_DefaultCreatedPort_t']]],
+ ['power_5fstate_5ffptr',['power_state_fptr',['../struct_ucs___inic___init_data__t_a238990027953e8302526513c7cbb4dc0.html#a238990027953e8302526513c7cbb4dc0',1,'Ucs_Inic_InitData_t']]],
+ ['prg_5fmemclose',['prg_memclose',['../struct_c_programming_af713f15b39baa1603eeb9984877e04ad.html#af713f15b39baa1603eeb9984877e04ad',1,'CProgramming']]],
+ ['prg_5fmemopen',['prg_memopen',['../struct_c_programming_aae5da389e9fa9462cd96740a8e288825.html#aae5da389e9fa9462cd96740a8e288825',1,'CProgramming']]],
+ ['prg_5fmemwrite',['prg_memwrite',['../struct_c_programming_a0f7e779ac777da57585e57ff0d85c842.html#a0f7e779ac777da57585e57ff0d85c842',1,'CProgramming']]],
+ ['prg_5fnwstatus',['prg_nwstatus',['../struct_c_programming_aba55669ce31313a3dcd2e04fb6e31a62.html#aba55669ce31313a3dcd2e04fb6e31a62',1,'CProgramming']]],
+ ['prg_5fterminate',['prg_terminate',['../struct_c_programming_a5ef650eccc58da14ca17f8480c0669eb.html#a5ef650eccc58da14ca17f8480c0669eb',1,'CProgramming']]],
+ ['prg_5fwelcome',['prg_welcome',['../struct_c_programming_ac5cd5e459eb1d8746b5660c1f98c3906.html#ac5cd5e459eb1d8746b5660c1f98c3906',1,'CProgramming']]],
+ ['product_5fidentifier',['product_identifier',['../struct_ucs___inic___version__t_a20c9cb94858deb6d8a9ab9a220fa8778.html#a20c9cb94858deb6d8a9ab9a220fa8778',1,'Ucs_Inic_Version_t']]]
+];
diff --git a/ucs2-lib/doc/html/search/variables_72.html b/ucs2-lib/doc/html/search/variables_72.html
new file mode 100644
index 0000000..29b87f0
--- /dev/null
+++ b/ucs2-lib/doc/html/search/variables_72.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_72.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/variables_72.js b/ucs2-lib/doc/html/search/variables_72.js
new file mode 100644
index 0000000..1da9985
--- /dev/null
+++ b/ucs2-lib/doc/html/search/variables_72.js
@@ -0,0 +1,21 @@
+var searchData=
+[
+ ['receive_5ftype',['receive_type',['../struct_ucs___ams_rx___msg__t_af3ea491a2bc42c0f8a5911b4d21058d0.html#af3ea491a2bc42c0f8a5911b4d21058d0',1,'Ucs_AmsRx_Msg_t']]],
+ ['release_5fversion',['release_version',['../struct_ucs___inic___version__t_a2aa984a9a3499db9e991535b402b3dca.html#a2aa984a9a3499db9e991535b402b3dca',1,'Ucs_Inic_Version_t']]],
+ ['report_5ffptr',['report_fptr',['../struct_ucs___rm___init_data__t_a2420c468d89e6f991f68189ba2f61d15.html#a2420c468d89e6f991f68189ba2f61d15',1,'Ucs_Rm_InitData_t::report_fptr()'],['../struct_ucs___nd___init_data__t_a98b9ccad2c6c5fa2edaf472151ee853c.html#a98b9ccad2c6c5fa2edaf472151ee853c',1,'Ucs_Nd_InitData_t::report_fptr()'],['../struct_c_programming_a06e0f1e69f5ee75281d8c1d541a9440a.html#a06e0f1e69f5ee75281d8c1d541a9440a',1,'CProgramming::report_fptr()'],['../struct_ucs___mgr___init_data__t_ac5131dba874debb5bb76b7f3b5a31818.html#ac5131dba874debb5bb76b7f3b5a31818',1,'Ucs_Mgr_InitData_t::report_fptr()']]],
+ ['request_5fservice_5ffptr',['request_service_fptr',['../struct_ucs___general___init_data__t_a7d2541cf63dfcea750c0d0ec2ef563c0.html#a7d2541cf63dfcea750c0d0ec2ef563c0',1,'Ucs_General_InitData_t']]],
+ ['resource_5fid',['resource_id',['../struct_ucs___xrm___res_identity__t_ab557e7d7735054f8f7d8cf576d4521c3.html#ab557e7d7735054f8f7d8cf576d4521c3',1,'Ucs_Xrm_ResIdentity_t']]],
+ ['resource_5findex',['resource_index',['../struct_ucs___xrm___result_details__t_a41ee1e9319711802cf5d79a2be7adcbf.html#a41ee1e9319711802cf5d79a2be7adcbf',1,'Ucs_Xrm_ResultDetails_t']]],
+ ['resource_5fstore',['resource_store',['../struct_ucs___xrm___res_identity__t_a4fe7fcd3cdb160c239e65543ac025953.html#a4fe7fcd3cdb160c239e65543ac025953',1,'Ucs_Xrm_ResIdentity_t']]],
+ ['resource_5ftype',['resource_type',['../struct_ucs___xrm___result_details__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd',1,'Ucs_Xrm_ResultDetails_t::resource_type()'],['../struct_ucs___xrm___default_created_port__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd',1,'Ucs_Xrm_DefaultCreatedPort_t::resource_type()'],['../struct_ucs___xrm___most_socket__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd',1,'Ucs_Xrm_MostSocket_t::resource_type()'],['../struct_ucs___xrm___mlb_port__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd',1,'Ucs_Xrm_MlbPort_t::resource_type()'],['../struct_ucs___xrm___mlb_socket__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd',1,'Ucs_Xrm_MlbSocket_t::resource_type()'],['../struct_ucs___xrm___usb_port__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd',1,'Ucs_Xrm_UsbPort_t::resource_type()'],['../struct_ucs___xrm___usb_socket__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd',1,'Ucs_Xrm_UsbSocket_t::resource_type()'],['../struct_ucs___xrm___rmck_port__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd',1,'Ucs_Xrm_RmckPort_t::resource_type()'],['../struct_ucs___xrm___strm_port__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd',1,'Ucs_Xrm_StrmPort_t::resource_type()'],['../struct_ucs___xrm___strm_socket__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd',1,'Ucs_Xrm_StrmSocket_t::resource_type()'],['../struct_ucs___xrm___sync_con__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd',1,'Ucs_Xrm_SyncCon_t::resource_type()'],['../struct_ucs___xrm___dfi_phase_con__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd',1,'Ucs_Xrm_DfiPhaseCon_t::resource_type()'],['../struct_ucs___xrm___combiner__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd',1,'Ucs_Xrm_Combiner_t::resource_type()'],['../struct_ucs___xrm___splitter__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd',1,'Ucs_Xrm_Splitter_t::resource_type()'],['../struct_ucs___xrm___avp_con__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd',1,'Ucs_Xrm_AvpCon_t::resource_type()'],['../struct_ucs___xrm___qo_s_con__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd',1,'Ucs_Xrm_QoSCon_t::resource_type()']]],
+ ['result_5ftype',['result_type',['../struct_ucs___gpio___result_details__t_a87d6ba6c35b8ada8a002fee6caf0c28a.html#a87d6ba6c35b8ada8a002fee6caf0c28a',1,'Ucs_Gpio_ResultDetails_t::result_type()'],['../struct_ucs___i2c___result_details__t_afbf6b21e51e2114bd8165bc6b9d920a5.html#afbf6b21e51e2114bd8165bc6b9d920a5',1,'Ucs_I2c_ResultDetails_t::result_type()'],['../struct_ucs___xrm___result_details__t_a4cb5ea6dd91baf049cf7d682202df0f4.html#a4cb5ea6dd91baf049cf7d682202df0f4',1,'Ucs_Xrm_ResultDetails_t::result_type()']]],
+ ['rm',['rm',['../struct_ucs___init_data__t_a8619aaf795810b7508046fbfef6d6907.html#a8619aaf795810b7508046fbfef6d6907',1,'Ucs_InitData_t']]],
+ ['route_5fid',['route_id',['../struct_ucs___rm___route__t_af45aa1590137605530f1757465709d39.html#af45aa1590137605530f1757465709d39',1,'Ucs_Rm_Route_t']]],
+ ['routes_5flist_5fptr',['routes_list_ptr',['../struct_ucs___mgr___init_data__t_a4bda15e771fef671a47cd88a09707030.html#a4bda15e771fef671a47cd88a09707030',1,'Ucs_Mgr_InitData_t']]],
+ ['routes_5flist_5fsize',['routes_list_size',['../struct_ucs___mgr___init_data__t_a30588f13e23cf04757b91e979e55c369.html#a30588f13e23cf04757b91e979e55c369',1,'Ucs_Mgr_InitData_t']]],
+ ['rx',['rx',['../struct_ucs___ams___init_data__t_a976344e02b80d33e167c34d3c6ae9cab.html#a976344e02b80d33e167c34d3c6ae9cab',1,'Ucs_Ams_InitData_t']]],
+ ['rx_5fallocate_5ffptr',['rx_allocate_fptr',['../struct_ucs___lld___api__t_a4621743277024b76d3afe1aed195f211.html#a4621743277024b76d3afe1aed195f211',1,'Ucs_Lld_Api_t']]],
+ ['rx_5favailable_5ffptr',['rx_available_fptr',['../struct_ucs___lld___callbacks__t_a90fa6db664734c2446327b71c51f5b52.html#a90fa6db664734c2446327b71c51f5b52',1,'Ucs_Lld_Callbacks_t']]],
+ ['rx_5ffree_5funused_5ffptr',['rx_free_unused_fptr',['../struct_ucs___lld___api__t_a9fba62024daebe86940aee310c17ccfb.html#a9fba62024daebe86940aee310c17ccfb',1,'Ucs_Lld_Api_t']]],
+ ['rx_5freceive_5ffptr',['rx_receive_fptr',['../struct_ucs___lld___api__t_a3ed1d41d7cab149f0bc5d2ea13631b16.html#a3ed1d41d7cab149f0bc5d2ea13631b16',1,'Ucs_Lld_Api_t']]]
+];
diff --git a/ucs2-lib/doc/html/search/variables_73.html b/ucs2-lib/doc/html/search/variables_73.html
new file mode 100644
index 0000000..65b8f64
--- /dev/null
+++ b/ucs2-lib/doc/html/search/variables_73.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_73.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/variables_73.js b/ucs2-lib/doc/html/search/variables_73.js
new file mode 100644
index 0000000..d16f89c
--- /dev/null
+++ b/ucs2-lib/doc/html/search/variables_73.js
@@ -0,0 +1,27 @@
+var searchData=
+[
+ ['script_5flist_5fptr',['script_list_ptr',['../struct_ucs___rm___node__t_a321da5e56aadf970749f66cfd284bb04.html#a321da5e56aadf970749f66cfd284bb04',1,'Ucs_Rm_Node_t']]],
+ ['script_5flist_5fsize',['script_list_size',['../struct_ucs___rm___node__t_a12545084e0e46ea49b48c93385f75650.html#a12545084e0e46ea49b48c93385f75650',1,'Ucs_Rm_Node_t']]],
+ ['segment',['segment',['../struct_ucs___sd___report__t_abfbddee81e60c6dc7a2ede0b5066c06a.html#abfbddee81e60c6dc7a2ede0b5066c06a',1,'Ucs_Sd_Report_t']]],
+ ['send_5fcmd',['send_cmd',['../struct_ucs___ns___script__t_a78234ed434c9f2e804d7466a45d0735d.html#a78234ed434c9f2e804d7466a45d0735d',1,'Ucs_Ns_Script_t']]],
+ ['service',['service',['../struct_c_programming_aeed780a0cff38447179779c414cfdd54.html#aeed780a0cff38447179779c414cfdd54',1,'CProgramming']]],
+ ['session_5fhandle',['session_handle',['../struct_c_programming_a696f1f893876f5efa0878dd5255ebad9.html#a696f1f893876f5efa0878dd5255ebad9',1,'CProgramming']]],
+ ['session_5ftype',['session_type',['../struct_c_programming_aa722c5fa0c9c6e4a8d5ea795f79beaae.html#aa722c5fa0c9c6e4a8d5ea795f79beaae',1,'CProgramming']]],
+ ['set_5fapplication_5ftimer_5ffptr',['set_application_timer_fptr',['../struct_ucs___general___init_data__t_a9de73ec82699e45173702e9b0ccc917a.html#a9de73ec82699e45173702e9b0ccc917a',1,'Ucs_General_InitData_t']]],
+ ['signature',['signature',['../struct_c_programming_a7e400d5be57c32dd73c2d0ffe8705602.html#a7e400d5be57c32dd73c2d0ffe8705602',1,'CProgramming']]],
+ ['signature_5fptr',['signature_ptr',['../struct_ucs___rm___node__t_ae619e45bed87dee01aaf280635cf3911.html#ae619e45bed87dee01aaf280635cf3911',1,'Ucs_Rm_Node_t']]],
+ ['sink_5fendpoint_5fptr',['sink_endpoint_ptr',['../struct_ucs___rm___route__t_a5553fda80c8780a9e42916d87a0e82dd.html#a5553fda80c8780a9e42916d87a0e82dd',1,'Ucs_Rm_Route_t']]],
+ ['socket_5fin_5fobj_5fptr',['socket_in_obj_ptr',['../struct_ucs___xrm___sync_con__t_ace5ef1fb3bd4337998a8f538645f47ed.html#ace5ef1fb3bd4337998a8f538645f47ed',1,'Ucs_Xrm_SyncCon_t::socket_in_obj_ptr()'],['../struct_ucs___xrm___dfi_phase_con__t_ace5ef1fb3bd4337998a8f538645f47ed.html#ace5ef1fb3bd4337998a8f538645f47ed',1,'Ucs_Xrm_DfiPhaseCon_t::socket_in_obj_ptr()'],['../struct_ucs___xrm___splitter__t_ace5ef1fb3bd4337998a8f538645f47ed.html#ace5ef1fb3bd4337998a8f538645f47ed',1,'Ucs_Xrm_Splitter_t::socket_in_obj_ptr()'],['../struct_ucs___xrm___avp_con__t_ace5ef1fb3bd4337998a8f538645f47ed.html#ace5ef1fb3bd4337998a8f538645f47ed',1,'Ucs_Xrm_AvpCon_t::socket_in_obj_ptr()'],['../struct_ucs___xrm___qo_s_con__t_ace5ef1fb3bd4337998a8f538645f47ed.html#ace5ef1fb3bd4337998a8f538645f47ed',1,'Ucs_Xrm_QoSCon_t::socket_in_obj_ptr()']]],
+ ['socket_5fout_5fobj_5fptr',['socket_out_obj_ptr',['../struct_ucs___xrm___sync_con__t_a21e5760677b48c43c5e4783306819f95.html#a21e5760677b48c43c5e4783306819f95',1,'Ucs_Xrm_SyncCon_t::socket_out_obj_ptr()'],['../struct_ucs___xrm___dfi_phase_con__t_a21e5760677b48c43c5e4783306819f95.html#a21e5760677b48c43c5e4783306819f95',1,'Ucs_Xrm_DfiPhaseCon_t::socket_out_obj_ptr()'],['../struct_ucs___xrm___avp_con__t_a21e5760677b48c43c5e4783306819f95.html#a21e5760677b48c43c5e4783306819f95',1,'Ucs_Xrm_AvpCon_t::socket_out_obj_ptr()'],['../struct_ucs___xrm___qo_s_con__t_a21e5760677b48c43c5e4783306819f95.html#a21e5760677b48c43c5e4783306819f95',1,'Ucs_Xrm_QoSCon_t::socket_out_obj_ptr()']]],
+ ['source',['source',['../struct_ucs___sd___segment__t_a2c97de6d0a36e262e6e86b3eb7d64525.html#a2c97de6d0a36e262e6e86b3eb7d64525',1,'Ucs_Sd_Segment_t']]],
+ ['source_5faddr',['source_addr',['../struct_msg___most_tel__t_a703fce339153ac2b164c185137b59717.html#a703fce339153ac2b164c185137b59717',1,'Msg_MostTel_t']]],
+ ['source_5faddress',['source_address',['../struct_ucs___ams_rx___msg__t_abb27f24f389ff3575a5ee33e74e66eb6.html#abb27f24f389ff3575a5ee33e74e66eb6',1,'Ucs_AmsRx_Msg_t']]],
+ ['source_5fendpoint_5fptr',['source_endpoint_ptr',['../struct_ucs___rm___route__t_a8e5e3175ae36f8c87c22e2382d0bba4a.html#a8e5e3175ae36f8c87c22e2382d0bba4a',1,'Ucs_Rm_Route_t']]],
+ ['start_5ffptr',['start_fptr',['../struct_ucs___lld___callbacks__t_a96bad24b6b49ffacfd9136230447cb22.html#a96bad24b6b49ffacfd9136230447cb22',1,'Ucs_Lld_Callbacks_t']]],
+ ['status',['status',['../struct_ucs___network___init_data__t_ae9d2b9f86bdd3a9667a348eb2b75da12.html#ae9d2b9f86bdd3a9667a348eb2b75da12',1,'Ucs_Network_InitData_t']]],
+ ['stop_5ffptr',['stop_fptr',['../struct_ucs___lld___callbacks__t_ab0f955ca90942fda14ac12500422a437.html#ab0f955ca90942fda14ac12500422a437',1,'Ucs_Lld_Callbacks_t']]],
+ ['stream_5fpin_5fid',['stream_pin_id',['../struct_ucs___xrm___strm_socket__t_ab9430187fbd36c83ef163a19dcdd735c.html#ab9430187fbd36c83ef163a19dcdd735c',1,'Ucs_Xrm_StrmSocket_t']]],
+ ['stream_5fport_5fobj_5fptr',['stream_port_obj_ptr',['../struct_ucs___xrm___strm_socket__t_a2938957a0791aa899aaedcca5b8c0405.html#a2938957a0791aa899aaedcca5b8c0405',1,'Ucs_Xrm_StrmSocket_t']]],
+ ['streaming_5fif_5fep_5fin_5fcount',['streaming_if_ep_in_count',['../struct_ucs___xrm___usb_port__t_aa1e58aa745f43164a35bb10f76f27cf4.html#aa1e58aa745f43164a35bb10f76f27cf4',1,'Ucs_Xrm_UsbPort_t']]],
+ ['streaming_5fif_5fep_5fout_5fcount',['streaming_if_ep_out_count',['../struct_ucs___xrm___usb_port__t_a95973cbb7c525bbb846928066bebe8f8.html#a95973cbb7c525bbb846928066bebe8f8',1,'Ucs_Xrm_UsbPort_t']]]
+];
diff --git a/ucs2-lib/doc/html/search/variables_74.html b/ucs2-lib/doc/html/search/variables_74.html
new file mode 100644
index 0000000..6093922
--- /dev/null
+++ b/ucs2-lib/doc/html/search/variables_74.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_74.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/variables_74.js b/ucs2-lib/doc/html/search/variables_74.js
new file mode 100644
index 0000000..4c5b64d
--- /dev/null
+++ b/ucs2-lib/doc/html/search/variables_74.js
@@ -0,0 +1,17 @@
+var searchData=
+[
+ ['target',['target',['../struct_ucs___sd___segment__t_a730fee420fdc6d921c296c9920ce4135.html#a730fee420fdc6d921c296c9920ce4135',1,'Ucs_Sd_Segment_t']]],
+ ['target_5faddress',['target_address',['../struct_c_programming_aaf0157ff97cce6b8ba8f142f65ef36e9.html#aaf0157ff97cce6b8ba8f142f65ef36e9',1,'CProgramming']]],
+ ['tel',['tel',['../struct_msg___most_tel__t_a3176fc4da0eba67428fa0627e15f86b6.html#a3176fc4da0eba67428fa0627e15f86b6',1,'Msg_MostTel_t']]],
+ ['tel_5fcnt',['tel_cnt',['../struct_msg___tel_data__t_a0102c84947aadd0fd212a7972d2fb10d.html#a0102c84947aadd0fd212a7972d2fb10d',1,'Msg_TelData_t']]],
+ ['tel_5fdata_5fptr',['tel_data_ptr',['../struct_msg___tel_data__t_afb4f9db23cd1c16b44c1e479e3f5e1cf.html#afb4f9db23cd1c16b44c1e479e3f5e1cf',1,'Msg_TelData_t']]],
+ ['tel_5fid',['tel_id',['../struct_msg___tel_data__t_a880ca776e9ea8d0bbb714a7333da52cc.html#a880ca776e9ea8d0bbb714a7333da52cc',1,'Msg_TelData_t']]],
+ ['tel_5flen',['tel_len',['../struct_msg___tel_data__t_a92083234f7755755f06bb85b3a6f2ea4.html#a92083234f7755755f06bb85b3a6f2ea4',1,'Msg_TelData_t']]],
+ ['timer',['timer',['../struct_c_programming_a756790b5cd986a970dd934f4fdf8a0a9.html#a756790b5cd986a970dd934f4fdf8a0a9',1,'CProgramming']]],
+ ['total_5fsize',['total_size',['../struct_ucs___mem___buffer__t_af0c4b4b26e805f939299b203943976b2.html#af0c4b4b26e805f939299b203943976b2',1,'Ucs_Mem_Buffer_t']]],
+ ['trigger_5fevent_5fstatus_5ffptr',['trigger_event_status_fptr',['../struct_ucs___gpio___init_data__t_abb586c1dd43ecda56d21209333104904.html#abb586c1dd43ecda56d21209333104904',1,'Ucs_Gpio_InitData_t']]],
+ ['tx',['tx',['../struct_ucs___ams___init_data__t_a8e01298906b1fbe44765c6e9e4bbc888.html#a8e01298906b1fbe44765c6e9e4bbc888',1,'Ucs_Ams_InitData_t']]],
+ ['tx_5frelease_5ffptr',['tx_release_fptr',['../struct_ucs___lld___api__t_ad4d0f461ff3009909e295910e5380835.html#ad4d0f461ff3009909e295910e5380835',1,'Ucs_Lld_Api_t']]],
+ ['tx_5fresult',['tx_result',['../struct_ucs___gpio___result_details__t_abee2d1d2c9eebcbc9da920664e9eb248.html#abee2d1d2c9eebcbc9da920664e9eb248',1,'Ucs_Gpio_ResultDetails_t::tx_result()'],['../struct_ucs___i2c___result_details__t_abee2d1d2c9eebcbc9da920664e9eb248.html#abee2d1d2c9eebcbc9da920664e9eb248',1,'Ucs_I2c_ResultDetails_t::tx_result()'],['../struct_ucs___xrm___result_details__t_abee2d1d2c9eebcbc9da920664e9eb248.html#abee2d1d2c9eebcbc9da920664e9eb248',1,'Ucs_Xrm_ResultDetails_t::tx_result()']]],
+ ['tx_5ftransmit_5ffptr',['tx_transmit_fptr',['../struct_ucs___lld___callbacks__t_ad8f7d021075e06672a999eb02da1d2e4.html#ad8f7d021075e06672a999eb02da1d2e4',1,'Ucs_Lld_Callbacks_t']]]
+];
diff --git a/ucs2-lib/doc/html/search/variables_75.html b/ucs2-lib/doc/html/search/variables_75.html
new file mode 100644
index 0000000..b9cc25c
--- /dev/null
+++ b/ucs2-lib/doc/html/search/variables_75.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_75.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/variables_75.js b/ucs2-lib/doc/html/search/variables_75.js
new file mode 100644
index 0000000..e378988
--- /dev/null
+++ b/ucs2-lib/doc/html/search/variables_75.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+ ['unit_5flength',['unit_length',['../struct_ucs___prg___command__t_aaeb273d8c806cdbebcb5d61a58b3a77d.html#aaeb273d8c806cdbebcb5d61a58b3a77d',1,'Ucs_Prg_Command_t']]],
+ ['usb_5fport_5fobj_5fptr',['usb_port_obj_ptr',['../struct_ucs___xrm___usb_socket__t_a3fe892af2f377651d07638c52a163326.html#a3fe892af2f377651d07638c52a163326',1,'Ucs_Xrm_UsbSocket_t']]],
+ ['user_5fptr',['user_ptr',['../struct_ucs___init_data__t_a41f828ebbe67a574ee39abd6c054bb6c.html#a41f828ebbe67a574ee39abd6c054bb6c',1,'Ucs_InitData_t']]]
+];
diff --git a/ucs2-lib/doc/html/search/variables_78.html b/ucs2-lib/doc/html/search/variables_78.html
new file mode 100644
index 0000000..4a1263d
--- /dev/null
+++ b/ucs2-lib/doc/html/search/variables_78.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_78.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/ucs2-lib/doc/html/search/variables_78.js b/ucs2-lib/doc/html/search/variables_78.js
new file mode 100644
index 0000000..1621c32
--- /dev/null
+++ b/ucs2-lib/doc/html/search/variables_78.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['xrm',['xrm',['../struct_ucs___rm___init_data__t_ab3de88c423837727c463947f57895e49.html#ab3de88c423837727c463947f57895e49',1,'Ucs_Rm_InitData_t']]]
+];
diff --git a/ucs2-lib/doc/html/struct_c_programming.html b/ucs2-lib/doc/html/struct_c_programming.html
new file mode 100644
index 0000000..89238cd
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_c_programming.html
@@ -0,0 +1,197 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: CProgramming Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_c_programming.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">CProgramming Struct Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Structure of class <a class="el" href="struct_c_programming.html" title="Structure of class CProgramming.">CProgramming</a>.
+ <a href="struct_c_programming.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a64c85894e8881b2b033cad0e08afb227"><td class="memItemLeft" align="right" valign="top">CInic *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_c_programming_a64c85894e8881b2b033cad0e08afb227.html#a64c85894e8881b2b033cad0e08afb227">inic</a></td></tr>
+<tr class="memdesc:a64c85894e8881b2b033cad0e08afb227"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference to CInic object. <a href="#a64c85894e8881b2b033cad0e08afb227"></a><br/></td></tr>
+<tr class="separator:a64c85894e8881b2b033cad0e08afb227"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a510e91e91f2f7b75fb6ea9d7760fc81c"><td class="memItemLeft" align="right" valign="top">CExc *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_c_programming_a510e91e91f2f7b75fb6ea9d7760fc81c.html#a510e91e91f2f7b75fb6ea9d7760fc81c">exc</a></td></tr>
+<tr class="memdesc:a510e91e91f2f7b75fb6ea9d7760fc81c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference to CExc object. <a href="#a510e91e91f2f7b75fb6ea9d7760fc81c"></a><br/></td></tr>
+<tr class="separator:a510e91e91f2f7b75fb6ea9d7760fc81c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a52f06fda08f2eb2b225c6201e38d1788"><td class="memItemLeft" align="right" valign="top">CBase *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_c_programming_a52f06fda08f2eb2b225c6201e38d1788.html#a52f06fda08f2eb2b225c6201e38d1788">base</a></td></tr>
+<tr class="memdesc:a52f06fda08f2eb2b225c6201e38d1788"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference to CBase object. <a href="#a52f06fda08f2eb2b225c6201e38d1788"></a><br/></td></tr>
+<tr class="separator:a52f06fda08f2eb2b225c6201e38d1788"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac5cd5e459eb1d8746b5660c1f98c3906"><td class="memItemLeft" align="right" valign="top">CSingleObserver&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_c_programming_ac5cd5e459eb1d8746b5660c1f98c3906.html#ac5cd5e459eb1d8746b5660c1f98c3906">prg_welcome</a></td></tr>
+<tr class="memdesc:ac5cd5e459eb1d8746b5660c1f98c3906"><td class="mdescLeft">&#160;</td><td class="mdescRight">Observes the Welcome result. <a href="#ac5cd5e459eb1d8746b5660c1f98c3906"></a><br/></td></tr>
+<tr class="separator:ac5cd5e459eb1d8746b5660c1f98c3906"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aae5da389e9fa9462cd96740a8e288825"><td class="memItemLeft" align="right" valign="top">CSingleObserver&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_c_programming_aae5da389e9fa9462cd96740a8e288825.html#aae5da389e9fa9462cd96740a8e288825">prg_memopen</a></td></tr>
+<tr class="memdesc:aae5da389e9fa9462cd96740a8e288825"><td class="mdescLeft">&#160;</td><td class="mdescRight">Observes the MemSessionOpen result. <a href="#aae5da389e9fa9462cd96740a8e288825"></a><br/></td></tr>
+<tr class="separator:aae5da389e9fa9462cd96740a8e288825"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0f7e779ac777da57585e57ff0d85c842"><td class="memItemLeft" align="right" valign="top">CSingleObserver&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_c_programming_a0f7e779ac777da57585e57ff0d85c842.html#a0f7e779ac777da57585e57ff0d85c842">prg_memwrite</a></td></tr>
+<tr class="memdesc:a0f7e779ac777da57585e57ff0d85c842"><td class="mdescLeft">&#160;</td><td class="mdescRight">Observes the MemoryWrite result. <a href="#a0f7e779ac777da57585e57ff0d85c842"></a><br/></td></tr>
+<tr class="separator:a0f7e779ac777da57585e57ff0d85c842"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af713f15b39baa1603eeb9984877e04ad"><td class="memItemLeft" align="right" valign="top">CSingleObserver&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_c_programming_af713f15b39baa1603eeb9984877e04ad.html#af713f15b39baa1603eeb9984877e04ad">prg_memclose</a></td></tr>
+<tr class="memdesc:af713f15b39baa1603eeb9984877e04ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Observes the MemSessionClose result. <a href="#af713f15b39baa1603eeb9984877e04ad"></a><br/></td></tr>
+<tr class="separator:af713f15b39baa1603eeb9984877e04ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5ef650eccc58da14ca17f8480c0669eb"><td class="memItemLeft" align="right" valign="top">CMaskedObserver&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_c_programming_a5ef650eccc58da14ca17f8480c0669eb.html#a5ef650eccc58da14ca17f8480c0669eb">prg_terminate</a></td></tr>
+<tr class="memdesc:a5ef650eccc58da14ca17f8480c0669eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Observes events leading to termination. <a href="#a5ef650eccc58da14ca17f8480c0669eb"></a><br/></td></tr>
+<tr class="separator:a5ef650eccc58da14ca17f8480c0669eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aba55669ce31313a3dcd2e04fb6e31a62"><td class="memItemLeft" align="right" valign="top">CObserver&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_c_programming_aba55669ce31313a3dcd2e04fb6e31a62.html#aba55669ce31313a3dcd2e04fb6e31a62">prg_nwstatus</a></td></tr>
+<tr class="memdesc:aba55669ce31313a3dcd2e04fb6e31a62"><td class="mdescLeft">&#160;</td><td class="mdescRight">Observes the MOST Network status. <a href="#aba55669ce31313a3dcd2e04fb6e31a62"></a><br/></td></tr>
+<tr class="separator:aba55669ce31313a3dcd2e04fb6e31a62"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae20a8288958f7ad71b35a1e460f25d4c"><td class="memItemLeft" align="right" valign="top">CFsm&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_c_programming_ae20a8288958f7ad71b35a1e460f25d4c.html#ae20a8288958f7ad71b35a1e460f25d4c">fsm</a></td></tr>
+<tr class="memdesc:ae20a8288958f7ad71b35a1e460f25d4c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Node Discovery state machine. <a href="#ae20a8288958f7ad71b35a1e460f25d4c"></a><br/></td></tr>
+<tr class="separator:ae20a8288958f7ad71b35a1e460f25d4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeed780a0cff38447179779c414cfdd54"><td class="memItemLeft" align="right" valign="top">CService&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_c_programming_aeed780a0cff38447179779c414cfdd54.html#aeed780a0cff38447179779c414cfdd54">service</a></td></tr>
+<tr class="memdesc:aeed780a0cff38447179779c414cfdd54"><td class="mdescLeft">&#160;</td><td class="mdescRight">Service instance for the scheduler. <a href="#aeed780a0cff38447179779c414cfdd54"></a><br/></td></tr>
+<tr class="separator:aeed780a0cff38447179779c414cfdd54"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a756790b5cd986a970dd934f4fdf8a0a9"><td class="memItemLeft" align="right" valign="top">CTimer&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_c_programming_a756790b5cd986a970dd934f4fdf8a0a9.html#a756790b5cd986a970dd934f4fdf8a0a9">timer</a></td></tr>
+<tr class="memdesc:a756790b5cd986a970dd934f4fdf8a0a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">timer for monitoring messages <a href="#a756790b5cd986a970dd934f4fdf8a0a9"></a><br/></td></tr>
+<tr class="separator:a756790b5cd986a970dd934f4fdf8a0a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a98d71a61e60458dc0106353ce1fd43fe"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_c_programming_a98d71a61e60458dc0106353ce1fd43fe.html#a98d71a61e60458dc0106353ce1fd43fe">neton</a></td></tr>
+<tr class="memdesc:a98d71a61e60458dc0106353ce1fd43fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">indicates Network availability <a href="#a98d71a61e60458dc0106353ce1fd43fe"></a><br/></td></tr>
+<tr class="separator:a98d71a61e60458dc0106353ce1fd43fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a07ec3cc0de32c2b7496197f15e96c475"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_c_programming_a07ec3cc0de32c2b7496197f15e96c475.html#a07ec3cc0de32c2b7496197f15e96c475">node_id</a></td></tr>
+<tr class="memdesc:a07ec3cc0de32c2b7496197f15e96c475"><td class="mdescLeft">&#160;</td><td class="mdescRight">Position address of the node to be programmed. <a href="#a07ec3cc0de32c2b7496197f15e96c475"></a><br/></td></tr>
+<tr class="separator:a07ec3cc0de32c2b7496197f15e96c475"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaf0157ff97cce6b8ba8f142f65ef36e9"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_c_programming_aaf0157ff97cce6b8ba8f142f65ef36e9.html#aaf0157ff97cce6b8ba8f142f65ef36e9">target_address</a></td></tr>
+<tr class="memdesc:aaf0157ff97cce6b8ba8f142f65ef36e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Actual target address. <a href="#aaf0157ff97cce6b8ba8f142f65ef36e9"></a><br/></td></tr>
+<tr class="separator:aaf0157ff97cce6b8ba8f142f65ef36e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7e400d5be57c32dd73c2d0ffe8705602"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_ucs___signature__t.html">Ucs_Signature_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_c_programming_a7e400d5be57c32dd73c2d0ffe8705602.html#a7e400d5be57c32dd73c2d0ffe8705602">signature</a></td></tr>
+<tr class="memdesc:a7e400d5be57c32dd73c2d0ffe8705602"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signature of the node to be programmed. <a href="#a7e400d5be57c32dd73c2d0ffe8705602"></a><br/></td></tr>
+<tr class="separator:a7e400d5be57c32dd73c2d0ffe8705602"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa722c5fa0c9c6e4a8d5ea795f79beaae"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gab29d4eadce18cb68209671a44c1eaa3a.html#gab29d4eadce18cb68209671a44c1eaa3a">Ucs_Prg_SessionType_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_c_programming_aa722c5fa0c9c6e4a8d5ea795f79beaae.html#aa722c5fa0c9c6e4a8d5ea795f79beaae">session_type</a></td></tr>
+<tr class="memdesc:aa722c5fa0c9c6e4a8d5ea795f79beaae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the memory access type. <a href="#aa722c5fa0c9c6e4a8d5ea795f79beaae"></a><br/></td></tr>
+<tr class="separator:aa722c5fa0c9c6e4a8d5ea795f79beaae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae6d9d0f0acd5d6473bfbb35d75a50857"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_ucs___prg___command__t.html">Ucs_Prg_Command_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_c_programming_ae6d9d0f0acd5d6473bfbb35d75a50857.html#ae6d9d0f0acd5d6473bfbb35d75a50857">command_list</a></td></tr>
+<tr class="memdesc:ae6d9d0f0acd5d6473bfbb35d75a50857"><td class="mdescLeft">&#160;</td><td class="mdescRight">Refers to array of programming tasks. <a href="#ae6d9d0f0acd5d6473bfbb35d75a50857"></a><br/></td></tr>
+<tr class="separator:ae6d9d0f0acd5d6473bfbb35d75a50857"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a87ab79c86a6b6023f00cfdf465dad09a"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_c_programming_a87ab79c86a6b6023f00cfdf465dad09a.html#a87ab79c86a6b6023f00cfdf465dad09a">command_index</a></td></tr>
+<tr class="memdesc:a87ab79c86a6b6023f00cfdf465dad09a"><td class="mdescLeft">&#160;</td><td class="mdescRight">index for command_list <a href="#a87ab79c86a6b6023f00cfdf465dad09a"></a><br/></td></tr>
+<tr class="separator:a87ab79c86a6b6023f00cfdf465dad09a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9b9ca9dbb62f68667558e9ba9250f707"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_c_programming_a9b9ca9dbb62f68667558e9ba9250f707.html#a9b9ca9dbb62f68667558e9ba9250f707">admin_node_address</a></td></tr>
+<tr class="memdesc:a9b9ca9dbb62f68667558e9ba9250f707"><td class="mdescLeft">&#160;</td><td class="mdescRight">Admin Node Address. <a href="#a9b9ca9dbb62f68667558e9ba9250f707"></a><br/></td></tr>
+<tr class="separator:a9b9ca9dbb62f68667558e9ba9250f707"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a06e0f1e69f5ee75281d8c1d541a9440a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e_ga15045bde4d6a35f1b1e20eb6e3c688ab.html#ga15045bde4d6a35f1b1e20eb6e3c688ab">Ucs_Prg_ReportCb_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_c_programming_a06e0f1e69f5ee75281d8c1d541a9440a.html#a06e0f1e69f5ee75281d8c1d541a9440a">report_fptr</a></td></tr>
+<tr class="memdesc:a06e0f1e69f5ee75281d8c1d541a9440a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Report callback function. <a href="#a06e0f1e69f5ee75281d8c1d541a9440a"></a><br/></td></tr>
+<tr class="separator:a06e0f1e69f5ee75281d8c1d541a9440a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a696f1f893876f5efa0878dd5255ebad9"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_c_programming_a696f1f893876f5efa0878dd5255ebad9.html#a696f1f893876f5efa0878dd5255ebad9">session_handle</a></td></tr>
+<tr class="memdesc:a696f1f893876f5efa0878dd5255ebad9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unique number used to authorize memory access. <a href="#a696f1f893876f5efa0878dd5255ebad9"></a><br/></td></tr>
+<tr class="separator:a696f1f893876f5efa0878dd5255ebad9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6faea6381a3c39905de4fca5cb966a81"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#ga25cd4c3a9113e0a25b65136fec561c83">Ucs_Prg_Func_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_c_programming_a6faea6381a3c39905de4fca5cb966a81.html#a6faea6381a3c39905de4fca5cb966a81">current_function</a></td></tr>
+<tr class="memdesc:a6faea6381a3c39905de4fca5cb966a81"><td class="mdescLeft">&#160;</td><td class="mdescRight">last used function. <a href="#a6faea6381a3c39905de4fca5cb966a81"></a><br/></td></tr>
+<tr class="separator:a6faea6381a3c39905de4fca5cb966a81"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2e6eb03384cae6a78a3ab2a9a63229e9"><td class="memItemLeft" align="right" valign="top">Prg_Error_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_c_programming_a2e6eb03384cae6a78a3ab2a9a63229e9.html#a2e6eb03384cae6a78a3ab2a9a63229e9">error</a></td></tr>
+<tr class="memdesc:a2e6eb03384cae6a78a3ab2a9a63229e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">stores the current error information <a href="#a2e6eb03384cae6a78a3ab2a9a63229e9"></a><br/></td></tr>
+<tr class="separator:a2e6eb03384cae6a78a3ab2a9a63229e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Structure of class <a class="el" href="struct_c_programming.html" title="Structure of class CProgramming.">CProgramming</a>. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_c_programming.html">CProgramming</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_c_programming_a06e0f1e69f5ee75281d8c1d541a9440a.html b/ucs2-lib/doc/html/struct_c_programming_a06e0f1e69f5ee75281d8c1d541a9440a.html
new file mode 100644
index 0000000..430b64b
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_c_programming_a06e0f1e69f5ee75281d8c1d541a9440a.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: CProgramming::report_fptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_c_programming.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a06e0f1e69f5ee75281d8c1d541a9440a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e_ga15045bde4d6a35f1b1e20eb6e3c688ab.html#ga15045bde4d6a35f1b1e20eb6e3c688ab">Ucs_Prg_ReportCb_t</a> report_fptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Report callback function. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_c_programming.html">CProgramming</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_c_programming_a07ec3cc0de32c2b7496197f15e96c475.html b/ucs2-lib/doc/html/struct_c_programming_a07ec3cc0de32c2b7496197f15e96c475.html
new file mode 100644
index 0000000..f2e668b
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_c_programming_a07ec3cc0de32c2b7496197f15e96c475.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: CProgramming::node_id</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_c_programming.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a07ec3cc0de32c2b7496197f15e96c475"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t node_id</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Position address of the node to be programmed. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_c_programming.html">CProgramming</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_c_programming_a0f7e779ac777da57585e57ff0d85c842.html b/ucs2-lib/doc/html/struct_c_programming_a0f7e779ac777da57585e57ff0d85c842.html
new file mode 100644
index 0000000..5f1fa54
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_c_programming_a0f7e779ac777da57585e57ff0d85c842.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: CProgramming::prg_memwrite</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_c_programming.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a0f7e779ac777da57585e57ff0d85c842"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">CSingleObserver prg_memwrite</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Observes the MemoryWrite result. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_c_programming.html">CProgramming</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_c_programming_a2e6eb03384cae6a78a3ab2a9a63229e9.html b/ucs2-lib/doc/html/struct_c_programming_a2e6eb03384cae6a78a3ab2a9a63229e9.html
new file mode 100644
index 0000000..fc46765
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_c_programming_a2e6eb03384cae6a78a3ab2a9a63229e9.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: CProgramming::error</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_c_programming.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a2e6eb03384cae6a78a3ab2a9a63229e9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Prg_Error_t error</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>stores the current error information </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_c_programming.html">CProgramming</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_c_programming_a510e91e91f2f7b75fb6ea9d7760fc81c.html b/ucs2-lib/doc/html/struct_c_programming_a510e91e91f2f7b75fb6ea9d7760fc81c.html
new file mode 100644
index 0000000..06e99f1
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_c_programming_a510e91e91f2f7b75fb6ea9d7760fc81c.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: CProgramming::exc</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_c_programming.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a510e91e91f2f7b75fb6ea9d7760fc81c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">CExc* exc</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reference to CExc object. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_c_programming.html">CProgramming</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_c_programming_a52f06fda08f2eb2b225c6201e38d1788.html b/ucs2-lib/doc/html/struct_c_programming_a52f06fda08f2eb2b225c6201e38d1788.html
new file mode 100644
index 0000000..015be53
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_c_programming_a52f06fda08f2eb2b225c6201e38d1788.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: CProgramming::base</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_c_programming.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a52f06fda08f2eb2b225c6201e38d1788"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">CBase* base</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reference to CBase object. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_c_programming.html">CProgramming</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_c_programming_a5ef650eccc58da14ca17f8480c0669eb.html b/ucs2-lib/doc/html/struct_c_programming_a5ef650eccc58da14ca17f8480c0669eb.html
new file mode 100644
index 0000000..a7a475f
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_c_programming_a5ef650eccc58da14ca17f8480c0669eb.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: CProgramming::prg_terminate</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_c_programming.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a5ef650eccc58da14ca17f8480c0669eb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">CMaskedObserver prg_terminate</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Observes events leading to termination. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_c_programming.html">CProgramming</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_c_programming_a64c85894e8881b2b033cad0e08afb227.html b/ucs2-lib/doc/html/struct_c_programming_a64c85894e8881b2b033cad0e08afb227.html
new file mode 100644
index 0000000..7a1491b
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_c_programming_a64c85894e8881b2b033cad0e08afb227.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: CProgramming::inic</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_c_programming.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a64c85894e8881b2b033cad0e08afb227"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">CInic* inic</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reference to CInic object. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_c_programming.html">CProgramming</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_c_programming_a696f1f893876f5efa0878dd5255ebad9.html b/ucs2-lib/doc/html/struct_c_programming_a696f1f893876f5efa0878dd5255ebad9.html
new file mode 100644
index 0000000..27b1119
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_c_programming_a696f1f893876f5efa0878dd5255ebad9.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: CProgramming::session_handle</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_c_programming.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a696f1f893876f5efa0878dd5255ebad9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t session_handle</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Unique number used to authorize memory access. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_c_programming.html">CProgramming</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_c_programming_a6faea6381a3c39905de4fca5cb966a81.html b/ucs2-lib/doc/html/struct_c_programming_a6faea6381a3c39905de4fca5cb966a81.html
new file mode 100644
index 0000000..d15f3aa
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_c_programming_a6faea6381a3c39905de4fca5cb966a81.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: CProgramming::current_function</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_c_programming.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a6faea6381a3c39905de4fca5cb966a81"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_ga25cd4c3a9113e0a25b65136fec561c83.html#ga25cd4c3a9113e0a25b65136fec561c83">Ucs_Prg_Func_t</a> current_function</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>last used function. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_c_programming.html">CProgramming</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_c_programming_a756790b5cd986a970dd934f4fdf8a0a9.html b/ucs2-lib/doc/html/struct_c_programming_a756790b5cd986a970dd934f4fdf8a0a9.html
new file mode 100644
index 0000000..4455f0a
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_c_programming_a756790b5cd986a970dd934f4fdf8a0a9.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: CProgramming::timer</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_c_programming.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a756790b5cd986a970dd934f4fdf8a0a9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">CTimer timer</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>timer for monitoring messages </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_c_programming.html">CProgramming</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_c_programming_a7e400d5be57c32dd73c2d0ffe8705602.html b/ucs2-lib/doc/html/struct_c_programming_a7e400d5be57c32dd73c2d0ffe8705602.html
new file mode 100644
index 0000000..e167a5d
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_c_programming_a7e400d5be57c32dd73c2d0ffe8705602.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: CProgramming::signature</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_c_programming.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a7e400d5be57c32dd73c2d0ffe8705602"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_ucs___signature__t.html">Ucs_Signature_t</a> signature</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Signature of the node to be programmed. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_c_programming.html">CProgramming</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_c_programming_a87ab79c86a6b6023f00cfdf465dad09a.html b/ucs2-lib/doc/html/struct_c_programming_a87ab79c86a6b6023f00cfdf465dad09a.html
new file mode 100644
index 0000000..9ef74de
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_c_programming_a87ab79c86a6b6023f00cfdf465dad09a.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: CProgramming::command_index</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_c_programming.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a87ab79c86a6b6023f00cfdf465dad09a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t command_index</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>index for command_list </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_c_programming.html">CProgramming</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_c_programming_a98d71a61e60458dc0106353ce1fd43fe.html b/ucs2-lib/doc/html/struct_c_programming_a98d71a61e60458dc0106353ce1fd43fe.html
new file mode 100644
index 0000000..6d3aa18
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_c_programming_a98d71a61e60458dc0106353ce1fd43fe.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: CProgramming::neton</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_c_programming.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a98d71a61e60458dc0106353ce1fd43fe"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool neton</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>indicates Network availability </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_c_programming.html">CProgramming</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_c_programming_a9b9ca9dbb62f68667558e9ba9250f707.html b/ucs2-lib/doc/html/struct_c_programming_a9b9ca9dbb62f68667558e9ba9250f707.html
new file mode 100644
index 0000000..ef4cda4
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_c_programming_a9b9ca9dbb62f68667558e9ba9250f707.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: CProgramming::admin_node_address</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_c_programming.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a9b9ca9dbb62f68667558e9ba9250f707"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t admin_node_address</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Admin Node Address. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_c_programming.html">CProgramming</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_c_programming_aa722c5fa0c9c6e4a8d5ea795f79beaae.html b/ucs2-lib/doc/html/struct_c_programming_aa722c5fa0c9c6e4a8d5ea795f79beaae.html
new file mode 100644
index 0000000..e7bfe9d
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_c_programming_aa722c5fa0c9c6e4a8d5ea795f79beaae.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: CProgramming::session_type</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_c_programming.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="aa722c5fa0c9c6e4a8d5ea795f79beaae"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gab29d4eadce18cb68209671a44c1eaa3a.html#gab29d4eadce18cb68209671a44c1eaa3a">Ucs_Prg_SessionType_t</a> session_type</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Defines the memory access type. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_c_programming.html">CProgramming</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_c_programming_aae5da389e9fa9462cd96740a8e288825.html b/ucs2-lib/doc/html/struct_c_programming_aae5da389e9fa9462cd96740a8e288825.html
new file mode 100644
index 0000000..9601581
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_c_programming_aae5da389e9fa9462cd96740a8e288825.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: CProgramming::prg_memopen</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_c_programming.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="aae5da389e9fa9462cd96740a8e288825"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">CSingleObserver prg_memopen</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Observes the MemSessionOpen result. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_c_programming.html">CProgramming</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_c_programming_aaf0157ff97cce6b8ba8f142f65ef36e9.html b/ucs2-lib/doc/html/struct_c_programming_aaf0157ff97cce6b8ba8f142f65ef36e9.html
new file mode 100644
index 0000000..3f511b2
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_c_programming_aaf0157ff97cce6b8ba8f142f65ef36e9.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: CProgramming::target_address</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_c_programming.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="aaf0157ff97cce6b8ba8f142f65ef36e9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t target_address</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Actual target address. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_c_programming.html">CProgramming</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_c_programming_aba55669ce31313a3dcd2e04fb6e31a62.html b/ucs2-lib/doc/html/struct_c_programming_aba55669ce31313a3dcd2e04fb6e31a62.html
new file mode 100644
index 0000000..dafda71
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_c_programming_aba55669ce31313a3dcd2e04fb6e31a62.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: CProgramming::prg_nwstatus</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_c_programming.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="aba55669ce31313a3dcd2e04fb6e31a62"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">CObserver prg_nwstatus</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Observes the MOST Network status. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_c_programming.html">CProgramming</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_c_programming_ac5cd5e459eb1d8746b5660c1f98c3906.html b/ucs2-lib/doc/html/struct_c_programming_ac5cd5e459eb1d8746b5660c1f98c3906.html
new file mode 100644
index 0000000..203d7b6
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_c_programming_ac5cd5e459eb1d8746b5660c1f98c3906.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: CProgramming::prg_welcome</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_c_programming.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ac5cd5e459eb1d8746b5660c1f98c3906"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">CSingleObserver prg_welcome</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Observes the Welcome result. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_c_programming.html">CProgramming</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_c_programming_ae20a8288958f7ad71b35a1e460f25d4c.html b/ucs2-lib/doc/html/struct_c_programming_ae20a8288958f7ad71b35a1e460f25d4c.html
new file mode 100644
index 0000000..f45f697
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_c_programming_ae20a8288958f7ad71b35a1e460f25d4c.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: CProgramming::fsm</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_c_programming.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ae20a8288958f7ad71b35a1e460f25d4c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">CFsm fsm</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Node Discovery state machine. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_c_programming.html">CProgramming</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_c_programming_ae6d9d0f0acd5d6473bfbb35d75a50857.html b/ucs2-lib/doc/html/struct_c_programming_ae6d9d0f0acd5d6473bfbb35d75a50857.html
new file mode 100644
index 0000000..3d2590c
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_c_programming_ae6d9d0f0acd5d6473bfbb35d75a50857.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: CProgramming::command_list</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_c_programming.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ae6d9d0f0acd5d6473bfbb35d75a50857"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_ucs___prg___command__t.html">Ucs_Prg_Command_t</a>* command_list</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Refers to array of programming tasks. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_c_programming.html">CProgramming</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_c_programming_aeed780a0cff38447179779c414cfdd54.html b/ucs2-lib/doc/html/struct_c_programming_aeed780a0cff38447179779c414cfdd54.html
new file mode 100644
index 0000000..432f8af
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_c_programming_aeed780a0cff38447179779c414cfdd54.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: CProgramming::service</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_c_programming.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="aeed780a0cff38447179779c414cfdd54"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">CService service</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Service instance for the scheduler. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_c_programming.html">CProgramming</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_c_programming_af713f15b39baa1603eeb9984877e04ad.html b/ucs2-lib/doc/html/struct_c_programming_af713f15b39baa1603eeb9984877e04ad.html
new file mode 100644
index 0000000..2e2a04f
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_c_programming_af713f15b39baa1603eeb9984877e04ad.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: CProgramming::prg_memclose</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_c_programming.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="af713f15b39baa1603eeb9984877e04ad"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">CSingleObserver prg_memclose</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Observes the MemSessionClose result. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_c_programming.html">CProgramming</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_msg___most_tel__t.html b/ucs2-lib/doc/html/struct_msg___most_tel__t.html
new file mode 100644
index 0000000..b6aba14
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_msg___most_tel__t.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Msg_MostTel_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_msg___most_tel__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Msg_MostTel_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s.html">Tracing/Debugging Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Common MOST message.
+ <a href="struct_msg___most_tel__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a67473c671719a1e3f3fe0ad16e95dd83"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_msg___most_tel__t_a67473c671719a1e3f3fe0ad16e95dd83.html#a67473c671719a1e3f3fe0ad16e95dd83">destination_addr</a></td></tr>
+<tr class="memdesc:a67473c671719a1e3f3fe0ad16e95dd83"><td class="mdescLeft">&#160;</td><td class="mdescRight">MOST destination address. <a href="#a67473c671719a1e3f3fe0ad16e95dd83"></a><br/></td></tr>
+<tr class="separator:a67473c671719a1e3f3fe0ad16e95dd83"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a703fce339153ac2b164c185137b59717"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_msg___most_tel__t_a703fce339153ac2b164c185137b59717.html#a703fce339153ac2b164c185137b59717">source_addr</a></td></tr>
+<tr class="memdesc:a703fce339153ac2b164c185137b59717"><td class="mdescLeft">&#160;</td><td class="mdescRight">MOST source address. <a href="#a703fce339153ac2b164c185137b59717"></a><br/></td></tr>
+<tr class="separator:a703fce339153ac2b164c185137b59717"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6d80d11eae3ae15f09cc8aff3dabb89b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_msg___msg_id__t.html">Msg_MsgId_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_msg___most_tel__t_a6d80d11eae3ae15f09cc8aff3dabb89b.html#a6d80d11eae3ae15f09cc8aff3dabb89b">id</a></td></tr>
+<tr class="memdesc:a6d80d11eae3ae15f09cc8aff3dabb89b"><td class="mdescLeft">&#160;</td><td class="mdescRight">MOST message id "FBlockID.InstID.FktID.OPType". <a href="#a6d80d11eae3ae15f09cc8aff3dabb89b"></a><br/></td></tr>
+<tr class="separator:a6d80d11eae3ae15f09cc8aff3dabb89b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9420136f5d99f8b6c48445b5eb048d60"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_msg___tx_options__t.html">Msg_TxOptions_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_msg___most_tel__t_a9420136f5d99f8b6c48445b5eb048d60.html#a9420136f5d99f8b6c48445b5eb048d60">opts</a></td></tr>
+<tr class="memdesc:a9420136f5d99f8b6c48445b5eb048d60"><td class="mdescLeft">&#160;</td><td class="mdescRight">Message transmission options. <a href="#a9420136f5d99f8b6c48445b5eb048d60"></a><br/></td></tr>
+<tr class="separator:a9420136f5d99f8b6c48445b5eb048d60"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3176fc4da0eba67428fa0627e15f86b6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_msg___tel_data__t.html">Msg_TelData_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_msg___most_tel__t_a3176fc4da0eba67428fa0627e15f86b6.html#a3176fc4da0eba67428fa0627e15f86b6">tel</a></td></tr>
+<tr class="memdesc:a3176fc4da0eba67428fa0627e15f86b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">MOST telegram data. <a href="#a3176fc4da0eba67428fa0627e15f86b6"></a><br/></td></tr>
+<tr class="separator:a3176fc4da0eba67428fa0627e15f86b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abc779299d755d192cd021eb2c2a68013"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_msg___most_tel__t_abc779299d755d192cd021eb2c2a68013.html#abc779299d755d192cd021eb2c2a68013">info_ptr</a></td></tr>
+<tr class="memdesc:abc779299d755d192cd021eb2c2a68013"><td class="mdescLeft">&#160;</td><td class="mdescRight">Possible reference to additional data. <a href="#abc779299d755d192cd021eb2c2a68013"></a><br/></td></tr>
+<tr class="separator:abc779299d755d192cd021eb2c2a68013"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Common MOST message. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_msg___most_tel__t.html">Msg_MostTel_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_msg___most_tel__t_a3176fc4da0eba67428fa0627e15f86b6.html b/ucs2-lib/doc/html/struct_msg___most_tel__t_a3176fc4da0eba67428fa0627e15f86b6.html
new file mode 100644
index 0000000..695259d
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_msg___most_tel__t_a3176fc4da0eba67428fa0627e15f86b6.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Msg_MostTel_t::tel</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_msg___most_tel__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a3176fc4da0eba67428fa0627e15f86b6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_msg___tel_data__t.html">Msg_TelData_t</a> tel</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>MOST telegram data. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_msg___most_tel__t.html">Msg_MostTel_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_msg___most_tel__t_a67473c671719a1e3f3fe0ad16e95dd83.html b/ucs2-lib/doc/html/struct_msg___most_tel__t_a67473c671719a1e3f3fe0ad16e95dd83.html
new file mode 100644
index 0000000..5cac3a2
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_msg___most_tel__t_a67473c671719a1e3f3fe0ad16e95dd83.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Msg_MostTel_t::destination_addr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_msg___most_tel__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a67473c671719a1e3f3fe0ad16e95dd83"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t destination_addr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>MOST destination address. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_msg___most_tel__t.html">Msg_MostTel_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_msg___most_tel__t_a6d80d11eae3ae15f09cc8aff3dabb89b.html b/ucs2-lib/doc/html/struct_msg___most_tel__t_a6d80d11eae3ae15f09cc8aff3dabb89b.html
new file mode 100644
index 0000000..6b37b92
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_msg___most_tel__t_a6d80d11eae3ae15f09cc8aff3dabb89b.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Msg_MostTel_t::id</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_msg___most_tel__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a6d80d11eae3ae15f09cc8aff3dabb89b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_msg___msg_id__t.html">Msg_MsgId_t</a> id</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>MOST message id "FBlockID.InstID.FktID.OPType". </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_msg___most_tel__t.html">Msg_MostTel_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_msg___most_tel__t_a703fce339153ac2b164c185137b59717.html b/ucs2-lib/doc/html/struct_msg___most_tel__t_a703fce339153ac2b164c185137b59717.html
new file mode 100644
index 0000000..e878558
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_msg___most_tel__t_a703fce339153ac2b164c185137b59717.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Msg_MostTel_t::source_addr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_msg___most_tel__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a703fce339153ac2b164c185137b59717"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t source_addr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>MOST source address. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_msg___most_tel__t.html">Msg_MostTel_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_msg___most_tel__t_a9420136f5d99f8b6c48445b5eb048d60.html b/ucs2-lib/doc/html/struct_msg___most_tel__t_a9420136f5d99f8b6c48445b5eb048d60.html
new file mode 100644
index 0000000..edee915
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_msg___most_tel__t_a9420136f5d99f8b6c48445b5eb048d60.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Msg_MostTel_t::opts</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_msg___most_tel__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a9420136f5d99f8b6c48445b5eb048d60"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_msg___tx_options__t.html">Msg_TxOptions_t</a> opts</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Message transmission options. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_msg___most_tel__t.html">Msg_MostTel_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_msg___most_tel__t_abc779299d755d192cd021eb2c2a68013.html b/ucs2-lib/doc/html/struct_msg___most_tel__t_abc779299d755d192cd021eb2c2a68013.html
new file mode 100644
index 0000000..9bc3991
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_msg___most_tel__t_abc779299d755d192cd021eb2c2a68013.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Msg_MostTel_t::info_ptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_msg___most_tel__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="abc779299d755d192cd021eb2c2a68013"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void* info_ptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Possible reference to additional data. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_msg___most_tel__t.html">Msg_MostTel_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_msg___msg_id__t.html b/ucs2-lib/doc/html/struct_msg___msg_id__t.html
new file mode 100644
index 0000000..043dd06
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_msg___msg_id__t.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Msg_MsgId_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_msg___msg_id__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Msg_MsgId_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s.html">Tracing/Debugging Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>MOST message id "FBlockID.InstID.FktID.OPType".
+ <a href="struct_msg___msg_id__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:afadabe68185500b54de12bf7701db13b"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_msg___msg_id__t_afadabe68185500b54de12bf7701db13b.html#afadabe68185500b54de12bf7701db13b">fblock_id</a></td></tr>
+<tr class="memdesc:afadabe68185500b54de12bf7701db13b"><td class="mdescLeft">&#160;</td><td class="mdescRight">FBlockID. <a href="#afadabe68185500b54de12bf7701db13b"></a><br/></td></tr>
+<tr class="separator:afadabe68185500b54de12bf7701db13b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab529e65a59b5c14626acf162f03fbfd4"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_msg___msg_id__t_ab529e65a59b5c14626acf162f03fbfd4.html#ab529e65a59b5c14626acf162f03fbfd4">instance_id</a></td></tr>
+<tr class="memdesc:ab529e65a59b5c14626acf162f03fbfd4"><td class="mdescLeft">&#160;</td><td class="mdescRight">InstID. <a href="#ab529e65a59b5c14626acf162f03fbfd4"></a><br/></td></tr>
+<tr class="separator:ab529e65a59b5c14626acf162f03fbfd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6cb0848efba59a9a23dbbe0480f04c85"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_msg___msg_id__t_a6cb0848efba59a9a23dbbe0480f04c85.html#a6cb0848efba59a9a23dbbe0480f04c85">function_id</a></td></tr>
+<tr class="memdesc:a6cb0848efba59a9a23dbbe0480f04c85"><td class="mdescLeft">&#160;</td><td class="mdescRight">FktID. <a href="#a6cb0848efba59a9a23dbbe0480f04c85"></a><br/></td></tr>
+<tr class="separator:a6cb0848efba59a9a23dbbe0480f04c85"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac3f5682d1affe8931b94fa90c28f6f31"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#ga02d4f5d689f2583ee620ff4c26a51afa">Ucs_OpType_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_msg___msg_id__t_ac3f5682d1affe8931b94fa90c28f6f31.html#ac3f5682d1affe8931b94fa90c28f6f31">op_type</a></td></tr>
+<tr class="memdesc:ac3f5682d1affe8931b94fa90c28f6f31"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operation type. <a href="#ac3f5682d1affe8931b94fa90c28f6f31"></a><br/></td></tr>
+<tr class="separator:ac3f5682d1affe8931b94fa90c28f6f31"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>MOST message id "FBlockID.InstID.FktID.OPType". </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_msg___msg_id__t.html">Msg_MsgId_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_msg___msg_id__t_a6cb0848efba59a9a23dbbe0480f04c85.html b/ucs2-lib/doc/html/struct_msg___msg_id__t_a6cb0848efba59a9a23dbbe0480f04c85.html
new file mode 100644
index 0000000..6d90709
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_msg___msg_id__t_a6cb0848efba59a9a23dbbe0480f04c85.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Msg_MsgId_t::function_id</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_msg___msg_id__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a6cb0848efba59a9a23dbbe0480f04c85"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t function_id</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>FktID. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_msg___msg_id__t.html">Msg_MsgId_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_msg___msg_id__t_ab529e65a59b5c14626acf162f03fbfd4.html b/ucs2-lib/doc/html/struct_msg___msg_id__t_ab529e65a59b5c14626acf162f03fbfd4.html
new file mode 100644
index 0000000..d576fa2
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_msg___msg_id__t_ab529e65a59b5c14626acf162f03fbfd4.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Msg_MsgId_t::instance_id</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_msg___msg_id__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ab529e65a59b5c14626acf162f03fbfd4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t instance_id</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>InstID. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_msg___msg_id__t.html">Msg_MsgId_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_msg___msg_id__t_ac3f5682d1affe8931b94fa90c28f6f31.html b/ucs2-lib/doc/html/struct_msg___msg_id__t_ac3f5682d1affe8931b94fa90c28f6f31.html
new file mode 100644
index 0000000..cb739e7
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_msg___msg_id__t_ac3f5682d1affe8931b94fa90c28f6f31.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Msg_MsgId_t::op_type</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_msg___msg_id__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ac3f5682d1affe8931b94fa90c28f6f31"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_ga02d4f5d689f2583ee620ff4c26a51afa.html#ga02d4f5d689f2583ee620ff4c26a51afa">Ucs_OpType_t</a> op_type</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Operation type. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_msg___msg_id__t.html">Msg_MsgId_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_msg___msg_id__t_afadabe68185500b54de12bf7701db13b.html b/ucs2-lib/doc/html/struct_msg___msg_id__t_afadabe68185500b54de12bf7701db13b.html
new file mode 100644
index 0000000..669a309
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_msg___msg_id__t_afadabe68185500b54de12bf7701db13b.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Msg_MsgId_t::fblock_id</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_msg___msg_id__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="afadabe68185500b54de12bf7701db13b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t fblock_id</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>FBlockID. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_msg___msg_id__t.html">Msg_MsgId_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_msg___tel_data__t.html b/ucs2-lib/doc/html/struct_msg___tel_data__t.html
new file mode 100644
index 0000000..eee5cc3
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_msg___tel_data__t.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Msg_TelData_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_msg___tel_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Msg_TelData_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s.html">Tracing/Debugging Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Most telegram data.
+ <a href="struct_msg___tel_data__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a880ca776e9ea8d0bbb714a7333da52cc"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_msg___tel_data__t_a880ca776e9ea8d0bbb714a7333da52cc.html#a880ca776e9ea8d0bbb714a7333da52cc">tel_id</a></td></tr>
+<tr class="memdesc:a880ca776e9ea8d0bbb714a7333da52cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Telegram id which indicates the telegram as part of segmented message or as single transfer. <a href="#a880ca776e9ea8d0bbb714a7333da52cc"></a><br/></td></tr>
+<tr class="separator:a880ca776e9ea8d0bbb714a7333da52cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a92083234f7755755f06bb85b3a6f2ea4"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_msg___tel_data__t_a92083234f7755755f06bb85b3a6f2ea4.html#a92083234f7755755f06bb85b3a6f2ea4">tel_len</a></td></tr>
+<tr class="memdesc:a92083234f7755755f06bb85b3a6f2ea4"><td class="mdescLeft">&#160;</td><td class="mdescRight">The telegram length. I.e. the number of telegram bytes starting at address which is referred in <code>tel_data_ptr</code>. The INIC will add <em>one</em> in case of "tel_id = 1..3". <a href="#a92083234f7755755f06bb85b3a6f2ea4"></a><br/></td></tr>
+<tr class="separator:a92083234f7755755f06bb85b3a6f2ea4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0102c84947aadd0fd212a7972d2fb10d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_msg___tel_data__t_a0102c84947aadd0fd212a7972d2fb10d.html#a0102c84947aadd0fd212a7972d2fb10d">tel_cnt</a></td></tr>
+<tr class="memdesc:a0102c84947aadd0fd212a7972d2fb10d"><td class="mdescLeft">&#160;</td><td class="mdescRight">The message count indexing the telegram within a segmented message. The respective tel_cnt is moved by the INIC to "DATA[0]" in case of "tel_id = 1..3". Otherwise it is ignored. <a href="#a0102c84947aadd0fd212a7972d2fb10d"></a><br/></td></tr>
+<tr class="separator:a0102c84947aadd0fd212a7972d2fb10d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afb4f9db23cd1c16b44c1e479e3f5e1cf"><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_msg___tel_data__t_afb4f9db23cd1c16b44c1e479e3f5e1cf.html#afb4f9db23cd1c16b44c1e479e3f5e1cf">tel_data_ptr</a></td></tr>
+<tr class="memdesc:afb4f9db23cd1c16b44c1e479e3f5e1cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Points to telegram data. <a href="#afb4f9db23cd1c16b44c1e479e3f5e1cf"></a><br/></td></tr>
+<tr class="separator:afb4f9db23cd1c16b44c1e479e3f5e1cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Most telegram data. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_msg___tel_data__t.html">Msg_TelData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_msg___tel_data__t_a0102c84947aadd0fd212a7972d2fb10d.html b/ucs2-lib/doc/html/struct_msg___tel_data__t_a0102c84947aadd0fd212a7972d2fb10d.html
new file mode 100644
index 0000000..c7346d7
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_msg___tel_data__t_a0102c84947aadd0fd212a7972d2fb10d.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Msg_TelData_t::tel_cnt</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_msg___tel_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a0102c84947aadd0fd212a7972d2fb10d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t tel_cnt</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The message count indexing the telegram within a segmented message. The respective tel_cnt is moved by the INIC to "DATA[0]" in case of "tel_id = 1..3". Otherwise it is ignored. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_msg___tel_data__t.html">Msg_TelData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_msg___tel_data__t_a880ca776e9ea8d0bbb714a7333da52cc.html b/ucs2-lib/doc/html/struct_msg___tel_data__t_a880ca776e9ea8d0bbb714a7333da52cc.html
new file mode 100644
index 0000000..a3f59ad
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_msg___tel_data__t_a880ca776e9ea8d0bbb714a7333da52cc.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Msg_TelData_t::tel_id</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_msg___tel_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a880ca776e9ea8d0bbb714a7333da52cc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t tel_id</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Telegram id which indicates the telegram as part of segmented message or as single transfer. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_msg___tel_data__t.html">Msg_TelData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_msg___tel_data__t_a92083234f7755755f06bb85b3a6f2ea4.html b/ucs2-lib/doc/html/struct_msg___tel_data__t_a92083234f7755755f06bb85b3a6f2ea4.html
new file mode 100644
index 0000000..f34def4
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_msg___tel_data__t_a92083234f7755755f06bb85b3a6f2ea4.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Msg_TelData_t::tel_len</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_msg___tel_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a92083234f7755755f06bb85b3a6f2ea4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t tel_len</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The telegram length. I.e. the number of telegram bytes starting at address which is referred in <code>tel_data_ptr</code>. The INIC will add <em>one</em> in case of "tel_id = 1..3". </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_msg___tel_data__t.html">Msg_TelData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_msg___tel_data__t_afb4f9db23cd1c16b44c1e479e3f5e1cf.html b/ucs2-lib/doc/html/struct_msg___tel_data__t_afb4f9db23cd1c16b44c1e479e3f5e1cf.html
new file mode 100644
index 0000000..2fbb5d0
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_msg___tel_data__t_afb4f9db23cd1c16b44c1e479e3f5e1cf.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Msg_TelData_t::tel_data_ptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_msg___tel_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="afb4f9db23cd1c16b44c1e479e3f5e1cf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t* tel_data_ptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Points to telegram data. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_msg___tel_data__t.html">Msg_TelData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_msg___tx_options__t.html b/ucs2-lib/doc/html/struct_msg___tx_options__t.html
new file mode 100644
index 0000000..55218e0
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_msg___tx_options__t.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Msg_TxOptions_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_msg___tx_options__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Msg_TxOptions_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s.html">Tracing/Debugging Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Retry options.
+ <a href="struct_msg___tx_options__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a82997e00f317333173aa610d0902ab04"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_msg___tx_options__t_a82997e00f317333173aa610d0902ab04.html#a82997e00f317333173aa610d0902ab04">llrbc</a></td></tr>
+<tr class="memdesc:a82997e00f317333173aa610d0902ab04"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-level retry block count performed by the INIC. <a href="#a82997e00f317333173aa610d0902ab04"></a><br/></td></tr>
+<tr class="separator:a82997e00f317333173aa610d0902ab04"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a454f250afc20ddc93a508bc004df753e"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_msg___tx_options__t_a454f250afc20ddc93a508bc004df753e.html#a454f250afc20ddc93a508bc004df753e">cancel_id</a></td></tr>
+<tr class="memdesc:a454f250afc20ddc93a508bc004df753e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Either "0" or label for a group of dependent telegrams. <a href="#a454f250afc20ddc93a508bc004df753e"></a><br/></td></tr>
+<tr class="separator:a454f250afc20ddc93a508bc004df753e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Retry options. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_msg___tx_options__t.html">Msg_TxOptions_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_msg___tx_options__t_a454f250afc20ddc93a508bc004df753e.html b/ucs2-lib/doc/html/struct_msg___tx_options__t_a454f250afc20ddc93a508bc004df753e.html
new file mode 100644
index 0000000..0776d5e
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_msg___tx_options__t_a454f250afc20ddc93a508bc004df753e.html
@@ -0,0 +1,129 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Msg_TxOptions_t::cancel_id</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_msg___tx_options__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a454f250afc20ddc93a508bc004df753e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t cancel_id</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Either "0" or label for a group of dependent telegrams. </p>
+<p>The value determines the required action if the transmission has failed. Valid range:</p>
+<ul>
+<li>0: Only the failed telegram will is removed from the FIFO.</li>
+<li>1..255: All telegrams with the same cancel_id as a failed telegram will be removed from the FIFO queue. </li>
+</ul>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_msg___tx_options__t.html">Msg_TxOptions_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_msg___tx_options__t_a82997e00f317333173aa610d0902ab04.html b/ucs2-lib/doc/html/struct_msg___tx_options__t_a82997e00f317333173aa610d0902ab04.html
new file mode 100644
index 0000000..14a5c14
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_msg___tx_options__t_a82997e00f317333173aa610d0902ab04.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Msg_TxOptions_t::llrbc</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_msg___tx_options__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a82997e00f317333173aa610d0902ab04"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t llrbc</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-level retry block count performed by the INIC. </p>
+<p>The LLRBC are applicable for MCMs. ICMs don't care. Values exceeding the maximum value are be corrected by the INIC silently to the maximum value. Valid range: 0..100 </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_msg___tx_options__t.html">Msg_TxOptions_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___ams___init_data__t.html b/ucs2-lib/doc/html/struct_ucs___ams___init_data__t.html
new file mode 100644
index 0000000..29c5a89
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___ams___init_data__t.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Ams_InitData_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___ams___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Ams_InitData_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___a_m_s.html">Application Message Service</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>The initialization data of the Application Message Service.
+ <a href="struct_ucs___ams___init_data__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a976344e02b80d33e167c34d3c6ae9cab"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_ucs___ams_rx___init_data__t.html">Ucs_AmsRx_InitData_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___ams___init_data__t_a976344e02b80d33e167c34d3c6ae9cab.html#a976344e02b80d33e167c34d3c6ae9cab">rx</a></td></tr>
+<tr class="memdesc:a976344e02b80d33e167c34d3c6ae9cab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rx related initialization parameters. <a href="#a976344e02b80d33e167c34d3c6ae9cab"></a><br/></td></tr>
+<tr class="separator:a976344e02b80d33e167c34d3c6ae9cab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8e01298906b1fbe44765c6e9e4bbc888"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_ucs___ams_tx___init_data__t.html">Ucs_AmsTx_InitData_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___ams___init_data__t_a8e01298906b1fbe44765c6e9e4bbc888.html#a8e01298906b1fbe44765c6e9e4bbc888">tx</a></td></tr>
+<tr class="memdesc:a8e01298906b1fbe44765c6e9e4bbc888"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tx related initialization parameters. <a href="#a8e01298906b1fbe44765c6e9e4bbc888"></a><br/></td></tr>
+<tr class="separator:a8e01298906b1fbe44765c6e9e4bbc888"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8740ba80e30dd75e71d09fa1dcf04f3d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___ams___init_data__t_a8740ba80e30dd75e71d09fa1dcf04f3d.html#a8740ba80e30dd75e71d09fa1dcf04f3d">enabled</a></td></tr>
+<tr class="memdesc:a8740ba80e30dd75e71d09fa1dcf04f3d"><td class="mdescLeft">&#160;</td><td class="mdescRight">If set to <code>false</code> the AMS and CMD modules are not initialized and the related features are not available. <a href="#a8740ba80e30dd75e71d09fa1dcf04f3d"></a><br/></td></tr>
+<tr class="separator:a8740ba80e30dd75e71d09fa1dcf04f3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>The initialization data of the Application Message Service. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___ams___init_data__t.html">Ucs_Ams_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___ams___init_data__t_a8740ba80e30dd75e71d09fa1dcf04f3d.html b/ucs2-lib/doc/html/struct_ucs___ams___init_data__t_a8740ba80e30dd75e71d09fa1dcf04f3d.html
new file mode 100644
index 0000000..044e40d
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___ams___init_data__t_a8740ba80e30dd75e71d09fa1dcf04f3d.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Ams_InitData_t::enabled</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___ams___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a8740ba80e30dd75e71d09fa1dcf04f3d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool enabled</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>If set to <code>false</code> the AMS and CMD modules are not initialized and the related features are not available. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___ams___init_data__t.html">Ucs_Ams_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___ams___init_data__t_a8e01298906b1fbe44765c6e9e4bbc888.html b/ucs2-lib/doc/html/struct_ucs___ams___init_data__t_a8e01298906b1fbe44765c6e9e4bbc888.html
new file mode 100644
index 0000000..c4b2e09
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___ams___init_data__t_a8e01298906b1fbe44765c6e9e4bbc888.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Ams_InitData_t::tx</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___ams___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a8e01298906b1fbe44765c6e9e4bbc888"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_ucs___ams_tx___init_data__t.html">Ucs_AmsTx_InitData_t</a> tx</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Tx related initialization parameters. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___ams___init_data__t.html">Ucs_Ams_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___ams___init_data__t_a976344e02b80d33e167c34d3c6ae9cab.html b/ucs2-lib/doc/html/struct_ucs___ams___init_data__t_a976344e02b80d33e167c34d3c6ae9cab.html
new file mode 100644
index 0000000..61141f3
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___ams___init_data__t_a976344e02b80d33e167c34d3c6ae9cab.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Ams_InitData_t::rx</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___ams___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a976344e02b80d33e167c34d3c6ae9cab"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_ucs___ams_rx___init_data__t.html">Ucs_AmsRx_InitData_t</a> rx</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Rx related initialization parameters. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___ams___init_data__t.html">Ucs_Ams_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___ams_rx___init_data__t.html b/ucs2-lib/doc/html/struct_ucs___ams_rx___init_data__t.html
new file mode 100644
index 0000000..0d5a03c
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___ams_rx___init_data__t.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_AmsRx_InitData_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___ams_rx___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_AmsRx_InitData_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s.html">Referred Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>The Rx initialization data of the Application Message Service.
+ <a href="struct_ucs___ams_rx___init_data__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a94cec5846cb407141e9c1e1a2ea205d3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___a_m_s_ga80fa395bc924dca9ae92c185656db089.html#ga80fa395bc924dca9ae92c185656db089">Ucs_AmsRx_MsgReceivedCb_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___ams_rx___init_data__t_a94cec5846cb407141e9c1e1a2ea205d3.html#a94cec5846cb407141e9c1e1a2ea205d3">message_received_fptr</a></td></tr>
+<tr class="memdesc:a94cec5846cb407141e9c1e1a2ea205d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function that is invoked if the UNICENS library has received a message completely and appended to the Rx message queue. <a href="#a94cec5846cb407141e9c1e1a2ea205d3"></a><br/></td></tr>
+<tr class="separator:a94cec5846cb407141e9c1e1a2ea205d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>The Rx initialization data of the Application Message Service. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___ams_rx___init_data__t.html">Ucs_AmsRx_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___ams_rx___init_data__t_a94cec5846cb407141e9c1e1a2ea205d3.html b/ucs2-lib/doc/html/struct_ucs___ams_rx___init_data__t_a94cec5846cb407141e9c1e1a2ea205d3.html
new file mode 100644
index 0000000..97ad7ab
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___ams_rx___init_data__t_a94cec5846cb407141e9c1e1a2ea205d3.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_AmsRx_InitData_t::message_received_fptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___ams_rx___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a94cec5846cb407141e9c1e1a2ea205d3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___a_m_s_ga80fa395bc924dca9ae92c185656db089.html#ga80fa395bc924dca9ae92c185656db089">Ucs_AmsRx_MsgReceivedCb_t</a> message_received_fptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Callback function that is invoked if the UNICENS library has received a message completely and appended to the Rx message queue. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___ams_rx___init_data__t.html">Ucs_AmsRx_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___ams_rx___msg__t.html b/ucs2-lib/doc/html/struct_ucs___ams_rx___msg__t.html
new file mode 100644
index 0000000..75a4082
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___ams_rx___msg__t.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_AmsRx_Msg_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___ams_rx___msg__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_AmsRx_Msg_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s.html">Referred Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Application message Rx type.
+ <a href="struct_ucs___ams_rx___msg__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:abb27f24f389ff3575a5ee33e74e66eb6"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___ams_rx___msg__t_abb27f24f389ff3575a5ee33e74e66eb6.html#abb27f24f389ff3575a5ee33e74e66eb6">source_address</a></td></tr>
+<tr class="memdesc:abb27f24f389ff3575a5ee33e74e66eb6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Source address. <a href="#abb27f24f389ff3575a5ee33e74e66eb6"></a><br/></td></tr>
+<tr class="separator:abb27f24f389ff3575a5ee33e74e66eb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a689014fc11d4f26d264ddae2eaebc9d8"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___ams_rx___msg__t_a689014fc11d4f26d264ddae2eaebc9d8.html#a689014fc11d4f26d264ddae2eaebc9d8">msg_id</a></td></tr>
+<tr class="memdesc:a689014fc11d4f26d264ddae2eaebc9d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">16bit message descriptor <a href="#a689014fc11d4f26d264ddae2eaebc9d8"></a><br/></td></tr>
+<tr class="separator:a689014fc11d4f26d264ddae2eaebc9d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6166cef59cbe432be35512925debeae6"><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___ams_rx___msg__t_a6166cef59cbe432be35512925debeae6.html#a6166cef59cbe432be35512925debeae6">data_ptr</a></td></tr>
+<tr class="memdesc:a6166cef59cbe432be35512925debeae6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference to payload. <a href="#a6166cef59cbe432be35512925debeae6"></a><br/></td></tr>
+<tr class="separator:a6166cef59cbe432be35512925debeae6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aae6bdbdf6ea1ad3da5af37f0a91d3ea0"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___ams_rx___msg__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html#aae6bdbdf6ea1ad3da5af37f0a91d3ea0">data_size</a></td></tr>
+<tr class="memdesc:aae6bdbdf6ea1ad3da5af37f0a91d3ea0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Payload size in bytes. <a href="#aae6bdbdf6ea1ad3da5af37f0a91d3ea0"></a><br/></td></tr>
+<tr class="separator:aae6bdbdf6ea1ad3da5af37f0a91d3ea0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1c691c4fcbb0562f9a9c9e07f1166319"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___ams_rx___msg__t_a1c691c4fcbb0562f9a9c9e07f1166319.html#a1c691c4fcbb0562f9a9c9e07f1166319">custom_info_ptr</a></td></tr>
+<tr class="memdesc:a1c691c4fcbb0562f9a9c9e07f1166319"><td class="mdescLeft">&#160;</td><td class="mdescRight">Customer specific reference. <a href="#a1c691c4fcbb0562f9a9c9e07f1166319"></a><br/></td></tr>
+<tr class="separator:a1c691c4fcbb0562f9a9c9e07f1166319"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af3ea491a2bc42c0f8a5911b4d21058d0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga113edf4cab85ce4e5e13ef257b5b7128.html#ga113edf4cab85ce4e5e13ef257b5b7128">Ucs_AmsRx_ReceiveType_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___ams_rx___msg__t_af3ea491a2bc42c0f8a5911b4d21058d0.html#af3ea491a2bc42c0f8a5911b4d21058d0">receive_type</a></td></tr>
+<tr class="memdesc:af3ea491a2bc42c0f8a5911b4d21058d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines which address type was used by the transmitter of this message. <a href="#af3ea491a2bc42c0f8a5911b4d21058d0"></a><br/></td></tr>
+<tr class="separator:af3ea491a2bc42c0f8a5911b4d21058d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Application message Rx type. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___ams_rx___msg__t.html">Ucs_AmsRx_Msg_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___ams_rx___msg__t_a1c691c4fcbb0562f9a9c9e07f1166319.html b/ucs2-lib/doc/html/struct_ucs___ams_rx___msg__t_a1c691c4fcbb0562f9a9c9e07f1166319.html
new file mode 100644
index 0000000..16c559b
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___ams_rx___msg__t_a1c691c4fcbb0562f9a9c9e07f1166319.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_AmsRx_Msg_t::custom_info_ptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___ams_rx___msg__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a1c691c4fcbb0562f9a9c9e07f1166319"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void* custom_info_ptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Customer specific reference. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___ams_rx___msg__t.html">Ucs_AmsRx_Msg_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___ams_rx___msg__t_a6166cef59cbe432be35512925debeae6.html b/ucs2-lib/doc/html/struct_ucs___ams_rx___msg__t_a6166cef59cbe432be35512925debeae6.html
new file mode 100644
index 0000000..046ac2a
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___ams_rx___msg__t_a6166cef59cbe432be35512925debeae6.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_AmsRx_Msg_t::data_ptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___ams_rx___msg__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a6166cef59cbe432be35512925debeae6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t* data_ptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reference to payload. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___ams_rx___msg__t.html">Ucs_AmsRx_Msg_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___ams_rx___msg__t_a689014fc11d4f26d264ddae2eaebc9d8.html b/ucs2-lib/doc/html/struct_ucs___ams_rx___msg__t_a689014fc11d4f26d264ddae2eaebc9d8.html
new file mode 100644
index 0000000..c7cb38b
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___ams_rx___msg__t_a689014fc11d4f26d264ddae2eaebc9d8.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_AmsRx_Msg_t::msg_id</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___ams_rx___msg__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a689014fc11d4f26d264ddae2eaebc9d8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t msg_id</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>16bit message descriptor </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___ams_rx___msg__t.html">Ucs_AmsRx_Msg_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___ams_rx___msg__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html b/ucs2-lib/doc/html/struct_ucs___ams_rx___msg__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html
new file mode 100644
index 0000000..8b5f6b4
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___ams_rx___msg__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_AmsRx_Msg_t::data_size</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___ams_rx___msg__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="aae6bdbdf6ea1ad3da5af37f0a91d3ea0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t data_size</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Payload size in bytes. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___ams_rx___msg__t.html">Ucs_AmsRx_Msg_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___ams_rx___msg__t_abb27f24f389ff3575a5ee33e74e66eb6.html b/ucs2-lib/doc/html/struct_ucs___ams_rx___msg__t_abb27f24f389ff3575a5ee33e74e66eb6.html
new file mode 100644
index 0000000..0e4a147
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___ams_rx___msg__t_abb27f24f389ff3575a5ee33e74e66eb6.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_AmsRx_Msg_t::source_address</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___ams_rx___msg__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="abb27f24f389ff3575a5ee33e74e66eb6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t source_address</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Source address. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___ams_rx___msg__t.html">Ucs_AmsRx_Msg_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___ams_rx___msg__t_af3ea491a2bc42c0f8a5911b4d21058d0.html b/ucs2-lib/doc/html/struct_ucs___ams_rx___msg__t_af3ea491a2bc42c0f8a5911b4d21058d0.html
new file mode 100644
index 0000000..9a31d44
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___ams_rx___msg__t_af3ea491a2bc42c0f8a5911b4d21058d0.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_AmsRx_Msg_t::receive_type</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___ams_rx___msg__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="af3ea491a2bc42c0f8a5911b4d21058d0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s_ga113edf4cab85ce4e5e13ef257b5b7128.html#ga113edf4cab85ce4e5e13ef257b5b7128">Ucs_AmsRx_ReceiveType_t</a> receive_type</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Defines which address type was used by the transmitter of this message. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___ams_rx___msg__t.html">Ucs_AmsRx_Msg_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___ams_tx___init_data__t.html b/ucs2-lib/doc/html/struct_ucs___ams_tx___init_data__t.html
new file mode 100644
index 0000000..be74b7d
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___ams_tx___init_data__t.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_AmsTx_InitData_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___ams_tx___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_AmsTx_InitData_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s.html">Referred Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>The Tx initialization data of the Application Message Service.
+ <a href="struct_ucs___ams_tx___init_data__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a9217a093b6d7e68b7cd9d759c5cef192"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___a_m_s_ga79608ce8c26f58a6875e72c30ac60bda.html#ga79608ce8c26f58a6875e72c30ac60bda">Ucs_AmsTx_MsgFreedCb_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___ams_tx___init_data__t_a9217a093b6d7e68b7cd9d759c5cef192.html#a9217a093b6d7e68b7cd9d759c5cef192">message_freed_fptr</a></td></tr>
+<tr class="memdesc:a9217a093b6d7e68b7cd9d759c5cef192"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function which is invoked by the UNICENS library to notify that memory of a Tx message object was freed after a previous allocation using <a class="el" href="group___g___u_c_s___a_m_s_gafbcfeaaa6ff3d255609e404b16dbdf0f.html#gafbcfeaaa6ff3d255609e404b16dbdf0f" title="Allocates an application message object for transmission.">Ucs_AmsTx_AllocMsg()</a> has failed. The application might attempt to call <a class="el" href="group___g___u_c_s___a_m_s_gafbcfeaaa6ff3d255609e404b16dbdf0f.html#gafbcfeaaa6ff3d255609e404b16dbdf0f" title="Allocates an application message object for transmission.">Ucs_AmsTx_AllocMsg()</a> again. <a href="#a9217a093b6d7e68b7cd9d759c5cef192"></a><br/></td></tr>
+<tr class="separator:a9217a093b6d7e68b7cd9d759c5cef192"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a804bd7e626fd73b27d18af9a036d7ad4"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___ams_tx___init_data__t_a804bd7e626fd73b27d18af9a036d7ad4.html#a804bd7e626fd73b27d18af9a036d7ad4">default_llrbc</a></td></tr>
+<tr class="memdesc:a804bd7e626fd73b27d18af9a036d7ad4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specifies the low-level retry block count which is pre-selected in an allocated Tx message object. Valid values: 0..100. Default value: 10. <a href="#a804bd7e626fd73b27d18af9a036d7ad4"></a><br/></td></tr>
+<tr class="separator:a804bd7e626fd73b27d18af9a036d7ad4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>The Tx initialization data of the Application Message Service. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___ams_tx___init_data__t.html">Ucs_AmsTx_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___ams_tx___init_data__t_a804bd7e626fd73b27d18af9a036d7ad4.html b/ucs2-lib/doc/html/struct_ucs___ams_tx___init_data__t_a804bd7e626fd73b27d18af9a036d7ad4.html
new file mode 100644
index 0000000..69862e1
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___ams_tx___init_data__t_a804bd7e626fd73b27d18af9a036d7ad4.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_AmsTx_InitData_t::default_llrbc</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___ams_tx___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a804bd7e626fd73b27d18af9a036d7ad4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t default_llrbc</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Specifies the low-level retry block count which is pre-selected in an allocated Tx message object. Valid values: 0..100. Default value: 10. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___ams_tx___init_data__t.html">Ucs_AmsTx_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___ams_tx___init_data__t_a9217a093b6d7e68b7cd9d759c5cef192.html b/ucs2-lib/doc/html/struct_ucs___ams_tx___init_data__t_a9217a093b6d7e68b7cd9d759c5cef192.html
new file mode 100644
index 0000000..046e148
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___ams_tx___init_data__t_a9217a093b6d7e68b7cd9d759c5cef192.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_AmsTx_InitData_t::message_freed_fptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___ams_tx___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a9217a093b6d7e68b7cd9d759c5cef192"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___a_m_s_ga79608ce8c26f58a6875e72c30ac60bda.html#ga79608ce8c26f58a6875e72c30ac60bda">Ucs_AmsTx_MsgFreedCb_t</a> message_freed_fptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Callback function which is invoked by the UNICENS library to notify that memory of a Tx message object was freed after a previous allocation using <a class="el" href="group___g___u_c_s___a_m_s_gafbcfeaaa6ff3d255609e404b16dbdf0f.html#gafbcfeaaa6ff3d255609e404b16dbdf0f" title="Allocates an application message object for transmission.">Ucs_AmsTx_AllocMsg()</a> has failed. The application might attempt to call <a class="el" href="group___g___u_c_s___a_m_s_gafbcfeaaa6ff3d255609e404b16dbdf0f.html#gafbcfeaaa6ff3d255609e404b16dbdf0f" title="Allocates an application message object for transmission.">Ucs_AmsTx_AllocMsg()</a> again. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___ams_tx___init_data__t.html">Ucs_AmsTx_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___ams_tx___msg__t.html b/ucs2-lib/doc/html/struct_ucs___ams_tx___msg__t.html
new file mode 100644
index 0000000..cb13e35
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___ams_tx___msg__t.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_AmsTx_Msg_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___ams_tx___msg__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_AmsTx_Msg_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___a_m_s___t_y_p_e_s.html">Referred Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Application message Tx type.
+ <a href="struct_ucs___ams_tx___msg__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a9a199f6a8a711b94ff827e6807980cb3"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___ams_tx___msg__t_a9a199f6a8a711b94ff827e6807980cb3.html#a9a199f6a8a711b94ff827e6807980cb3">destination_address</a></td></tr>
+<tr class="memdesc:a9a199f6a8a711b94ff827e6807980cb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destination address. Find some predefined addresses <a class="el" href="group___g___u_c_s___a_m_s.html">here</a>. <a href="#a9a199f6a8a711b94ff827e6807980cb3"></a><br/></td></tr>
+<tr class="separator:a9a199f6a8a711b94ff827e6807980cb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a689014fc11d4f26d264ddae2eaebc9d8"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___ams_tx___msg__t_a689014fc11d4f26d264ddae2eaebc9d8.html#a689014fc11d4f26d264ddae2eaebc9d8">msg_id</a></td></tr>
+<tr class="memdesc:a689014fc11d4f26d264ddae2eaebc9d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">16bit message descriptor <a href="#a689014fc11d4f26d264ddae2eaebc9d8"></a><br/></td></tr>
+<tr class="separator:a689014fc11d4f26d264ddae2eaebc9d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a82997e00f317333173aa610d0902ab04"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___ams_tx___msg__t_a82997e00f317333173aa610d0902ab04.html#a82997e00f317333173aa610d0902ab04">llrbc</a></td></tr>
+<tr class="memdesc:a82997e00f317333173aa610d0902ab04"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specifies the "Low-Level Retry Block Count" (LLRBC) <a href="#a82997e00f317333173aa610d0902ab04"></a><br/></td></tr>
+<tr class="separator:a82997e00f317333173aa610d0902ab04"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6166cef59cbe432be35512925debeae6"><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___ams_tx___msg__t_a6166cef59cbe432be35512925debeae6.html#a6166cef59cbe432be35512925debeae6">data_ptr</a></td></tr>
+<tr class="memdesc:a6166cef59cbe432be35512925debeae6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Payload data. <a href="#a6166cef59cbe432be35512925debeae6"></a><br/></td></tr>
+<tr class="separator:a6166cef59cbe432be35512925debeae6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aae6bdbdf6ea1ad3da5af37f0a91d3ea0"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___ams_tx___msg__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html#aae6bdbdf6ea1ad3da5af37f0a91d3ea0">data_size</a></td></tr>
+<tr class="memdesc:aae6bdbdf6ea1ad3da5af37f0a91d3ea0"><td class="mdescLeft">&#160;</td><td class="mdescRight">The size of payload data in bytes. <a href="#aae6bdbdf6ea1ad3da5af37f0a91d3ea0"></a><br/></td></tr>
+<tr class="separator:aae6bdbdf6ea1ad3da5af37f0a91d3ea0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1c691c4fcbb0562f9a9c9e07f1166319"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___ams_tx___msg__t_a1c691c4fcbb0562f9a9c9e07f1166319.html#a1c691c4fcbb0562f9a9c9e07f1166319">custom_info_ptr</a></td></tr>
+<tr class="memdesc:a1c691c4fcbb0562f9a9c9e07f1166319"><td class="mdescLeft">&#160;</td><td class="mdescRight">Customer specific reference. <a href="#a1c691c4fcbb0562f9a9c9e07f1166319"></a><br/></td></tr>
+<tr class="separator:a1c691c4fcbb0562f9a9c9e07f1166319"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Application message Tx type. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___ams_tx___msg__t.html">Ucs_AmsTx_Msg_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___ams_tx___msg__t_a1c691c4fcbb0562f9a9c9e07f1166319.html b/ucs2-lib/doc/html/struct_ucs___ams_tx___msg__t_a1c691c4fcbb0562f9a9c9e07f1166319.html
new file mode 100644
index 0000000..af53168
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___ams_tx___msg__t_a1c691c4fcbb0562f9a9c9e07f1166319.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_AmsTx_Msg_t::custom_info_ptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___ams_tx___msg__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a1c691c4fcbb0562f9a9c9e07f1166319"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void* custom_info_ptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Customer specific reference. </p>
+<p>The application is allowed to use this attribute to assign an own reference to the message object. The reference is initialized by the UNICENS library with <code>NULL</code> and will not alter until the transmission has finished. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___ams_tx___msg__t.html">Ucs_AmsTx_Msg_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___ams_tx___msg__t_a6166cef59cbe432be35512925debeae6.html b/ucs2-lib/doc/html/struct_ucs___ams_tx___msg__t_a6166cef59cbe432be35512925debeae6.html
new file mode 100644
index 0000000..bd11964
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___ams_tx___msg__t_a6166cef59cbe432be35512925debeae6.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_AmsTx_Msg_t::data_ptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___ams_tx___msg__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a6166cef59cbe432be35512925debeae6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t* data_ptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Payload data. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___ams_tx___msg__t.html">Ucs_AmsTx_Msg_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___ams_tx___msg__t_a689014fc11d4f26d264ddae2eaebc9d8.html b/ucs2-lib/doc/html/struct_ucs___ams_tx___msg__t_a689014fc11d4f26d264ddae2eaebc9d8.html
new file mode 100644
index 0000000..6e10538
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___ams_tx___msg__t_a689014fc11d4f26d264ddae2eaebc9d8.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_AmsTx_Msg_t::msg_id</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___ams_tx___msg__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a689014fc11d4f26d264ddae2eaebc9d8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t msg_id</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>16bit message descriptor </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___ams_tx___msg__t.html">Ucs_AmsTx_Msg_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___ams_tx___msg__t_a82997e00f317333173aa610d0902ab04.html b/ucs2-lib/doc/html/struct_ucs___ams_tx___msg__t_a82997e00f317333173aa610d0902ab04.html
new file mode 100644
index 0000000..70c4a51
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___ams_tx___msg__t_a82997e00f317333173aa610d0902ab04.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_AmsTx_Msg_t::llrbc</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___ams_tx___msg__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a82997e00f317333173aa610d0902ab04"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t llrbc</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Specifies the "Low-Level Retry Block Count" (LLRBC) </p>
+<p>Valid values: 0..100. Default value: configurable via <a class="el" href="struct_ucs___ams_tx___init_data__t.html">default_llrbc</a> of the initialization structure <a class="el" href="struct_ucs___ams_tx___init_data__t.html">Ucs_AmsTx_InitData_t</a>. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___ams_tx___msg__t.html">Ucs_AmsTx_Msg_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___ams_tx___msg__t_a9a199f6a8a711b94ff827e6807980cb3.html b/ucs2-lib/doc/html/struct_ucs___ams_tx___msg__t_a9a199f6a8a711b94ff827e6807980cb3.html
new file mode 100644
index 0000000..a2328fa
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___ams_tx___msg__t_a9a199f6a8a711b94ff827e6807980cb3.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_AmsTx_Msg_t::destination_address</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___ams_tx___msg__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a9a199f6a8a711b94ff827e6807980cb3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t destination_address</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Destination address. Find some predefined addresses <a class="el" href="group___g___u_c_s___a_m_s.html">here</a>. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___ams_tx___msg__t.html">Ucs_AmsTx_Msg_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___ams_tx___msg__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html b/ucs2-lib/doc/html/struct_ucs___ams_tx___msg__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html
new file mode 100644
index 0000000..b93dc7f
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___ams_tx___msg__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_AmsTx_Msg_t::data_size</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___ams_tx___msg__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="aae6bdbdf6ea1ad3da5af37f0a91d3ea0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t data_size</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The size of payload data in bytes. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___ams_tx___msg__t.html">Ucs_AmsTx_Msg_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___cmd___msg_id__t.html b/ucs2-lib/doc/html/struct_ucs___cmd___msg_id__t.html
new file mode 100644
index 0000000..daa825f
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___cmd___msg_id__t.html
@@ -0,0 +1,132 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Cmd_MsgId_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___cmd___msg_id__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Cmd_MsgId_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___c_m_d___t_y_p_e_s.html">Referred Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Structure of a single element of the MessageId Table.
+ <a href="struct_ucs___cmd___msg_id__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a689014fc11d4f26d264ddae2eaebc9d8"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___cmd___msg_id__t_a689014fc11d4f26d264ddae2eaebc9d8.html#a689014fc11d4f26d264ddae2eaebc9d8">msg_id</a></td></tr>
+<tr class="memdesc:a689014fc11d4f26d264ddae2eaebc9d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">MessageId. <a href="#a689014fc11d4f26d264ddae2eaebc9d8"></a><br/></td></tr>
+<tr class="separator:a689014fc11d4f26d264ddae2eaebc9d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7a00edfeadc4cc2a50b9136d2d368c23"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___c_m_d___t_y_p_e_s_ga88dfb52f565e25938a8162e67aecd580.html#ga88dfb52f565e25938a8162e67aecd580">Ucs_Cmd_Handler_Function_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___cmd___msg_id__t_a7a00edfeadc4cc2a50b9136d2d368c23.html#a7a00edfeadc4cc2a50b9136d2d368c23">handler_function_ptr</a></td></tr>
+<tr class="memdesc:a7a00edfeadc4cc2a50b9136d2d368c23"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to the belonging handler function. <a href="#a7a00edfeadc4cc2a50b9136d2d368c23"></a><br/></td></tr>
+<tr class="separator:a7a00edfeadc4cc2a50b9136d2d368c23"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Structure of a single element of the MessageId Table. </p>
+<p>The application provides a MessageId Table which contains all supported MessageIds with their belonging handler functions. The MessageId Table is an array of several <a class="el" href="struct_ucs___cmd___msg_id__t.html" title="Structure of a single element of the MessageId Table.">Ucs_Cmd_MsgId_t</a> elements. It has to end with a termination entry with the value {<a class="el" href="group___g___u_c_s___c_m_d___t_y_p_e_s_ga5a43bcb8d64270611848455343857bc8.html#ga5a43bcb8d64270611848455343857bc8">UCS_CMD_MSGID_TERMINATION</a>, NULL}. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___cmd___msg_id__t.html">Ucs_Cmd_MsgId_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___cmd___msg_id__t_a689014fc11d4f26d264ddae2eaebc9d8.html b/ucs2-lib/doc/html/struct_ucs___cmd___msg_id__t_a689014fc11d4f26d264ddae2eaebc9d8.html
new file mode 100644
index 0000000..fbc7562
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___cmd___msg_id__t_a689014fc11d4f26d264ddae2eaebc9d8.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Cmd_MsgId_t::msg_id</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___cmd___msg_id__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a689014fc11d4f26d264ddae2eaebc9d8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t msg_id</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>MessageId. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___cmd___msg_id__t.html">Ucs_Cmd_MsgId_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___cmd___msg_id__t_a7a00edfeadc4cc2a50b9136d2d368c23.html b/ucs2-lib/doc/html/struct_ucs___cmd___msg_id__t_a7a00edfeadc4cc2a50b9136d2d368c23.html
new file mode 100644
index 0000000..de095a3
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___cmd___msg_id__t_a7a00edfeadc4cc2a50b9136d2d368c23.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Cmd_MsgId_t::handler_function_ptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___cmd___msg_id__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a7a00edfeadc4cc2a50b9136d2d368c23"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___c_m_d___t_y_p_e_s_ga88dfb52f565e25938a8162e67aecd580.html#ga88dfb52f565e25938a8162e67aecd580">Ucs_Cmd_Handler_Function_t</a> handler_function_ptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Pointer to the belonging handler function. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___cmd___msg_id__t.html">Ucs_Cmd_MsgId_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___general___init_data__t.html b/ucs2-lib/doc/html/struct_ucs___general___init_data__t.html
new file mode 100644
index 0000000..5b2af8c
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___general___init_data__t.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_General_InitData_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___general___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_General_InitData_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s.html">Initialization and Service Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>The general section of initialization data.
+ <a href="struct_ucs___general___init_data__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:aa197d5a04c7eee7b95eb9e1de232d161"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga64926a6a194cfb06703835e3d06475c6.html#ga64926a6a194cfb06703835e3d06475c6">Ucs_ErrorCb_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___general___init_data__t_aa197d5a04c7eee7b95eb9e1de232d161.html#aa197d5a04c7eee7b95eb9e1de232d161">error_fptr</a></td></tr>
+<tr class="memdesc:aa197d5a04c7eee7b95eb9e1de232d161"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mandatory callback function notifying an error that terminates the API. <a href="#aa197d5a04c7eee7b95eb9e1de232d161"></a><br/></td></tr>
+<tr class="separator:aa197d5a04c7eee7b95eb9e1de232d161"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4e1140be3951f0e14d4071840f4ebc8e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga981854177aa9ebd554ab522199193bd3.html#ga981854177aa9ebd554ab522199193bd3">Ucs_GetTickCountCb_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___general___init_data__t_a4e1140be3951f0e14d4071840f4ebc8e.html#a4e1140be3951f0e14d4071840f4ebc8e">get_tick_count_fptr</a></td></tr>
+<tr class="memdesc:a4e1140be3951f0e14d4071840f4ebc8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mandatory callback function querying the actual system tick count. <a href="#a4e1140be3951f0e14d4071840f4ebc8e"></a><br/></td></tr>
+<tr class="separator:a4e1140be3951f0e14d4071840f4ebc8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9de73ec82699e45173702e9b0ccc917a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga0238420959cc58ee52c0b385741fccc9.html#ga0238420959cc58ee52c0b385741fccc9">Ucs_SetAppTimerCb_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___general___init_data__t_a9de73ec82699e45173702e9b0ccc917a.html#a9de73ec82699e45173702e9b0ccc917a">set_application_timer_fptr</a></td></tr>
+<tr class="memdesc:a9de73ec82699e45173702e9b0ccc917a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function requesting the application to call <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga369c86a27ffee30a3af3423f6b3f3e59.html#ga369c86a27ffee30a3af3423f6b3f3e59" title="The application must call this function if the application timer expires.">Ucs_ReportTimeout()</a> after a certain time. Mandatory callback function in event driven mode. <a href="#a9de73ec82699e45173702e9b0ccc917a"></a><br/></td></tr>
+<tr class="separator:a9de73ec82699e45173702e9b0ccc917a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7d2541cf63dfcea750c0d0ec2ef563c0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga61a038694eeb972f6d298478f16a2de2.html#ga61a038694eeb972f6d298478f16a2de2">Ucs_RequestServiceCb_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___general___init_data__t_a7d2541cf63dfcea750c0d0ec2ef563c0.html#a7d2541cf63dfcea750c0d0ec2ef563c0">request_service_fptr</a></td></tr>
+<tr class="memdesc:a7d2541cf63dfcea750c0d0ec2ef563c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function requesting the application to call <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga649fb9128df6f634fc86aa03b374d822.html#ga649fb9128df6f634fc86aa03b374d822" title="The application must call this function cyclically to drive UNICENS.">Ucs_Service()</a>. Mandatory callback function in event driven mode. <a href="#a7d2541cf63dfcea750c0d0ec2ef563c0"></a><br/></td></tr>
+<tr class="separator:a7d2541cf63dfcea750c0d0ec2ef563c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1694b517ad074d3b14b76b400f86c9db"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___general___init_data__t_a1694b517ad074d3b14b76b400f86c9db.html#a1694b517ad074d3b14b76b400f86c9db">inic_watchdog_enabled</a></td></tr>
+<tr class="memdesc:a1694b517ad074d3b14b76b400f86c9db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Optional setting for debugging. Set to <code>false</code> to disable the watchdog, set to <code>true</code> (default value) to enable the watchdog. <a href="#a1694b517ad074d3b14b76b400f86c9db"></a><br/></td></tr>
+<tr class="separator:a1694b517ad074d3b14b76b400f86c9db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad21ca235fca8aa5dbc81e6a82ca0f867"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___t_r_a_c_e_gaf18b6867951fd06359788f6595b78195.html#gaf18b6867951fd06359788f6595b78195">Ucs_DebugErrorMsgCb_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___general___init_data__t_ad21ca235fca8aa5dbc81e6a82ca0f867.html#ad21ca235fca8aa5dbc81e6a82ca0f867">debug_error_msg_fptr</a></td></tr>
+<tr class="memdesc:ad21ca235fca8aa5dbc81e6a82ca0f867"><td class="mdescLeft">&#160;</td><td class="mdescRight">Optional callback function to debug incoming raw messages of operation type UCS_OP_ERROR and UCS_OP_ERRORACK. <a href="#ad21ca235fca8aa5dbc81e6a82ca0f867"></a><br/></td></tr>
+<tr class="separator:ad21ca235fca8aa5dbc81e6a82ca0f867"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>The general section of initialization data. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___general___init_data__t.html">Ucs_General_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___general___init_data__t_a1694b517ad074d3b14b76b400f86c9db.html b/ucs2-lib/doc/html/struct_ucs___general___init_data__t_a1694b517ad074d3b14b76b400f86c9db.html
new file mode 100644
index 0000000..c93c8cb
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___general___init_data__t_a1694b517ad074d3b14b76b400f86c9db.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_General_InitData_t::inic_watchdog_enabled</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___general___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a1694b517ad074d3b14b76b400f86c9db"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool inic_watchdog_enabled</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Optional setting for debugging. Set to <code>false</code> to disable the watchdog, set to <code>true</code> (default value) to enable the watchdog. </p>
+<dl class="section note"><dt>Note</dt><dd>The INIC watchdog may only be disabled for debugging purpose. It must not be disabled in production systems. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___general___init_data__t.html">Ucs_General_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___general___init_data__t_a4e1140be3951f0e14d4071840f4ebc8e.html b/ucs2-lib/doc/html/struct_ucs___general___init_data__t_a4e1140be3951f0e14d4071840f4ebc8e.html
new file mode 100644
index 0000000..8c1b14f
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___general___init_data__t_a4e1140be3951f0e14d4071840f4ebc8e.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_General_InitData_t::get_tick_count_fptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___general___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a4e1140be3951f0e14d4071840f4ebc8e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga981854177aa9ebd554ab522199193bd3.html#ga981854177aa9ebd554ab522199193bd3">Ucs_GetTickCountCb_t</a> get_tick_count_fptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Mandatory callback function querying the actual system tick count. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___general___init_data__t.html">Ucs_General_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___general___init_data__t_a7d2541cf63dfcea750c0d0ec2ef563c0.html b/ucs2-lib/doc/html/struct_ucs___general___init_data__t_a7d2541cf63dfcea750c0d0ec2ef563c0.html
new file mode 100644
index 0000000..611060f
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___general___init_data__t_a7d2541cf63dfcea750c0d0ec2ef563c0.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_General_InitData_t::request_service_fptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___general___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a7d2541cf63dfcea750c0d0ec2ef563c0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga61a038694eeb972f6d298478f16a2de2.html#ga61a038694eeb972f6d298478f16a2de2">Ucs_RequestServiceCb_t</a> request_service_fptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Callback function requesting the application to call <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga649fb9128df6f634fc86aa03b374d822.html#ga649fb9128df6f634fc86aa03b374d822" title="The application must call this function cyclically to drive UNICENS.">Ucs_Service()</a>. Mandatory callback function in event driven mode. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___general___init_data__t.html">Ucs_General_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___general___init_data__t_a9de73ec82699e45173702e9b0ccc917a.html b/ucs2-lib/doc/html/struct_ucs___general___init_data__t_a9de73ec82699e45173702e9b0ccc917a.html
new file mode 100644
index 0000000..ad1b6a4
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___general___init_data__t_a9de73ec82699e45173702e9b0ccc917a.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_General_InitData_t::set_application_timer_fptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___general___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a9de73ec82699e45173702e9b0ccc917a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga0238420959cc58ee52c0b385741fccc9.html#ga0238420959cc58ee52c0b385741fccc9">Ucs_SetAppTimerCb_t</a> set_application_timer_fptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Callback function requesting the application to call <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga369c86a27ffee30a3af3423f6b3f3e59.html#ga369c86a27ffee30a3af3423f6b3f3e59" title="The application must call this function if the application timer expires.">Ucs_ReportTimeout()</a> after a certain time. Mandatory callback function in event driven mode. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___general___init_data__t.html">Ucs_General_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___general___init_data__t_aa197d5a04c7eee7b95eb9e1de232d161.html b/ucs2-lib/doc/html/struct_ucs___general___init_data__t_aa197d5a04c7eee7b95eb9e1de232d161.html
new file mode 100644
index 0000000..61b2a14
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___general___init_data__t_aa197d5a04c7eee7b95eb9e1de232d161.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_General_InitData_t::error_fptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___general___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="aa197d5a04c7eee7b95eb9e1de232d161"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga64926a6a194cfb06703835e3d06475c6.html#ga64926a6a194cfb06703835e3d06475c6">Ucs_ErrorCb_t</a> error_fptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Mandatory callback function notifying an error that terminates the API. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___general___init_data__t.html">Ucs_General_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___general___init_data__t_ad21ca235fca8aa5dbc81e6a82ca0f867.html b/ucs2-lib/doc/html/struct_ucs___general___init_data__t_ad21ca235fca8aa5dbc81e6a82ca0f867.html
new file mode 100644
index 0000000..4576c50
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___general___init_data__t_ad21ca235fca8aa5dbc81e6a82ca0f867.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_General_InitData_t::debug_error_msg_fptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___general___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ad21ca235fca8aa5dbc81e6a82ca0f867"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___t_r_a_c_e_gaf18b6867951fd06359788f6595b78195.html#gaf18b6867951fd06359788f6595b78195">Ucs_DebugErrorMsgCb_t</a> debug_error_msg_fptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Optional callback function to debug incoming raw messages of operation type UCS_OP_ERROR and UCS_OP_ERRORACK. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___general___init_data__t.html">Ucs_General_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___gpio___init_data__t.html b/ucs2-lib/doc/html/struct_ucs___gpio___init_data__t.html
new file mode 100644
index 0000000..8b9f3d8
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___gpio___init_data__t.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Gpio_InitData_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___gpio___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Gpio_InitData_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___g_p_i_o.html">GPIO</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>The initialization structure of the GPIO Module.
+ <a href="struct_ucs___gpio___init_data__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:abb586c1dd43ecda56d21209333104904"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga99bb3bcb2b588bc66d41f3e03d478020.html#ga99bb3bcb2b588bc66d41f3e03d478020">Ucs_Gpio_TriggerEventResultCb_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___gpio___init_data__t_abb586c1dd43ecda56d21209333104904.html#abb586c1dd43ecda56d21209333104904">trigger_event_status_fptr</a></td></tr>
+<tr class="memdesc:abb586c1dd43ecda56d21209333104904"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function that reports trigger events information of the GPIO Port. <a href="#abb586c1dd43ecda56d21209333104904"></a><br/></td></tr>
+<tr class="separator:abb586c1dd43ecda56d21209333104904"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>The initialization structure of the GPIO Module. </p>
+<p><br/>
+ <b>Example</b> </p>
+<div class="fragment"><div class="line"><a class="code" href="struct_ucs___init_data__t.html" title="UNICENS initialization structure used by function Ucs_Init().">Ucs_InitData_t</a> ucs_init_data;</div>
+<div class="line">(void)<a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga64b50780725a0dc8693b5b73f8345ad6.html#ga64b50780725a0dc8693b5b73f8345ad6" title="Assigns default values to a provided UNICENS init structure.">Ucs_SetDefaultConfig</a>(&amp;ucs_init_data)</div>
+<div class="line"></div>
+<div class="line"><span class="comment">// Resources Management init section.</span></div>
+<div class="line">ucs_init_data.<a class="code" href="struct_ucs___init_data__t_aaff1fbd74feb484366c4082f00f2aea7.html#aaff1fbd74feb484366c4082f00f2aea7" title="Initialization structure of the GPIO.">gpio</a>.<a class="code" href="struct_ucs___gpio___init_data__t_abb586c1dd43ecda56d21209333104904.html#abb586c1dd43ecda56d21209333104904" title="Callback function that reports trigger events information of the GPIO Port.">trigger_event_status_fptr</a> = &amp;App_GpioTriggerEventStatusCb;</div>
+<div class="line"></div>
+<div class="line"></div>
+<div class="line"><span class="comment">// Handle the GPIO trigger events here </span></div>
+<div class="line"><span class="keywordtype">void</span> App_GpioTriggerEventStatusCb(uint16_t node_address, </div>
+<div class="line"> uint16_t gpio_port_handle, </div>
+<div class="line"> uint16_t rising_edges, </div>
+<div class="line"> uint16_t falling_edges, </div>
+<div class="line"> uint16_t levels,</div>
+<div class="line"> <span class="keywordtype">void</span> * user_ptr)</div>
+<div class="line">{</div>
+<div class="line"> <span class="comment">// Do what needs to be.. </span></div>
+<div class="line">}</div>
+</div><!-- fragment --> </div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___gpio___init_data__t.html">Ucs_Gpio_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___gpio___init_data__t_abb586c1dd43ecda56d21209333104904.html b/ucs2-lib/doc/html/struct_ucs___gpio___init_data__t_abb586c1dd43ecda56d21209333104904.html
new file mode 100644
index 0000000..c843c0f
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___gpio___init_data__t_abb586c1dd43ecda56d21209333104904.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Gpio_InitData_t::trigger_event_status_fptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___gpio___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="abb586c1dd43ecda56d21209333104904"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga99bb3bcb2b588bc66d41f3e03d478020.html#ga99bb3bcb2b588bc66d41f3e03d478020">Ucs_Gpio_TriggerEventResultCb_t</a> trigger_event_status_fptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Callback function that reports trigger events information of the GPIO Port. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___gpio___init_data__t.html">Ucs_Gpio_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___gpio___pin_configuration__t.html b/ucs2-lib/doc/html/struct_ucs___gpio___pin_configuration__t.html
new file mode 100644
index 0000000..b0c0342
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___gpio___pin_configuration__t.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Gpio_PinConfiguration_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___gpio___pin_configuration__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Gpio_PinConfiguration_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s.html">Referred Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This structure contains information on the GPIO pin configuration.
+ <a href="struct_ucs___gpio___pin_configuration__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:ab40a673fb19c1e650e1f79de91788aa5"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___gpio___pin_configuration__t_ab40a673fb19c1e650e1f79de91788aa5.html#ab40a673fb19c1e650e1f79de91788aa5">pin</a></td></tr>
+<tr class="memdesc:ab40a673fb19c1e650e1f79de91788aa5"><td class="mdescLeft">&#160;</td><td class="mdescRight">The GPIO pin that is to be configured. <a href="#ab40a673fb19c1e650e1f79de91788aa5"></a><br/></td></tr>
+<tr class="separator:ab40a673fb19c1e650e1f79de91788aa5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9f9602aa82b7dc511dfd57447039c1ab"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#gacfcf034325bd7eff2f6fc78e8696ed49">Ucs_Gpio_PinMode_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___gpio___pin_configuration__t_a9f9602aa82b7dc511dfd57447039c1ab.html#a9f9602aa82b7dc511dfd57447039c1ab">mode</a></td></tr>
+<tr class="memdesc:a9f9602aa82b7dc511dfd57447039c1ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">The mode of the GPIO pin. <a href="#a9f9602aa82b7dc511dfd57447039c1ab"></a><br/></td></tr>
+<tr class="separator:a9f9602aa82b7dc511dfd57447039c1ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>This structure contains information on the GPIO pin configuration. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___gpio___pin_configuration__t.html">Ucs_Gpio_PinConfiguration_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___gpio___pin_configuration__t_a9f9602aa82b7dc511dfd57447039c1ab.html b/ucs2-lib/doc/html/struct_ucs___gpio___pin_configuration__t_a9f9602aa82b7dc511dfd57447039c1ab.html
new file mode 100644
index 0000000..944e381
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___gpio___pin_configuration__t_a9f9602aa82b7dc511dfd57447039c1ab.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Gpio_PinConfiguration_t::mode</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___gpio___pin_configuration__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a9f9602aa82b7dc511dfd57447039c1ab"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_gacfcf034325bd7eff2f6fc78e8696ed49.html#gacfcf034325bd7eff2f6fc78e8696ed49">Ucs_Gpio_PinMode_t</a> mode</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The mode of the GPIO pin. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___gpio___pin_configuration__t.html">Ucs_Gpio_PinConfiguration_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___gpio___pin_configuration__t_ab40a673fb19c1e650e1f79de91788aa5.html b/ucs2-lib/doc/html/struct_ucs___gpio___pin_configuration__t_ab40a673fb19c1e650e1f79de91788aa5.html
new file mode 100644
index 0000000..7ab0839
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___gpio___pin_configuration__t_ab40a673fb19c1e650e1f79de91788aa5.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Gpio_PinConfiguration_t::pin</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___gpio___pin_configuration__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ab40a673fb19c1e650e1f79de91788aa5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t pin</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The GPIO pin that is to be configured. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___gpio___pin_configuration__t.html">Ucs_Gpio_PinConfiguration_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___gpio___result__t.html b/ucs2-lib/doc/html/struct_ucs___gpio___result__t.html
new file mode 100644
index 0000000..57c5bab
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___gpio___result__t.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Gpio_Result_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___gpio___result__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Gpio_Result_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s.html">GPIO Referred Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Result structure of the GPIO Module.
+ <a href="struct_ucs___gpio___result__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a5a25ac28b5135e04a465fdead03df796"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga7432b6d95eb2af7bce5fe5809b08d88b.html#ga7432b6d95eb2af7bce5fe5809b08d88b">Ucs_Gpio_ResultCode_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___gpio___result__t_a5a25ac28b5135e04a465fdead03df796.html#a5a25ac28b5135e04a465fdead03df796">code</a></td></tr>
+<tr class="memdesc:a5a25ac28b5135e04a465fdead03df796"><td class="mdescLeft">&#160;</td><td class="mdescRight">Result code. <a href="#a5a25ac28b5135e04a465fdead03df796"></a><br/></td></tr>
+<tr class="separator:a5a25ac28b5135e04a465fdead03df796"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a834bf2a84ecdbd878eb0edbf89bc0b88"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_ucs___gpio___result_details__t.html">Ucs_Gpio_ResultDetails_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___gpio___result__t_a834bf2a84ecdbd878eb0edbf89bc0b88.html#a834bf2a84ecdbd878eb0edbf89bc0b88">details</a></td></tr>
+<tr class="memdesc:a834bf2a84ecdbd878eb0edbf89bc0b88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Detailed information on the returned result. <a href="#a834bf2a84ecdbd878eb0edbf89bc0b88"></a><br/></td></tr>
+<tr class="separator:a834bf2a84ecdbd878eb0edbf89bc0b88"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Result structure of the GPIO Module. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___gpio___result__t.html">Ucs_Gpio_Result_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___gpio___result__t_a5a25ac28b5135e04a465fdead03df796.html b/ucs2-lib/doc/html/struct_ucs___gpio___result__t_a5a25ac28b5135e04a465fdead03df796.html
new file mode 100644
index 0000000..c5e5290
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___gpio___result__t_a5a25ac28b5135e04a465fdead03df796.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Gpio_Result_t::code</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___gpio___result__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a5a25ac28b5135e04a465fdead03df796"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga7432b6d95eb2af7bce5fe5809b08d88b.html#ga7432b6d95eb2af7bce5fe5809b08d88b">Ucs_Gpio_ResultCode_t</a> code</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Result code. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___gpio___result__t.html">Ucs_Gpio_Result_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___gpio___result__t_a834bf2a84ecdbd878eb0edbf89bc0b88.html b/ucs2-lib/doc/html/struct_ucs___gpio___result__t_a834bf2a84ecdbd878eb0edbf89bc0b88.html
new file mode 100644
index 0000000..228789a
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___gpio___result__t_a834bf2a84ecdbd878eb0edbf89bc0b88.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Gpio_Result_t::details</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___gpio___result__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a834bf2a84ecdbd878eb0edbf89bc0b88"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_ucs___gpio___result_details__t.html">Ucs_Gpio_ResultDetails_t</a> details</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Detailed information on the returned result. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___gpio___result__t.html">Ucs_Gpio_Result_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___gpio___result_details__t.html b/ucs2-lib/doc/html/struct_ucs___gpio___result_details__t.html
new file mode 100644
index 0000000..a5d9c56
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___gpio___result_details__t.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Gpio_ResultDetails_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___gpio___result_details__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Gpio_ResultDetails_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s.html">GPIO Referred Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Detailed information used for GPIO results.
+ <a href="struct_ucs___gpio___result_details__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a87d6ba6c35b8ada8a002fee6caf0c28a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga292134dc6bc30b6b4f0e3e8882c2e772.html#ga292134dc6bc30b6b4f0e3e8882c2e772">Ucs_Gpio_ResultType_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___gpio___result_details__t_a87d6ba6c35b8ada8a002fee6caf0c28a.html#a87d6ba6c35b8ada8a002fee6caf0c28a">result_type</a></td></tr>
+<tr class="memdesc:a87d6ba6c35b8ada8a002fee6caf0c28a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specifies the type of the current asynchronous result. <a href="#a87d6ba6c35b8ada8a002fee6caf0c28a"></a><br/></td></tr>
+<tr class="separator:a87d6ba6c35b8ada8a002fee6caf0c28a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abee2d1d2c9eebcbc9da920664e9eb248"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#gac5aa79eb466a98f645c0302f402294d6">Ucs_MsgTxStatus_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___gpio___result_details__t_abee2d1d2c9eebcbc9da920664e9eb248.html#abee2d1d2c9eebcbc9da920664e9eb248">tx_result</a></td></tr>
+<tr class="memdesc:abee2d1d2c9eebcbc9da920664e9eb248"><td class="mdescLeft">&#160;</td><td class="mdescRight">Holds the status of the transmission. <a href="#abee2d1d2c9eebcbc9da920664e9eb248"></a><br/></td></tr>
+<tr class="separator:abee2d1d2c9eebcbc9da920664e9eb248"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac8f7bd459f5052601dbbab267d9d8067"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_ucs___std_result__t.html">Ucs_StdResult_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___gpio___result_details__t_ac8f7bd459f5052601dbbab267d9d8067.html#ac8f7bd459f5052601dbbab267d9d8067">inic_result</a></td></tr>
+<tr class="memdesc:ac8f7bd459f5052601dbbab267d9d8067"><td class="mdescLeft">&#160;</td><td class="mdescRight">Holds the results of the target device. <a href="#ac8f7bd459f5052601dbbab267d9d8067"></a><br/></td></tr>
+<tr class="separator:ac8f7bd459f5052601dbbab267d9d8067"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Detailed information used for GPIO results. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___gpio___result_details__t.html">Ucs_Gpio_ResultDetails_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___gpio___result_details__t_a87d6ba6c35b8ada8a002fee6caf0c28a.html b/ucs2-lib/doc/html/struct_ucs___gpio___result_details__t_a87d6ba6c35b8ada8a002fee6caf0c28a.html
new file mode 100644
index 0000000..029b60a
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___gpio___result_details__t_a87d6ba6c35b8ada8a002fee6caf0c28a.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Gpio_ResultDetails_t::result_type</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___gpio___result_details__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a87d6ba6c35b8ada8a002fee6caf0c28a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___g_p_i_o___t_y_p_e_s_ga292134dc6bc30b6b4f0e3e8882c2e772.html#ga292134dc6bc30b6b4f0e3e8882c2e772">Ucs_Gpio_ResultType_t</a> result_type</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Specifies the type of the current asynchronous result. </p>
+<p>The following briefly describes the different types of results available:</p>
+<ul>
+<li><b>UCS_GPIO_RESULT_TYPE_TGT:</b> target results, typically INIC function-specific error found on target device. <br/>
+ Refer to <em>inic_result</em> to get the detailed information.</li>
+<li><b>UCS_GPIO_RESULT_TYPE_TX:</b> transmission results, typically transmission error on the MOST network. <br/>
+ Refer to <em>tx_result</em> to get the transmission information. </li>
+</ul>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___gpio___result_details__t.html">Ucs_Gpio_ResultDetails_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___gpio___result_details__t_abee2d1d2c9eebcbc9da920664e9eb248.html b/ucs2-lib/doc/html/struct_ucs___gpio___result_details__t_abee2d1d2c9eebcbc9da920664e9eb248.html
new file mode 100644
index 0000000..bfb2d6d
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___gpio___result_details__t_abee2d1d2c9eebcbc9da920664e9eb248.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Gpio_ResultDetails_t::tx_result</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___gpio___result_details__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="abee2d1d2c9eebcbc9da920664e9eb248"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#gac5aa79eb466a98f645c0302f402294d6">Ucs_MsgTxStatus_t</a> tx_result</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Holds the status of the transmission. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___gpio___result_details__t.html">Ucs_Gpio_ResultDetails_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___gpio___result_details__t_ac8f7bd459f5052601dbbab267d9d8067.html b/ucs2-lib/doc/html/struct_ucs___gpio___result_details__t_ac8f7bd459f5052601dbbab267d9d8067.html
new file mode 100644
index 0000000..c99b90d
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___gpio___result_details__t_ac8f7bd459f5052601dbbab267d9d8067.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Gpio_ResultDetails_t::inic_result</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___gpio___result_details__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ac8f7bd459f5052601dbbab267d9d8067"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_ucs___std_result__t.html">Ucs_StdResult_t</a> inic_result</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Holds the results of the target device. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___gpio___result_details__t.html">Ucs_Gpio_ResultDetails_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___i2c___init_data__t.html b/ucs2-lib/doc/html/struct_ucs___i2c___init_data__t.html
new file mode 100644
index 0000000..d8c4d30
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___i2c___init_data__t.html
@@ -0,0 +1,141 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_I2c_InitData_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___i2c___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_I2c_InitData_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___i2_c.html">I2C</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>The initialization structure of the I2C Module.
+ <a href="struct_ucs___i2c___init_data__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a2d31f7e7ace9d7a9998a9d9427706a45"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga3bdd3013545f8249a73c73e0d28713f7.html#ga3bdd3013545f8249a73c73e0d28713f7">Ucs_I2c_IntEventReportCb_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___i2c___init_data__t_a2d31f7e7ace9d7a9998a9d9427706a45.html#a2d31f7e7ace9d7a9998a9d9427706a45">interrupt_status_fptr</a></td></tr>
+<tr class="memdesc:a2d31f7e7ace9d7a9998a9d9427706a45"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function that reports the I2C interrupt. <a href="#a2d31f7e7ace9d7a9998a9d9427706a45"></a><br/></td></tr>
+<tr class="separator:a2d31f7e7ace9d7a9998a9d9427706a45"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>The initialization structure of the I2C Module. </p>
+<p><br/>
+ <b>Example</b> </p>
+<div class="fragment"><div class="line"><a class="code" href="struct_ucs___init_data__t.html" title="UNICENS initialization structure used by function Ucs_Init().">Ucs_InitData_t</a> ucs_init_data;</div>
+<div class="line">(void)<a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga64b50780725a0dc8693b5b73f8345ad6.html#ga64b50780725a0dc8693b5b73f8345ad6" title="Assigns default values to a provided UNICENS init structure.">Ucs_SetDefaultConfig</a>(&amp;ucs_init_data)</div>
+<div class="line"></div>
+<div class="line"><span class="comment">// Resources Management init section.</span></div>
+<div class="line">ucs_init_data.<a class="code" href="struct_ucs___init_data__t_a1b49223d94d385d1229b6864ad7fa053.html#a1b49223d94d385d1229b6864ad7fa053" title="Initialization structure of the I2C.">i2c</a>.<a class="code" href="struct_ucs___i2c___init_data__t_a2d31f7e7ace9d7a9998a9d9427706a45.html#a2d31f7e7ace9d7a9998a9d9427706a45" title="Callback function that reports the I2C interrupt.">interrupt_status_fptr</a> = &amp;App_I2cIntStatusCb;</div>
+<div class="line"></div>
+<div class="line"><span class="comment">// Handle the I2C interrupt event here</span></div>
+<div class="line"><span class="keywordtype">void</span> App_I2cIntStatusCb (uint16_t node_address, <span class="keywordtype">void</span> * user_ptr)</div>
+<div class="line">{</div>
+<div class="line"> <span class="comment">// Do what needs to be.. </span></div>
+<div class="line">}</div>
+</div><!-- fragment --> </div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___i2c___init_data__t.html">Ucs_I2c_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___i2c___init_data__t_a2d31f7e7ace9d7a9998a9d9427706a45.html b/ucs2-lib/doc/html/struct_ucs___i2c___init_data__t_a2d31f7e7ace9d7a9998a9d9427706a45.html
new file mode 100644
index 0000000..ba315c4
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___i2c___init_data__t_a2d31f7e7ace9d7a9998a9d9427706a45.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_I2c_InitData_t::interrupt_status_fptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___i2c___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a2d31f7e7ace9d7a9998a9d9427706a45"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga3bdd3013545f8249a73c73e0d28713f7.html#ga3bdd3013545f8249a73c73e0d28713f7">Ucs_I2c_IntEventReportCb_t</a> interrupt_status_fptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Callback function that reports the I2C interrupt. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___i2c___init_data__t.html">Ucs_I2c_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___i2c___result__t.html b/ucs2-lib/doc/html/struct_ucs___i2c___result__t.html
new file mode 100644
index 0000000..fced648
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___i2c___result__t.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_I2c_Result_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___i2c___result__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_I2c_Result_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s.html">I2C Referred Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Result structure of the I2C Module.
+ <a href="struct_ucs___i2c___result__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:aacd0e1eabaa18a3fe226a2b4f849832b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga930e829c3c689b8ead8f9fbf7f2ca237.html#ga930e829c3c689b8ead8f9fbf7f2ca237">Ucs_I2c_ResultCode_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___i2c___result__t_aacd0e1eabaa18a3fe226a2b4f849832b.html#aacd0e1eabaa18a3fe226a2b4f849832b">code</a></td></tr>
+<tr class="memdesc:aacd0e1eabaa18a3fe226a2b4f849832b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Result code. <a href="#aacd0e1eabaa18a3fe226a2b4f849832b"></a><br/></td></tr>
+<tr class="separator:aacd0e1eabaa18a3fe226a2b4f849832b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a288b89d26129791b83b01a3b464d7351"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_ucs___i2c___result_details__t.html">Ucs_I2c_ResultDetails_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___i2c___result__t_a288b89d26129791b83b01a3b464d7351.html#a288b89d26129791b83b01a3b464d7351">details</a></td></tr>
+<tr class="memdesc:a288b89d26129791b83b01a3b464d7351"><td class="mdescLeft">&#160;</td><td class="mdescRight">Detailed information on the returned result. <a href="#a288b89d26129791b83b01a3b464d7351"></a><br/></td></tr>
+<tr class="separator:a288b89d26129791b83b01a3b464d7351"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Result structure of the I2C Module. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___i2c___result__t.html">Ucs_I2c_Result_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___i2c___result__t_a288b89d26129791b83b01a3b464d7351.html b/ucs2-lib/doc/html/struct_ucs___i2c___result__t_a288b89d26129791b83b01a3b464d7351.html
new file mode 100644
index 0000000..55ed923
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___i2c___result__t_a288b89d26129791b83b01a3b464d7351.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_I2c_Result_t::details</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___i2c___result__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a288b89d26129791b83b01a3b464d7351"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_ucs___i2c___result_details__t.html">Ucs_I2c_ResultDetails_t</a> details</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Detailed information on the returned result. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___i2c___result__t.html">Ucs_I2c_Result_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___i2c___result__t_aacd0e1eabaa18a3fe226a2b4f849832b.html b/ucs2-lib/doc/html/struct_ucs___i2c___result__t_aacd0e1eabaa18a3fe226a2b4f849832b.html
new file mode 100644
index 0000000..acabc16
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___i2c___result__t_aacd0e1eabaa18a3fe226a2b4f849832b.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_I2c_Result_t::code</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___i2c___result__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="aacd0e1eabaa18a3fe226a2b4f849832b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga930e829c3c689b8ead8f9fbf7f2ca237.html#ga930e829c3c689b8ead8f9fbf7f2ca237">Ucs_I2c_ResultCode_t</a> code</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Result code. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___i2c___result__t.html">Ucs_I2c_Result_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___i2c___result_details__t.html b/ucs2-lib/doc/html/struct_ucs___i2c___result_details__t.html
new file mode 100644
index 0000000..a6032b8
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___i2c___result_details__t.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_I2c_ResultDetails_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___i2c___result_details__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_I2c_ResultDetails_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s.html">I2C Referred Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Detailed information used for I2C results.
+ <a href="struct_ucs___i2c___result_details__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:afbf6b21e51e2114bd8165bc6b9d920a5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga7c7b4521cb5391bd20c02104876a811d.html#ga7c7b4521cb5391bd20c02104876a811d">Ucs_I2c_ResultType_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___i2c___result_details__t_afbf6b21e51e2114bd8165bc6b9d920a5.html#afbf6b21e51e2114bd8165bc6b9d920a5">result_type</a></td></tr>
+<tr class="memdesc:afbf6b21e51e2114bd8165bc6b9d920a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specifies the type of the current asynchronous result. <a href="#afbf6b21e51e2114bd8165bc6b9d920a5"></a><br/></td></tr>
+<tr class="separator:afbf6b21e51e2114bd8165bc6b9d920a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abee2d1d2c9eebcbc9da920664e9eb248"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#gac5aa79eb466a98f645c0302f402294d6">Ucs_MsgTxStatus_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___i2c___result_details__t_abee2d1d2c9eebcbc9da920664e9eb248.html#abee2d1d2c9eebcbc9da920664e9eb248">tx_result</a></td></tr>
+<tr class="memdesc:abee2d1d2c9eebcbc9da920664e9eb248"><td class="mdescLeft">&#160;</td><td class="mdescRight">Holds the status of the transmission. <a href="#abee2d1d2c9eebcbc9da920664e9eb248"></a><br/></td></tr>
+<tr class="separator:abee2d1d2c9eebcbc9da920664e9eb248"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac8f7bd459f5052601dbbab267d9d8067"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_ucs___std_result__t.html">Ucs_StdResult_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___i2c___result_details__t_ac8f7bd459f5052601dbbab267d9d8067.html#ac8f7bd459f5052601dbbab267d9d8067">inic_result</a></td></tr>
+<tr class="memdesc:ac8f7bd459f5052601dbbab267d9d8067"><td class="mdescLeft">&#160;</td><td class="mdescRight">Holds the results of the target device. <a href="#ac8f7bd459f5052601dbbab267d9d8067"></a><br/></td></tr>
+<tr class="separator:ac8f7bd459f5052601dbbab267d9d8067"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Detailed information used for I2C results. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___i2c___result_details__t.html">Ucs_I2c_ResultDetails_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___i2c___result_details__t_abee2d1d2c9eebcbc9da920664e9eb248.html b/ucs2-lib/doc/html/struct_ucs___i2c___result_details__t_abee2d1d2c9eebcbc9da920664e9eb248.html
new file mode 100644
index 0000000..80b208e
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___i2c___result_details__t_abee2d1d2c9eebcbc9da920664e9eb248.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_I2c_ResultDetails_t::tx_result</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___i2c___result_details__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="abee2d1d2c9eebcbc9da920664e9eb248"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#gac5aa79eb466a98f645c0302f402294d6">Ucs_MsgTxStatus_t</a> tx_result</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Holds the status of the transmission. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___i2c___result_details__t.html">Ucs_I2c_ResultDetails_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___i2c___result_details__t_ac8f7bd459f5052601dbbab267d9d8067.html b/ucs2-lib/doc/html/struct_ucs___i2c___result_details__t_ac8f7bd459f5052601dbbab267d9d8067.html
new file mode 100644
index 0000000..9899937
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___i2c___result_details__t_ac8f7bd459f5052601dbbab267d9d8067.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_I2c_ResultDetails_t::inic_result</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___i2c___result_details__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ac8f7bd459f5052601dbbab267d9d8067"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_ucs___std_result__t.html">Ucs_StdResult_t</a> inic_result</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Holds the results of the target device. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___i2c___result_details__t.html">Ucs_I2c_ResultDetails_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___i2c___result_details__t_afbf6b21e51e2114bd8165bc6b9d920a5.html b/ucs2-lib/doc/html/struct_ucs___i2c___result_details__t_afbf6b21e51e2114bd8165bc6b9d920a5.html
new file mode 100644
index 0000000..4ae3e84
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___i2c___result_details__t_afbf6b21e51e2114bd8165bc6b9d920a5.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_I2c_ResultDetails_t::result_type</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___i2c___result_details__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="afbf6b21e51e2114bd8165bc6b9d920a5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga7c7b4521cb5391bd20c02104876a811d.html#ga7c7b4521cb5391bd20c02104876a811d">Ucs_I2c_ResultType_t</a> result_type</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Specifies the type of the current asynchronous result. </p>
+<p>The following briefly describes the different types of results available:</p>
+<ul>
+<li><b>UCS_I2C_RESULT_TYPE_TGT:</b> target results, typically INIC function-specific error found on target device. <br/>
+ Refer to <em>inic_result</em> to get the detailed information.</li>
+<li><b>UCS_I2C_RESULT_TYPE_TX:</b> transmission results, typically transmission error on the MOST network. <br/>
+ Refer to <em>tx_result</em> to get the transmission information. </li>
+</ul>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___i2c___result_details__t.html">Ucs_I2c_ResultDetails_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___inic___init_data__t.html b/ucs2-lib/doc/html/struct_ucs___inic___init_data__t.html
new file mode 100644
index 0000000..3c3ff31
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___inic___init_data__t.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Inic_InitData_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___inic___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Inic_InitData_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___i_n_i_c.html">INIC</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>The INIC section of initialization data.
+ <a href="struct_ucs___inic___init_data__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a238990027953e8302526513c7cbb4dc0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s_gaca78cd7da871ae21b1d546c31e604772.html#gaca78cd7da871ae21b1d546c31e604772">Ucs_Inic_PowerStateCb_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___inic___init_data__t_a238990027953e8302526513c7cbb4dc0.html#a238990027953e8302526513c7cbb4dc0">power_state_fptr</a></td></tr>
+<tr class="memdesc:a238990027953e8302526513c7cbb4dc0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function to monitor the state of the INIC's power management interface. <a href="#a238990027953e8302526513c7cbb4dc0"></a><br/></td></tr>
+<tr class="separator:a238990027953e8302526513c7cbb4dc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>The INIC section of initialization data. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___inic___init_data__t.html">Ucs_Inic_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___inic___init_data__t_a238990027953e8302526513c7cbb4dc0.html b/ucs2-lib/doc/html/struct_ucs___inic___init_data__t_a238990027953e8302526513c7cbb4dc0.html
new file mode 100644
index 0000000..7a08e0d
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___inic___init_data__t_a238990027953e8302526513c7cbb4dc0.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Inic_InitData_t::power_state_fptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___inic___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a238990027953e8302526513c7cbb4dc0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s_gaca78cd7da871ae21b1d546c31e604772.html#gaca78cd7da871ae21b1d546c31e604772">Ucs_Inic_PowerStateCb_t</a> power_state_fptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Callback function to monitor the state of the INIC's power management interface. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___inic___init_data__t.html">Ucs_Inic_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___inic___version__t.html b/ucs2-lib/doc/html/struct_ucs___inic___version__t.html
new file mode 100644
index 0000000..f91f314
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___inic___version__t.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Inic_Version_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___inic___version__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Inic_Version_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s.html">Referred Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This structure contains information on the hardware and firmware modules of the INIC.
+ <a href="struct_ucs___inic___version__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a20c9cb94858deb6d8a9ab9a220fa8778"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___inic___version__t_a20c9cb94858deb6d8a9ab9a220fa8778.html#a20c9cb94858deb6d8a9ab9a220fa8778">product_identifier</a></td></tr>
+<tr class="memdesc:a20c9cb94858deb6d8a9ab9a220fa8778"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unique identifier that represents the product name. <a href="#a20c9cb94858deb6d8a9ab9a220fa8778"></a><br/></td></tr>
+<tr class="separator:a20c9cb94858deb6d8a9ab9a220fa8778"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab190dafd0511e594196f0d25f0cd99dc"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___inic___version__t_ab190dafd0511e594196f0d25f0cd99dc.html#ab190dafd0511e594196f0d25f0cd99dc">build_version</a></td></tr>
+<tr class="memdesc:ab190dafd0511e594196f0d25f0cd99dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Firmware build version number. <a href="#ab190dafd0511e594196f0d25f0cd99dc"></a><br/></td></tr>
+<tr class="separator:ab190dafd0511e594196f0d25f0cd99dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a79fca74d233fe79b334ecc712ca688ea"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___inic___version__t_a79fca74d233fe79b334ecc712ca688ea.html#a79fca74d233fe79b334ecc712ca688ea">major_version</a></td></tr>
+<tr class="memdesc:a79fca74d233fe79b334ecc712ca688ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Firmware major version number. <a href="#a79fca74d233fe79b334ecc712ca688ea"></a><br/></td></tr>
+<tr class="separator:a79fca74d233fe79b334ecc712ca688ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a384e7593c5c4c33e1f7c9936dab0b937"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___inic___version__t_a384e7593c5c4c33e1f7c9936dab0b937.html#a384e7593c5c4c33e1f7c9936dab0b937">minor_version</a></td></tr>
+<tr class="memdesc:a384e7593c5c4c33e1f7c9936dab0b937"><td class="mdescLeft">&#160;</td><td class="mdescRight">Firmware build version number. <a href="#a384e7593c5c4c33e1f7c9936dab0b937"></a><br/></td></tr>
+<tr class="separator:a384e7593c5c4c33e1f7c9936dab0b937"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2aa984a9a3499db9e991535b402b3dca"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___inic___version__t_a2aa984a9a3499db9e991535b402b3dca.html#a2aa984a9a3499db9e991535b402b3dca">release_version</a></td></tr>
+<tr class="memdesc:a2aa984a9a3499db9e991535b402b3dca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Firmware release version number. <a href="#a2aa984a9a3499db9e991535b402b3dca"></a><br/></td></tr>
+<tr class="separator:a2aa984a9a3499db9e991535b402b3dca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd5796c03158d03bb72378ce02535beb"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___inic___version__t_afd5796c03158d03bb72378ce02535beb.html#afd5796c03158d03bb72378ce02535beb">hw_revision</a></td></tr>
+<tr class="memdesc:afd5796c03158d03bb72378ce02535beb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Chip revision number. <a href="#afd5796c03158d03bb72378ce02535beb"></a><br/></td></tr>
+<tr class="separator:afd5796c03158d03bb72378ce02535beb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab98cc6d6cb5cc92d5f6633419daa643e"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___inic___version__t_ab98cc6d6cb5cc92d5f6633419daa643e.html#ab98cc6d6cb5cc92d5f6633419daa643e">diagnosis_id</a></td></tr>
+<tr class="memdesc:ab98cc6d6cb5cc92d5f6633419daa643e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Diagnosis identifier of the INIC. <a href="#ab98cc6d6cb5cc92d5f6633419daa643e"></a><br/></td></tr>
+<tr class="separator:ab98cc6d6cb5cc92d5f6633419daa643e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abae3da4c5cc12b7d7470701f1811caa2"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___inic___version__t_abae3da4c5cc12b7d7470701f1811caa2.html#abae3da4c5cc12b7d7470701f1811caa2">cs_major_version</a></td></tr>
+<tr class="memdesc:abae3da4c5cc12b7d7470701f1811caa2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configuration String major version number. <a href="#abae3da4c5cc12b7d7470701f1811caa2"></a><br/></td></tr>
+<tr class="separator:abae3da4c5cc12b7d7470701f1811caa2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aedae893bc0a52aed213d0dcef8262921"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___inic___version__t_aedae893bc0a52aed213d0dcef8262921.html#aedae893bc0a52aed213d0dcef8262921">cs_minor_version</a></td></tr>
+<tr class="memdesc:aedae893bc0a52aed213d0dcef8262921"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configuration String minor version number. <a href="#aedae893bc0a52aed213d0dcef8262921"></a><br/></td></tr>
+<tr class="separator:aedae893bc0a52aed213d0dcef8262921"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aed9e506bf23c33ccb10ba21404859a74"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___inic___version__t_aed9e506bf23c33ccb10ba21404859a74.html#aed9e506bf23c33ccb10ba21404859a74">cs_release_version</a></td></tr>
+<tr class="memdesc:aed9e506bf23c33ccb10ba21404859a74"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configuration String release version number. <a href="#aed9e506bf23c33ccb10ba21404859a74"></a><br/></td></tr>
+<tr class="separator:aed9e506bf23c33ccb10ba21404859a74"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>This structure contains information on the hardware and firmware modules of the INIC. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___inic___version__t.html">Ucs_Inic_Version_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___inic___version__t_a20c9cb94858deb6d8a9ab9a220fa8778.html b/ucs2-lib/doc/html/struct_ucs___inic___version__t_a20c9cb94858deb6d8a9ab9a220fa8778.html
new file mode 100644
index 0000000..320caf5
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___inic___version__t_a20c9cb94858deb6d8a9ab9a220fa8778.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Inic_Version_t::product_identifier</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___inic___version__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a20c9cb94858deb6d8a9ab9a220fa8778"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t product_identifier</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Unique identifier that represents the product name. </p>
+<table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>ProductIdentifier</code></td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___inic___version__t.html">Ucs_Inic_Version_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___inic___version__t_a2aa984a9a3499db9e991535b402b3dca.html b/ucs2-lib/doc/html/struct_ucs___inic___version__t_a2aa984a9a3499db9e991535b402b3dca.html
new file mode 100644
index 0000000..e83c9d5
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___inic___version__t_a2aa984a9a3499db9e991535b402b3dca.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Inic_Version_t::release_version</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___inic___version__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a2aa984a9a3499db9e991535b402b3dca"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t release_version</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Firmware release version number. </p>
+<table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>ReleaseVersion</code></td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___inic___version__t.html">Ucs_Inic_Version_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___inic___version__t_a384e7593c5c4c33e1f7c9936dab0b937.html b/ucs2-lib/doc/html/struct_ucs___inic___version__t_a384e7593c5c4c33e1f7c9936dab0b937.html
new file mode 100644
index 0000000..91d426c
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___inic___version__t_a384e7593c5c4c33e1f7c9936dab0b937.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Inic_Version_t::minor_version</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___inic___version__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a384e7593c5c4c33e1f7c9936dab0b937"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t minor_version</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Firmware build version number. </p>
+<table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>MinorVersion</code></td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___inic___version__t.html">Ucs_Inic_Version_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___inic___version__t_a79fca74d233fe79b334ecc712ca688ea.html b/ucs2-lib/doc/html/struct_ucs___inic___version__t_a79fca74d233fe79b334ecc712ca688ea.html
new file mode 100644
index 0000000..48bc012
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___inic___version__t_a79fca74d233fe79b334ecc712ca688ea.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Inic_Version_t::major_version</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___inic___version__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a79fca74d233fe79b334ecc712ca688ea"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t major_version</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Firmware major version number. </p>
+<table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>MajorVersion</code></td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___inic___version__t.html">Ucs_Inic_Version_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___inic___version__t_ab190dafd0511e594196f0d25f0cd99dc.html b/ucs2-lib/doc/html/struct_ucs___inic___version__t_ab190dafd0511e594196f0d25f0cd99dc.html
new file mode 100644
index 0000000..30bccd7
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___inic___version__t_ab190dafd0511e594196f0d25f0cd99dc.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Inic_Version_t::build_version</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___inic___version__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ab190dafd0511e594196f0d25f0cd99dc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t build_version</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Firmware build version number. </p>
+<table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>BuildVersion</code></td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___inic___version__t.html">Ucs_Inic_Version_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___inic___version__t_ab98cc6d6cb5cc92d5f6633419daa643e.html b/ucs2-lib/doc/html/struct_ucs___inic___version__t_ab98cc6d6cb5cc92d5f6633419daa643e.html
new file mode 100644
index 0000000..d2ec966
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___inic___version__t_ab98cc6d6cb5cc92d5f6633419daa643e.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Inic_Version_t::diagnosis_id</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___inic___version__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ab98cc6d6cb5cc92d5f6633419daa643e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t diagnosis_id</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Diagnosis identifier of the INIC. </p>
+<table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>DiagnosisID</code></td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___inic___version__t.html">Ucs_Inic_Version_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___inic___version__t_abae3da4c5cc12b7d7470701f1811caa2.html b/ucs2-lib/doc/html/struct_ucs___inic___version__t_abae3da4c5cc12b7d7470701f1811caa2.html
new file mode 100644
index 0000000..d11c0b9
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___inic___version__t_abae3da4c5cc12b7d7470701f1811caa2.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Inic_Version_t::cs_major_version</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___inic___version__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="abae3da4c5cc12b7d7470701f1811caa2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t cs_major_version</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Configuration String major version number. </p>
+<table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>ExtMajorVersion</code></td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___inic___version__t.html">Ucs_Inic_Version_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___inic___version__t_aed9e506bf23c33ccb10ba21404859a74.html b/ucs2-lib/doc/html/struct_ucs___inic___version__t_aed9e506bf23c33ccb10ba21404859a74.html
new file mode 100644
index 0000000..abb09c1
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___inic___version__t_aed9e506bf23c33ccb10ba21404859a74.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Inic_Version_t::cs_release_version</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___inic___version__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="aed9e506bf23c33ccb10ba21404859a74"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t cs_release_version</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Configuration String release version number. </p>
+<table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>ExtReleaseVersion</code></td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___inic___version__t.html">Ucs_Inic_Version_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___inic___version__t_aedae893bc0a52aed213d0dcef8262921.html b/ucs2-lib/doc/html/struct_ucs___inic___version__t_aedae893bc0a52aed213d0dcef8262921.html
new file mode 100644
index 0000000..3f35a7c
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___inic___version__t_aedae893bc0a52aed213d0dcef8262921.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Inic_Version_t::cs_minor_version</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___inic___version__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="aedae893bc0a52aed213d0dcef8262921"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t cs_minor_version</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Configuration String minor version number. </p>
+<table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>ExtMinorVersion</code></td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___inic___version__t.html">Ucs_Inic_Version_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___inic___version__t_afd5796c03158d03bb72378ce02535beb.html b/ucs2-lib/doc/html/struct_ucs___inic___version__t_afd5796c03158d03bb72378ce02535beb.html
new file mode 100644
index 0000000..b6373d9
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___inic___version__t_afd5796c03158d03bb72378ce02535beb.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Inic_Version_t::hw_revision</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___inic___version__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="afd5796c03158d03bb72378ce02535beb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t hw_revision</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Chip revision number. </p>
+<table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>HardwareRevision</code></td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___inic___version__t.html">Ucs_Inic_Version_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___init_data__t.html b/ucs2-lib/doc/html/struct_ucs___init_data__t.html
new file mode 100644
index 0000000..e9cd6c5
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___init_data__t.html
@@ -0,0 +1,158 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_InitData_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_InitData_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v.html">Initialization and Service</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>UNICENS initialization structure used by function <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_gaea8d7735d41853167a2befdc06febe43.html#gaea8d7735d41853167a2befdc06febe43" title="UNICENS initialization function.">Ucs_Init()</a>.
+ <a href="struct_ucs___init_data__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a41f828ebbe67a574ee39abd6c054bb6c"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___init_data__t_a41f828ebbe67a574ee39abd6c054bb6c.html#a41f828ebbe67a574ee39abd6c054bb6c">user_ptr</a></td></tr>
+<tr class="memdesc:a41f828ebbe67a574ee39abd6c054bb6c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Optional reference to a user context which is provided within API callback functions. <a href="#a41f828ebbe67a574ee39abd6c054bb6c"></a><br/></td></tr>
+<tr class="separator:a41f828ebbe67a574ee39abd6c054bb6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a43e7559dfe1bc2860cb0d2749fa66071"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_ucs___general___init_data__t.html">Ucs_General_InitData_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___init_data__t_a43e7559dfe1bc2860cb0d2749fa66071.html#a43e7559dfe1bc2860cb0d2749fa66071">general</a></td></tr>
+<tr class="memdesc:a43e7559dfe1bc2860cb0d2749fa66071"><td class="mdescLeft">&#160;</td><td class="mdescRight">General initialization data. <a href="#a43e7559dfe1bc2860cb0d2749fa66071"></a><br/></td></tr>
+<tr class="separator:a43e7559dfe1bc2860cb0d2749fa66071"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac0b0a4478bafe6e81ed3c3e2c72f4fc9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_ucs___lld___callbacks__t.html">Ucs_Lld_InitData_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___init_data__t_ac0b0a4478bafe6e81ed3c3e2c72f4fc9.html#ac0b0a4478bafe6e81ed3c3e2c72f4fc9">lld</a></td></tr>
+<tr class="memdesc:ac0b0a4478bafe6e81ed3c3e2c72f4fc9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Comprises assignment to low-level driver communication interfaces. <a href="#ac0b0a4478bafe6e81ed3c3e2c72f4fc9"></a><br/></td></tr>
+<tr class="separator:ac0b0a4478bafe6e81ed3c3e2c72f4fc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8619aaf795810b7508046fbfef6d6907"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_ucs___rm___init_data__t.html">Ucs_Rm_InitData_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___init_data__t_a8619aaf795810b7508046fbfef6d6907.html#a8619aaf795810b7508046fbfef6d6907">rm</a></td></tr>
+<tr class="memdesc:a8619aaf795810b7508046fbfef6d6907"><td class="mdescLeft">&#160;</td><td class="mdescRight">The initialization data of the Routing Management. <a href="#a8619aaf795810b7508046fbfef6d6907"></a><br/></td></tr>
+<tr class="separator:a8619aaf795810b7508046fbfef6d6907"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaff1fbd74feb484366c4082f00f2aea7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_ucs___gpio___init_data__t.html">Ucs_Gpio_InitData_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___init_data__t_aaff1fbd74feb484366c4082f00f2aea7.html#aaff1fbd74feb484366c4082f00f2aea7">gpio</a></td></tr>
+<tr class="memdesc:aaff1fbd74feb484366c4082f00f2aea7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialization structure of the GPIO. <a href="#aaff1fbd74feb484366c4082f00f2aea7"></a><br/></td></tr>
+<tr class="separator:aaff1fbd74feb484366c4082f00f2aea7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1b49223d94d385d1229b6864ad7fa053"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_ucs___i2c___init_data__t.html">Ucs_I2c_InitData_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___init_data__t_a1b49223d94d385d1229b6864ad7fa053.html#a1b49223d94d385d1229b6864ad7fa053">i2c</a></td></tr>
+<tr class="memdesc:a1b49223d94d385d1229b6864ad7fa053"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialization structure of the I2C. <a href="#a1b49223d94d385d1229b6864ad7fa053"></a><br/></td></tr>
+<tr class="separator:a1b49223d94d385d1229b6864ad7fa053"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a97b13c03602cc54884ae1765c518bd7b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_ucs___nd___init_data__t.html">Ucs_Nd_InitData_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___init_data__t_a97b13c03602cc54884ae1765c518bd7b.html#a97b13c03602cc54884ae1765c518bd7b">nd</a></td></tr>
+<tr class="memdesc:a97b13c03602cc54884ae1765c518bd7b"><td class="mdescLeft">&#160;</td><td class="mdescRight">The initialization data of the Node Discovery. <a href="#a97b13c03602cc54884ae1765c518bd7b"></a><br/></td></tr>
+<tr class="separator:a97b13c03602cc54884ae1765c518bd7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc4097eb34fb5c24bb13e02b6f506b3c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_ucs___ams___init_data__t.html">Ucs_Ams_InitData_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___init_data__t_afc4097eb34fb5c24bb13e02b6f506b3c.html#afc4097eb34fb5c24bb13e02b6f506b3c">ams</a></td></tr>
+<tr class="memdesc:afc4097eb34fb5c24bb13e02b6f506b3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">The initialization data of the Application Message Service. <a href="#afc4097eb34fb5c24bb13e02b6f506b3c"></a><br/></td></tr>
+<tr class="separator:afc4097eb34fb5c24bb13e02b6f506b3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa220785601aa16c0e0aff52f44380719"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_ucs___network___init_data__t.html">Ucs_Network_InitData_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___init_data__t_aa220785601aa16c0e0aff52f44380719.html#aa220785601aa16c0e0aff52f44380719">network</a></td></tr>
+<tr class="memdesc:aa220785601aa16c0e0aff52f44380719"><td class="mdescLeft">&#160;</td><td class="mdescRight">Network initialization data. <a href="#aa220785601aa16c0e0aff52f44380719"></a><br/></td></tr>
+<tr class="separator:aa220785601aa16c0e0aff52f44380719"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6788f8bea24665769ce00897162f84d4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_ucs___inic___init_data__t.html">Ucs_Inic_InitData_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___init_data__t_a6788f8bea24665769ce00897162f84d4.html#a6788f8bea24665769ce00897162f84d4">inic</a></td></tr>
+<tr class="memdesc:a6788f8bea24665769ce00897162f84d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">INIC initialization data. <a href="#a6788f8bea24665769ce00897162f84d4"></a><br/></td></tr>
+<tr class="separator:a6788f8bea24665769ce00897162f84d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a517c2ec800639c8a91183e70189b1875"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_ucs___mgr___init_data__t.html">Ucs_Mgr_InitData_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___init_data__t_a517c2ec800639c8a91183e70189b1875.html#a517c2ec800639c8a91183e70189b1875">mgr</a></td></tr>
+<tr class="memdesc:a517c2ec800639c8a91183e70189b1875"><td class="mdescLeft">&#160;</td><td class="mdescRight">The initialization data of the Manager. <a href="#a517c2ec800639c8a91183e70189b1875"></a><br/></td></tr>
+<tr class="separator:a517c2ec800639c8a91183e70189b1875"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>UNICENS initialization structure used by function <a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_gaea8d7735d41853167a2befdc06febe43.html#gaea8d7735d41853167a2befdc06febe43" title="UNICENS initialization function.">Ucs_Init()</a>. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___init_data__t_a1b49223d94d385d1229b6864ad7fa053.html b/ucs2-lib/doc/html/struct_ucs___init_data__t_a1b49223d94d385d1229b6864ad7fa053.html
new file mode 100644
index 0000000..87c7d2a
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___init_data__t_a1b49223d94d385d1229b6864ad7fa053.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_InitData_t::i2c</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a1b49223d94d385d1229b6864ad7fa053"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_ucs___i2c___init_data__t.html">Ucs_I2c_InitData_t</a> i2c</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Initialization structure of the I2C. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___init_data__t_a41f828ebbe67a574ee39abd6c054bb6c.html b/ucs2-lib/doc/html/struct_ucs___init_data__t_a41f828ebbe67a574ee39abd6c054bb6c.html
new file mode 100644
index 0000000..d3d8dd2
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___init_data__t_a41f828ebbe67a574ee39abd6c054bb6c.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_InitData_t::user_ptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a41f828ebbe67a574ee39abd6c054bb6c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void* user_ptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Optional reference to a user context which is provided within API callback functions. </p>
+<p>Please note that <a class="el" href="struct_ucs___lld___callbacks__t.html">Ucs_Lld_InitData_t</a> provides a separate <code>lld_user_ptr</code> which is provided for LLD callback functions. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___init_data__t_a43e7559dfe1bc2860cb0d2749fa66071.html b/ucs2-lib/doc/html/struct_ucs___init_data__t_a43e7559dfe1bc2860cb0d2749fa66071.html
new file mode 100644
index 0000000..126e8dd
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___init_data__t_a43e7559dfe1bc2860cb0d2749fa66071.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_InitData_t::general</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a43e7559dfe1bc2860cb0d2749fa66071"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_ucs___general___init_data__t.html">Ucs_General_InitData_t</a> general</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>General initialization data. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___init_data__t_a517c2ec800639c8a91183e70189b1875.html b/ucs2-lib/doc/html/struct_ucs___init_data__t_a517c2ec800639c8a91183e70189b1875.html
new file mode 100644
index 0000000..ff15050
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___init_data__t_a517c2ec800639c8a91183e70189b1875.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_InitData_t::mgr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a517c2ec800639c8a91183e70189b1875"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_ucs___mgr___init_data__t.html">Ucs_Mgr_InitData_t</a> mgr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The initialization data of the Manager. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___init_data__t_a6788f8bea24665769ce00897162f84d4.html b/ucs2-lib/doc/html/struct_ucs___init_data__t_a6788f8bea24665769ce00897162f84d4.html
new file mode 100644
index 0000000..5711ed7
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___init_data__t_a6788f8bea24665769ce00897162f84d4.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_InitData_t::inic</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a6788f8bea24665769ce00897162f84d4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_ucs___inic___init_data__t.html">Ucs_Inic_InitData_t</a> inic</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>INIC initialization data. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___init_data__t_a8619aaf795810b7508046fbfef6d6907.html b/ucs2-lib/doc/html/struct_ucs___init_data__t_a8619aaf795810b7508046fbfef6d6907.html
new file mode 100644
index 0000000..fdace17
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___init_data__t_a8619aaf795810b7508046fbfef6d6907.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_InitData_t::rm</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a8619aaf795810b7508046fbfef6d6907"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_ucs___rm___init_data__t.html">Ucs_Rm_InitData_t</a> rm</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The initialization data of the Routing Management. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___init_data__t_a97b13c03602cc54884ae1765c518bd7b.html b/ucs2-lib/doc/html/struct_ucs___init_data__t_a97b13c03602cc54884ae1765c518bd7b.html
new file mode 100644
index 0000000..13af77d
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___init_data__t_a97b13c03602cc54884ae1765c518bd7b.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_InitData_t::nd</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a97b13c03602cc54884ae1765c518bd7b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_ucs___nd___init_data__t.html">Ucs_Nd_InitData_t</a> nd</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The initialization data of the Node Discovery. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___init_data__t_aa220785601aa16c0e0aff52f44380719.html b/ucs2-lib/doc/html/struct_ucs___init_data__t_aa220785601aa16c0e0aff52f44380719.html
new file mode 100644
index 0000000..8b4cb84
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___init_data__t_aa220785601aa16c0e0aff52f44380719.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_InitData_t::network</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="aa220785601aa16c0e0aff52f44380719"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_ucs___network___init_data__t.html">Ucs_Network_InitData_t</a> network</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Network initialization data. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___init_data__t_aaff1fbd74feb484366c4082f00f2aea7.html b/ucs2-lib/doc/html/struct_ucs___init_data__t_aaff1fbd74feb484366c4082f00f2aea7.html
new file mode 100644
index 0000000..14a0de4
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___init_data__t_aaff1fbd74feb484366c4082f00f2aea7.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_InitData_t::gpio</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="aaff1fbd74feb484366c4082f00f2aea7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_ucs___gpio___init_data__t.html">Ucs_Gpio_InitData_t</a> gpio</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Initialization structure of the GPIO. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___init_data__t_ac0b0a4478bafe6e81ed3c3e2c72f4fc9.html b/ucs2-lib/doc/html/struct_ucs___init_data__t_ac0b0a4478bafe6e81ed3c3e2c72f4fc9.html
new file mode 100644
index 0000000..0aa148f
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___init_data__t_ac0b0a4478bafe6e81ed3c3e2c72f4fc9.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_InitData_t::lld</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ac0b0a4478bafe6e81ed3c3e2c72f4fc9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_ucs___lld___callbacks__t.html">Ucs_Lld_InitData_t</a> lld</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Comprises assignment to low-level driver communication interfaces. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___init_data__t_afc4097eb34fb5c24bb13e02b6f506b3c.html b/ucs2-lib/doc/html/struct_ucs___init_data__t_afc4097eb34fb5c24bb13e02b6f506b3c.html
new file mode 100644
index 0000000..e6c8bf0
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___init_data__t_afc4097eb34fb5c24bb13e02b6f506b3c.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_InitData_t::ams</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="afc4097eb34fb5c24bb13e02b6f506b3c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_ucs___ams___init_data__t.html">Ucs_Ams_InitData_t</a> ams</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The initialization data of the Application Message Service. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___init_data__t.html">Ucs_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___lld___api__t.html b/ucs2-lib/doc/html/struct_ucs___lld___api__t.html
new file mode 100644
index 0000000..0c9978d
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___lld___api__t.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Lld_Api_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___lld___api__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Lld_Api_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___l_l_d___a_p_i.html">Low-Level Driver API</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Initialization required for one communication channel (control or packet)
+ <a href="struct_ucs___lld___api__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a4621743277024b76d3afe1aed195f211"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___l_l_d___a_p_i_ga5bfaf97236d417072fe606f24bb3c8ad.html#ga5bfaf97236d417072fe606f24bb3c8ad">Ucs_Lld_RxAllocateCb_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___lld___api__t_a4621743277024b76d3afe1aed195f211.html#a4621743277024b76d3afe1aed195f211">rx_allocate_fptr</a></td></tr>
+<tr class="memdesc:a4621743277024b76d3afe1aed195f211"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates an Rx message object. <a href="#a4621743277024b76d3afe1aed195f211"></a><br/></td></tr>
+<tr class="separator:a4621743277024b76d3afe1aed195f211"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9fba62024daebe86940aee310c17ccfb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___l_l_d___a_p_i_gadc535a5be0f7bf336dc66cecfff8067d.html#gadc535a5be0f7bf336dc66cecfff8067d">Ucs_Lld_RxFreeUnusedCb_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___lld___api__t_a9fba62024daebe86940aee310c17ccfb.html#a9fba62024daebe86940aee310c17ccfb">rx_free_unused_fptr</a></td></tr>
+<tr class="memdesc:a9fba62024daebe86940aee310c17ccfb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees an unused Rx message object. <a href="#a9fba62024daebe86940aee310c17ccfb"></a><br/></td></tr>
+<tr class="separator:a9fba62024daebe86940aee310c17ccfb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3ed1d41d7cab149f0bc5d2ea13631b16"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___l_l_d___a_p_i_ga03c6fb96255dffab2fd1ca1a70204ad9.html#ga03c6fb96255dffab2fd1ca1a70204ad9">Ucs_Lld_RxReceiveCb_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___lld___api__t_a3ed1d41d7cab149f0bc5d2ea13631b16.html#a3ed1d41d7cab149f0bc5d2ea13631b16">rx_receive_fptr</a></td></tr>
+<tr class="memdesc:a3ed1d41d7cab149f0bc5d2ea13631b16"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pass an Rx message to the UNICENS library. <a href="#a3ed1d41d7cab149f0bc5d2ea13631b16"></a><br/></td></tr>
+<tr class="separator:a3ed1d41d7cab149f0bc5d2ea13631b16"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad4d0f461ff3009909e295910e5380835"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___l_l_d___a_p_i_ga59b99932c0fd7cd21f1c9788d60f1d4e.html#ga59b99932c0fd7cd21f1c9788d60f1d4e">Ucs_Lld_TxReleaseCb_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___lld___api__t_ad4d0f461ff3009909e295910e5380835.html#ad4d0f461ff3009909e295910e5380835">tx_release_fptr</a></td></tr>
+<tr class="memdesc:ad4d0f461ff3009909e295910e5380835"><td class="mdescLeft">&#160;</td><td class="mdescRight">Notifies that the LLD no longer needs to access the Tx message object. <a href="#ad4d0f461ff3009909e295910e5380835"></a><br/></td></tr>
+<tr class="separator:ad4d0f461ff3009909e295910e5380835"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Initialization required for one communication channel (control or packet) </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___lld___api__t.html">Ucs_Lld_Api_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___lld___api__t_a3ed1d41d7cab149f0bc5d2ea13631b16.html b/ucs2-lib/doc/html/struct_ucs___lld___api__t_a3ed1d41d7cab149f0bc5d2ea13631b16.html
new file mode 100644
index 0000000..96f77ab
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___lld___api__t_a3ed1d41d7cab149f0bc5d2ea13631b16.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Lld_Api_t::rx_receive_fptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___lld___api__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a3ed1d41d7cab149f0bc5d2ea13631b16"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___l_l_d___a_p_i_ga03c6fb96255dffab2fd1ca1a70204ad9.html#ga03c6fb96255dffab2fd1ca1a70204ad9">Ucs_Lld_RxReceiveCb_t</a> rx_receive_fptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Pass an Rx message to the UNICENS library. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___lld___api__t.html">Ucs_Lld_Api_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___lld___api__t_a4621743277024b76d3afe1aed195f211.html b/ucs2-lib/doc/html/struct_ucs___lld___api__t_a4621743277024b76d3afe1aed195f211.html
new file mode 100644
index 0000000..bb57030
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___lld___api__t_a4621743277024b76d3afe1aed195f211.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Lld_Api_t::rx_allocate_fptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___lld___api__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a4621743277024b76d3afe1aed195f211"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___l_l_d___a_p_i_ga5bfaf97236d417072fe606f24bb3c8ad.html#ga5bfaf97236d417072fe606f24bb3c8ad">Ucs_Lld_RxAllocateCb_t</a> rx_allocate_fptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Allocates an Rx message object. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___lld___api__t.html">Ucs_Lld_Api_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___lld___api__t_a9fba62024daebe86940aee310c17ccfb.html b/ucs2-lib/doc/html/struct_ucs___lld___api__t_a9fba62024daebe86940aee310c17ccfb.html
new file mode 100644
index 0000000..c13c913
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___lld___api__t_a9fba62024daebe86940aee310c17ccfb.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Lld_Api_t::rx_free_unused_fptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___lld___api__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a9fba62024daebe86940aee310c17ccfb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___l_l_d___a_p_i_gadc535a5be0f7bf336dc66cecfff8067d.html#gadc535a5be0f7bf336dc66cecfff8067d">Ucs_Lld_RxFreeUnusedCb_t</a> rx_free_unused_fptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Frees an unused Rx message object. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___lld___api__t.html">Ucs_Lld_Api_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___lld___api__t_ad4d0f461ff3009909e295910e5380835.html b/ucs2-lib/doc/html/struct_ucs___lld___api__t_ad4d0f461ff3009909e295910e5380835.html
new file mode 100644
index 0000000..ad1d796
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___lld___api__t_ad4d0f461ff3009909e295910e5380835.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Lld_Api_t::tx_release_fptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___lld___api__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ad4d0f461ff3009909e295910e5380835"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___l_l_d___a_p_i_ga59b99932c0fd7cd21f1c9788d60f1d4e.html#ga59b99932c0fd7cd21f1c9788d60f1d4e">Ucs_Lld_TxReleaseCb_t</a> tx_release_fptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Notifies that the LLD no longer needs to access the Tx message object. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___lld___api__t.html">Ucs_Lld_Api_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___lld___callbacks__t.html b/ucs2-lib/doc/html/struct_ucs___lld___callbacks__t.html
new file mode 100644
index 0000000..f8b066d
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___lld___callbacks__t.html
@@ -0,0 +1,140 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Lld_Callbacks_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___lld___callbacks__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Lld_Callbacks_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___l_l_d___t_y_p_e_s.html">Referred Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Set of functions implemented by the low-level driver.
+ <a href="struct_ucs___lld___callbacks__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a44afa0156353f9fba156ff0c91873968"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___lld___callbacks__t_a44afa0156353f9fba156ff0c91873968.html#a44afa0156353f9fba156ff0c91873968">lld_user_ptr</a></td></tr>
+<tr class="memdesc:a44afa0156353f9fba156ff0c91873968"><td class="mdescLeft">&#160;</td><td class="mdescRight">Optional pointer that is passed when invoking a callback function which is assigned in <a class="el" href="struct_ucs___lld___callbacks__t.html" title="Set of functions implemented by the low-level driver.">Ucs_Lld_Callbacks_t</a>. <a href="#a44afa0156353f9fba156ff0c91873968"></a><br/></td></tr>
+<tr class="separator:a44afa0156353f9fba156ff0c91873968"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a96bad24b6b49ffacfd9136230447cb22"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___l_l_d_ga73f07fb097d3c1bb6c5bf048f088166e.html#ga73f07fb097d3c1bb6c5bf048f088166e">Ucs_Lld_StartCb_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___lld___callbacks__t_a96bad24b6b49ffacfd9136230447cb22.html#a96bad24b6b49ffacfd9136230447cb22">start_fptr</a></td></tr>
+<tr class="memdesc:a96bad24b6b49ffacfd9136230447cb22"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function to initialize the low-level driver and start the transmission and reception of messages. <a href="#a96bad24b6b49ffacfd9136230447cb22"></a><br/></td></tr>
+<tr class="separator:a96bad24b6b49ffacfd9136230447cb22"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab0f955ca90942fda14ac12500422a437"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___l_l_d_ga917011a0aed9ca6d0aaf2201dc8c0e9f.html#ga917011a0aed9ca6d0aaf2201dc8c0e9f">Ucs_Lld_StopCb_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___lld___callbacks__t_ab0f955ca90942fda14ac12500422a437.html#ab0f955ca90942fda14ac12500422a437">stop_fptr</a></td></tr>
+<tr class="memdesc:ab0f955ca90942fda14ac12500422a437"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function to stop/abort the transmission and reception of messages. <a href="#ab0f955ca90942fda14ac12500422a437"></a><br/></td></tr>
+<tr class="separator:ab0f955ca90942fda14ac12500422a437"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a90fa6db664734c2446327b71c51f5b52"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___l_l_d_gae49a0953d88e8fbd4ebf2ce9c5f7b7f1.html#gae49a0953d88e8fbd4ebf2ce9c5f7b7f1">Ucs_Lld_RxMsgAvailableCb_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___lld___callbacks__t_a90fa6db664734c2446327b71c51f5b52.html#a90fa6db664734c2446327b71c51f5b52">rx_available_fptr</a></td></tr>
+<tr class="memdesc:a90fa6db664734c2446327b71c51f5b52"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function which is invoked as soon as Rx message objects are available again. <a href="#a90fa6db664734c2446327b71c51f5b52"></a><br/></td></tr>
+<tr class="separator:a90fa6db664734c2446327b71c51f5b52"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad8f7d021075e06672a999eb02da1d2e4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___l_l_d_gaa618347d194113c34f5b21d3c36ba7b6.html#gaa618347d194113c34f5b21d3c36ba7b6">Ucs_Lld_TxTransmitCb_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___lld___callbacks__t_ad8f7d021075e06672a999eb02da1d2e4.html#ad8f7d021075e06672a999eb02da1d2e4">tx_transmit_fptr</a></td></tr>
+<tr class="memdesc:ad8f7d021075e06672a999eb02da1d2e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function to transmit one or multiple messages to the INIC. <a href="#ad8f7d021075e06672a999eb02da1d2e4"></a><br/></td></tr>
+<tr class="separator:ad8f7d021075e06672a999eb02da1d2e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Set of functions implemented by the low-level driver. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___lld___callbacks__t.html">Ucs_Lld_Callbacks_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___lld___callbacks__t_a44afa0156353f9fba156ff0c91873968.html b/ucs2-lib/doc/html/struct_ucs___lld___callbacks__t_a44afa0156353f9fba156ff0c91873968.html
new file mode 100644
index 0000000..4cc9134
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___lld___callbacks__t_a44afa0156353f9fba156ff0c91873968.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Lld_Callbacks_t::lld_user_ptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___lld___callbacks__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a44afa0156353f9fba156ff0c91873968"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void* lld_user_ptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Optional pointer that is passed when invoking a callback function which is assigned in <a class="el" href="struct_ucs___lld___callbacks__t.html" title="Set of functions implemented by the low-level driver.">Ucs_Lld_Callbacks_t</a>. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___lld___callbacks__t.html">Ucs_Lld_Callbacks_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___lld___callbacks__t_a90fa6db664734c2446327b71c51f5b52.html b/ucs2-lib/doc/html/struct_ucs___lld___callbacks__t_a90fa6db664734c2446327b71c51f5b52.html
new file mode 100644
index 0000000..32d9ddd
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___lld___callbacks__t_a90fa6db664734c2446327b71c51f5b52.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Lld_Callbacks_t::rx_available_fptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___lld___callbacks__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a90fa6db664734c2446327b71c51f5b52"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___l_l_d_gae49a0953d88e8fbd4ebf2ce9c5f7b7f1.html#gae49a0953d88e8fbd4ebf2ce9c5f7b7f1">Ucs_Lld_RxMsgAvailableCb_t</a> rx_available_fptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Callback function which is invoked as soon as Rx message objects are available again. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___lld___callbacks__t.html">Ucs_Lld_Callbacks_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___lld___callbacks__t_a96bad24b6b49ffacfd9136230447cb22.html b/ucs2-lib/doc/html/struct_ucs___lld___callbacks__t_a96bad24b6b49ffacfd9136230447cb22.html
new file mode 100644
index 0000000..1e7d54f
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___lld___callbacks__t_a96bad24b6b49ffacfd9136230447cb22.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Lld_Callbacks_t::start_fptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___lld___callbacks__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a96bad24b6b49ffacfd9136230447cb22"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___l_l_d_ga73f07fb097d3c1bb6c5bf048f088166e.html#ga73f07fb097d3c1bb6c5bf048f088166e">Ucs_Lld_StartCb_t</a> start_fptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Callback function to initialize the low-level driver and start the transmission and reception of messages. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___lld___callbacks__t.html">Ucs_Lld_Callbacks_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___lld___callbacks__t_ab0f955ca90942fda14ac12500422a437.html b/ucs2-lib/doc/html/struct_ucs___lld___callbacks__t_ab0f955ca90942fda14ac12500422a437.html
new file mode 100644
index 0000000..b93d60e
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___lld___callbacks__t_ab0f955ca90942fda14ac12500422a437.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Lld_Callbacks_t::stop_fptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___lld___callbacks__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ab0f955ca90942fda14ac12500422a437"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___l_l_d_ga917011a0aed9ca6d0aaf2201dc8c0e9f.html#ga917011a0aed9ca6d0aaf2201dc8c0e9f">Ucs_Lld_StopCb_t</a> stop_fptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Callback function to stop/abort the transmission and reception of messages. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___lld___callbacks__t.html">Ucs_Lld_Callbacks_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___lld___callbacks__t_ad8f7d021075e06672a999eb02da1d2e4.html b/ucs2-lib/doc/html/struct_ucs___lld___callbacks__t_ad8f7d021075e06672a999eb02da1d2e4.html
new file mode 100644
index 0000000..1a646c5
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___lld___callbacks__t_ad8f7d021075e06672a999eb02da1d2e4.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Lld_Callbacks_t::tx_transmit_fptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___lld___callbacks__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ad8f7d021075e06672a999eb02da1d2e4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___l_l_d_gaa618347d194113c34f5b21d3c36ba7b6.html#gaa618347d194113c34f5b21d3c36ba7b6">Ucs_Lld_TxTransmitCb_t</a> tx_transmit_fptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Callback function to transmit one or multiple messages to the INIC. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___lld___callbacks__t.html">Ucs_Lld_Callbacks_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___lld___rx_msg__t.html b/ucs2-lib/doc/html/struct_ucs___lld___rx_msg__t.html
new file mode 100644
index 0000000..dd28151
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___lld___rx_msg__t.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Lld_RxMsg_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___lld___rx_msg__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Lld_RxMsg_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___l_l_d___t_y_p_e_s.html">Referred Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Rx message object pointing to the raw port message byte stream.
+ <a href="struct_ucs___lld___rx_msg__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a6166cef59cbe432be35512925debeae6"><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___lld___rx_msg__t_a6166cef59cbe432be35512925debeae6.html#a6166cef59cbe432be35512925debeae6">data_ptr</a></td></tr>
+<tr class="memdesc:a6166cef59cbe432be35512925debeae6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Points to a UNICENS allocated memory chunk. <a href="#a6166cef59cbe432be35512925debeae6"></a><br/></td></tr>
+<tr class="separator:a6166cef59cbe432be35512925debeae6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aae6bdbdf6ea1ad3da5af37f0a91d3ea0"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___lld___rx_msg__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html#aae6bdbdf6ea1ad3da5af37f0a91d3ea0">data_size</a></td></tr>
+<tr class="memdesc:aae6bdbdf6ea1ad3da5af37f0a91d3ea0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of the memory chunk in bytes. Valid values: 6..72. <a href="#aae6bdbdf6ea1ad3da5af37f0a91d3ea0"></a><br/></td></tr>
+<tr class="separator:aae6bdbdf6ea1ad3da5af37f0a91d3ea0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Rx message object pointing to the raw port message byte stream. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___lld___rx_msg__t.html">Ucs_Lld_RxMsg_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___lld___rx_msg__t_a6166cef59cbe432be35512925debeae6.html b/ucs2-lib/doc/html/struct_ucs___lld___rx_msg__t_a6166cef59cbe432be35512925debeae6.html
new file mode 100644
index 0000000..b926bfe
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___lld___rx_msg__t_a6166cef59cbe432be35512925debeae6.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Lld_RxMsg_t::data_ptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___lld___rx_msg__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a6166cef59cbe432be35512925debeae6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t* data_ptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Points to a UNICENS allocated memory chunk. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___lld___rx_msg__t.html">Ucs_Lld_RxMsg_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___lld___rx_msg__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html b/ucs2-lib/doc/html/struct_ucs___lld___rx_msg__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html
new file mode 100644
index 0000000..2e508b1
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___lld___rx_msg__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Lld_RxMsg_t::data_size</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___lld___rx_msg__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="aae6bdbdf6ea1ad3da5af37f0a91d3ea0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t data_size</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Size of the memory chunk in bytes. Valid values: 6..72. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___lld___rx_msg__t.html">Ucs_Lld_RxMsg_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___lld___tx_msg__t.html b/ucs2-lib/doc/html/struct_ucs___lld___tx_msg__t.html
new file mode 100644
index 0000000..195d962
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___lld___tx_msg__t.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Lld_TxMsg_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___lld___tx_msg__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Lld_TxMsg_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___l_l_d___t_y_p_e_s.html">Referred Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Tx message object providing the raw port message byte stream.
+ <a href="struct_ucs___lld___tx_msg__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:ae6dfc382578b04d70665e7c805fdc4c2"><td class="memItemLeft" align="right" valign="top">struct Ucs_Lld_TxMsg_ *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___lld___tx_msg__t_ae6dfc382578b04d70665e7c805fdc4c2.html#ae6dfc382578b04d70665e7c805fdc4c2">custom_next_msg_ptr</a></td></tr>
+<tr class="memdesc:ae6dfc382578b04d70665e7c805fdc4c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shall be used by the LLD implementation to queue messages for asynchronous transmission. <a href="#ae6dfc382578b04d70665e7c805fdc4c2"></a><br/></td></tr>
+<tr class="separator:ae6dfc382578b04d70665e7c805fdc4c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0fae6a3f19d8a9bbdad3c3b1ead3e868"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_ucs___mem___buffer__t.html">Ucs_Mem_Buffer_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___lld___tx_msg__t_a0fae6a3f19d8a9bbdad3c3b1ead3e868.html#a0fae6a3f19d8a9bbdad3c3b1ead3e868">memory_ptr</a></td></tr>
+<tr class="memdesc:a0fae6a3f19d8a9bbdad3c3b1ead3e868"><td class="mdescLeft">&#160;</td><td class="mdescRight">Points to the data buffer. <a href="#a0fae6a3f19d8a9bbdad3c3b1ead3e868"></a><br/></td></tr>
+<tr class="separator:a0fae6a3f19d8a9bbdad3c3b1ead3e868"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Tx message object providing the raw port message byte stream. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___lld___tx_msg__t.html">Ucs_Lld_TxMsg_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___lld___tx_msg__t_a0fae6a3f19d8a9bbdad3c3b1ead3e868.html b/ucs2-lib/doc/html/struct_ucs___lld___tx_msg__t_a0fae6a3f19d8a9bbdad3c3b1ead3e868.html
new file mode 100644
index 0000000..9f03338
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___lld___tx_msg__t_a0fae6a3f19d8a9bbdad3c3b1ead3e868.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Lld_TxMsg_t::memory_ptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___lld___tx_msg__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a0fae6a3f19d8a9bbdad3c3b1ead3e868"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_ucs___mem___buffer__t.html">Ucs_Mem_Buffer_t</a>* memory_ptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Points to the data buffer. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___lld___tx_msg__t.html">Ucs_Lld_TxMsg_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___lld___tx_msg__t_ae6dfc382578b04d70665e7c805fdc4c2.html b/ucs2-lib/doc/html/struct_ucs___lld___tx_msg__t_ae6dfc382578b04d70665e7c805fdc4c2.html
new file mode 100644
index 0000000..1156665
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___lld___tx_msg__t_ae6dfc382578b04d70665e7c805fdc4c2.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Lld_TxMsg_t::custom_next_msg_ptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___lld___tx_msg__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ae6dfc382578b04d70665e7c805fdc4c2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">struct Ucs_Lld_TxMsg_* custom_next_msg_ptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Shall be used by the LLD implementation to queue messages for asynchronous transmission. </p>
+<p>UNICENS will set this value to <code>NULL</code> since only single messages are forwarded to the LLD. Within the transmit function it is recommended that the LLD queues the message for asynchronous transmission. Despite a driver's transmit function might signal busy for a short term the UNICENS library might forward multiple messages for transmission. If a driver works asynchronously (interrupt driven) it can easily use this pointer build a queue of waiting messages. Nonetheless, it is important that <a class="el" href="struct_ucs___lld___api__t_ad4d0f461ff3009909e295910e5380835.html#ad4d0f461ff3009909e295910e5380835">tx_release_fptr</a> is invoked for every message separately. The Interface between the UNICENS library and the LLD does only support single messages. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___lld___tx_msg__t.html">Ucs_Lld_TxMsg_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___mem___buffer__t.html b/ucs2-lib/doc/html/struct_ucs___mem___buffer__t.html
new file mode 100644
index 0000000..6244a22
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___mem___buffer__t.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Mem_Buffer_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___mem___buffer__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Mem_Buffer_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___l_l_d___t_y_p_e_s.html">Referred Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Memory chunk representing a message or part of a message.
+ <a href="struct_ucs___mem___buffer__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a5245ce4ea7d022a357642b645e7ac645"><td class="memItemLeft" align="right" valign="top">struct Ucs_Mem_Buffer_ *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___mem___buffer__t_a5245ce4ea7d022a357642b645e7ac645.html#a5245ce4ea7d022a357642b645e7ac645">next_buffer_ptr</a></td></tr>
+<tr class="memdesc:a5245ce4ea7d022a357642b645e7ac645"><td class="mdescLeft">&#160;</td><td class="mdescRight">Points to an additional memory buffer that belongs to the same message. <a href="#a5245ce4ea7d022a357642b645e7ac645"></a><br/></td></tr>
+<tr class="separator:a5245ce4ea7d022a357642b645e7ac645"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6166cef59cbe432be35512925debeae6"><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___mem___buffer__t_a6166cef59cbe432be35512925debeae6.html#a6166cef59cbe432be35512925debeae6">data_ptr</a></td></tr>
+<tr class="memdesc:a6166cef59cbe432be35512925debeae6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Points to the data buffer. <a href="#a6166cef59cbe432be35512925debeae6"></a><br/></td></tr>
+<tr class="separator:a6166cef59cbe432be35512925debeae6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aae6bdbdf6ea1ad3da5af37f0a91d3ea0"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___mem___buffer__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html#aae6bdbdf6ea1ad3da5af37f0a91d3ea0">data_size</a></td></tr>
+<tr class="memdesc:aae6bdbdf6ea1ad3da5af37f0a91d3ea0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of the data buffer. <a href="#aae6bdbdf6ea1ad3da5af37f0a91d3ea0"></a><br/></td></tr>
+<tr class="separator:aae6bdbdf6ea1ad3da5af37f0a91d3ea0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af0c4b4b26e805f939299b203943976b2"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___mem___buffer__t_af0c4b4b26e805f939299b203943976b2.html#af0c4b4b26e805f939299b203943976b2">total_size</a></td></tr>
+<tr class="memdesc:af0c4b4b26e805f939299b203943976b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reserved for future use. Size of this and all concatenated data buffers. <a href="#af0c4b4b26e805f939299b203943976b2"></a><br/></td></tr>
+<tr class="separator:af0c4b4b26e805f939299b203943976b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Memory chunk representing a message or part of a message. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___mem___buffer__t.html">Ucs_Mem_Buffer_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___mem___buffer__t_a5245ce4ea7d022a357642b645e7ac645.html b/ucs2-lib/doc/html/struct_ucs___mem___buffer__t_a5245ce4ea7d022a357642b645e7ac645.html
new file mode 100644
index 0000000..0e76dd3
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___mem___buffer__t_a5245ce4ea7d022a357642b645e7ac645.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Mem_Buffer_t::next_buffer_ptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___mem___buffer__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a5245ce4ea7d022a357642b645e7ac645"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">struct Ucs_Mem_Buffer_* next_buffer_ptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Points to an additional memory buffer that belongs to the same message. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___mem___buffer__t.html">Ucs_Mem_Buffer_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___mem___buffer__t_a6166cef59cbe432be35512925debeae6.html b/ucs2-lib/doc/html/struct_ucs___mem___buffer__t_a6166cef59cbe432be35512925debeae6.html
new file mode 100644
index 0000000..fdb8124
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___mem___buffer__t_a6166cef59cbe432be35512925debeae6.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Mem_Buffer_t::data_ptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___mem___buffer__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a6166cef59cbe432be35512925debeae6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t* data_ptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Points to the data buffer. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___mem___buffer__t.html">Ucs_Mem_Buffer_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___mem___buffer__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html b/ucs2-lib/doc/html/struct_ucs___mem___buffer__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html
new file mode 100644
index 0000000..c6008a2
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___mem___buffer__t_aae6bdbdf6ea1ad3da5af37f0a91d3ea0.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Mem_Buffer_t::data_size</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___mem___buffer__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="aae6bdbdf6ea1ad3da5af37f0a91d3ea0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t data_size</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Size of the data buffer. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___mem___buffer__t.html">Ucs_Mem_Buffer_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___mem___buffer__t_af0c4b4b26e805f939299b203943976b2.html b/ucs2-lib/doc/html/struct_ucs___mem___buffer__t_af0c4b4b26e805f939299b203943976b2.html
new file mode 100644
index 0000000..19985cc
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___mem___buffer__t_af0c4b4b26e805f939299b203943976b2.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Mem_Buffer_t::total_size</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___mem___buffer__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="af0c4b4b26e805f939299b203943976b2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t total_size</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reserved for future use. Size of this and all concatenated data buffers. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___mem___buffer__t.html">Ucs_Mem_Buffer_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___mgr___init_data__t.html b/ucs2-lib/doc/html/struct_ucs___mgr___init_data__t.html
new file mode 100644
index 0000000..babf59d
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___mgr___init_data__t.html
@@ -0,0 +1,146 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Mgr_InitData_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___mgr___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Mgr_InitData_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___m_g_r.html">Manager</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>The initialization data of the Manager.
+ <a href="struct_ucs___mgr___init_data__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a8740ba80e30dd75e71d09fa1dcf04f3d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___mgr___init_data__t_a8740ba80e30dd75e71d09fa1dcf04f3d.html#a8740ba80e30dd75e71d09fa1dcf04f3d">enabled</a></td></tr>
+<tr class="memdesc:a8740ba80e30dd75e71d09fa1dcf04f3d"><td class="mdescLeft">&#160;</td><td class="mdescRight">If set to <code>false</code> the application must handle network startup, node discovery and rooting by hand. <a href="#a8740ba80e30dd75e71d09fa1dcf04f3d"></a><br/></td></tr>
+<tr class="separator:a8740ba80e30dd75e71d09fa1dcf04f3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a980d5ec2fe728b8ca99de235be7858d2"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___mgr___init_data__t_a980d5ec2fe728b8ca99de235be7858d2.html#a980d5ec2fe728b8ca99de235be7858d2">packet_bw</a></td></tr>
+<tr class="memdesc:a980d5ec2fe728b8ca99de235be7858d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">The desired packet bandwidth. <a href="#a980d5ec2fe728b8ca99de235be7858d2"></a><br/></td></tr>
+<tr class="separator:a980d5ec2fe728b8ca99de235be7858d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4bda15e771fef671a47cd88a09707030"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_ucs___rm___route__t.html">Ucs_Rm_Route_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___mgr___init_data__t_a4bda15e771fef671a47cd88a09707030.html#a4bda15e771fef671a47cd88a09707030">routes_list_ptr</a></td></tr>
+<tr class="memdesc:a4bda15e771fef671a47cd88a09707030"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference to a list of routes. <a href="#a4bda15e771fef671a47cd88a09707030"></a><br/></td></tr>
+<tr class="separator:a4bda15e771fef671a47cd88a09707030"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a30588f13e23cf04757b91e979e55c369"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___mgr___init_data__t_a30588f13e23cf04757b91e979e55c369.html#a30588f13e23cf04757b91e979e55c369">routes_list_size</a></td></tr>
+<tr class="memdesc:a30588f13e23cf04757b91e979e55c369"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of routes in the list. <a href="#a30588f13e23cf04757b91e979e55c369"></a><br/></td></tr>
+<tr class="separator:a30588f13e23cf04757b91e979e55c369"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae261d2df7a2be21b4e8e4a582113643c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_ucs___rm___node__t.html">Ucs_Rm_Node_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___mgr___init_data__t_ae261d2df7a2be21b4e8e4a582113643c.html#ae261d2df7a2be21b4e8e4a582113643c">nodes_list_ptr</a></td></tr>
+<tr class="memdesc:ae261d2df7a2be21b4e8e4a582113643c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference to the list of nodes. <a href="#ae261d2df7a2be21b4e8e4a582113643c"></a><br/></td></tr>
+<tr class="separator:ae261d2df7a2be21b4e8e4a582113643c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab0ad9592908a66a29460d67bf3146114"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___mgr___init_data__t_ab0ad9592908a66a29460d67bf3146114.html#ab0ad9592908a66a29460d67bf3146114">nodes_list_size</a></td></tr>
+<tr class="memdesc:ab0ad9592908a66a29460d67bf3146114"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of nodes in the list. <a href="#ab0ad9592908a66a29460d67bf3146114"></a><br/></td></tr>
+<tr class="separator:ab0ad9592908a66a29460d67bf3146114"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac5131dba874debb5bb76b7f3b5a31818"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___m_g_r_gad54678ad2a4671ec224422a8647b20f6.html#gad54678ad2a4671ec224422a8647b20f6">Ucs_MgrReportCb_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___mgr___init_data__t_ac5131dba874debb5bb76b7f3b5a31818.html#ac5131dba874debb5bb76b7f3b5a31818">report_fptr</a></td></tr>
+<tr class="memdesc:ac5131dba874debb5bb76b7f3b5a31818"><td class="mdescLeft">&#160;</td><td class="mdescRight">Optional callback function notifying node events. <a href="#ac5131dba874debb5bb76b7f3b5a31818"></a><br/></td></tr>
+<tr class="separator:ac5131dba874debb5bb76b7f3b5a31818"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>The initialization data of the Manager. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___mgr___init_data__t.html">Ucs_Mgr_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___mgr___init_data__t_a30588f13e23cf04757b91e979e55c369.html b/ucs2-lib/doc/html/struct_ucs___mgr___init_data__t_a30588f13e23cf04757b91e979e55c369.html
new file mode 100644
index 0000000..0ee2ad8
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___mgr___init_data__t_a30588f13e23cf04757b91e979e55c369.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Mgr_InitData_t::routes_list_size</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___mgr___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a30588f13e23cf04757b91e979e55c369"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t routes_list_size</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Number of routes in the list. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___mgr___init_data__t.html">Ucs_Mgr_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___mgr___init_data__t_a4bda15e771fef671a47cd88a09707030.html b/ucs2-lib/doc/html/struct_ucs___mgr___init_data__t_a4bda15e771fef671a47cd88a09707030.html
new file mode 100644
index 0000000..d40943b
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___mgr___init_data__t_a4bda15e771fef671a47cd88a09707030.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Mgr_InitData_t::routes_list_ptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___mgr___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a4bda15e771fef671a47cd88a09707030"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_ucs___rm___route__t.html">Ucs_Rm_Route_t</a>* routes_list_ptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reference to a list of routes. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___mgr___init_data__t.html">Ucs_Mgr_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___mgr___init_data__t_a8740ba80e30dd75e71d09fa1dcf04f3d.html b/ucs2-lib/doc/html/struct_ucs___mgr___init_data__t_a8740ba80e30dd75e71d09fa1dcf04f3d.html
new file mode 100644
index 0000000..3b09971
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___mgr___init_data__t_a8740ba80e30dd75e71d09fa1dcf04f3d.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Mgr_InitData_t::enabled</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___mgr___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a8740ba80e30dd75e71d09fa1dcf04f3d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool enabled</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>If set to <code>false</code> the application must handle network startup, node discovery and rooting by hand. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___mgr___init_data__t.html">Ucs_Mgr_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___mgr___init_data__t_a980d5ec2fe728b8ca99de235be7858d2.html b/ucs2-lib/doc/html/struct_ucs___mgr___init_data__t_a980d5ec2fe728b8ca99de235be7858d2.html
new file mode 100644
index 0000000..7467663
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___mgr___init_data__t_a980d5ec2fe728b8ca99de235be7858d2.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Mgr_InitData_t::packet_bw</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___mgr___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a980d5ec2fe728b8ca99de235be7858d2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t packet_bw</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The desired packet bandwidth. </p>
+<table class="mns_param_table">
+<tr>
+<td id="mns_param_small">&#160;</td><td><code>PacketBW</code></td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___mgr___init_data__t.html">Ucs_Mgr_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___mgr___init_data__t_ab0ad9592908a66a29460d67bf3146114.html b/ucs2-lib/doc/html/struct_ucs___mgr___init_data__t_ab0ad9592908a66a29460d67bf3146114.html
new file mode 100644
index 0000000..e505c40
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___mgr___init_data__t_ab0ad9592908a66a29460d67bf3146114.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Mgr_InitData_t::nodes_list_size</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___mgr___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ab0ad9592908a66a29460d67bf3146114"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t nodes_list_size</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Number of nodes in the list. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___mgr___init_data__t.html">Ucs_Mgr_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___mgr___init_data__t_ac5131dba874debb5bb76b7f3b5a31818.html b/ucs2-lib/doc/html/struct_ucs___mgr___init_data__t_ac5131dba874debb5bb76b7f3b5a31818.html
new file mode 100644
index 0000000..6622566
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___mgr___init_data__t_ac5131dba874debb5bb76b7f3b5a31818.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Mgr_InitData_t::report_fptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___mgr___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ac5131dba874debb5bb76b7f3b5a31818"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___m_g_r_gad54678ad2a4671ec224422a8647b20f6.html#gad54678ad2a4671ec224422a8647b20f6">Ucs_MgrReportCb_t</a> report_fptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Optional callback function notifying node events. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___mgr___init_data__t.html">Ucs_Mgr_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___mgr___init_data__t_ae261d2df7a2be21b4e8e4a582113643c.html b/ucs2-lib/doc/html/struct_ucs___mgr___init_data__t_ae261d2df7a2be21b4e8e4a582113643c.html
new file mode 100644
index 0000000..dca0e52
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___mgr___init_data__t_ae261d2df7a2be21b4e8e4a582113643c.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Mgr_InitData_t::nodes_list_ptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___mgr___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ae261d2df7a2be21b4e8e4a582113643c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_ucs___rm___node__t.html">Ucs_Rm_Node_t</a>* nodes_list_ptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reference to the list of nodes. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___mgr___init_data__t.html">Ucs_Mgr_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___nd___init_data__t.html b/ucs2-lib/doc/html/struct_ucs___nd___init_data__t.html
new file mode 100644
index 0000000..483bdf7
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___nd___init_data__t.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Nd_InitData_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___nd___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Nd_InitData_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s.html">Initialization and Service Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>The initialization data of the Node Discovery service.
+ <a href="struct_ucs___nd___init_data__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a98b9ccad2c6c5fa2edaf472151ee853c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_gab3c981bc09b0e5033e5163b8e5aafca7.html#gab3c981bc09b0e5033e5163b8e5aafca7">Ucs_Nd_ReportCb_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___nd___init_data__t_a98b9ccad2c6c5fa2edaf472151ee853c.html#a98b9ccad2c6c5fa2edaf472151ee853c">report_fptr</a></td></tr>
+<tr class="memdesc:a98b9ccad2c6c5fa2edaf472151ee853c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function reporting the results of the Node Discovery service. <a href="#a98b9ccad2c6c5fa2edaf472151ee853c"></a><br/></td></tr>
+<tr class="separator:a98b9ccad2c6c5fa2edaf472151ee853c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab9bc02a84c7daeff234344541d41be62"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_ga61b182f93d2815857f62ea51782bb13d.html#ga61b182f93d2815857f62ea51782bb13d">Ucs_Nd_EvalCb_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___nd___init_data__t_ab9bc02a84c7daeff234344541d41be62.html#ab9bc02a84c7daeff234344541d41be62">eval_fptr</a></td></tr>
+<tr class="memdesc:ab9bc02a84c7daeff234344541d41be62"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function asking for evaluation of the found signature. <a href="#ab9bc02a84c7daeff234344541d41be62"></a><br/></td></tr>
+<tr class="separator:ab9bc02a84c7daeff234344541d41be62"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>The initialization data of the Node Discovery service. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___nd___init_data__t.html">Ucs_Nd_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___nd___init_data__t_a98b9ccad2c6c5fa2edaf472151ee853c.html b/ucs2-lib/doc/html/struct_ucs___nd___init_data__t_a98b9ccad2c6c5fa2edaf472151ee853c.html
new file mode 100644
index 0000000..88f08de
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___nd___init_data__t_a98b9ccad2c6c5fa2edaf472151ee853c.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Nd_InitData_t::report_fptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___nd___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a98b9ccad2c6c5fa2edaf472151ee853c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_gab3c981bc09b0e5033e5163b8e5aafca7.html#gab3c981bc09b0e5033e5163b8e5aafca7">Ucs_Nd_ReportCb_t</a> report_fptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Callback function reporting the results of the Node Discovery service. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___nd___init_data__t.html">Ucs_Nd_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___nd___init_data__t_ab9bc02a84c7daeff234344541d41be62.html b/ucs2-lib/doc/html/struct_ucs___nd___init_data__t_ab9bc02a84c7daeff234344541d41be62.html
new file mode 100644
index 0000000..c69d445
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___nd___init_data__t_ab9bc02a84c7daeff234344541d41be62.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Nd_InitData_t::eval_fptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___nd___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ab9bc02a84c7daeff234344541d41be62"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___n_o_d_e___d_i_s_c_o_v_e_r_y_ga61b182f93d2815857f62ea51782bb13d.html#ga61b182f93d2815857f62ea51782bb13d">Ucs_Nd_EvalCb_t</a> eval_fptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Callback function asking for evaluation of the found signature. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___nd___init_data__t.html">Ucs_Nd_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___network___init_data__t.html b/ucs2-lib/doc/html/struct_ucs___network___init_data__t.html
new file mode 100644
index 0000000..61b9863
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___network___init_data__t.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Network_InitData_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___network___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Network_InitData_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___n_e_t.html">Network</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>The network section of the UNICENS initialization data.
+ <a href="struct_ucs___network___init_data__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:ae9d2b9f86bdd3a9667a348eb2b75da12"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_ucs___network___status__t.html">Ucs_Network_Status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___network___init_data__t_ae9d2b9f86bdd3a9667a348eb2b75da12.html#ae9d2b9f86bdd3a9667a348eb2b75da12">status</a></td></tr>
+<tr class="memdesc:ae9d2b9f86bdd3a9667a348eb2b75da12"><td class="mdescLeft">&#160;</td><td class="mdescRight">Network Status. <a href="#ae9d2b9f86bdd3a9667a348eb2b75da12"></a><br/></td></tr>
+<tr class="separator:ae9d2b9f86bdd3a9667a348eb2b75da12"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>The network section of the UNICENS initialization data. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___network___init_data__t.html">Ucs_Network_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___network___init_data__t_ae9d2b9f86bdd3a9667a348eb2b75da12.html b/ucs2-lib/doc/html/struct_ucs___network___init_data__t_ae9d2b9f86bdd3a9667a348eb2b75da12.html
new file mode 100644
index 0000000..224d471
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___network___init_data__t_ae9d2b9f86bdd3a9667a348eb2b75da12.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Network_InitData_t::status</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___network___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ae9d2b9f86bdd3a9667a348eb2b75da12"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_ucs___network___status__t.html">Ucs_Network_Status_t</a> status</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Network Status. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___network___init_data__t.html">Ucs_Network_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___network___status__t.html b/ucs2-lib/doc/html/struct_ucs___network___status__t.html
new file mode 100644
index 0000000..1e25766
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___network___status__t.html
@@ -0,0 +1,152 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Network_Status_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___network___status__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Network_Status_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___n_e_t___t_y_p_e_s.html">Referred Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Structure holds parameters for the notification of the Network Status.
+ <a href="struct_ucs___network___status__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a08f6acd8566e419c7017fc1874720223"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___n_e_t_gaf195e8ae396bc1fc358666fe50bf3f51.html#gaf195e8ae396bc1fc358666fe50bf3f51">Ucs_Network_StatusCb_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___network___status__t_a08f6acd8566e419c7017fc1874720223.html#a08f6acd8566e419c7017fc1874720223">cb_fptr</a></td></tr>
+<tr class="memdesc:a08f6acd8566e419c7017fc1874720223"><td class="mdescLeft">&#160;</td><td class="mdescRight">Network Status callback function. This function reports information on the whole network. <a href="#a08f6acd8566e419c7017fc1874720223"></a><br/></td></tr>
+<tr class="separator:a08f6acd8566e419c7017fc1874720223"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae7a618bc7852c52001d0756913c545c8"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___network___status__t_ae7a618bc7852c52001d0756913c545c8.html#ae7a618bc7852c52001d0756913c545c8">notification_mask</a></td></tr>
+<tr class="memdesc:ae7a618bc7852c52001d0756913c545c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Notification mask (optional parameter; default value: 0xFFFF) Indicates for which parameters the notification shall be enabled. If such a bit is set and the corresponding parameter has been changed the notification callback is invoked. This is an optional parameter. If the mask is not modified notifications for all of the parameters are enabled. </p>
+<table class="doxtable">
+<tr>
+<th align="center">Bit Index </th><th align="center">Value (Hex) </th><th>Parameter</th></tr>
+<tr>
+<td align="center">0 </td><td align="center">0x01 </td><td>events </td></tr>
+<tr>
+<td align="center">1 </td><td align="center">0x02 </td><td>availability </td></tr>
+<tr>
+<td align="center">2 </td><td align="center">0x04 </td><td>avail_info </td></tr>
+<tr>
+<td align="center">3 </td><td align="center">0x08 </td><td>avail_trans_cause </td></tr>
+<tr>
+<td align="center">4 </td><td align="center">0x10 </td><td>node_address </td></tr>
+<tr>
+<td align="center">5 </td><td align="center">0x20 </td><td>node_position </td></tr>
+<tr>
+<td align="center">6 </td><td align="center">0x40 </td><td>max_position </td></tr>
+<tr>
+<td align="center">7 </td><td align="center">0x80 </td><td>packet_bw </td></tr>
+</table>
+ <a href="#ae7a618bc7852c52001d0756913c545c8"></a><br/></td></tr>
+<tr class="separator:ae7a618bc7852c52001d0756913c545c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Structure holds parameters for the notification of the Network Status. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___network___status__t.html">Ucs_Network_Status_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___network___status__t_a08f6acd8566e419c7017fc1874720223.html b/ucs2-lib/doc/html/struct_ucs___network___status__t_a08f6acd8566e419c7017fc1874720223.html
new file mode 100644
index 0000000..b0b0738
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___network___status__t_a08f6acd8566e419c7017fc1874720223.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Network_Status_t::cb_fptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___network___status__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a08f6acd8566e419c7017fc1874720223"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___n_e_t_gaf195e8ae396bc1fc358666fe50bf3f51.html#gaf195e8ae396bc1fc358666fe50bf3f51">Ucs_Network_StatusCb_t</a> cb_fptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Network Status callback function. This function reports information on the whole network. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___network___status__t.html">Ucs_Network_Status_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___network___status__t_ae7a618bc7852c52001d0756913c545c8.html b/ucs2-lib/doc/html/struct_ucs___network___status__t_ae7a618bc7852c52001d0756913c545c8.html
new file mode 100644
index 0000000..3624987
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___network___status__t_ae7a618bc7852c52001d0756913c545c8.html
@@ -0,0 +1,145 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Network_Status_t::notification_mask</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___network___status__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ae7a618bc7852c52001d0756913c545c8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t notification_mask</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Notification mask (optional parameter; default value: 0xFFFF) Indicates for which parameters the notification shall be enabled. If such a bit is set and the corresponding parameter has been changed the notification callback is invoked. This is an optional parameter. If the mask is not modified notifications for all of the parameters are enabled. </p>
+<table class="doxtable">
+<tr>
+<th align="center">Bit Index </th><th align="center">Value (Hex) </th><th>Parameter</th></tr>
+<tr>
+<td align="center">0 </td><td align="center">0x01 </td><td>events </td></tr>
+<tr>
+<td align="center">1 </td><td align="center">0x02 </td><td>availability </td></tr>
+<tr>
+<td align="center">2 </td><td align="center">0x04 </td><td>avail_info </td></tr>
+<tr>
+<td align="center">3 </td><td align="center">0x08 </td><td>avail_trans_cause </td></tr>
+<tr>
+<td align="center">4 </td><td align="center">0x10 </td><td>node_address </td></tr>
+<tr>
+<td align="center">5 </td><td align="center">0x20 </td><td>node_position </td></tr>
+<tr>
+<td align="center">6 </td><td align="center">0x40 </td><td>max_position </td></tr>
+<tr>
+<td align="center">7 </td><td align="center">0x80 </td><td>packet_bw </td></tr>
+</table>
+</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___network___status__t.html">Ucs_Network_Status_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___ns___config_msg__t.html b/ucs2-lib/doc/html/struct_ucs___ns___config_msg__t.html
new file mode 100644
index 0000000..ff10863
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___ns___config_msg__t.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Ns_ConfigMsg_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___ns___config_msg__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Ns_ConfigMsg_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___s_c_r_i_p_t_i_n_g.html">Node Scripting</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Structure of a ConfigMsg used in Node-Script.
+ <a href="struct_ucs___ns___config_msg__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:aeb1ff6787da243b8d6ced7bce3ee46d5"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___ns___config_msg__t_aeb1ff6787da243b8d6ced7bce3ee46d5.html#aeb1ff6787da243b8d6ced7bce3ee46d5">FBlockId</a></td></tr>
+<tr class="memdesc:aeb1ff6787da243b8d6ced7bce3ee46d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">FBlockId of the config msg. <a href="#aeb1ff6787da243b8d6ced7bce3ee46d5"></a><br/></td></tr>
+<tr class="separator:aeb1ff6787da243b8d6ced7bce3ee46d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a08a6ee143e484d0a82593eb1ff632813"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___ns___config_msg__t_a08a6ee143e484d0a82593eb1ff632813.html#a08a6ee143e484d0a82593eb1ff632813">InstId</a></td></tr>
+<tr class="memdesc:a08a6ee143e484d0a82593eb1ff632813"><td class="mdescLeft">&#160;</td><td class="mdescRight">InstId of the config msg. <a href="#a08a6ee143e484d0a82593eb1ff632813"></a><br/></td></tr>
+<tr class="separator:a08a6ee143e484d0a82593eb1ff632813"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad758e0bb7d48d20f40d5acbfcf916eb1"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___ns___config_msg__t_ad758e0bb7d48d20f40d5acbfcf916eb1.html#ad758e0bb7d48d20f40d5acbfcf916eb1">FunktId</a></td></tr>
+<tr class="memdesc:ad758e0bb7d48d20f40d5acbfcf916eb1"><td class="mdescLeft">&#160;</td><td class="mdescRight">FunktId of the config msg. <a href="#ad758e0bb7d48d20f40d5acbfcf916eb1"></a><br/></td></tr>
+<tr class="separator:ad758e0bb7d48d20f40d5acbfcf916eb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4011d0b720d10f4eeacd939998ebe85d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___ns___config_msg__t_a4011d0b720d10f4eeacd939998ebe85d.html#a4011d0b720d10f4eeacd939998ebe85d">OpCode</a></td></tr>
+<tr class="memdesc:a4011d0b720d10f4eeacd939998ebe85d"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpCode of the config msg. <a href="#a4011d0b720d10f4eeacd939998ebe85d"></a><br/></td></tr>
+<tr class="separator:a4011d0b720d10f4eeacd939998ebe85d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab81bc4284c46cfa5378520e45441ef32"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___ns___config_msg__t_ab81bc4284c46cfa5378520e45441ef32.html#ab81bc4284c46cfa5378520e45441ef32">DataLen</a></td></tr>
+<tr class="memdesc:ab81bc4284c46cfa5378520e45441ef32"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data length. <a href="#ab81bc4284c46cfa5378520e45441ef32"></a><br/></td></tr>
+<tr class="separator:ab81bc4284c46cfa5378520e45441ef32"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad076d2b6eaae6f9b32363de4729e9349"><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___ns___config_msg__t_ad076d2b6eaae6f9b32363de4729e9349.html#ad076d2b6eaae6f9b32363de4729e9349">DataPtr</a></td></tr>
+<tr class="memdesc:ad076d2b6eaae6f9b32363de4729e9349"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference to the Data. <a href="#ad076d2b6eaae6f9b32363de4729e9349"></a><br/></td></tr>
+<tr class="separator:ad076d2b6eaae6f9b32363de4729e9349"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Structure of a ConfigMsg used in Node-Script. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___ns___config_msg__t.html">Ucs_Ns_ConfigMsg_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___ns___config_msg__t_a08a6ee143e484d0a82593eb1ff632813.html b/ucs2-lib/doc/html/struct_ucs___ns___config_msg__t_a08a6ee143e484d0a82593eb1ff632813.html
new file mode 100644
index 0000000..30c2ece
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___ns___config_msg__t_a08a6ee143e484d0a82593eb1ff632813.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Ns_ConfigMsg_t::InstId</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___ns___config_msg__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a08a6ee143e484d0a82593eb1ff632813"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t InstId</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>InstId of the config msg. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___ns___config_msg__t.html">Ucs_Ns_ConfigMsg_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___ns___config_msg__t_a4011d0b720d10f4eeacd939998ebe85d.html b/ucs2-lib/doc/html/struct_ucs___ns___config_msg__t_a4011d0b720d10f4eeacd939998ebe85d.html
new file mode 100644
index 0000000..8855ceb
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___ns___config_msg__t_a4011d0b720d10f4eeacd939998ebe85d.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Ns_ConfigMsg_t::OpCode</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___ns___config_msg__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a4011d0b720d10f4eeacd939998ebe85d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t OpCode</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>OpCode of the config msg. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___ns___config_msg__t.html">Ucs_Ns_ConfigMsg_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___ns___config_msg__t_ab81bc4284c46cfa5378520e45441ef32.html b/ucs2-lib/doc/html/struct_ucs___ns___config_msg__t_ab81bc4284c46cfa5378520e45441ef32.html
new file mode 100644
index 0000000..2fec962
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___ns___config_msg__t_ab81bc4284c46cfa5378520e45441ef32.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Ns_ConfigMsg_t::DataLen</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___ns___config_msg__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ab81bc4284c46cfa5378520e45441ef32"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t DataLen</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Data length. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___ns___config_msg__t.html">Ucs_Ns_ConfigMsg_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___ns___config_msg__t_ad076d2b6eaae6f9b32363de4729e9349.html b/ucs2-lib/doc/html/struct_ucs___ns___config_msg__t_ad076d2b6eaae6f9b32363de4729e9349.html
new file mode 100644
index 0000000..93d2329
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___ns___config_msg__t_ad076d2b6eaae6f9b32363de4729e9349.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Ns_ConfigMsg_t::DataPtr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___ns___config_msg__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ad076d2b6eaae6f9b32363de4729e9349"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t* DataPtr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reference to the Data. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___ns___config_msg__t.html">Ucs_Ns_ConfigMsg_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___ns___config_msg__t_ad758e0bb7d48d20f40d5acbfcf916eb1.html b/ucs2-lib/doc/html/struct_ucs___ns___config_msg__t_ad758e0bb7d48d20f40d5acbfcf916eb1.html
new file mode 100644
index 0000000..0b703cd
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___ns___config_msg__t_ad758e0bb7d48d20f40d5acbfcf916eb1.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Ns_ConfigMsg_t::FunktId</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___ns___config_msg__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ad758e0bb7d48d20f40d5acbfcf916eb1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t FunktId</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>FunktId of the config msg. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___ns___config_msg__t.html">Ucs_Ns_ConfigMsg_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___ns___config_msg__t_aeb1ff6787da243b8d6ced7bce3ee46d5.html b/ucs2-lib/doc/html/struct_ucs___ns___config_msg__t_aeb1ff6787da243b8d6ced7bce3ee46d5.html
new file mode 100644
index 0000000..81ff43c
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___ns___config_msg__t_aeb1ff6787da243b8d6ced7bce3ee46d5.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Ns_ConfigMsg_t::FBlockId</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___ns___config_msg__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="aeb1ff6787da243b8d6ced7bce3ee46d5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t FBlockId</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>FBlockId of the config msg. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___ns___config_msg__t.html">Ucs_Ns_ConfigMsg_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___ns___script__t.html b/ucs2-lib/doc/html/struct_ucs___ns___script__t.html
new file mode 100644
index 0000000..90545a1
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___ns___script__t.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Ns_Script_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___ns___script__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Ns_Script_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___s_c_r_i_p_t_i_n_g.html">Node Scripting</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Structure of a node-script used to configure a remote node.
+ <a href="struct_ucs___ns___script__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a69ffffc951e73c7116876a2e908cf3ba"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___ns___script__t_a69ffffc951e73c7116876a2e908cf3ba.html#a69ffffc951e73c7116876a2e908cf3ba">pause</a></td></tr>
+<tr class="memdesc:a69ffffc951e73c7116876a2e908cf3ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specifies the pause which shall be set before sending the configuration message. <a href="#a69ffffc951e73c7116876a2e908cf3ba"></a><br/></td></tr>
+<tr class="separator:a69ffffc951e73c7116876a2e908cf3ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a78234ed434c9f2e804d7466a45d0735d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_ucs___ns___config_msg__t.html">Ucs_Ns_ConfigMsg_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___ns___script__t_a78234ed434c9f2e804d7466a45d0735d.html#a78234ed434c9f2e804d7466a45d0735d">send_cmd</a></td></tr>
+<tr class="memdesc:a78234ed434c9f2e804d7466a45d0735d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Command to be transmitted. <a href="#a78234ed434c9f2e804d7466a45d0735d"></a><br/></td></tr>
+<tr class="separator:a78234ed434c9f2e804d7466a45d0735d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a916bebb6486ddd6e58ded2f18d97ee62"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_ucs___ns___config_msg__t.html">Ucs_Ns_ConfigMsg_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___ns___script__t_a916bebb6486ddd6e58ded2f18d97ee62.html#a916bebb6486ddd6e58ded2f18d97ee62">exp_result</a></td></tr>
+<tr class="memdesc:a916bebb6486ddd6e58ded2f18d97ee62"><td class="mdescLeft">&#160;</td><td class="mdescRight">Expected result. <a href="#a916bebb6486ddd6e58ded2f18d97ee62"></a><br/></td></tr>
+<tr class="separator:a916bebb6486ddd6e58ded2f18d97ee62"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Structure of a node-script used to configure a remote node. </p>
+<dl class="section attention"><dt>Attention</dt><dd>The Node Scripting module is designed and intended for the use of <b>I2C</b> and <b>GPIO</b> commands only. That is, using the Scripting for any other FBlock INIC commands (for example MOST, MediaLB, USB, Streaming, Connections, etc.) is expressly <b>prohibited</b>. </dd></dl>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___ns___script__t.html">Ucs_Ns_Script_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___ns___script__t_a69ffffc951e73c7116876a2e908cf3ba.html b/ucs2-lib/doc/html/struct_ucs___ns___script__t_a69ffffc951e73c7116876a2e908cf3ba.html
new file mode 100644
index 0000000..85cc3d2
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___ns___script__t_a69ffffc951e73c7116876a2e908cf3ba.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Ns_Script_t::pause</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___ns___script__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a69ffffc951e73c7116876a2e908cf3ba"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t pause</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Specifies the pause which shall be set before sending the configuration message. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___ns___script__t.html">Ucs_Ns_Script_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___ns___script__t_a78234ed434c9f2e804d7466a45d0735d.html b/ucs2-lib/doc/html/struct_ucs___ns___script__t_a78234ed434c9f2e804d7466a45d0735d.html
new file mode 100644
index 0000000..e72e94c
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___ns___script__t_a78234ed434c9f2e804d7466a45d0735d.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Ns_Script_t::send_cmd</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___ns___script__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a78234ed434c9f2e804d7466a45d0735d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_ucs___ns___config_msg__t.html">Ucs_Ns_ConfigMsg_t</a>* send_cmd</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Command to be transmitted. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___ns___script__t.html">Ucs_Ns_Script_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___ns___script__t_a916bebb6486ddd6e58ded2f18d97ee62.html b/ucs2-lib/doc/html/struct_ucs___ns___script__t_a916bebb6486ddd6e58ded2f18d97ee62.html
new file mode 100644
index 0000000..8dfc917
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___ns___script__t_a916bebb6486ddd6e58ded2f18d97ee62.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Ns_Script_t::exp_result</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___ns___script__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a916bebb6486ddd6e58ded2f18d97ee62"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_ucs___ns___config_msg__t.html">Ucs_Ns_ConfigMsg_t</a>* exp_result</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Expected result. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___ns___script__t.html">Ucs_Ns_Script_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___prg___command__t.html b/ucs2-lib/doc/html/struct_ucs___prg___command__t.html
new file mode 100644
index 0000000..6d708db
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___prg___command__t.html
@@ -0,0 +1,140 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Prg_Command_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___prg___command__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Prg_Command_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s.html">Referred Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Represents a programming task.
+ <a href="struct_ucs___prg___command__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:ac6e0813f6e305faff5b36579a4d1d727"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gae01f703f9ca91d9d1b9efdcfddfe8464.html#gae01f703f9ca91d9d1b9efdcfddfe8464">Ucs_Prg_MemId_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___prg___command__t_ac6e0813f6e305faff5b36579a4d1d727.html#ac6e0813f6e305faff5b36579a4d1d727">mem_id</a></td></tr>
+<tr class="memdesc:ac6e0813f6e305faff5b36579a4d1d727"><td class="mdescLeft">&#160;</td><td class="mdescRight">Represents the memory resource to be written. <a href="#ac6e0813f6e305faff5b36579a4d1d727"></a><br/></td></tr>
+<tr class="separator:ac6e0813f6e305faff5b36579a4d1d727"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac0d31ca829f934cccd89f8054e02773e"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___prg___command__t_ac0d31ca829f934cccd89f8054e02773e.html#ac0d31ca829f934cccd89f8054e02773e">address</a></td></tr>
+<tr class="memdesc:ac0d31ca829f934cccd89f8054e02773e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the memory location at which the writing operation starts. <a href="#ac0d31ca829f934cccd89f8054e02773e"></a><br/></td></tr>
+<tr class="separator:ac0d31ca829f934cccd89f8054e02773e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaeb273d8c806cdbebcb5d61a58b3a77d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___prg___command__t_aaeb273d8c806cdbebcb5d61a58b3a77d.html#aaeb273d8c806cdbebcb5d61a58b3a77d">unit_length</a></td></tr>
+<tr class="memdesc:aaeb273d8c806cdbebcb5d61a58b3a77d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the number of memory units to be written. Memory units can be unsigned bytes, unsigned words or unsigned masked data depending on the memory type. <a href="#aaeb273d8c806cdbebcb5d61a58b3a77d"></a><br/></td></tr>
+<tr class="separator:aaeb273d8c806cdbebcb5d61a58b3a77d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad97c802f66f41e937c3f8b33337b8c6d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___prg___command__t_ad97c802f66f41e937c3f8b33337b8c6d.html#ad97c802f66f41e937c3f8b33337b8c6d">data_length</a></td></tr>
+<tr class="memdesc:ad97c802f66f41e937c3f8b33337b8c6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lenght of data. <a href="#ad97c802f66f41e937c3f8b33337b8c6d"></a><br/></td></tr>
+<tr class="separator:ad97c802f66f41e937c3f8b33337b8c6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abe222f6d3581e7920dcad5306cc906a8"><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___prg___command__t_abe222f6d3581e7920dcad5306cc906a8.html#abe222f6d3581e7920dcad5306cc906a8">data</a></td></tr>
+<tr class="memdesc:abe222f6d3581e7920dcad5306cc906a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Contains the actual data written to the memory resource and formatted as memory units. <a href="#abe222f6d3581e7920dcad5306cc906a8"></a><br/></td></tr>
+<tr class="separator:abe222f6d3581e7920dcad5306cc906a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Represents a programming task. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___prg___command__t.html">Ucs_Prg_Command_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___prg___command__t_aaeb273d8c806cdbebcb5d61a58b3a77d.html b/ucs2-lib/doc/html/struct_ucs___prg___command__t_aaeb273d8c806cdbebcb5d61a58b3a77d.html
new file mode 100644
index 0000000..0d002c2
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___prg___command__t_aaeb273d8c806cdbebcb5d61a58b3a77d.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Prg_Command_t::unit_length</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___prg___command__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="aaeb273d8c806cdbebcb5d61a58b3a77d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t unit_length</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Sets the number of memory units to be written. Memory units can be unsigned bytes, unsigned words or unsigned masked data depending on the memory type. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___prg___command__t.html">Ucs_Prg_Command_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___prg___command__t_abe222f6d3581e7920dcad5306cc906a8.html b/ucs2-lib/doc/html/struct_ucs___prg___command__t_abe222f6d3581e7920dcad5306cc906a8.html
new file mode 100644
index 0000000..cc3db84
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___prg___command__t_abe222f6d3581e7920dcad5306cc906a8.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Prg_Command_t::data</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___prg___command__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="abe222f6d3581e7920dcad5306cc906a8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t* data</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Contains the actual data written to the memory resource and formatted as memory units. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___prg___command__t.html">Ucs_Prg_Command_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___prg___command__t_ac0d31ca829f934cccd89f8054e02773e.html b/ucs2-lib/doc/html/struct_ucs___prg___command__t_ac0d31ca829f934cccd89f8054e02773e.html
new file mode 100644
index 0000000..df33a99
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___prg___command__t_ac0d31ca829f934cccd89f8054e02773e.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Prg_Command_t::address</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___prg___command__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ac0d31ca829f934cccd89f8054e02773e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t address</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Defines the memory location at which the writing operation starts. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___prg___command__t.html">Ucs_Prg_Command_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___prg___command__t_ac6e0813f6e305faff5b36579a4d1d727.html b/ucs2-lib/doc/html/struct_ucs___prg___command__t_ac6e0813f6e305faff5b36579a4d1d727.html
new file mode 100644
index 0000000..743bf88
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___prg___command__t_ac6e0813f6e305faff5b36579a4d1d727.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Prg_Command_t::mem_id</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___prg___command__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ac6e0813f6e305faff5b36579a4d1d727"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___p_r_o_g___m_o_d_e___t_y_p_e_s_gae01f703f9ca91d9d1b9efdcfddfe8464.html#gae01f703f9ca91d9d1b9efdcfddfe8464">Ucs_Prg_MemId_t</a> mem_id</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Represents the memory resource to be written. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___prg___command__t.html">Ucs_Prg_Command_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___prg___command__t_ad97c802f66f41e937c3f8b33337b8c6d.html b/ucs2-lib/doc/html/struct_ucs___prg___command__t_ad97c802f66f41e937c3f8b33337b8c6d.html
new file mode 100644
index 0000000..e83487d
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___prg___command__t_ad97c802f66f41e937c3f8b33337b8c6d.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Prg_Command_t::data_length</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___prg___command__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ad97c802f66f41e937c3f8b33337b8c6d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t data_length</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Lenght of data. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___prg___command__t.html">Ucs_Prg_Command_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___rm___end_point__t.html b/ucs2-lib/doc/html/struct_ucs___rm___end_point__t.html
new file mode 100644
index 0000000..eeaa911
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___rm___end_point__t.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Rm_EndPoint_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___rm___end_point__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Rm_EndPoint_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s.html">Referred Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Configuration structure of a Connection EndPoint.
+ <a href="struct_ucs___rm___end_point__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a7e46feb849d169800b21d689de273901"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga127a72f023d3c0289ab74b001f6edc25.html#ga127a72f023d3c0289ab74b001f6edc25">Ucs_Rm_EndPointType_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___rm___end_point__t_a7e46feb849d169800b21d689de273901.html#a7e46feb849d169800b21d689de273901">endpoint_type</a></td></tr>
+<tr class="memdesc:a7e46feb849d169800b21d689de273901"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of the endpoint object. <a href="#a7e46feb849d169800b21d689de273901"></a><br/></td></tr>
+<tr class="separator:a7e46feb849d169800b21d689de273901"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1022525e5f766bcdbcd0046c3313d3ac"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173">Ucs_Xrm_ResObject_t</a> **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___rm___end_point__t_a1022525e5f766bcdbcd0046c3313d3ac.html#a1022525e5f766bcdbcd0046c3313d3ac">jobs_list_ptr</a></td></tr>
+<tr class="memdesc:a1022525e5f766bcdbcd0046c3313d3ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference to a job list. <a href="#a1022525e5f766bcdbcd0046c3313d3ac"></a><br/></td></tr>
+<tr class="separator:a1022525e5f766bcdbcd0046c3313d3ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeba772076fc522f4d27dfb647457bb6d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_ucs___rm___node__t.html">Ucs_Rm_Node_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___rm___end_point__t_aeba772076fc522f4d27dfb647457bb6d.html#aeba772076fc522f4d27dfb647457bb6d">node_obj_ptr</a></td></tr>
+<tr class="memdesc:aeba772076fc522f4d27dfb647457bb6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference to a node object. <a href="#aeba772076fc522f4d27dfb647457bb6d"></a><br/></td></tr>
+<tr class="separator:aeba772076fc522f4d27dfb647457bb6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afb41e308e548fde7dd754172cfb44ccf"><td class="memItemLeft" align="right" valign="top">Ucs_Rm_EndPointInt_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___rm___end_point__t_afb41e308e548fde7dd754172cfb44ccf.html#afb41e308e548fde7dd754172cfb44ccf">internal_infos</a></td></tr>
+<tr class="memdesc:afb41e308e548fde7dd754172cfb44ccf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal information of this endpoint object. <a href="#afb41e308e548fde7dd754172cfb44ccf"></a><br/></td></tr>
+<tr class="separator:afb41e308e548fde7dd754172cfb44ccf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Configuration structure of a Connection EndPoint. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___rm___end_point__t.html">Ucs_Rm_EndPoint_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___rm___end_point__t_a1022525e5f766bcdbcd0046c3313d3ac.html b/ucs2-lib/doc/html/struct_ucs___rm___end_point__t_a1022525e5f766bcdbcd0046c3313d3ac.html
new file mode 100644
index 0000000..669483c
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___rm___end_point__t_a1022525e5f766bcdbcd0046c3313d3ac.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Rm_EndPoint_t::jobs_list_ptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___rm___end_point__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a1022525e5f766bcdbcd0046c3313d3ac"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173">Ucs_Xrm_ResObject_t</a>** jobs_list_ptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reference to a job list. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___rm___end_point__t.html">Ucs_Rm_EndPoint_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___rm___end_point__t_a7e46feb849d169800b21d689de273901.html b/ucs2-lib/doc/html/struct_ucs___rm___end_point__t_a7e46feb849d169800b21d689de273901.html
new file mode 100644
index 0000000..9cd81f7
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___rm___end_point__t_a7e46feb849d169800b21d689de273901.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Rm_EndPoint_t::endpoint_type</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___rm___end_point__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a7e46feb849d169800b21d689de273901"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga127a72f023d3c0289ab74b001f6edc25.html#ga127a72f023d3c0289ab74b001f6edc25">Ucs_Rm_EndPointType_t</a> endpoint_type</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Type of the endpoint object. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___rm___end_point__t.html">Ucs_Rm_EndPoint_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___rm___end_point__t_aeba772076fc522f4d27dfb647457bb6d.html b/ucs2-lib/doc/html/struct_ucs___rm___end_point__t_aeba772076fc522f4d27dfb647457bb6d.html
new file mode 100644
index 0000000..28f3298
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___rm___end_point__t_aeba772076fc522f4d27dfb647457bb6d.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Rm_EndPoint_t::node_obj_ptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___rm___end_point__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="aeba772076fc522f4d27dfb647457bb6d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_ucs___rm___node__t.html">Ucs_Rm_Node_t</a>* node_obj_ptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reference to a node object. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___rm___end_point__t.html">Ucs_Rm_EndPoint_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___rm___end_point__t_afb41e308e548fde7dd754172cfb44ccf.html b/ucs2-lib/doc/html/struct_ucs___rm___end_point__t_afb41e308e548fde7dd754172cfb44ccf.html
new file mode 100644
index 0000000..68a2e15
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___rm___end_point__t_afb41e308e548fde7dd754172cfb44ccf.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Rm_EndPoint_t::internal_infos</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___rm___end_point__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="afb41e308e548fde7dd754172cfb44ccf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Ucs_Rm_EndPointInt_t internal_infos</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Internal information of this endpoint object. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___rm___end_point__t.html">Ucs_Rm_EndPoint_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___rm___init_data__t.html b/ucs2-lib/doc/html/struct_ucs___rm___init_data__t.html
new file mode 100644
index 0000000..172a3ba
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___rm___init_data__t.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Rm_InitData_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___rm___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Rm_InitData_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g.html">Routing Management</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>The initialization structure of the Routing Management.
+ <a href="struct_ucs___rm___init_data__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:ab3de88c423837727c463947f57895e49"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_ucs___xrm___init_data__t.html">Ucs_Xrm_InitData_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___rm___init_data__t_ab3de88c423837727c463947f57895e49.html#ab3de88c423837727c463947f57895e49">xrm</a></td></tr>
+<tr class="memdesc:ab3de88c423837727c463947f57895e49"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialization structure of the Extended Resource Manager. <a href="#ab3de88c423837727c463947f57895e49"></a><br/></td></tr>
+<tr class="separator:ab3de88c423837727c463947f57895e49"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2420c468d89e6f991f68189ba2f61d15"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g_ga91d851f4665839e2aac982565b007805.html#ga91d851f4665839e2aac982565b007805">Ucs_Rm_ReportCb_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___rm___init_data__t_a2420c468d89e6f991f68189ba2f61d15.html#a2420c468d89e6f991f68189ba2f61d15">report_fptr</a></td></tr>
+<tr class="memdesc:a2420c468d89e6f991f68189ba2f61d15"><td class="mdescLeft">&#160;</td><td class="mdescRight">Optional report callback function pointer for all routes. <a href="#a2420c468d89e6f991f68189ba2f61d15"></a><br/></td></tr>
+<tr class="separator:a2420c468d89e6f991f68189ba2f61d15"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a68590d8712353f94f2e9ccec1e21baa5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g_gaefde5a8fbaeb6e5937e94b9e74ae70cb.html#gaefde5a8fbaeb6e5937e94b9e74ae70cb">Ucs_Rm_XrmResDebugCb_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___rm___init_data__t_a68590d8712353f94f2e9ccec1e21baa5.html#a68590d8712353f94f2e9ccec1e21baa5">debug_resource_status_fptr</a></td></tr>
+<tr class="memdesc:a68590d8712353f94f2e9ccec1e21baa5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function that acts as a debug interface for XRM resources. The user application has the possibility to monitor the specified XRM resources. <a href="#a68590d8712353f94f2e9ccec1e21baa5"></a><br/></td></tr>
+<tr class="separator:a68590d8712353f94f2e9ccec1e21baa5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>The initialization structure of the Routing Management. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___rm___init_data__t.html">Ucs_Rm_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___rm___init_data__t_a2420c468d89e6f991f68189ba2f61d15.html b/ucs2-lib/doc/html/struct_ucs___rm___init_data__t_a2420c468d89e6f991f68189ba2f61d15.html
new file mode 100644
index 0000000..054fbe0
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___rm___init_data__t_a2420c468d89e6f991f68189ba2f61d15.html
@@ -0,0 +1,154 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Rm_InitData_t::report_fptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___rm___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a2420c468d89e6f991f68189ba2f61d15"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g_ga91d851f4665839e2aac982565b007805.html#ga91d851f4665839e2aac982565b007805">Ucs_Rm_ReportCb_t</a> report_fptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Optional report callback function pointer for all routes. </p>
+<dl class="section note"><dt>Note</dt><dd>The passed result callback function does not only report the result of the build operation but also monitors the status of the created routes during their whole lifetime. That is, the callback function also reports the various states of a route (Refer to <a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#ga75ffbf28e4afc99a6abdbff0887baf9b">Ucs_Rm_RouteInfos_t</a> for more infos). Furthermore the result of <a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g_gabb9185254132bb29ee0af137c36f50b8.html#gabb9185254132bb29ee0af137c36f50b8">Ucs_Rm_SetRouteActive()</a> function call is reported by this result callback function.</dd></dl>
+<p><br/>
+ <b>Example</b> </p>
+<div class="fragment"><div class="line"><a class="code" href="struct_ucs___init_data__t.html" title="UNICENS initialization structure used by function Ucs_Init().">Ucs_InitData_t</a> ucs_init_data;</div>
+<div class="line">(void)<a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga64b50780725a0dc8693b5b73f8345ad6.html#ga64b50780725a0dc8693b5b73f8345ad6" title="Assigns default values to a provided UNICENS init structure.">Ucs_SetDefaultConfig</a>(&amp;ucs_init_data);</div>
+<div class="line"></div>
+<div class="line"><span class="comment">// Routing Management init section.</span></div>
+<div class="line">ucs_init_data.<a class="code" href="struct_ucs___init_data__t_a8619aaf795810b7508046fbfef6d6907.html#a8619aaf795810b7508046fbfef6d6907" title="The initialization data of the Routing Management.">rm</a>.<a class="code" href="struct_ucs___rm___init_data__t_a2420c468d89e6f991f68189ba2f61d15.html#a2420c468d89e6f991f68189ba2f61d15" title="Optional report callback function pointer for all routes.">report_fptr</a> = &amp;App_OnRoutingResult;</div>
+<div class="line"></div>
+<div class="line"><span class="comment">// The report callback function for all routes</span></div>
+<div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> App_OnRoutingResult(uint16_t route_id, <a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#ga75ffbf28e4afc99a6abdbff0887baf9b" title="This enumerator specifies the possible route information returned via User callback function of Ucs_R...">Ucs_Rm_RouteInfos_t</a> route_infos, <span class="keywordtype">void</span> *user_ptr)</div>
+<div class="line">{</div>
+<div class="line"> <span class="comment">// Do whatever is necessary here</span></div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">switch</span> (route_infos)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#gga75ffbf28e4afc99a6abdbff0887baf9ba5778af29569eb74e7546749e93ed9c1e" title="Specifies that the route has been built.">UCS_RM_ROUTE_INFOS_BUILT</a>:</div>
+<div class="line"> <span class="comment">// Route has been built</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#gga75ffbf28e4afc99a6abdbff0887baf9ba5458da57325825b8922710a90a9ea4d5" title="Specifies that the route has been destroyed.">UCS_RM_ROUTE_INFOS_DESTROYED</a>:</div>
+<div class="line"> <span class="comment">// Route has been destroyed</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s_ga75ffbf28e4afc99a6abdbff0887baf9b.html#gga75ffbf28e4afc99a6abdbff0887baf9bace1ac2f05b198d3d223baa33ca71493a" title="Specifies that the route cannot be processed anymore because of UNICENS Termination.">UCS_RM_ROUTE_INFOS_PROCESS_STOP</a>:</div>
+<div class="line"> <span class="comment">// Route cannot be processed anymore due to UNICENS Termination</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> <span class="keywordflow">default</span>:</div>
+<div class="line"> <span class="comment">// Route has been suspended</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___rm___init_data__t.html">Ucs_Rm_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___rm___init_data__t_a68590d8712353f94f2e9ccec1e21baa5.html b/ucs2-lib/doc/html/struct_ucs___rm___init_data__t_a68590d8712353f94f2e9ccec1e21baa5.html
new file mode 100644
index 0000000..0b608e8
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___rm___init_data__t_a68590d8712353f94f2e9ccec1e21baa5.html
@@ -0,0 +1,151 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Rm_InitData_t::debug_resource_status_fptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___rm___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a68590d8712353f94f2e9ccec1e21baa5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g_gaefde5a8fbaeb6e5937e94b9e74ae70cb.html#gaefde5a8fbaeb6e5937e94b9e74ae70cb">Ucs_Rm_XrmResDebugCb_t</a> debug_resource_status_fptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Callback function that acts as a debug interface for XRM resources. The user application has the possibility to monitor the specified XRM resources. </p>
+<p><br/>
+ <b>Example</b> </p>
+<div class="fragment"><div class="line"><a class="code" href="struct_ucs___init_data__t.html" title="UNICENS initialization structure used by function Ucs_Init().">Ucs_InitData_t</a> ucs_init_data;</div>
+<div class="line">(void)<a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga64b50780725a0dc8693b5b73f8345ad6.html#ga64b50780725a0dc8693b5b73f8345ad6" title="Assigns default values to a provided UNICENS init structure.">Ucs_SetDefaultConfig</a>(&amp;ucs_init_data);</div>
+<div class="line"></div>
+<div class="line"><span class="comment">// Routing Management init section.</span></div>
+<div class="line">ucs_init_data.<a class="code" href="struct_ucs___init_data__t_a8619aaf795810b7508046fbfef6d6907.html#a8619aaf795810b7508046fbfef6d6907" title="The initialization data of the Routing Management.">rm</a>.<a class="code" href="struct_ucs___rm___init_data__t_a68590d8712353f94f2e9ccec1e21baa5.html#a68590d8712353f94f2e9ccec1e21baa5" title="Callback function that acts as a debug interface for XRM resources. The user application has the poss...">debug_resource_status_fptr</a> = &amp;App_OnDebuggingXrmResources;</div>
+<div class="line"></div>
+<div class="line"><span class="comment">// Debug interface for the XRM resources</span></div>
+<div class="line"><span class="keywordtype">void</span> App_OnDebuggingXrmResources (<a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc" title="INIC resource types used by the Extended Resource Manager.">Ucs_Xrm_ResourceType_t</a> resource_type, <a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173" title="INIC Resource Object used for Extended Resource Manager jobs.">Ucs_Xrm_ResObject_t</a> *resource_ptr, <a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#ga5299ac232aaeba37eb6fceb53e32b2ea" title="This enumerator specifies the type of resources information.">Ucs_Xrm_ResourceInfos_t</a> resource_infos, <a class="code" href="struct_ucs___rm___end_point__t.html" title="Configuration structure of a Connection EndPoint.">Ucs_Rm_EndPoint_t</a> * endpoint_inst_ptr, <span class="keywordtype">void</span> *user_ptr)</div>
+<div class="line">{</div>
+<div class="line"> <span class="keywordflow">switch</span> (resource_infos)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#gga5299ac232aaeba37eb6fceb53e32b2eaaf17abdbe8fab65a069b6a8af1079066a" title="Signals that the resource is built.">UCS_XRM_INFOS_BUILT</a>:</div>
+<div class="line"> <span class="comment">// Resource has been built</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#gga5299ac232aaeba37eb6fceb53e32b2eaa6e7faa32a0cb82c3fdf4450d80188262" title="Signals that the resource is destroyed.">UCS_XRM_INFOS_DESTROYED</a>:</div>
+<div class="line"> <span class="comment">// resource has been destroyed</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#gga5299ac232aaeba37eb6fceb53e32b2eaac57d4f29bbfd2f62eefddc4e31a7ad81" title="Signals that XRM fails to build the resource.">UCS_XRM_INFOS_ERR_BUILT</a>:</div>
+<div class="line"> <span class="comment">//Resource cannot be built</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> <span class="keywordflow">default</span>:</div>
+<div class="line"> <span class="comment">// Resource cannot be destroyed</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___rm___init_data__t.html">Ucs_Rm_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___rm___init_data__t_ab3de88c423837727c463947f57895e49.html b/ucs2-lib/doc/html/struct_ucs___rm___init_data__t_ab3de88c423837727c463947f57895e49.html
new file mode 100644
index 0000000..b31a0a4
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___rm___init_data__t_ab3de88c423837727c463947f57895e49.html
@@ -0,0 +1,168 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Rm_InitData_t::xrm</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___rm___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ab3de88c423837727c463947f57895e49"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_ucs___xrm___init_data__t.html">Ucs_Xrm_InitData_t</a> xrm</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Initialization structure of the Extended Resource Manager. </p>
+<p><br/>
+ <b>Example</b> </p>
+<div class="fragment"><div class="line"><a class="code" href="struct_ucs___init_data__t.html" title="UNICENS initialization structure used by function Ucs_Init().">Ucs_InitData_t</a> ucs_init_data;</div>
+<div class="line">(void)<a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v_ga64b50780725a0dc8693b5b73f8345ad6.html#ga64b50780725a0dc8693b5b73f8345ad6" title="Assigns default values to a provided UNICENS init structure.">Ucs_SetDefaultConfig</a>(&amp;ucs_init_data);</div>
+<div class="line"></div>
+<div class="line"><span class="comment">// Routing Management init section.</span></div>
+<div class="line">ucs_init_data.<a class="code" href="struct_ucs___init_data__t_a8619aaf795810b7508046fbfef6d6907.html#a8619aaf795810b7508046fbfef6d6907" title="The initialization data of the Routing Management.">rm</a>.<a class="code" href="struct_ucs___rm___init_data__t_ab3de88c423837727c463947f57895e49.html#ab3de88c423837727c463947f57895e49" title="Initialization structure of the Extended Resource Manager.">xrm</a>.<a class="code" href="struct_ucs___xrm___init_data__t_a9497e039c582e7d2804ee470d6812e91.html#a9497e039c582e7d2804ee470d6812e91" title="Callback function that reports streaming-related information for the MOST Network Port...">most_port_status_fptr</a> = &amp;App_MostPortStatusCb;</div>
+<div class="line">ucs_init_data.<a class="code" href="struct_ucs___init_data__t_a8619aaf795810b7508046fbfef6d6907.html#a8619aaf795810b7508046fbfef6d6907" title="The initialization data of the Routing Management.">rm</a>.<a class="code" href="struct_ucs___rm___init_data__t_ab3de88c423837727c463947f57895e49.html#ab3de88c423837727c463947f57895e49" title="Initialization structure of the Extended Resource Manager.">xrm</a>.<a class="code" href="struct_ucs___xrm___init_data__t_a7ad953f5414061df43df073ece15e25b.html#a7ad953f5414061df43df073ece15e25b" title="Callback function that signals the EHC to check the mute pin state of devices before attempting unmut...">check_unmute_fptr</a> = &amp;App_CheckUnmuteStatusCb;</div>
+<div class="line">ucs_init_data.<a class="code" href="struct_ucs___init_data__t_a8619aaf795810b7508046fbfef6d6907.html#a8619aaf795810b7508046fbfef6d6907" title="The initialization data of the Routing Management.">rm</a>.<a class="code" href="struct_ucs___rm___init_data__t_ab3de88c423837727c463947f57895e49.html#ab3de88c423837727c463947f57895e49" title="Initialization structure of the Extended Resource Manager.">xrm</a>.debug_resource_status_fptr = &amp;App_OnDebuggingXrmResources;</div>
+<div class="line"></div>
+<div class="line"><span class="comment">// Handle MOST Port Status event here</span></div>
+<div class="line"><span class="keywordtype">void</span> App_MostPortStatusCb(uint16_t most_port_handle,</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_ga902951b9083ff58a88e19e151b57106a.html#ga902951b9083ff58a88e19e151b57106a" title="Indicates if the MOST Network Port is available and ready for streaming data connections.">Ucs_Most_PortAvail_t</a> availability,</div>
+<div class="line"> <a class="code" href="group___g___u_c_s___x_r_m___e_n_u_m_ga24bf81b4e52fc1fb01deba9165d7c79e.html#ga24bf81b4e52fc1fb01deba9165d7c79e" title="Indicates the sub state to parameter Available.">Ucs_Most_PortAvailInfo_t</a> avail_info,</div>
+<div class="line"> uint16_t free_streaming_bw)</div>
+<div class="line">{</div>
+<div class="line"> <span class="comment">// Do what needs to be..</span></div>
+<div class="line">}</div>
+<div class="line"></div>
+<div class="line"><span class="comment">// Handle the Mute Pin check here</span></div>
+<div class="line"><span class="keywordtype">void</span> App_CheckUnmuteStatusCb (uint16_t node_address)</div>
+<div class="line">{</div>
+<div class="line"> <span class="comment">// Check the state of the mute pin here before unmuting</span></div>
+<div class="line">}</div>
+<div class="line"></div>
+<div class="line"><span class="comment">// Debug interface for the XRM resources</span></div>
+<div class="line"><span class="keywordtype">void</span> App_OnDebuggingXrmResources (<a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc" title="INIC resource types used by the Extended Resource Manager.">Ucs_Xrm_ResourceType_t</a> resource_type, <a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173" title="INIC Resource Object used for Extended Resource Manager jobs.">Ucs_Xrm_ResObject_t</a> *resource_ptr, <a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#ga5299ac232aaeba37eb6fceb53e32b2ea" title="This enumerator specifies the type of resources information.">Ucs_Xrm_ResourceInfos_t</a> resource_infos, <span class="keywordtype">void</span> *user_ptr)</div>
+<div class="line">{</div>
+<div class="line"> <span class="keywordflow">switch</span> (resource_infos)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#gga5299ac232aaeba37eb6fceb53e32b2eaaf17abdbe8fab65a069b6a8af1079066a" title="Signals that the resource is built.">UCS_XRM_INFOS_BUILT</a>:</div>
+<div class="line"> <span class="comment">// Resource has been built</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#gga5299ac232aaeba37eb6fceb53e32b2eaa6e7faa32a0cb82c3fdf4450d80188262" title="Signals that the resource is destroyed.">UCS_XRM_INFOS_DESTROYED</a>:</div>
+<div class="line"> <span class="comment">// resource has been destroyed</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga5299ac232aaeba37eb6fceb53e32b2ea.html#gga5299ac232aaeba37eb6fceb53e32b2eaac57d4f29bbfd2f62eefddc4e31a7ad81" title="Signals that XRM fails to build the resource.">UCS_XRM_INFOS_ERR_BUILT</a>:</div>
+<div class="line"> <span class="comment">//Resource cannot be built</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> <span class="keywordflow">default</span>:</div>
+<div class="line"> <span class="comment">// Resource cannot be destroyed</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___rm___init_data__t.html">Ucs_Rm_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___rm___node__t.html b/ucs2-lib/doc/html/struct_ucs___rm___node__t.html
new file mode 100644
index 0000000..19ae712
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___rm___node__t.html
@@ -0,0 +1,144 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Rm_Node_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___rm___node__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Rm_Node_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s.html">Referred Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Configuration structure of a Node.
+ <a href="struct_ucs___rm___node__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:ae619e45bed87dee01aaf280635cf3911"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_ucs___signature__t.html">Ucs_Signature_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___rm___node__t_ae619e45bed87dee01aaf280635cf3911.html#ae619e45bed87dee01aaf280635cf3911">signature_ptr</a></td></tr>
+<tr class="memdesc:ae619e45bed87dee01aaf280635cf3911"><td class="mdescLeft">&#160;</td><td class="mdescRight">node signature. <a href="#ae619e45bed87dee01aaf280635cf3911"></a><br/></td></tr>
+<tr class="separator:ae619e45bed87dee01aaf280635cf3911"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a321da5e56aadf970749f66cfd284bb04"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_ucs___ns___script__t.html">Ucs_Ns_Script_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___rm___node__t_a321da5e56aadf970749f66cfd284bb04.html#a321da5e56aadf970749f66cfd284bb04">script_list_ptr</a></td></tr>
+<tr class="memdesc:a321da5e56aadf970749f66cfd284bb04"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference to a list of configuration scripts. <a href="#a321da5e56aadf970749f66cfd284bb04"></a><br/></td></tr>
+<tr class="separator:a321da5e56aadf970749f66cfd284bb04"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a12545084e0e46ea49b48c93385f75650"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___rm___node__t_a12545084e0e46ea49b48c93385f75650.html#a12545084e0e46ea49b48c93385f75650">script_list_size</a></td></tr>
+<tr class="memdesc:a12545084e0e46ea49b48c93385f75650"><td class="mdescLeft">&#160;</td><td class="mdescRight">size of the scripts table. <a href="#a12545084e0e46ea49b48c93385f75650"></a><br/></td></tr>
+<tr class="separator:a12545084e0e46ea49b48c93385f75650"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a83b42042de7afe0e4e421de3e82ba5d6"><td class="memItemLeft" align="right" valign="top">Ucs_Rm_NodeInt_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___rm___node__t_a83b42042de7afe0e4e421de3e82ba5d6.html#a83b42042de7afe0e4e421de3e82ba5d6">internal_infos</a></td></tr>
+<tr class="memdesc:a83b42042de7afe0e4e421de3e82ba5d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal information of this node object. <a href="#a83b42042de7afe0e4e421de3e82ba5d6"></a><br/></td></tr>
+<tr class="separator:a83b42042de7afe0e4e421de3e82ba5d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Configuration structure of a Node. </p>
+<dl class="section attention"><dt>Attention</dt><dd>Use the <a class="el" href="group___g___u_c_s___i_r_m_ga17bc521c78b99dc17f16161199cd4c1a.html#ga17bc521c78b99dc17f16161199cd4c1a">UCS_ADDR_LOCAL_DEV</a> macro to address your local device when specifying routes to/from It. <br/>
+ The following address ranges are supported:<ul>
+<li>[0x10 ... 0x2FF]</li>
+<li>[0x500 ... 0xFEF]</li>
+<li>UCS_ADDR_LOCAL_DEV </li>
+</ul>
+</dd></dl>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___rm___node__t.html">Ucs_Rm_Node_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___rm___node__t_a12545084e0e46ea49b48c93385f75650.html b/ucs2-lib/doc/html/struct_ucs___rm___node__t_a12545084e0e46ea49b48c93385f75650.html
new file mode 100644
index 0000000..7ed4c84
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___rm___node__t_a12545084e0e46ea49b48c93385f75650.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Rm_Node_t::script_list_size</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___rm___node__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a12545084e0e46ea49b48c93385f75650"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t script_list_size</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>size of the scripts table. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___rm___node__t.html">Ucs_Rm_Node_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___rm___node__t_a321da5e56aadf970749f66cfd284bb04.html b/ucs2-lib/doc/html/struct_ucs___rm___node__t_a321da5e56aadf970749f66cfd284bb04.html
new file mode 100644
index 0000000..d431450
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___rm___node__t_a321da5e56aadf970749f66cfd284bb04.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Rm_Node_t::script_list_ptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___rm___node__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a321da5e56aadf970749f66cfd284bb04"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_ucs___ns___script__t.html">Ucs_Ns_Script_t</a>* script_list_ptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reference to a list of configuration scripts. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___rm___node__t.html">Ucs_Rm_Node_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___rm___node__t_a83b42042de7afe0e4e421de3e82ba5d6.html b/ucs2-lib/doc/html/struct_ucs___rm___node__t_a83b42042de7afe0e4e421de3e82ba5d6.html
new file mode 100644
index 0000000..a374086
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___rm___node__t_a83b42042de7afe0e4e421de3e82ba5d6.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Rm_Node_t::internal_infos</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___rm___node__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a83b42042de7afe0e4e421de3e82ba5d6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Ucs_Rm_NodeInt_t internal_infos</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Internal information of this node object. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___rm___node__t.html">Ucs_Rm_Node_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___rm___node__t_ae619e45bed87dee01aaf280635cf3911.html b/ucs2-lib/doc/html/struct_ucs___rm___node__t_ae619e45bed87dee01aaf280635cf3911.html
new file mode 100644
index 0000000..07fe84c
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___rm___node__t_ae619e45bed87dee01aaf280635cf3911.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Rm_Node_t::signature_ptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___rm___node__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ae619e45bed87dee01aaf280635cf3911"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_ucs___signature__t.html">Ucs_Signature_t</a>* signature_ptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>node signature. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___rm___node__t.html">Ucs_Rm_Node_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___rm___route__t.html b/ucs2-lib/doc/html/struct_ucs___rm___route__t.html
new file mode 100644
index 0000000..f3ec12a
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___rm___route__t.html
@@ -0,0 +1,140 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Rm_Route_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___rm___route__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Rm_Route_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___r_o_u_t_i_n_g___t_y_p_e_s.html">Referred Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Configuration structure of a Route.
+ <a href="struct_ucs___rm___route__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a8e5e3175ae36f8c87c22e2382d0bba4a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_ucs___rm___end_point__t.html">Ucs_Rm_EndPoint_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___rm___route__t_a8e5e3175ae36f8c87c22e2382d0bba4a.html#a8e5e3175ae36f8c87c22e2382d0bba4a">source_endpoint_ptr</a></td></tr>
+<tr class="memdesc:a8e5e3175ae36f8c87c22e2382d0bba4a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference to a Source Endpoint object. <a href="#a8e5e3175ae36f8c87c22e2382d0bba4a"></a><br/></td></tr>
+<tr class="separator:a8e5e3175ae36f8c87c22e2382d0bba4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5553fda80c8780a9e42916d87a0e82dd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_ucs___rm___end_point__t.html">Ucs_Rm_EndPoint_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___rm___route__t_a5553fda80c8780a9e42916d87a0e82dd.html#a5553fda80c8780a9e42916d87a0e82dd">sink_endpoint_ptr</a></td></tr>
+<tr class="memdesc:a5553fda80c8780a9e42916d87a0e82dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference to a Sink Endpoint object. <a href="#a5553fda80c8780a9e42916d87a0e82dd"></a><br/></td></tr>
+<tr class="separator:a5553fda80c8780a9e42916d87a0e82dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a05c940dbc220f5a723afd70071aebff8"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___rm___route__t_a05c940dbc220f5a723afd70071aebff8.html#a05c940dbc220f5a723afd70071aebff8">active</a></td></tr>
+<tr class="memdesc:a05c940dbc220f5a723afd70071aebff8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Route activity. Specifies whether the route is active yet or not. <a href="#a05c940dbc220f5a723afd70071aebff8"></a><br/></td></tr>
+<tr class="separator:a05c940dbc220f5a723afd70071aebff8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af45aa1590137605530f1757465709d39"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___rm___route__t_af45aa1590137605530f1757465709d39.html#af45aa1590137605530f1757465709d39">route_id</a></td></tr>
+<tr class="memdesc:af45aa1590137605530f1757465709d39"><td class="mdescLeft">&#160;</td><td class="mdescRight">User-defined route identifier. <a href="#af45aa1590137605530f1757465709d39"></a><br/></td></tr>
+<tr class="separator:af45aa1590137605530f1757465709d39"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abd3ce7c042005f4f8713f6c5359c1633"><td class="memItemLeft" align="right" valign="top">Ucs_Rm_RouteInt_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___rm___route__t_abd3ce7c042005f4f8713f6c5359c1633.html#abd3ce7c042005f4f8713f6c5359c1633">internal_infos</a></td></tr>
+<tr class="memdesc:abd3ce7c042005f4f8713f6c5359c1633"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal information of the route object. <a href="#abd3ce7c042005f4f8713f6c5359c1633"></a><br/></td></tr>
+<tr class="separator:abd3ce7c042005f4f8713f6c5359c1633"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Configuration structure of a Route. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___rm___route__t.html">Ucs_Rm_Route_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___rm___route__t_a05c940dbc220f5a723afd70071aebff8.html b/ucs2-lib/doc/html/struct_ucs___rm___route__t_a05c940dbc220f5a723afd70071aebff8.html
new file mode 100644
index 0000000..87ae1ae
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___rm___route__t_a05c940dbc220f5a723afd70071aebff8.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Rm_Route_t::active</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___rm___route__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a05c940dbc220f5a723afd70071aebff8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t active</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Route activity. Specifies whether the route is active yet or not. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___rm___route__t.html">Ucs_Rm_Route_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___rm___route__t_a5553fda80c8780a9e42916d87a0e82dd.html b/ucs2-lib/doc/html/struct_ucs___rm___route__t_a5553fda80c8780a9e42916d87a0e82dd.html
new file mode 100644
index 0000000..7a27848
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___rm___route__t_a5553fda80c8780a9e42916d87a0e82dd.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Rm_Route_t::sink_endpoint_ptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___rm___route__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a5553fda80c8780a9e42916d87a0e82dd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_ucs___rm___end_point__t.html">Ucs_Rm_EndPoint_t</a>* sink_endpoint_ptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reference to a Sink Endpoint object. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___rm___route__t.html">Ucs_Rm_Route_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___rm___route__t_a8e5e3175ae36f8c87c22e2382d0bba4a.html b/ucs2-lib/doc/html/struct_ucs___rm___route__t_a8e5e3175ae36f8c87c22e2382d0bba4a.html
new file mode 100644
index 0000000..92986c6
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___rm___route__t_a8e5e3175ae36f8c87c22e2382d0bba4a.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Rm_Route_t::source_endpoint_ptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___rm___route__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a8e5e3175ae36f8c87c22e2382d0bba4a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_ucs___rm___end_point__t.html">Ucs_Rm_EndPoint_t</a>* source_endpoint_ptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reference to a Source Endpoint object. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___rm___route__t.html">Ucs_Rm_Route_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___rm___route__t_abd3ce7c042005f4f8713f6c5359c1633.html b/ucs2-lib/doc/html/struct_ucs___rm___route__t_abd3ce7c042005f4f8713f6c5359c1633.html
new file mode 100644
index 0000000..5ac7ede
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___rm___route__t_abd3ce7c042005f4f8713f6c5359c1633.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Rm_Route_t::internal_infos</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___rm___route__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="abd3ce7c042005f4f8713f6c5359c1633"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Ucs_Rm_RouteInt_t internal_infos</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Internal information of the route object. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___rm___route__t.html">Ucs_Rm_Route_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___rm___route__t_af45aa1590137605530f1757465709d39.html b/ucs2-lib/doc/html/struct_ucs___rm___route__t_af45aa1590137605530f1757465709d39.html
new file mode 100644
index 0000000..2efbdb2
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___rm___route__t_af45aa1590137605530f1757465709d39.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Rm_Route_t::route_id</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___rm___route__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="af45aa1590137605530f1757465709d39"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t route_id</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>User-defined route identifier. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___rm___route__t.html">Ucs_Rm_Route_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___sd___report__t.html b/ucs2-lib/doc/html/struct_ucs___sd___report__t.html
new file mode 100644
index 0000000..14e4595
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___sd___report__t.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Sd_Report_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___sd___report__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Sd_Report_t Struct Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This structure holds the results of the system diagnosis.
+ <a href="struct_ucs___sd___report__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a4516a98acab86432eea6035e2856a7e4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga4d4ad405b114eba3e3a2e5581a0b5d9c.html#ga4d4ad405b114eba3e3a2e5581a0b5d9c">Ucs_Sd_ResCode_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___sd___report__t_a4516a98acab86432eea6035e2856a7e4.html#a4516a98acab86432eea6035e2856a7e4">code</a></td></tr>
+<tr class="memdesc:a4516a98acab86432eea6035e2856a7e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Result code. <a href="#a4516a98acab86432eea6035e2856a7e4"></a><br/></td></tr>
+<tr class="separator:a4516a98acab86432eea6035e2856a7e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abfbddee81e60c6dc7a2ede0b5066c06a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_ucs___sd___segment__t.html">Ucs_Sd_Segment_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___sd___report__t_abfbddee81e60c6dc7a2ede0b5066c06a.html#abfbddee81e60c6dc7a2ede0b5066c06a">segment</a></td></tr>
+<tr class="memdesc:abfbddee81e60c6dc7a2ede0b5066c06a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Information about tested segment. <a href="#abfbddee81e60c6dc7a2ede0b5066c06a"></a><br/></td></tr>
+<tr class="separator:abfbddee81e60c6dc7a2ede0b5066c06a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6caff4f48d1e2f1afc97934836388272"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___sd___report__t_a6caff4f48d1e2f1afc97934836388272.html#a6caff4f48d1e2f1afc97934836388272">cable_link_info</a></td></tr>
+<tr class="memdesc:a6caff4f48d1e2f1afc97934836388272"><td class="mdescLeft">&#160;</td><td class="mdescRight">Result of a cable link diagnosis. <a href="#a6caff4f48d1e2f1afc97934836388272"></a><br/></td></tr>
+<tr class="separator:a6caff4f48d1e2f1afc97934836388272"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4b94cabfc6ee64196ca32cf1f0c1040f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s_gad0e1473ecd96b8d94131cb5d81295fc3.html#gad0e1473ecd96b8d94131cb5d81295fc3">Ucs_Sd_ErrCode_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___sd___report__t_a4b94cabfc6ee64196ca32cf1f0c1040f.html#a4b94cabfc6ee64196ca32cf1f0c1040f">err_info</a></td></tr>
+<tr class="memdesc:a4b94cabfc6ee64196ca32cf1f0c1040f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Error codes, values are defined in Ucs_Sd_ErrCode_t. <a href="#a4b94cabfc6ee64196ca32cf1f0c1040f"></a><br/></td></tr>
+<tr class="separator:a4b94cabfc6ee64196ca32cf1f0c1040f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>This structure holds the results of the system diagnosis. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___sd___report__t.html">Ucs_Sd_Report_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___sd___report__t_a4516a98acab86432eea6035e2856a7e4.html b/ucs2-lib/doc/html/struct_ucs___sd___report__t_a4516a98acab86432eea6035e2856a7e4.html
new file mode 100644
index 0000000..d1e45e0
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___sd___report__t_a4516a98acab86432eea6035e2856a7e4.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Sd_Report_t::code</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___sd___report__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a4516a98acab86432eea6035e2856a7e4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s_ga4d4ad405b114eba3e3a2e5581a0b5d9c.html#ga4d4ad405b114eba3e3a2e5581a0b5d9c">Ucs_Sd_ResCode_t</a> code</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Result code. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___sd___report__t.html">Ucs_Sd_Report_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___sd___report__t_a4b94cabfc6ee64196ca32cf1f0c1040f.html b/ucs2-lib/doc/html/struct_ucs___sd___report__t_a4b94cabfc6ee64196ca32cf1f0c1040f.html
new file mode 100644
index 0000000..fe38440
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___sd___report__t_a4b94cabfc6ee64196ca32cf1f0c1040f.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Sd_Report_t::err_info</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___sd___report__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a4b94cabfc6ee64196ca32cf1f0c1040f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i_n_i_c___t_y_p_e_s_gad0e1473ecd96b8d94131cb5d81295fc3.html#gad0e1473ecd96b8d94131cb5d81295fc3">Ucs_Sd_ErrCode_t</a> err_info</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Error codes, values are defined in Ucs_Sd_ErrCode_t. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___sd___report__t.html">Ucs_Sd_Report_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___sd___report__t_a6caff4f48d1e2f1afc97934836388272.html b/ucs2-lib/doc/html/struct_ucs___sd___report__t_a6caff4f48d1e2f1afc97934836388272.html
new file mode 100644
index 0000000..0a55982
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___sd___report__t_a6caff4f48d1e2f1afc97934836388272.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Sd_Report_t::cable_link_info</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___sd___report__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a6caff4f48d1e2f1afc97934836388272"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t cable_link_info</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Result of a cable link diagnosis. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This attribute corresponds with the parameter <code>Result</code> of the INIC function <a href="_p__u_m__o_s81118.html#MNSH2-CableLinkDiagnosis211">ExtendedNetworkControl.CableLinkDiagnosis</a>.</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___sd___report__t.html">Ucs_Sd_Report_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___sd___report__t_abfbddee81e60c6dc7a2ede0b5066c06a.html b/ucs2-lib/doc/html/struct_ucs___sd___report__t_abfbddee81e60c6dc7a2ede0b5066c06a.html
new file mode 100644
index 0000000..f30570f
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___sd___report__t_abfbddee81e60c6dc7a2ede0b5066c06a.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Sd_Report_t::segment</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___sd___report__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="abfbddee81e60c6dc7a2ede0b5066c06a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_ucs___sd___segment__t.html">Ucs_Sd_Segment_t</a> segment</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Information about tested segment. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___sd___report__t.html">Ucs_Sd_Report_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___sd___segment__t.html b/ucs2-lib/doc/html/struct_ucs___sd___segment__t.html
new file mode 100644
index 0000000..c84ac40
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___sd___segment__t.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Sd_Segment_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___sd___segment__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Sd_Segment_t Struct Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This structure holds the segment information of the system diagnosis.
+ <a href="struct_ucs___sd___segment__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a26bfba1996180ca29222aeccbd62068c"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___sd___segment__t_a26bfba1996180ca29222aeccbd62068c.html#a26bfba1996180ca29222aeccbd62068c">branch</a></td></tr>
+<tr class="memdesc:a26bfba1996180ca29222aeccbd62068c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of the currently tested branch. Numbering starts with 0 and corresponds to the port number if the Timing Master is a multi port INIC. <a href="#a26bfba1996180ca29222aeccbd62068c"></a><br/></td></tr>
+<tr class="separator:a26bfba1996180ca29222aeccbd62068c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abea371f9030e15a5d2a4c181576833d8"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___sd___segment__t_abea371f9030e15a5d2a4c181576833d8.html#abea371f9030e15a5d2a4c181576833d8">num</a></td></tr>
+<tr class="memdesc:abea371f9030e15a5d2a4c181576833d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Segment number inside the tested branch. Numbering starts with 1. <a href="#abea371f9030e15a5d2a4c181576833d8"></a><br/></td></tr>
+<tr class="separator:abea371f9030e15a5d2a4c181576833d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2c97de6d0a36e262e6e86b3eb7d64525"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_ucs___signature__t.html">Ucs_Signature_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___sd___segment__t_a2c97de6d0a36e262e6e86b3eb7d64525.html#a2c97de6d0a36e262e6e86b3eb7d64525">source</a></td></tr>
+<tr class="memdesc:a2c97de6d0a36e262e6e86b3eb7d64525"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signature of the first node of the segment. <a href="#a2c97de6d0a36e262e6e86b3eb7d64525"></a><br/></td></tr>
+<tr class="separator:a2c97de6d0a36e262e6e86b3eb7d64525"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a730fee420fdc6d921c296c9920ce4135"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_ucs___signature__t.html">Ucs_Signature_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___sd___segment__t_a730fee420fdc6d921c296c9920ce4135.html#a730fee420fdc6d921c296c9920ce4135">target</a></td></tr>
+<tr class="memdesc:a730fee420fdc6d921c296c9920ce4135"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signature of the second node of the segment. <a href="#a730fee420fdc6d921c296c9920ce4135"></a><br/></td></tr>
+<tr class="separator:a730fee420fdc6d921c296c9920ce4135"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>This structure holds the segment information of the system diagnosis. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___sd___segment__t.html">Ucs_Sd_Segment_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___sd___segment__t_a26bfba1996180ca29222aeccbd62068c.html b/ucs2-lib/doc/html/struct_ucs___sd___segment__t_a26bfba1996180ca29222aeccbd62068c.html
new file mode 100644
index 0000000..aabc804
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___sd___segment__t_a26bfba1996180ca29222aeccbd62068c.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Sd_Segment_t::branch</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___sd___segment__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a26bfba1996180ca29222aeccbd62068c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t branch</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Number of the currently tested branch. Numbering starts with 0 and corresponds to the port number if the Timing Master is a multi port INIC. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___sd___segment__t.html">Ucs_Sd_Segment_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___sd___segment__t_a2c97de6d0a36e262e6e86b3eb7d64525.html b/ucs2-lib/doc/html/struct_ucs___sd___segment__t_a2c97de6d0a36e262e6e86b3eb7d64525.html
new file mode 100644
index 0000000..4b97147
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___sd___segment__t_a2c97de6d0a36e262e6e86b3eb7d64525.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Sd_Segment_t::source</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___sd___segment__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a2c97de6d0a36e262e6e86b3eb7d64525"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_ucs___signature__t.html">Ucs_Signature_t</a> source</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Signature of the first node of the segment. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This attribute corresponds with the parameter <code>Signature</code> of the INIC function <a href="_p__u_m__o_s81118.html#MNSH2-Hello200">INIC.Hello</a>.</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___sd___segment__t.html">Ucs_Sd_Segment_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___sd___segment__t_a730fee420fdc6d921c296c9920ce4135.html b/ucs2-lib/doc/html/struct_ucs___sd___segment__t_a730fee420fdc6d921c296c9920ce4135.html
new file mode 100644
index 0000000..838332a
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___sd___segment__t_a730fee420fdc6d921c296c9920ce4135.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Sd_Segment_t::target</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___sd___segment__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a730fee420fdc6d921c296c9920ce4135"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_ucs___signature__t.html">Ucs_Signature_t</a> target</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Signature of the second node of the segment. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This attribute corresponds with the parameter <code>Signature</code> of the INIC function <a href="_p__u_m__o_s81118.html#MNSH2-Hello200">ExtendedNetworkControl.Hello</a>.</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___sd___segment__t.html">Ucs_Sd_Segment_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___sd___segment__t_abea371f9030e15a5d2a4c181576833d8.html b/ucs2-lib/doc/html/struct_ucs___sd___segment__t_abea371f9030e15a5d2a4c181576833d8.html
new file mode 100644
index 0000000..037cc97
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___sd___segment__t_abea371f9030e15a5d2a4c181576833d8.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Sd_Segment_t::num</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___sd___segment__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="abea371f9030e15a5d2a4c181576833d8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t num</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Segment number inside the tested branch. Numbering starts with 1. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___sd___segment__t.html">Ucs_Sd_Segment_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___signature__t.html b/ucs2-lib/doc/html/struct_ucs___signature__t.html
new file mode 100644
index 0000000..9abaa0c
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___signature__t.html
@@ -0,0 +1,173 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Signature_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___signature__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Signature_t Struct Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This structure holds the signature of the Hello, Welcome and Signature messages. It supports the signature v1 only.
+ <a href="struct_ucs___signature__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a550e0ded0fb13bc58b087d3a162d43c7"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___signature__t_a550e0ded0fb13bc58b087d3a162d43c7.html#a550e0ded0fb13bc58b087d3a162d43c7">node_address</a></td></tr>
+<tr class="memdesc:a550e0ded0fb13bc58b087d3a162d43c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">NodeAddress. <a href="#a550e0ded0fb13bc58b087d3a162d43c7"></a><br/></td></tr>
+<tr class="separator:a550e0ded0fb13bc58b087d3a162d43c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a20ed5721c4d2a493d8abd061950bd675"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___signature__t_a20ed5721c4d2a493d8abd061950bd675.html#a20ed5721c4d2a493d8abd061950bd675">group_address</a></td></tr>
+<tr class="memdesc:a20ed5721c4d2a493d8abd061950bd675"><td class="mdescLeft">&#160;</td><td class="mdescRight">GroupAddress. <a href="#a20ed5721c4d2a493d8abd061950bd675"></a><br/></td></tr>
+<tr class="separator:a20ed5721c4d2a493d8abd061950bd675"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a64f511e7134a5ebcab4fe44d180c2245"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___signature__t_a64f511e7134a5ebcab4fe44d180c2245.html#a64f511e7134a5ebcab4fe44d180c2245">mac_47_32</a></td></tr>
+<tr class="memdesc:a64f511e7134a5ebcab4fe44d180c2245"><td class="mdescLeft">&#160;</td><td class="mdescRight">MACAddress_47_32. <a href="#a64f511e7134a5ebcab4fe44d180c2245"></a><br/></td></tr>
+<tr class="separator:a64f511e7134a5ebcab4fe44d180c2245"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2139c6a8e2f491cdfbb8f3ce11ee39cb"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___signature__t_a2139c6a8e2f491cdfbb8f3ce11ee39cb.html#a2139c6a8e2f491cdfbb8f3ce11ee39cb">mac_31_16</a></td></tr>
+<tr class="memdesc:a2139c6a8e2f491cdfbb8f3ce11ee39cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">MACAddress_31_16. <a href="#a2139c6a8e2f491cdfbb8f3ce11ee39cb"></a><br/></td></tr>
+<tr class="separator:a2139c6a8e2f491cdfbb8f3ce11ee39cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ade0e080bbfc75844b7cbcc3dd13c48cb"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___signature__t_ade0e080bbfc75844b7cbcc3dd13c48cb.html#ade0e080bbfc75844b7cbcc3dd13c48cb">mac_15_0</a></td></tr>
+<tr class="memdesc:ade0e080bbfc75844b7cbcc3dd13c48cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">MACAddress_15_0. <a href="#ade0e080bbfc75844b7cbcc3dd13c48cb"></a><br/></td></tr>
+<tr class="separator:ade0e080bbfc75844b7cbcc3dd13c48cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0057a5f105488012ba3448bbb1099ebe"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___signature__t_a0057a5f105488012ba3448bbb1099ebe.html#a0057a5f105488012ba3448bbb1099ebe">node_pos_addr</a></td></tr>
+<tr class="memdesc:a0057a5f105488012ba3448bbb1099ebe"><td class="mdescLeft">&#160;</td><td class="mdescRight">NodePositionAddress. <a href="#a0057a5f105488012ba3448bbb1099ebe"></a><br/></td></tr>
+<tr class="separator:a0057a5f105488012ba3448bbb1099ebe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab98cc6d6cb5cc92d5f6633419daa643e"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___signature__t_ab98cc6d6cb5cc92d5f6633419daa643e.html#ab98cc6d6cb5cc92d5f6633419daa643e">diagnosis_id</a></td></tr>
+<tr class="memdesc:ab98cc6d6cb5cc92d5f6633419daa643e"><td class="mdescLeft">&#160;</td><td class="mdescRight">DiagnosisID. <a href="#ab98cc6d6cb5cc92d5f6633419daa643e"></a><br/></td></tr>
+<tr class="separator:ab98cc6d6cb5cc92d5f6633419daa643e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8584c5e1f2a1ec30387f93538bdf2b00"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___signature__t_a8584c5e1f2a1ec30387f93538bdf2b00.html#a8584c5e1f2a1ec30387f93538bdf2b00">num_ports</a></td></tr>
+<tr class="memdesc:a8584c5e1f2a1ec30387f93538bdf2b00"><td class="mdescLeft">&#160;</td><td class="mdescRight">NumberOfPorts. <a href="#a8584c5e1f2a1ec30387f93538bdf2b00"></a><br/></td></tr>
+<tr class="separator:a8584c5e1f2a1ec30387f93538bdf2b00"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a88e300db221e7a0382f2a4c289b9557d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___signature__t_a88e300db221e7a0382f2a4c289b9557d.html#a88e300db221e7a0382f2a4c289b9557d">chip_id</a></td></tr>
+<tr class="memdesc:a88e300db221e7a0382f2a4c289b9557d"><td class="mdescLeft">&#160;</td><td class="mdescRight">ChipID. <a href="#a88e300db221e7a0382f2a4c289b9557d"></a><br/></td></tr>
+<tr class="separator:a88e300db221e7a0382f2a4c289b9557d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac99479d164f096f8c3bc3c2c9043a75f"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___signature__t_ac99479d164f096f8c3bc3c2c9043a75f.html#ac99479d164f096f8c3bc3c2c9043a75f">fw_major</a></td></tr>
+<tr class="memdesc:ac99479d164f096f8c3bc3c2c9043a75f"><td class="mdescLeft">&#160;</td><td class="mdescRight">FWVersion_Major. <a href="#ac99479d164f096f8c3bc3c2c9043a75f"></a><br/></td></tr>
+<tr class="separator:ac99479d164f096f8c3bc3c2c9043a75f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a15ea388e2fbe80fafdd20a6d8302ad05"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___signature__t_a15ea388e2fbe80fafdd20a6d8302ad05.html#a15ea388e2fbe80fafdd20a6d8302ad05">fw_minor</a></td></tr>
+<tr class="memdesc:a15ea388e2fbe80fafdd20a6d8302ad05"><td class="mdescLeft">&#160;</td><td class="mdescRight">FWVersion_Minor. <a href="#a15ea388e2fbe80fafdd20a6d8302ad05"></a><br/></td></tr>
+<tr class="separator:a15ea388e2fbe80fafdd20a6d8302ad05"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a837edc8b3982713e064919786095b18d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___signature__t_a837edc8b3982713e064919786095b18d.html#a837edc8b3982713e064919786095b18d">fw_release</a></td></tr>
+<tr class="memdesc:a837edc8b3982713e064919786095b18d"><td class="mdescLeft">&#160;</td><td class="mdescRight">FWVersion_Release. <a href="#a837edc8b3982713e064919786095b18d"></a><br/></td></tr>
+<tr class="separator:a837edc8b3982713e064919786095b18d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1149e000267e8c93bed1aa393c09c047"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___signature__t_a1149e000267e8c93bed1aa393c09c047.html#a1149e000267e8c93bed1aa393c09c047">fw_build</a></td></tr>
+<tr class="memdesc:a1149e000267e8c93bed1aa393c09c047"><td class="mdescLeft">&#160;</td><td class="mdescRight">FWVersion_Build. <a href="#a1149e000267e8c93bed1aa393c09c047"></a><br/></td></tr>
+<tr class="separator:a1149e000267e8c93bed1aa393c09c047"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0d446be5f898a8ae0738b2cefb0b8b37"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___signature__t_a0d446be5f898a8ae0738b2cefb0b8b37.html#a0d446be5f898a8ae0738b2cefb0b8b37">cs_major</a></td></tr>
+<tr class="memdesc:a0d446be5f898a8ae0738b2cefb0b8b37"><td class="mdescLeft">&#160;</td><td class="mdescRight">CSVersion_Major. <a href="#a0d446be5f898a8ae0738b2cefb0b8b37"></a><br/></td></tr>
+<tr class="separator:a0d446be5f898a8ae0738b2cefb0b8b37"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd22089496c4f8c46afc7eabcbe3b8f7"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___signature__t_afd22089496c4f8c46afc7eabcbe3b8f7.html#afd22089496c4f8c46afc7eabcbe3b8f7">cs_minor</a></td></tr>
+<tr class="memdesc:afd22089496c4f8c46afc7eabcbe3b8f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">CSVersion_Minor. <a href="#afd22089496c4f8c46afc7eabcbe3b8f7"></a><br/></td></tr>
+<tr class="separator:afd22089496c4f8c46afc7eabcbe3b8f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a85df7718b1da0f0b195926db0f22e24f"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___signature__t_a85df7718b1da0f0b195926db0f22e24f.html#a85df7718b1da0f0b195926db0f22e24f">cs_release</a></td></tr>
+<tr class="memdesc:a85df7718b1da0f0b195926db0f22e24f"><td class="mdescLeft">&#160;</td><td class="mdescRight">CSVersion_Release. <a href="#a85df7718b1da0f0b195926db0f22e24f"></a><br/></td></tr>
+<tr class="separator:a85df7718b1da0f0b195926db0f22e24f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>This structure holds the signature of the Hello, Welcome and Signature messages. It supports the signature v1 only. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___signature__t.html">Ucs_Signature_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___signature__t_a0057a5f105488012ba3448bbb1099ebe.html b/ucs2-lib/doc/html/struct_ucs___signature__t_a0057a5f105488012ba3448bbb1099ebe.html
new file mode 100644
index 0000000..62c5fe9
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___signature__t_a0057a5f105488012ba3448bbb1099ebe.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Signature_t::node_pos_addr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___signature__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a0057a5f105488012ba3448bbb1099ebe"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t node_pos_addr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>NodePositionAddress. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___signature__t.html">Ucs_Signature_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___signature__t_a0d446be5f898a8ae0738b2cefb0b8b37.html b/ucs2-lib/doc/html/struct_ucs___signature__t_a0d446be5f898a8ae0738b2cefb0b8b37.html
new file mode 100644
index 0000000..8203f91
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___signature__t_a0d446be5f898a8ae0738b2cefb0b8b37.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Signature_t::cs_major</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___signature__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a0d446be5f898a8ae0738b2cefb0b8b37"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t cs_major</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>CSVersion_Major. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___signature__t.html">Ucs_Signature_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___signature__t_a1149e000267e8c93bed1aa393c09c047.html b/ucs2-lib/doc/html/struct_ucs___signature__t_a1149e000267e8c93bed1aa393c09c047.html
new file mode 100644
index 0000000..cb55d77
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___signature__t_a1149e000267e8c93bed1aa393c09c047.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Signature_t::fw_build</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___signature__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a1149e000267e8c93bed1aa393c09c047"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t fw_build</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>FWVersion_Build. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___signature__t.html">Ucs_Signature_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___signature__t_a15ea388e2fbe80fafdd20a6d8302ad05.html b/ucs2-lib/doc/html/struct_ucs___signature__t_a15ea388e2fbe80fafdd20a6d8302ad05.html
new file mode 100644
index 0000000..b06ee0e
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___signature__t_a15ea388e2fbe80fafdd20a6d8302ad05.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Signature_t::fw_minor</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___signature__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a15ea388e2fbe80fafdd20a6d8302ad05"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t fw_minor</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>FWVersion_Minor. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___signature__t.html">Ucs_Signature_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___signature__t_a20ed5721c4d2a493d8abd061950bd675.html b/ucs2-lib/doc/html/struct_ucs___signature__t_a20ed5721c4d2a493d8abd061950bd675.html
new file mode 100644
index 0000000..dfb9df3
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___signature__t_a20ed5721c4d2a493d8abd061950bd675.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Signature_t::group_address</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___signature__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a20ed5721c4d2a493d8abd061950bd675"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t group_address</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>GroupAddress. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___signature__t.html">Ucs_Signature_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___signature__t_a2139c6a8e2f491cdfbb8f3ce11ee39cb.html b/ucs2-lib/doc/html/struct_ucs___signature__t_a2139c6a8e2f491cdfbb8f3ce11ee39cb.html
new file mode 100644
index 0000000..b0b97ea
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___signature__t_a2139c6a8e2f491cdfbb8f3ce11ee39cb.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Signature_t::mac_31_16</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___signature__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a2139c6a8e2f491cdfbb8f3ce11ee39cb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t mac_31_16</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>MACAddress_31_16. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___signature__t.html">Ucs_Signature_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___signature__t_a550e0ded0fb13bc58b087d3a162d43c7.html b/ucs2-lib/doc/html/struct_ucs___signature__t_a550e0ded0fb13bc58b087d3a162d43c7.html
new file mode 100644
index 0000000..37efa98
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___signature__t_a550e0ded0fb13bc58b087d3a162d43c7.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Signature_t::node_address</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___signature__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a550e0ded0fb13bc58b087d3a162d43c7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t node_address</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>NodeAddress. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___signature__t.html">Ucs_Signature_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___signature__t_a64f511e7134a5ebcab4fe44d180c2245.html b/ucs2-lib/doc/html/struct_ucs___signature__t_a64f511e7134a5ebcab4fe44d180c2245.html
new file mode 100644
index 0000000..93a5b7a
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___signature__t_a64f511e7134a5ebcab4fe44d180c2245.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Signature_t::mac_47_32</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___signature__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a64f511e7134a5ebcab4fe44d180c2245"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t mac_47_32</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>MACAddress_47_32. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___signature__t.html">Ucs_Signature_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___signature__t_a837edc8b3982713e064919786095b18d.html b/ucs2-lib/doc/html/struct_ucs___signature__t_a837edc8b3982713e064919786095b18d.html
new file mode 100644
index 0000000..fd6d455
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___signature__t_a837edc8b3982713e064919786095b18d.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Signature_t::fw_release</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___signature__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a837edc8b3982713e064919786095b18d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t fw_release</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>FWVersion_Release. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___signature__t.html">Ucs_Signature_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___signature__t_a8584c5e1f2a1ec30387f93538bdf2b00.html b/ucs2-lib/doc/html/struct_ucs___signature__t_a8584c5e1f2a1ec30387f93538bdf2b00.html
new file mode 100644
index 0000000..7a308b9
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___signature__t_a8584c5e1f2a1ec30387f93538bdf2b00.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Signature_t::num_ports</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___signature__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a8584c5e1f2a1ec30387f93538bdf2b00"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t num_ports</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>NumberOfPorts. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___signature__t.html">Ucs_Signature_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___signature__t_a85df7718b1da0f0b195926db0f22e24f.html b/ucs2-lib/doc/html/struct_ucs___signature__t_a85df7718b1da0f0b195926db0f22e24f.html
new file mode 100644
index 0000000..b44dd73
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___signature__t_a85df7718b1da0f0b195926db0f22e24f.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Signature_t::cs_release</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___signature__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a85df7718b1da0f0b195926db0f22e24f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t cs_release</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>CSVersion_Release. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___signature__t.html">Ucs_Signature_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___signature__t_a88e300db221e7a0382f2a4c289b9557d.html b/ucs2-lib/doc/html/struct_ucs___signature__t_a88e300db221e7a0382f2a4c289b9557d.html
new file mode 100644
index 0000000..28dfb59
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___signature__t_a88e300db221e7a0382f2a4c289b9557d.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Signature_t::chip_id</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___signature__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a88e300db221e7a0382f2a4c289b9557d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t chip_id</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>ChipID. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___signature__t.html">Ucs_Signature_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___signature__t_ab98cc6d6cb5cc92d5f6633419daa643e.html b/ucs2-lib/doc/html/struct_ucs___signature__t_ab98cc6d6cb5cc92d5f6633419daa643e.html
new file mode 100644
index 0000000..b24a618
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___signature__t_ab98cc6d6cb5cc92d5f6633419daa643e.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Signature_t::diagnosis_id</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___signature__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ab98cc6d6cb5cc92d5f6633419daa643e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t diagnosis_id</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>DiagnosisID. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___signature__t.html">Ucs_Signature_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___signature__t_ac99479d164f096f8c3bc3c2c9043a75f.html b/ucs2-lib/doc/html/struct_ucs___signature__t_ac99479d164f096f8c3bc3c2c9043a75f.html
new file mode 100644
index 0000000..2850fe1
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___signature__t_ac99479d164f096f8c3bc3c2c9043a75f.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Signature_t::fw_major</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___signature__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ac99479d164f096f8c3bc3c2c9043a75f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t fw_major</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>FWVersion_Major. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___signature__t.html">Ucs_Signature_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___signature__t_ade0e080bbfc75844b7cbcc3dd13c48cb.html b/ucs2-lib/doc/html/struct_ucs___signature__t_ade0e080bbfc75844b7cbcc3dd13c48cb.html
new file mode 100644
index 0000000..e4a10e8
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___signature__t_ade0e080bbfc75844b7cbcc3dd13c48cb.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Signature_t::mac_15_0</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___signature__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ade0e080bbfc75844b7cbcc3dd13c48cb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t mac_15_0</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>MACAddress_15_0. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___signature__t.html">Ucs_Signature_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___signature__t_afd22089496c4f8c46afc7eabcbe3b8f7.html b/ucs2-lib/doc/html/struct_ucs___signature__t_afd22089496c4f8c46afc7eabcbe3b8f7.html
new file mode 100644
index 0000000..2090df4
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___signature__t_afd22089496c4f8c46afc7eabcbe3b8f7.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Signature_t::cs_minor</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___signature__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="afd22089496c4f8c46afc7eabcbe3b8f7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t cs_minor</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>CSVersion_Minor. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___signature__t.html">Ucs_Signature_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___std_result__t.html b/ucs2-lib/doc/html/struct_ucs___std_result__t.html
new file mode 100644
index 0000000..a4cfd84
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___std_result__t.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_StdResult_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___std_result__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_StdResult_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s.html">Initialization and Service Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Standard result structure which provides fields for detailed status and error information.
+ <a href="struct_ucs___std_result__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a02d8eefc721a797ac87f5030774972ef"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#gac844b77cf41aef663782bc0b43d3540c">Ucs_Result_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___std_result__t_a02d8eefc721a797ac87f5030774972ef.html#a02d8eefc721a797ac87f5030774972ef">code</a></td></tr>
+<tr class="memdesc:a02d8eefc721a797ac87f5030774972ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Result/Error code. <a href="#a02d8eefc721a797ac87f5030774972ef"></a><br/></td></tr>
+<tr class="separator:a02d8eefc721a797ac87f5030774972ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab89f4871a6526d4d409fca9ee58ce176"><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___std_result__t_ab89f4871a6526d4d409fca9ee58ce176.html#ab89f4871a6526d4d409fca9ee58ce176">info_ptr</a></td></tr>
+<tr class="memdesc:ab89f4871a6526d4d409fca9ee58ce176"><td class="mdescLeft">&#160;</td><td class="mdescRight">INIC error data. <a href="#ab89f4871a6526d4d409fca9ee58ce176"></a><br/></td></tr>
+<tr class="separator:ab89f4871a6526d4d409fca9ee58ce176"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab8c6e508e45bdac2dc20bfc1b0dff08c"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___std_result__t_ab8c6e508e45bdac2dc20bfc1b0dff08c.html#ab8c6e508e45bdac2dc20bfc1b0dff08c">info_size</a></td></tr>
+<tr class="memdesc:ab8c6e508e45bdac2dc20bfc1b0dff08c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of the INIC error data in bytes. <a href="#ab8c6e508e45bdac2dc20bfc1b0dff08c"></a><br/></td></tr>
+<tr class="separator:ab8c6e508e45bdac2dc20bfc1b0dff08c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Standard result structure which provides fields for detailed status and error information. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___std_result__t.html">Ucs_StdResult_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___std_result__t_a02d8eefc721a797ac87f5030774972ef.html b/ucs2-lib/doc/html/struct_ucs___std_result__t_a02d8eefc721a797ac87f5030774972ef.html
new file mode 100644
index 0000000..c55a120
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___std_result__t_a02d8eefc721a797ac87f5030774972ef.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_StdResult_t::code</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___std_result__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a02d8eefc721a797ac87f5030774972ef"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_gac844b77cf41aef663782bc0b43d3540c.html#gac844b77cf41aef663782bc0b43d3540c">Ucs_Result_t</a> code</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Result/Error code. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___std_result__t.html">Ucs_StdResult_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___std_result__t_ab89f4871a6526d4d409fca9ee58ce176.html b/ucs2-lib/doc/html/struct_ucs___std_result__t_ab89f4871a6526d4d409fca9ee58ce176.html
new file mode 100644
index 0000000..16f538f
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___std_result__t_ab89f4871a6526d4d409fca9ee58ce176.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_StdResult_t::info_ptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___std_result__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ab89f4871a6526d4d409fca9ee58ce176"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t* info_ptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>INIC error data. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___std_result__t.html">Ucs_StdResult_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___std_result__t_ab8c6e508e45bdac2dc20bfc1b0dff08c.html b/ucs2-lib/doc/html/struct_ucs___std_result__t_ab8c6e508e45bdac2dc20bfc1b0dff08c.html
new file mode 100644
index 0000000..51cfef0
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___std_result__t_ab8c6e508e45bdac2dc20bfc1b0dff08c.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_StdResult_t::info_size</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___std_result__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ab8c6e508e45bdac2dc20bfc1b0dff08c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t info_size</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Size of the INIC error data in bytes. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___std_result__t.html">Ucs_StdResult_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___avp_con__t.html b/ucs2-lib/doc/html/struct_ucs___xrm___avp_con__t.html
new file mode 100644
index 0000000..921789d
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___avp_con__t.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_AvpCon_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___avp_con__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Xrm_AvpCon_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s.html">XRM Referred Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Configuration structure for a A/V Packetized isochronous streaming data connection.
+ <a href="struct_ucs___xrm___avp_con__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a31e66e762767a78baf49f779d598a9cd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc">Ucs_Xrm_ResourceType_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___avp_con__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd">resource_type</a></td></tr>
+<tr class="memdesc:a31e66e762767a78baf49f779d598a9cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of the INIC resource object. <a href="#a31e66e762767a78baf49f779d598a9cd"></a><br/></td></tr>
+<tr class="separator:a31e66e762767a78baf49f779d598a9cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ace5ef1fb3bd4337998a8f538645f47ed"><td class="memItemLeft" align="right" valign="top">UCS_XRM_CONST <a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173">Ucs_Xrm_ResObject_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___avp_con__t_ace5ef1fb3bd4337998a8f538645f47ed.html#ace5ef1fb3bd4337998a8f538645f47ed">socket_in_obj_ptr</a></td></tr>
+<tr class="memdesc:ace5ef1fb3bd4337998a8f538645f47ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference to the INIC resource object that specifies the socket that is the starting point of the link. Must be a socket of type <code>Input</code>. <a href="#ace5ef1fb3bd4337998a8f538645f47ed"></a><br/></td></tr>
+<tr class="separator:ace5ef1fb3bd4337998a8f538645f47ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a21e5760677b48c43c5e4783306819f95"><td class="memItemLeft" align="right" valign="top">UCS_XRM_CONST <a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173">Ucs_Xrm_ResObject_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___avp_con__t_a21e5760677b48c43c5e4783306819f95.html#a21e5760677b48c43c5e4783306819f95">socket_out_obj_ptr</a></td></tr>
+<tr class="memdesc:a21e5760677b48c43c5e4783306819f95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference to the INIC resource object that specifies the socket that is the ending point of the link. Must be a socket of type <code>Output</code>. <a href="#a21e5760677b48c43c5e4783306819f95"></a><br/></td></tr>
+<tr class="separator:a21e5760677b48c43c5e4783306819f95"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1e377eede69f95567f72835634ac6241"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga8836a818f79ff1315f7f76bcd8e50a4d.html#ga8836a818f79ff1315f7f76bcd8e50a4d">Ucs_Avp_IsocPacketSize_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___avp_con__t_a1e377eede69f95567f72835634ac6241.html#a1e377eede69f95567f72835634ac6241">isoc_packet_size</a></td></tr>
+<tr class="memdesc:a1e377eede69f95567f72835634ac6241"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of data packets. <a href="#a1e377eede69f95567f72835634ac6241"></a><br/></td></tr>
+<tr class="separator:a1e377eede69f95567f72835634ac6241"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Configuration structure for a A/V Packetized isochronous streaming data connection. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___avp_con__t.html">Ucs_Xrm_AvpCon_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___avp_con__t_a1e377eede69f95567f72835634ac6241.html b/ucs2-lib/doc/html/struct_ucs___xrm___avp_con__t_a1e377eede69f95567f72835634ac6241.html
new file mode 100644
index 0000000..9492f21
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___avp_con__t_a1e377eede69f95567f72835634ac6241.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_AvpCon_t::isoc_packet_size</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___avp_con__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a1e377eede69f95567f72835634ac6241"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga8836a818f79ff1315f7f76bcd8e50a4d.html#ga8836a818f79ff1315f7f76bcd8e50a4d">Ucs_Avp_IsocPacketSize_t</a> isoc_packet_size</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Size of data packets. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This attribute corresponds with the parameter <code>IsocPacketSize</code> of the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-AVPacketizedCreate861">INIC.AVPacketizedCreate</a>.</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___avp_con__t.html">Ucs_Xrm_AvpCon_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___avp_con__t_a21e5760677b48c43c5e4783306819f95.html b/ucs2-lib/doc/html/struct_ucs___xrm___avp_con__t_a21e5760677b48c43c5e4783306819f95.html
new file mode 100644
index 0000000..43b2ff9
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___avp_con__t_a21e5760677b48c43c5e4783306819f95.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_AvpCon_t::socket_out_obj_ptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___avp_con__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a21e5760677b48c43c5e4783306819f95"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">UCS_XRM_CONST <a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173">Ucs_Xrm_ResObject_t</a>* socket_out_obj_ptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reference to the INIC resource object that specifies the socket that is the ending point of the link. Must be a socket of type <code>Output</code>. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___avp_con__t.html">Ucs_Xrm_AvpCon_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___avp_con__t_a31e66e762767a78baf49f779d598a9cd.html b/ucs2-lib/doc/html/struct_ucs___xrm___avp_con__t_a31e66e762767a78baf49f779d598a9cd.html
new file mode 100644
index 0000000..de45e50
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___avp_con__t_a31e66e762767a78baf49f779d598a9cd.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_AvpCon_t::resource_type</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___avp_con__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a31e66e762767a78baf49f779d598a9cd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc">Ucs_Xrm_ResourceType_t</a> resource_type</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Type of the INIC resource object. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___avp_con__t.html">Ucs_Xrm_AvpCon_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___avp_con__t_ace5ef1fb3bd4337998a8f538645f47ed.html b/ucs2-lib/doc/html/struct_ucs___xrm___avp_con__t_ace5ef1fb3bd4337998a8f538645f47ed.html
new file mode 100644
index 0000000..d530087
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___avp_con__t_ace5ef1fb3bd4337998a8f538645f47ed.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_AvpCon_t::socket_in_obj_ptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___avp_con__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ace5ef1fb3bd4337998a8f538645f47ed"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">UCS_XRM_CONST <a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173">Ucs_Xrm_ResObject_t</a>* socket_in_obj_ptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reference to the INIC resource object that specifies the socket that is the starting point of the link. Must be a socket of type <code>Input</code>. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___avp_con__t.html">Ucs_Xrm_AvpCon_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___combiner__t.html b/ucs2-lib/doc/html/struct_ucs___xrm___combiner__t.html
new file mode 100644
index 0000000..7e51528
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___combiner__t.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_Combiner_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___combiner__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Xrm_Combiner_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s.html">XRM Referred Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Configuration structure of a combiner resource.
+ <a href="struct_ucs___xrm___combiner__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a31e66e762767a78baf49f779d598a9cd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc">Ucs_Xrm_ResourceType_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___combiner__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd">resource_type</a></td></tr>
+<tr class="memdesc:a31e66e762767a78baf49f779d598a9cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of the INIC resource object. <a href="#a31e66e762767a78baf49f779d598a9cd"></a><br/></td></tr>
+<tr class="separator:a31e66e762767a78baf49f779d598a9cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab4f0942e9c11cfa5e9db135b352c17a5"><td class="memItemLeft" align="right" valign="top">UCS_XRM_CONST <a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173">Ucs_Xrm_ResObject_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___combiner__t_ab4f0942e9c11cfa5e9db135b352c17a5.html#ab4f0942e9c11cfa5e9db135b352c17a5">port_socket_obj_ptr</a></td></tr>
+<tr class="memdesc:ab4f0942e9c11cfa5e9db135b352c17a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference to the INIC resource object that specifies the synchronous socket. <a href="#ab4f0942e9c11cfa5e9db135b352c17a5"></a><br/></td></tr>
+<tr class="separator:ab4f0942e9c11cfa5e9db135b352c17a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3d1f833dbb35db5fed7638006fda4138"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___combiner__t_a3d1f833dbb35db5fed7638006fda4138.html#a3d1f833dbb35db5fed7638006fda4138">most_port_handle</a></td></tr>
+<tr class="memdesc:a3d1f833dbb35db5fed7638006fda4138"><td class="mdescLeft">&#160;</td><td class="mdescRight">Port resource handle. <a href="#a3d1f833dbb35db5fed7638006fda4138"></a><br/></td></tr>
+<tr class="separator:a3d1f833dbb35db5fed7638006fda4138"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a155bb95b36c82e42f52872c92d49e102"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___combiner__t_a155bb95b36c82e42f52872c92d49e102.html#a155bb95b36c82e42f52872c92d49e102">bytes_per_frame</a></td></tr>
+<tr class="memdesc:a155bb95b36c82e42f52872c92d49e102"><td class="mdescLeft">&#160;</td><td class="mdescRight">Total number of data bytes to be transferred each MOST network frame. <a href="#a155bb95b36c82e42f52872c92d49e102"></a><br/></td></tr>
+<tr class="separator:a155bb95b36c82e42f52872c92d49e102"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Configuration structure of a combiner resource. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___combiner__t.html">Ucs_Xrm_Combiner_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___combiner__t_a155bb95b36c82e42f52872c92d49e102.html b/ucs2-lib/doc/html/struct_ucs___xrm___combiner__t_a155bb95b36c82e42f52872c92d49e102.html
new file mode 100644
index 0000000..03ebb40
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___combiner__t_a155bb95b36c82e42f52872c92d49e102.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_Combiner_t::bytes_per_frame</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___combiner__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a155bb95b36c82e42f52872c92d49e102"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t bytes_per_frame</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Total number of data bytes to be transferred each MOST network frame. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This attribute corresponds with the parameter <code>BytesPerFrame</code> of the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-CombinerCreate901">INIC.CombinerCreate</a>.</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___combiner__t.html">Ucs_Xrm_Combiner_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___combiner__t_a31e66e762767a78baf49f779d598a9cd.html b/ucs2-lib/doc/html/struct_ucs___xrm___combiner__t_a31e66e762767a78baf49f779d598a9cd.html
new file mode 100644
index 0000000..fc67a38
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___combiner__t_a31e66e762767a78baf49f779d598a9cd.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_Combiner_t::resource_type</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___combiner__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a31e66e762767a78baf49f779d598a9cd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc">Ucs_Xrm_ResourceType_t</a> resource_type</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Type of the INIC resource object. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___combiner__t.html">Ucs_Xrm_Combiner_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___combiner__t_a3d1f833dbb35db5fed7638006fda4138.html b/ucs2-lib/doc/html/struct_ucs___xrm___combiner__t_a3d1f833dbb35db5fed7638006fda4138.html
new file mode 100644
index 0000000..320b00b
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___combiner__t_a3d1f833dbb35db5fed7638006fda4138.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_Combiner_t::most_port_handle</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___combiner__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a3d1f833dbb35db5fed7638006fda4138"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t most_port_handle</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Port resource handle. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This attribute corresponds with the parameter <code>MOSTPortHandle</code> of the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-CombinerCreate901">INIC.CombinerCreate</a>.</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___combiner__t.html">Ucs_Xrm_Combiner_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___combiner__t_ab4f0942e9c11cfa5e9db135b352c17a5.html b/ucs2-lib/doc/html/struct_ucs___xrm___combiner__t_ab4f0942e9c11cfa5e9db135b352c17a5.html
new file mode 100644
index 0000000..dc3baa4
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___combiner__t_ab4f0942e9c11cfa5e9db135b352c17a5.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_Combiner_t::port_socket_obj_ptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___combiner__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ab4f0942e9c11cfa5e9db135b352c17a5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">UCS_XRM_CONST <a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173">Ucs_Xrm_ResObject_t</a>* port_socket_obj_ptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reference to the INIC resource object that specifies the synchronous socket. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___combiner__t.html">Ucs_Xrm_Combiner_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___default_created_port__t.html b/ucs2-lib/doc/html/struct_ucs___xrm___default_created_port__t.html
new file mode 100644
index 0000000..96ae05e
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___default_created_port__t.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_DefaultCreatedPort_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___default_created_port__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Xrm_DefaultCreatedPort_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s.html">XRM Referred Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Configuration structure of a default created port. This structure is used for ports that are configured via the INIC's Configuration String and are automatically created at startup.
+ <a href="struct_ucs___xrm___default_created_port__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a31e66e762767a78baf49f779d598a9cd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc">Ucs_Xrm_ResourceType_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___default_created_port__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd">resource_type</a></td></tr>
+<tr class="memdesc:a31e66e762767a78baf49f779d598a9cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of the INIC resource object. <a href="#a31e66e762767a78baf49f779d598a9cd"></a><br/></td></tr>
+<tr class="separator:a31e66e762767a78baf49f779d598a9cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a58cd72485f642399fb1815f026dbaae7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga50384bb32b088e9cfd50c889ef562015.html#ga50384bb32b088e9cfd50c889ef562015">Ucs_Xrm_PortType_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___default_created_port__t_a58cd72485f642399fb1815f026dbaae7.html#a58cd72485f642399fb1815f026dbaae7">port_type</a></td></tr>
+<tr class="memdesc:a58cd72485f642399fb1815f026dbaae7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of the hardware port. <a href="#a58cd72485f642399fb1815f026dbaae7"></a><br/></td></tr>
+<tr class="separator:a58cd72485f642399fb1815f026dbaae7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aae5a12e607d0f782506d9e6ec6179c64"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___default_created_port__t_aae5a12e607d0f782506d9e6ec6179c64.html#aae5a12e607d0f782506d9e6ec6179c64">index</a></td></tr>
+<tr class="memdesc:aae5a12e607d0f782506d9e6ec6179c64"><td class="mdescLeft">&#160;</td><td class="mdescRight">Port instance identifier. <a href="#aae5a12e607d0f782506d9e6ec6179c64"></a><br/></td></tr>
+<tr class="separator:aae5a12e607d0f782506d9e6ec6179c64"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Configuration structure of a default created port. This structure is used for ports that are configured via the INIC's Configuration String and are automatically created at startup. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___default_created_port__t.html">Ucs_Xrm_DefaultCreatedPort_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___default_created_port__t_a31e66e762767a78baf49f779d598a9cd.html b/ucs2-lib/doc/html/struct_ucs___xrm___default_created_port__t_a31e66e762767a78baf49f779d598a9cd.html
new file mode 100644
index 0000000..7538937
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___default_created_port__t_a31e66e762767a78baf49f779d598a9cd.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_DefaultCreatedPort_t::resource_type</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___default_created_port__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a31e66e762767a78baf49f779d598a9cd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc">Ucs_Xrm_ResourceType_t</a> resource_type</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Type of the INIC resource object. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___default_created_port__t.html">Ucs_Xrm_DefaultCreatedPort_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___default_created_port__t_a58cd72485f642399fb1815f026dbaae7.html b/ucs2-lib/doc/html/struct_ucs___xrm___default_created_port__t_a58cd72485f642399fb1815f026dbaae7.html
new file mode 100644
index 0000000..080a795
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___default_created_port__t_a58cd72485f642399fb1815f026dbaae7.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_DefaultCreatedPort_t::port_type</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___default_created_port__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a58cd72485f642399fb1815f026dbaae7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga50384bb32b088e9cfd50c889ef562015.html#ga50384bb32b088e9cfd50c889ef562015">Ucs_Xrm_PortType_t</a> port_type</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Type of the hardware port. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___default_created_port__t.html">Ucs_Xrm_DefaultCreatedPort_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___default_created_port__t_aae5a12e607d0f782506d9e6ec6179c64.html b/ucs2-lib/doc/html/struct_ucs___xrm___default_created_port__t_aae5a12e607d0f782506d9e6ec6179c64.html
new file mode 100644
index 0000000..7f7d72b
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___default_created_port__t_aae5a12e607d0f782506d9e6ec6179c64.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_DefaultCreatedPort_t::index</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___default_created_port__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="aae5a12e607d0f782506d9e6ec6179c64"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t index</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Port instance identifier. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___default_created_port__t.html">Ucs_Xrm_DefaultCreatedPort_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___dfi_phase_con__t.html b/ucs2-lib/doc/html/struct_ucs___xrm___dfi_phase_con__t.html
new file mode 100644
index 0000000..6655d3b
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___dfi_phase_con__t.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_DfiPhaseCon_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___dfi_phase_con__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Xrm_DfiPhaseCon_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s.html">XRM Referred Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Configuration structure of a DiscreteFrame Isochronous streaming phase connection.
+ <a href="struct_ucs___xrm___dfi_phase_con__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a31e66e762767a78baf49f779d598a9cd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc">Ucs_Xrm_ResourceType_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___dfi_phase_con__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd">resource_type</a></td></tr>
+<tr class="memdesc:a31e66e762767a78baf49f779d598a9cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of the INIC resource object. <a href="#a31e66e762767a78baf49f779d598a9cd"></a><br/></td></tr>
+<tr class="separator:a31e66e762767a78baf49f779d598a9cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ace5ef1fb3bd4337998a8f538645f47ed"><td class="memItemLeft" align="right" valign="top">UCS_XRM_CONST <a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173">Ucs_Xrm_ResObject_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___dfi_phase_con__t_ace5ef1fb3bd4337998a8f538645f47ed.html#ace5ef1fb3bd4337998a8f538645f47ed">socket_in_obj_ptr</a></td></tr>
+<tr class="memdesc:ace5ef1fb3bd4337998a8f538645f47ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference to the INIC resource object that specifies the socket that is the starting point of the link. Must be a socket of type <code>Input</code>. <a href="#ace5ef1fb3bd4337998a8f538645f47ed"></a><br/></td></tr>
+<tr class="separator:ace5ef1fb3bd4337998a8f538645f47ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a21e5760677b48c43c5e4783306819f95"><td class="memItemLeft" align="right" valign="top">UCS_XRM_CONST <a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173">Ucs_Xrm_ResObject_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___dfi_phase_con__t_a21e5760677b48c43c5e4783306819f95.html#a21e5760677b48c43c5e4783306819f95">socket_out_obj_ptr</a></td></tr>
+<tr class="memdesc:a21e5760677b48c43c5e4783306819f95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference to the INIC resource object that specifies the socket that is the ending point of the link. Must be a socket of type <code>Output</code>. <a href="#a21e5760677b48c43c5e4783306819f95"></a><br/></td></tr>
+<tr class="separator:a21e5760677b48c43c5e4783306819f95"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Configuration structure of a DiscreteFrame Isochronous streaming phase connection. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___dfi_phase_con__t.html">Ucs_Xrm_DfiPhaseCon_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___dfi_phase_con__t_a21e5760677b48c43c5e4783306819f95.html b/ucs2-lib/doc/html/struct_ucs___xrm___dfi_phase_con__t_a21e5760677b48c43c5e4783306819f95.html
new file mode 100644
index 0000000..346626a
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___dfi_phase_con__t_a21e5760677b48c43c5e4783306819f95.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_DfiPhaseCon_t::socket_out_obj_ptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___dfi_phase_con__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a21e5760677b48c43c5e4783306819f95"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">UCS_XRM_CONST <a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173">Ucs_Xrm_ResObject_t</a>* socket_out_obj_ptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reference to the INIC resource object that specifies the socket that is the ending point of the link. Must be a socket of type <code>Output</code>. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___dfi_phase_con__t.html">Ucs_Xrm_DfiPhaseCon_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___dfi_phase_con__t_a31e66e762767a78baf49f779d598a9cd.html b/ucs2-lib/doc/html/struct_ucs___xrm___dfi_phase_con__t_a31e66e762767a78baf49f779d598a9cd.html
new file mode 100644
index 0000000..c353026
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___dfi_phase_con__t_a31e66e762767a78baf49f779d598a9cd.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_DfiPhaseCon_t::resource_type</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___dfi_phase_con__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a31e66e762767a78baf49f779d598a9cd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc">Ucs_Xrm_ResourceType_t</a> resource_type</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Type of the INIC resource object. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___dfi_phase_con__t.html">Ucs_Xrm_DfiPhaseCon_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___dfi_phase_con__t_ace5ef1fb3bd4337998a8f538645f47ed.html b/ucs2-lib/doc/html/struct_ucs___xrm___dfi_phase_con__t_ace5ef1fb3bd4337998a8f538645f47ed.html
new file mode 100644
index 0000000..e1cd718
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___dfi_phase_con__t_ace5ef1fb3bd4337998a8f538645f47ed.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_DfiPhaseCon_t::socket_in_obj_ptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___dfi_phase_con__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ace5ef1fb3bd4337998a8f538645f47ed"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">UCS_XRM_CONST <a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173">Ucs_Xrm_ResObject_t</a>* socket_in_obj_ptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reference to the INIC resource object that specifies the socket that is the starting point of the link. Must be a socket of type <code>Input</code>. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___dfi_phase_con__t.html">Ucs_Xrm_DfiPhaseCon_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___init_data__t.html b/ucs2-lib/doc/html/struct_ucs___xrm___init_data__t.html
new file mode 100644
index 0000000..4eda285
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___init_data__t.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_InitData_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Xrm_InitData_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s.html">XRM Referred Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>The initialization structure of the Extended Resource Manager.
+ <a href="struct_ucs___xrm___init_data__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a9497e039c582e7d2804ee470d6812e91"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i_r_m_gae689267958c19afd9f9a097c36d017d3.html#gae689267958c19afd9f9a097c36d017d3">Ucs_Xrm_Most_PortStatusCb_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___init_data__t_a9497e039c582e7d2804ee470d6812e91.html#a9497e039c582e7d2804ee470d6812e91">most_port_status_fptr</a></td></tr>
+<tr class="memdesc:a9497e039c582e7d2804ee470d6812e91"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function that reports streaming-related information for the MOST Network Port, including the state of the port and available streaming bandwidth. <a href="#a9497e039c582e7d2804ee470d6812e91"></a><br/></td></tr>
+<tr class="separator:a9497e039c582e7d2804ee470d6812e91"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7ad953f5414061df43df073ece15e25b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i_r_m_ga8d92898b48eeef24ac44a6e3ebdff460.html#ga8d92898b48eeef24ac44a6e3ebdff460">Ucs_Xrm_CheckUnmuteCb_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___init_data__t_a7ad953f5414061df43df073ece15e25b.html#a7ad953f5414061df43df073ece15e25b">check_unmute_fptr</a></td></tr>
+<tr class="memdesc:a7ad953f5414061df43df073ece15e25b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function that signals the EHC to check the mute pin state of devices before attempting unmute. <a href="#a7ad953f5414061df43df073ece15e25b"></a><br/></td></tr>
+<tr class="separator:a7ad953f5414061df43df073ece15e25b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>The initialization structure of the Extended Resource Manager. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___init_data__t.html">Ucs_Xrm_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___init_data__t_a7ad953f5414061df43df073ece15e25b.html b/ucs2-lib/doc/html/struct_ucs___xrm___init_data__t_a7ad953f5414061df43df073ece15e25b.html
new file mode 100644
index 0000000..425b431
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___init_data__t_a7ad953f5414061df43df073ece15e25b.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_InitData_t::check_unmute_fptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a7ad953f5414061df43df073ece15e25b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i_r_m_ga8d92898b48eeef24ac44a6e3ebdff460.html#ga8d92898b48eeef24ac44a6e3ebdff460">Ucs_Xrm_CheckUnmuteCb_t</a> check_unmute_fptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Callback function that signals the EHC to check the mute pin state of devices before attempting unmute. </p>
+<p>Whenever this callback function is called and the EHC has devices muted by the mute signal (INIC's MUTE pin), the EHC should ensure that the mute pin is not asserted and if so, unmute the corresponding devices. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___init_data__t.html">Ucs_Xrm_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___init_data__t_a9497e039c582e7d2804ee470d6812e91.html b/ucs2-lib/doc/html/struct_ucs___xrm___init_data__t_a9497e039c582e7d2804ee470d6812e91.html
new file mode 100644
index 0000000..5e375bc
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___init_data__t_a9497e039c582e7d2804ee470d6812e91.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_InitData_t::most_port_status_fptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___init_data__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a9497e039c582e7d2804ee470d6812e91"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i_r_m_gae689267958c19afd9f9a097c36d017d3.html#gae689267958c19afd9f9a097c36d017d3">Ucs_Xrm_Most_PortStatusCb_t</a> most_port_status_fptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Callback function that reports streaming-related information for the MOST Network Port, including the state of the port and available streaming bandwidth. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___init_data__t.html">Ucs_Xrm_InitData_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___mlb_port__t.html b/ucs2-lib/doc/html/struct_ucs___xrm___mlb_port__t.html
new file mode 100644
index 0000000..c8e5566
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___mlb_port__t.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_MlbPort_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___mlb_port__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Xrm_MlbPort_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s.html">XRM Referred Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Configuration structure of a MediaLB port.
+ <a href="struct_ucs___xrm___mlb_port__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a31e66e762767a78baf49f779d598a9cd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc">Ucs_Xrm_ResourceType_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___mlb_port__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd">resource_type</a></td></tr>
+<tr class="memdesc:a31e66e762767a78baf49f779d598a9cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of the INIC resource object. <a href="#a31e66e762767a78baf49f779d598a9cd"></a><br/></td></tr>
+<tr class="separator:a31e66e762767a78baf49f779d598a9cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aae5a12e607d0f782506d9e6ec6179c64"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___mlb_port__t_aae5a12e607d0f782506d9e6ec6179c64.html#aae5a12e607d0f782506d9e6ec6179c64">index</a></td></tr>
+<tr class="memdesc:aae5a12e607d0f782506d9e6ec6179c64"><td class="mdescLeft">&#160;</td><td class="mdescRight">MLB port instance. <a href="#aae5a12e607d0f782506d9e6ec6179c64"></a><br/></td></tr>
+<tr class="separator:aae5a12e607d0f782506d9e6ec6179c64"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7b2f976567481f67b381300eb1816c3e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#ga12193f5b8d160e84ad8b9853b0308f63">Ucs_Mlb_ClockConfig_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___mlb_port__t_a7b2f976567481f67b381300eb1816c3e.html#a7b2f976567481f67b381300eb1816c3e">clock_config</a></td></tr>
+<tr class="memdesc:a7b2f976567481f67b381300eb1816c3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clock speed configuration. <a href="#a7b2f976567481f67b381300eb1816c3e"></a><br/></td></tr>
+<tr class="separator:a7b2f976567481f67b381300eb1816c3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Configuration structure of a MediaLB port. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___mlb_port__t.html">Ucs_Xrm_MlbPort_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___mlb_port__t_a31e66e762767a78baf49f779d598a9cd.html b/ucs2-lib/doc/html/struct_ucs___xrm___mlb_port__t_a31e66e762767a78baf49f779d598a9cd.html
new file mode 100644
index 0000000..88408d6
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___mlb_port__t_a31e66e762767a78baf49f779d598a9cd.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_MlbPort_t::resource_type</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___mlb_port__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a31e66e762767a78baf49f779d598a9cd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc">Ucs_Xrm_ResourceType_t</a> resource_type</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Type of the INIC resource object. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___mlb_port__t.html">Ucs_Xrm_MlbPort_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___mlb_port__t_a7b2f976567481f67b381300eb1816c3e.html b/ucs2-lib/doc/html/struct_ucs___xrm___mlb_port__t_a7b2f976567481f67b381300eb1816c3e.html
new file mode 100644
index 0000000..c1369d7
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___mlb_port__t_a7b2f976567481f67b381300eb1816c3e.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_MlbPort_t::clock_config</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___mlb_port__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a7b2f976567481f67b381300eb1816c3e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga12193f5b8d160e84ad8b9853b0308f63.html#ga12193f5b8d160e84ad8b9853b0308f63">Ucs_Mlb_ClockConfig_t</a> clock_config</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Clock speed configuration. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This attribute corresponds with the parameter <code>ClockConfig</code> of the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-MediaLBPortCreate621">INIC.MediaLBPortCreate</a>.</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___mlb_port__t.html">Ucs_Xrm_MlbPort_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___mlb_port__t_aae5a12e607d0f782506d9e6ec6179c64.html b/ucs2-lib/doc/html/struct_ucs___xrm___mlb_port__t_aae5a12e607d0f782506d9e6ec6179c64.html
new file mode 100644
index 0000000..cf2c98f
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___mlb_port__t_aae5a12e607d0f782506d9e6ec6179c64.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_MlbPort_t::index</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___mlb_port__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="aae5a12e607d0f782506d9e6ec6179c64"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t index</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>MLB port instance. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This attribute corresponds with the parameter <code>Index</code> of the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-MediaLBPortCreate621">INIC.MediaLBPortCreate</a>.</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___mlb_port__t.html">Ucs_Xrm_MlbPort_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___mlb_socket__t.html b/ucs2-lib/doc/html/struct_ucs___xrm___mlb_socket__t.html
new file mode 100644
index 0000000..ca96a2b
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___mlb_socket__t.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_MlbSocket_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___mlb_socket__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Xrm_MlbSocket_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s.html">XRM Referred Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Configuration structure of a MediaLB socket.
+ <a href="struct_ucs___xrm___mlb_socket__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a31e66e762767a78baf49f779d598a9cd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc">Ucs_Xrm_ResourceType_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___mlb_socket__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd">resource_type</a></td></tr>
+<tr class="memdesc:a31e66e762767a78baf49f779d598a9cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of the INIC resource object. <a href="#a31e66e762767a78baf49f779d598a9cd"></a><br/></td></tr>
+<tr class="separator:a31e66e762767a78baf49f779d598a9cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a37fe80d7da3769557b97ce02522623f0"><td class="memItemLeft" align="right" valign="top">UCS_XRM_CONST <a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173">Ucs_Xrm_ResObject_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___mlb_socket__t_a37fe80d7da3769557b97ce02522623f0.html#a37fe80d7da3769557b97ce02522623f0">mlb_port_obj_ptr</a></td></tr>
+<tr class="memdesc:a37fe80d7da3769557b97ce02522623f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference to the INIC resource object the socket is attached to. <a href="#a37fe80d7da3769557b97ce02522623f0"></a><br/></td></tr>
+<tr class="separator:a37fe80d7da3769557b97ce02522623f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6fc8b4a0550af42e193df56d3546108e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga28477f727fe10f9d6fd21cfc98a9c115.html#ga28477f727fe10f9d6fd21cfc98a9c115">Ucs_SocketDirection_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___mlb_socket__t_a6fc8b4a0550af42e193df56d3546108e.html#a6fc8b4a0550af42e193df56d3546108e">direction</a></td></tr>
+<tr class="memdesc:a6fc8b4a0550af42e193df56d3546108e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Direction of data stream. <a href="#a6fc8b4a0550af42e193df56d3546108e"></a><br/></td></tr>
+<tr class="separator:a6fc8b4a0550af42e193df56d3546108e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a983b482b6f4a0468e6e76e8a53e848ea"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html#gaf3facaf3378409c31465c68380990b53">Ucs_Mlb_SocketDataType_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___mlb_socket__t_a983b482b6f4a0468e6e76e8a53e848ea.html#a983b482b6f4a0468e6e76e8a53e848ea">data_type</a></td></tr>
+<tr class="memdesc:a983b482b6f4a0468e6e76e8a53e848ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data type. <a href="#a983b482b6f4a0468e6e76e8a53e848ea"></a><br/></td></tr>
+<tr class="separator:a983b482b6f4a0468e6e76e8a53e848ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0008a6d765e7752725ad3dd2eb446033"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___mlb_socket__t_a0008a6d765e7752725ad3dd2eb446033.html#a0008a6d765e7752725ad3dd2eb446033">bandwidth</a></td></tr>
+<tr class="memdesc:a0008a6d765e7752725ad3dd2eb446033"><td class="mdescLeft">&#160;</td><td class="mdescRight">Required socket bandwidth. <a href="#a0008a6d765e7752725ad3dd2eb446033"></a><br/></td></tr>
+<tr class="separator:a0008a6d765e7752725ad3dd2eb446033"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:add5f2565470e3921623c880730abe765"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___mlb_socket__t_add5f2565470e3921623c880730abe765.html#add5f2565470e3921623c880730abe765">channel_address</a></td></tr>
+<tr class="memdesc:add5f2565470e3921623c880730abe765"><td class="mdescLeft">&#160;</td><td class="mdescRight">MLB channel address. <a href="#add5f2565470e3921623c880730abe765"></a><br/></td></tr>
+<tr class="separator:add5f2565470e3921623c880730abe765"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Configuration structure of a MediaLB socket. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___mlb_socket__t.html">Ucs_Xrm_MlbSocket_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___mlb_socket__t_a0008a6d765e7752725ad3dd2eb446033.html b/ucs2-lib/doc/html/struct_ucs___xrm___mlb_socket__t_a0008a6d765e7752725ad3dd2eb446033.html
new file mode 100644
index 0000000..cd803cb
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___mlb_socket__t_a0008a6d765e7752725ad3dd2eb446033.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_MlbSocket_t::bandwidth</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___mlb_socket__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a0008a6d765e7752725ad3dd2eb446033"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t bandwidth</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Required socket bandwidth. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This attribute corresponds with the parameter <code>Bandwidth</code> of the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-MediaLBSocketCreate631">INIC.MediaLBSocketCreate</a>.</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___mlb_socket__t.html">Ucs_Xrm_MlbSocket_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___mlb_socket__t_a31e66e762767a78baf49f779d598a9cd.html b/ucs2-lib/doc/html/struct_ucs___xrm___mlb_socket__t_a31e66e762767a78baf49f779d598a9cd.html
new file mode 100644
index 0000000..a847768
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___mlb_socket__t_a31e66e762767a78baf49f779d598a9cd.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_MlbSocket_t::resource_type</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___mlb_socket__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a31e66e762767a78baf49f779d598a9cd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc">Ucs_Xrm_ResourceType_t</a> resource_type</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Type of the INIC resource object. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___mlb_socket__t.html">Ucs_Xrm_MlbSocket_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___mlb_socket__t_a37fe80d7da3769557b97ce02522623f0.html b/ucs2-lib/doc/html/struct_ucs___xrm___mlb_socket__t_a37fe80d7da3769557b97ce02522623f0.html
new file mode 100644
index 0000000..c001384
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___mlb_socket__t_a37fe80d7da3769557b97ce02522623f0.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_MlbSocket_t::mlb_port_obj_ptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___mlb_socket__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a37fe80d7da3769557b97ce02522623f0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">UCS_XRM_CONST <a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173">Ucs_Xrm_ResObject_t</a>* mlb_port_obj_ptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reference to the INIC resource object the socket is attached to. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___mlb_socket__t.html">Ucs_Xrm_MlbSocket_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___mlb_socket__t_a6fc8b4a0550af42e193df56d3546108e.html b/ucs2-lib/doc/html/struct_ucs___xrm___mlb_socket__t_a6fc8b4a0550af42e193df56d3546108e.html
new file mode 100644
index 0000000..915de90
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___mlb_socket__t_a6fc8b4a0550af42e193df56d3546108e.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_MlbSocket_t::direction</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___mlb_socket__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a6fc8b4a0550af42e193df56d3546108e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga28477f727fe10f9d6fd21cfc98a9c115.html#ga28477f727fe10f9d6fd21cfc98a9c115">Ucs_SocketDirection_t</a> direction</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Direction of data stream. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This attribute corresponds with the parameter <code>Direction</code> of the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-MediaLBSocketCreate631">INIC.MediaLBSocketCreate</a>.</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___mlb_socket__t.html">Ucs_Xrm_MlbSocket_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___mlb_socket__t_a983b482b6f4a0468e6e76e8a53e848ea.html b/ucs2-lib/doc/html/struct_ucs___xrm___mlb_socket__t_a983b482b6f4a0468e6e76e8a53e848ea.html
new file mode 100644
index 0000000..b60bb41
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___mlb_socket__t_a983b482b6f4a0468e6e76e8a53e848ea.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_MlbSocket_t::data_type</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___mlb_socket__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a983b482b6f4a0468e6e76e8a53e848ea"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gaf3facaf3378409c31465c68380990b53.html#gaf3facaf3378409c31465c68380990b53">Ucs_Mlb_SocketDataType_t</a> data_type</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Data type. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This attribute corresponds with the parameter <code>DataType</code> of the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-MediaLBSocketCreate631">INIC.MediaLBSocketCreate</a>.</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___mlb_socket__t.html">Ucs_Xrm_MlbSocket_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___mlb_socket__t_add5f2565470e3921623c880730abe765.html b/ucs2-lib/doc/html/struct_ucs___xrm___mlb_socket__t_add5f2565470e3921623c880730abe765.html
new file mode 100644
index 0000000..74cc35b
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___mlb_socket__t_add5f2565470e3921623c880730abe765.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_MlbSocket_t::channel_address</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___mlb_socket__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="add5f2565470e3921623c880730abe765"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t channel_address</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>MLB channel address. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This attribute corresponds with the parameter <code>ChannelAddress</code> of the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-MediaLBSocketCreate631">INIC.MediaLBSocketCreate</a>.</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___mlb_socket__t.html">Ucs_Xrm_MlbSocket_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___most_socket__t.html b/ucs2-lib/doc/html/struct_ucs___xrm___most_socket__t.html
new file mode 100644
index 0000000..891c513
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___most_socket__t.html
@@ -0,0 +1,140 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_MostSocket_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___most_socket__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Xrm_MostSocket_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s.html">XRM Referred Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Configuration structure of a MOST socket.
+ <a href="struct_ucs___xrm___most_socket__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a31e66e762767a78baf49f779d598a9cd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc">Ucs_Xrm_ResourceType_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___most_socket__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd">resource_type</a></td></tr>
+<tr class="memdesc:a31e66e762767a78baf49f779d598a9cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of the INIC resource object. <a href="#a31e66e762767a78baf49f779d598a9cd"></a><br/></td></tr>
+<tr class="separator:a31e66e762767a78baf49f779d598a9cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3d1f833dbb35db5fed7638006fda4138"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___most_socket__t_a3d1f833dbb35db5fed7638006fda4138.html#a3d1f833dbb35db5fed7638006fda4138">most_port_handle</a></td></tr>
+<tr class="memdesc:a3d1f833dbb35db5fed7638006fda4138"><td class="mdescLeft">&#160;</td><td class="mdescRight">Port resource handle. <a href="#a3d1f833dbb35db5fed7638006fda4138"></a><br/></td></tr>
+<tr class="separator:a3d1f833dbb35db5fed7638006fda4138"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6fc8b4a0550af42e193df56d3546108e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga28477f727fe10f9d6fd21cfc98a9c115.html#ga28477f727fe10f9d6fd21cfc98a9c115">Ucs_SocketDirection_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___most_socket__t_a6fc8b4a0550af42e193df56d3546108e.html#a6fc8b4a0550af42e193df56d3546108e">direction</a></td></tr>
+<tr class="memdesc:a6fc8b4a0550af42e193df56d3546108e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Direction of data stream. <a href="#a6fc8b4a0550af42e193df56d3546108e"></a><br/></td></tr>
+<tr class="separator:a6fc8b4a0550af42e193df56d3546108e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a963061c04c4b780e3f9a11d61746904e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gab29e10223e27331045485facbe4102ee.html#gab29e10223e27331045485facbe4102ee">Ucs_Most_SocketDataType_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___most_socket__t_a963061c04c4b780e3f9a11d61746904e.html#a963061c04c4b780e3f9a11d61746904e">data_type</a></td></tr>
+<tr class="memdesc:a963061c04c4b780e3f9a11d61746904e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data type. <a href="#a963061c04c4b780e3f9a11d61746904e"></a><br/></td></tr>
+<tr class="separator:a963061c04c4b780e3f9a11d61746904e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0008a6d765e7752725ad3dd2eb446033"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___most_socket__t_a0008a6d765e7752725ad3dd2eb446033.html#a0008a6d765e7752725ad3dd2eb446033">bandwidth</a></td></tr>
+<tr class="memdesc:a0008a6d765e7752725ad3dd2eb446033"><td class="mdescLeft">&#160;</td><td class="mdescRight">Required socket bandwidth. <a href="#a0008a6d765e7752725ad3dd2eb446033"></a><br/></td></tr>
+<tr class="separator:a0008a6d765e7752725ad3dd2eb446033"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Configuration structure of a MOST socket. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___most_socket__t.html">Ucs_Xrm_MostSocket_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___most_socket__t_a0008a6d765e7752725ad3dd2eb446033.html b/ucs2-lib/doc/html/struct_ucs___xrm___most_socket__t_a0008a6d765e7752725ad3dd2eb446033.html
new file mode 100644
index 0000000..f2e01f4
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___most_socket__t_a0008a6d765e7752725ad3dd2eb446033.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_MostSocket_t::bandwidth</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___most_socket__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a0008a6d765e7752725ad3dd2eb446033"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t bandwidth</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Required socket bandwidth. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This attribute corresponds with the parameter <code>Bandwidth</code> of the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-MOSTSocketCreate611">INIC.MOSTSocketCreate</a>.</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___most_socket__t.html">Ucs_Xrm_MostSocket_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___most_socket__t_a31e66e762767a78baf49f779d598a9cd.html b/ucs2-lib/doc/html/struct_ucs___xrm___most_socket__t_a31e66e762767a78baf49f779d598a9cd.html
new file mode 100644
index 0000000..2952e50
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___most_socket__t_a31e66e762767a78baf49f779d598a9cd.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_MostSocket_t::resource_type</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___most_socket__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a31e66e762767a78baf49f779d598a9cd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc">Ucs_Xrm_ResourceType_t</a> resource_type</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Type of the INIC resource object. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___most_socket__t.html">Ucs_Xrm_MostSocket_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___most_socket__t_a3d1f833dbb35db5fed7638006fda4138.html b/ucs2-lib/doc/html/struct_ucs___xrm___most_socket__t_a3d1f833dbb35db5fed7638006fda4138.html
new file mode 100644
index 0000000..c986e30
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___most_socket__t_a3d1f833dbb35db5fed7638006fda4138.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_MostSocket_t::most_port_handle</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___most_socket__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a3d1f833dbb35db5fed7638006fda4138"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t most_port_handle</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Port resource handle. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This attribute corresponds with the parameter <code>MOSTPortHandle</code> of the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-MOSTSocketCreate611">INIC.MOSTSocketCreate</a>.</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___most_socket__t.html">Ucs_Xrm_MostSocket_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___most_socket__t_a6fc8b4a0550af42e193df56d3546108e.html b/ucs2-lib/doc/html/struct_ucs___xrm___most_socket__t_a6fc8b4a0550af42e193df56d3546108e.html
new file mode 100644
index 0000000..5850949
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___most_socket__t_a6fc8b4a0550af42e193df56d3546108e.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_MostSocket_t::direction</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___most_socket__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a6fc8b4a0550af42e193df56d3546108e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga28477f727fe10f9d6fd21cfc98a9c115.html#ga28477f727fe10f9d6fd21cfc98a9c115">Ucs_SocketDirection_t</a> direction</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Direction of data stream. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This attribute corresponds with the parameter <code>Direction</code> of the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-MOSTSocketCreate611">INIC.MOSTSocketCreate</a>.</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___most_socket__t.html">Ucs_Xrm_MostSocket_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___most_socket__t_a963061c04c4b780e3f9a11d61746904e.html b/ucs2-lib/doc/html/struct_ucs___xrm___most_socket__t_a963061c04c4b780e3f9a11d61746904e.html
new file mode 100644
index 0000000..fc769d9
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___most_socket__t_a963061c04c4b780e3f9a11d61746904e.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_MostSocket_t::data_type</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___most_socket__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a963061c04c4b780e3f9a11d61746904e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gab29e10223e27331045485facbe4102ee.html#gab29e10223e27331045485facbe4102ee">Ucs_Most_SocketDataType_t</a> data_type</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Data type. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This attribute corresponds with the parameter <code>DataType</code> of the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-MOSTSocketCreate611">INIC.MOSTSocketCreate</a>.</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___most_socket__t.html">Ucs_Xrm_MostSocket_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___qo_s_con__t.html b/ucs2-lib/doc/html/struct_ucs___xrm___qo_s_con__t.html
new file mode 100644
index 0000000..97e38bc
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___qo_s_con__t.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_QoSCon_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___qo_s_con__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Xrm_QoSCon_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s.html">XRM Referred Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Configuration structure for a Quality of Service IP streaming data connection.
+ <a href="struct_ucs___xrm___qo_s_con__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a31e66e762767a78baf49f779d598a9cd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc">Ucs_Xrm_ResourceType_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___qo_s_con__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd">resource_type</a></td></tr>
+<tr class="memdesc:a31e66e762767a78baf49f779d598a9cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of the INIC resource object. <a href="#a31e66e762767a78baf49f779d598a9cd"></a><br/></td></tr>
+<tr class="separator:a31e66e762767a78baf49f779d598a9cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ace5ef1fb3bd4337998a8f538645f47ed"><td class="memItemLeft" align="right" valign="top">UCS_XRM_CONST <a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173">Ucs_Xrm_ResObject_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___qo_s_con__t_ace5ef1fb3bd4337998a8f538645f47ed.html#ace5ef1fb3bd4337998a8f538645f47ed">socket_in_obj_ptr</a></td></tr>
+<tr class="memdesc:ace5ef1fb3bd4337998a8f538645f47ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference to the INIC resource object that specifies the socket that is the starting point of the link. Must be a socket of type <code>Input</code>. <a href="#ace5ef1fb3bd4337998a8f538645f47ed"></a><br/></td></tr>
+<tr class="separator:ace5ef1fb3bd4337998a8f538645f47ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a21e5760677b48c43c5e4783306819f95"><td class="memItemLeft" align="right" valign="top">UCS_XRM_CONST <a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173">Ucs_Xrm_ResObject_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___qo_s_con__t_a21e5760677b48c43c5e4783306819f95.html#a21e5760677b48c43c5e4783306819f95">socket_out_obj_ptr</a></td></tr>
+<tr class="memdesc:a21e5760677b48c43c5e4783306819f95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference to the INIC resource object that specifies the socket that is the ending point of the link. Must be a socket of type <code>Output</code>. <a href="#a21e5760677b48c43c5e4783306819f95"></a><br/></td></tr>
+<tr class="separator:a21e5760677b48c43c5e4783306819f95"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Configuration structure for a Quality of Service IP streaming data connection. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___qo_s_con__t.html">Ucs_Xrm_QoSCon_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___qo_s_con__t_a21e5760677b48c43c5e4783306819f95.html b/ucs2-lib/doc/html/struct_ucs___xrm___qo_s_con__t_a21e5760677b48c43c5e4783306819f95.html
new file mode 100644
index 0000000..e01bee3
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___qo_s_con__t_a21e5760677b48c43c5e4783306819f95.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_QoSCon_t::socket_out_obj_ptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___qo_s_con__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a21e5760677b48c43c5e4783306819f95"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">UCS_XRM_CONST <a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173">Ucs_Xrm_ResObject_t</a>* socket_out_obj_ptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reference to the INIC resource object that specifies the socket that is the ending point of the link. Must be a socket of type <code>Output</code>. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___qo_s_con__t.html">Ucs_Xrm_QoSCon_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___qo_s_con__t_a31e66e762767a78baf49f779d598a9cd.html b/ucs2-lib/doc/html/struct_ucs___xrm___qo_s_con__t_a31e66e762767a78baf49f779d598a9cd.html
new file mode 100644
index 0000000..20db18a
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___qo_s_con__t_a31e66e762767a78baf49f779d598a9cd.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_QoSCon_t::resource_type</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___qo_s_con__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a31e66e762767a78baf49f779d598a9cd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc">Ucs_Xrm_ResourceType_t</a> resource_type</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Type of the INIC resource object. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___qo_s_con__t.html">Ucs_Xrm_QoSCon_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___qo_s_con__t_ace5ef1fb3bd4337998a8f538645f47ed.html b/ucs2-lib/doc/html/struct_ucs___xrm___qo_s_con__t_ace5ef1fb3bd4337998a8f538645f47ed.html
new file mode 100644
index 0000000..bd2fbcb
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___qo_s_con__t_ace5ef1fb3bd4337998a8f538645f47ed.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_QoSCon_t::socket_in_obj_ptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___qo_s_con__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ace5ef1fb3bd4337998a8f538645f47ed"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">UCS_XRM_CONST <a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173">Ucs_Xrm_ResObject_t</a>* socket_in_obj_ptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reference to the INIC resource object that specifies the socket that is the starting point of the link. Must be a socket of type <code>Input</code>. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___qo_s_con__t.html">Ucs_Xrm_QoSCon_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___res_identity__t.html b/ucs2-lib/doc/html/struct_ucs___xrm___res_identity__t.html
new file mode 100644
index 0000000..7cf4a4c
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___res_identity__t.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_ResIdentity_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___res_identity__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Xrm_ResIdentity_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s.html">XRM Referred Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Resources Identity from user point of view.
+ <a href="struct_ucs___xrm___res_identity__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a4fe7fcd3cdb160c239e65543ac025953"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173">Ucs_Xrm_ResObject_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___res_identity__t_a4fe7fcd3cdb160c239e65543ac025953.html#a4fe7fcd3cdb160c239e65543ac025953">resource_store</a></td></tr>
+<tr class="memdesc:a4fe7fcd3cdb160c239e65543ac025953"><td class="mdescLeft">&#160;</td><td class="mdescRight">Result code. <a href="#a4fe7fcd3cdb160c239e65543ac025953"></a><br/></td></tr>
+<tr class="separator:a4fe7fcd3cdb160c239e65543ac025953"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab557e7d7735054f8f7d8cf576d4521c3"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___res_identity__t_ab557e7d7735054f8f7d8cf576d4521c3.html#ab557e7d7735054f8f7d8cf576d4521c3">resource_id</a></td></tr>
+<tr class="memdesc:ab557e7d7735054f8f7d8cf576d4521c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Result code. <a href="#ab557e7d7735054f8f7d8cf576d4521c3"></a><br/></td></tr>
+<tr class="separator:ab557e7d7735054f8f7d8cf576d4521c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Resources Identity from user point of view. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___res_identity__t.html">Ucs_Xrm_ResIdentity_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___res_identity__t_a4fe7fcd3cdb160c239e65543ac025953.html b/ucs2-lib/doc/html/struct_ucs___xrm___res_identity__t_a4fe7fcd3cdb160c239e65543ac025953.html
new file mode 100644
index 0000000..22419e1
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___res_identity__t_a4fe7fcd3cdb160c239e65543ac025953.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_ResIdentity_t::resource_store</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___res_identity__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a4fe7fcd3cdb160c239e65543ac025953"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173">Ucs_Xrm_ResObject_t</a>* resource_store</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Result code. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___res_identity__t.html">Ucs_Xrm_ResIdentity_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___res_identity__t_ab557e7d7735054f8f7d8cf576d4521c3.html b/ucs2-lib/doc/html/struct_ucs___xrm___res_identity__t_ab557e7d7735054f8f7d8cf576d4521c3.html
new file mode 100644
index 0000000..26e9b18
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___res_identity__t_ab557e7d7735054f8f7d8cf576d4521c3.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_ResIdentity_t::resource_id</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___res_identity__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ab557e7d7735054f8f7d8cf576d4521c3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t resource_id</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Result code. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___res_identity__t.html">Ucs_Xrm_ResIdentity_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___result__t.html b/ucs2-lib/doc/html/struct_ucs___xrm___result__t.html
new file mode 100644
index 0000000..aa6efab
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___result__t.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_Result_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___result__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Xrm_Result_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s.html">XRM Referred Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Result structure of the Extended Resource Manager.
+ <a href="struct_ucs___xrm___result__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a7d575938c9e5eed9032435e39b376e90"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#ga60bd3f9fa02e15fb8841236470502939">Ucs_Xrm_ResultCode_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___result__t_a7d575938c9e5eed9032435e39b376e90.html#a7d575938c9e5eed9032435e39b376e90">code</a></td></tr>
+<tr class="memdesc:a7d575938c9e5eed9032435e39b376e90"><td class="mdescLeft">&#160;</td><td class="mdescRight">Result code. <a href="#a7d575938c9e5eed9032435e39b376e90"></a><br/></td></tr>
+<tr class="separator:a7d575938c9e5eed9032435e39b376e90"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac704c276d74638909521f29cc722c8db"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_ucs___xrm___result_details__t.html">Ucs_Xrm_ResultDetails_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___result__t_ac704c276d74638909521f29cc722c8db.html#ac704c276d74638909521f29cc722c8db">details</a></td></tr>
+<tr class="memdesc:ac704c276d74638909521f29cc722c8db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Detailed information on the returned result. <a href="#ac704c276d74638909521f29cc722c8db"></a><br/></td></tr>
+<tr class="separator:ac704c276d74638909521f29cc722c8db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Result structure of the Extended Resource Manager. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___result__t.html">Ucs_Xrm_Result_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___result__t_a7d575938c9e5eed9032435e39b376e90.html b/ucs2-lib/doc/html/struct_ucs___xrm___result__t_a7d575938c9e5eed9032435e39b376e90.html
new file mode 100644
index 0000000..3970e68
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___result__t_a7d575938c9e5eed9032435e39b376e90.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_Result_t::code</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___result__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a7d575938c9e5eed9032435e39b376e90"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga60bd3f9fa02e15fb8841236470502939.html#ga60bd3f9fa02e15fb8841236470502939">Ucs_Xrm_ResultCode_t</a> code</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Result code. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___result__t.html">Ucs_Xrm_Result_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___result__t_ac704c276d74638909521f29cc722c8db.html b/ucs2-lib/doc/html/struct_ucs___xrm___result__t_ac704c276d74638909521f29cc722c8db.html
new file mode 100644
index 0000000..ac65f31
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___result__t_ac704c276d74638909521f29cc722c8db.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_Result_t::details</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___result__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ac704c276d74638909521f29cc722c8db"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_ucs___xrm___result_details__t.html">Ucs_Xrm_ResultDetails_t</a> details</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Detailed information on the returned result. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___result__t.html">Ucs_Xrm_Result_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___result_details__t.html b/ucs2-lib/doc/html/struct_ucs___xrm___result_details__t.html
new file mode 100644
index 0000000..61feaf8
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___result_details__t.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_ResultDetails_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___result_details__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Xrm_ResultDetails_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s.html">XRM Referred Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Detailed information used for Extended Resource Manager results.
+ <a href="struct_ucs___xrm___result_details__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a31e66e762767a78baf49f779d598a9cd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc">Ucs_Xrm_ResourceType_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___result_details__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd">resource_type</a></td></tr>
+<tr class="memdesc:a31e66e762767a78baf49f779d598a9cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specifies the INIC resource type for which the result has been returned. <a href="#a31e66e762767a78baf49f779d598a9cd"></a><br/></td></tr>
+<tr class="separator:a31e66e762767a78baf49f779d598a9cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a41ee1e9319711802cf5d79a2be7adcbf"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___result_details__t_a41ee1e9319711802cf5d79a2be7adcbf.html#a41ee1e9319711802cf5d79a2be7adcbf">resource_index</a></td></tr>
+<tr class="memdesc:a41ee1e9319711802cf5d79a2be7adcbf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specifies the table index of the resource object for which the result has been returned. <a href="#a41ee1e9319711802cf5d79a2be7adcbf"></a><br/></td></tr>
+<tr class="separator:a41ee1e9319711802cf5d79a2be7adcbf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4cb5ea6dd91baf049cf7d682202df0f4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga80967b5f9bca0e603511f6ae4f8ac80d.html#ga80967b5f9bca0e603511f6ae4f8ac80d">Ucs_Xrm_ResultType_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___result_details__t_a4cb5ea6dd91baf049cf7d682202df0f4.html#a4cb5ea6dd91baf049cf7d682202df0f4">result_type</a></td></tr>
+<tr class="memdesc:a4cb5ea6dd91baf049cf7d682202df0f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specifies the type of the current asynchronous result. <a href="#a4cb5ea6dd91baf049cf7d682202df0f4"></a><br/></td></tr>
+<tr class="separator:a4cb5ea6dd91baf049cf7d682202df0f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aee65ac620e16fd7b0fe4135514394901"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___result_details__t_aee65ac620e16fd7b0fe4135514394901.html#aee65ac620e16fd7b0fe4135514394901">int_result</a></td></tr>
+<tr class="memdesc:aee65ac620e16fd7b0fe4135514394901"><td class="mdescLeft">&#160;</td><td class="mdescRight">Holds the internal MNS results. <a href="#aee65ac620e16fd7b0fe4135514394901"></a><br/></td></tr>
+<tr class="separator:aee65ac620e16fd7b0fe4135514394901"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac8f7bd459f5052601dbbab267d9d8067"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_ucs___std_result__t.html">Ucs_StdResult_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___result_details__t_ac8f7bd459f5052601dbbab267d9d8067.html#ac8f7bd459f5052601dbbab267d9d8067">inic_result</a></td></tr>
+<tr class="memdesc:ac8f7bd459f5052601dbbab267d9d8067"><td class="mdescLeft">&#160;</td><td class="mdescRight">Holds the INIC results. <a href="#ac8f7bd459f5052601dbbab267d9d8067"></a><br/></td></tr>
+<tr class="separator:ac8f7bd459f5052601dbbab267d9d8067"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abee2d1d2c9eebcbc9da920664e9eb248"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#gac5aa79eb466a98f645c0302f402294d6">Ucs_MsgTxStatus_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___result_details__t_abee2d1d2c9eebcbc9da920664e9eb248.html#abee2d1d2c9eebcbc9da920664e9eb248">tx_result</a></td></tr>
+<tr class="memdesc:abee2d1d2c9eebcbc9da920664e9eb248"><td class="mdescLeft">&#160;</td><td class="mdescRight">Holds the transmission error information. <a href="#abee2d1d2c9eebcbc9da920664e9eb248"></a><br/></td></tr>
+<tr class="separator:abee2d1d2c9eebcbc9da920664e9eb248"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Detailed information used for Extended Resource Manager results. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___result_details__t.html">Ucs_Xrm_ResultDetails_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___result_details__t_a31e66e762767a78baf49f779d598a9cd.html b/ucs2-lib/doc/html/struct_ucs___xrm___result_details__t_a31e66e762767a78baf49f779d598a9cd.html
new file mode 100644
index 0000000..ac0ec64
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___result_details__t_a31e66e762767a78baf49f779d598a9cd.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_ResultDetails_t::resource_type</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___result_details__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a31e66e762767a78baf49f779d598a9cd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc">Ucs_Xrm_ResourceType_t</a> resource_type</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Specifies the INIC resource type for which the result has been returned. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___result_details__t.html">Ucs_Xrm_ResultDetails_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___result_details__t_a41ee1e9319711802cf5d79a2be7adcbf.html b/ucs2-lib/doc/html/struct_ucs___xrm___result_details__t_a41ee1e9319711802cf5d79a2be7adcbf.html
new file mode 100644
index 0000000..485b4a8
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___result_details__t_a41ee1e9319711802cf5d79a2be7adcbf.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_ResultDetails_t::resource_index</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___result_details__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a41ee1e9319711802cf5d79a2be7adcbf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t resource_index</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Specifies the table index of the resource object for which the result has been returned. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___result_details__t.html">Ucs_Xrm_ResultDetails_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___result_details__t_a4cb5ea6dd91baf049cf7d682202df0f4.html b/ucs2-lib/doc/html/struct_ucs___xrm___result_details__t_a4cb5ea6dd91baf049cf7d682202df0f4.html
new file mode 100644
index 0000000..cd96f8b
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___result_details__t_a4cb5ea6dd91baf049cf7d682202df0f4.html
@@ -0,0 +1,133 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_ResultDetails_t::result_type</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___result_details__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a4cb5ea6dd91baf049cf7d682202df0f4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga80967b5f9bca0e603511f6ae4f8ac80d.html#ga80967b5f9bca0e603511f6ae4f8ac80d">Ucs_Xrm_ResultType_t</a> result_type</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Specifies the type of the current asynchronous result. </p>
+<p>The following briefly describes the different types of results available:</p>
+<ul>
+<li><b>UCS_XRM_RESULT_TYPE_INT:</b> internal results, typically standard return codes of MNS used for synchronous response. <br/>
+ Refer to <em>int_result</em> to get the results.</li>
+<li><b>UCS_XRM_RESULT_TYPE_TGT:</b> target results, typically INIC function-specific error from target device. <br/>
+ Refer to <em>inic_result</em> to get the results.</li>
+<li><b>UCS_XRM_RESULT_TYPE_TX:</b> transmission results, typically transmission error on the MOST network. <br/>
+ Refer to <em>tx_result</em> to get the results. </li>
+</ul>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___result_details__t.html">Ucs_Xrm_ResultDetails_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___result_details__t_abee2d1d2c9eebcbc9da920664e9eb248.html b/ucs2-lib/doc/html/struct_ucs___xrm___result_details__t_abee2d1d2c9eebcbc9da920664e9eb248.html
new file mode 100644
index 0000000..d92853e
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___result_details__t_abee2d1d2c9eebcbc9da920664e9eb248.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_ResultDetails_t::tx_result</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___result_details__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="abee2d1d2c9eebcbc9da920664e9eb248"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___t_r_a_c_e___t_y_p_e_s_gac5aa79eb466a98f645c0302f402294d6.html#gac5aa79eb466a98f645c0302f402294d6">Ucs_MsgTxStatus_t</a> tx_result</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Holds the transmission error information. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___result_details__t.html">Ucs_Xrm_ResultDetails_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___result_details__t_ac8f7bd459f5052601dbbab267d9d8067.html b/ucs2-lib/doc/html/struct_ucs___xrm___result_details__t_ac8f7bd459f5052601dbbab267d9d8067.html
new file mode 100644
index 0000000..d25a624
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___result_details__t_ac8f7bd459f5052601dbbab267d9d8067.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_ResultDetails_t::inic_result</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___result_details__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ac8f7bd459f5052601dbbab267d9d8067"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="struct_ucs___std_result__t.html">Ucs_StdResult_t</a> inic_result</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Holds the INIC results. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___result_details__t.html">Ucs_Xrm_ResultDetails_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___result_details__t_aee65ac620e16fd7b0fe4135514394901.html b/ucs2-lib/doc/html/struct_ucs___xrm___result_details__t_aee65ac620e16fd7b0fe4135514394901.html
new file mode 100644
index 0000000..10eb832
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___result_details__t_aee65ac620e16fd7b0fe4135514394901.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_ResultDetails_t::int_result</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___result_details__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="aee65ac620e16fd7b0fe4135514394901"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a> int_result</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Holds the internal MNS results. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___result_details__t.html">Ucs_Xrm_ResultDetails_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___rmck_port__t.html b/ucs2-lib/doc/html/struct_ucs___xrm___rmck_port__t.html
new file mode 100644
index 0000000..c03111b
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___rmck_port__t.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_RmckPort_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___rmck_port__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Xrm_RmckPort_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s.html">XRM Referred Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Configuration structure of a RMCK port.
+ <a href="struct_ucs___xrm___rmck_port__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a31e66e762767a78baf49f779d598a9cd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc">Ucs_Xrm_ResourceType_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___rmck_port__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd">resource_type</a></td></tr>
+<tr class="memdesc:a31e66e762767a78baf49f779d598a9cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of the INIC resource object. <a href="#a31e66e762767a78baf49f779d598a9cd"></a><br/></td></tr>
+<tr class="separator:a31e66e762767a78baf49f779d598a9cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aae5a12e607d0f782506d9e6ec6179c64"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___rmck_port__t_aae5a12e607d0f782506d9e6ec6179c64.html#aae5a12e607d0f782506d9e6ec6179c64">index</a></td></tr>
+<tr class="memdesc:aae5a12e607d0f782506d9e6ec6179c64"><td class="mdescLeft">&#160;</td><td class="mdescRight">RMCK Port instance. <a href="#aae5a12e607d0f782506d9e6ec6179c64"></a><br/></td></tr>
+<tr class="separator:aae5a12e607d0f782506d9e6ec6179c64"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abb3d396baa2a9ee33f499bf58c7ca8de"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga793fd94e2e48ff7a7fce092e6e0039e4.html#ga793fd94e2e48ff7a7fce092e6e0039e4">Ucs_Rmck_PortClockSource_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___rmck_port__t_abb3d396baa2a9ee33f499bf58c7ca8de.html#abb3d396baa2a9ee33f499bf58c7ca8de">clock_source</a></td></tr>
+<tr class="memdesc:abb3d396baa2a9ee33f499bf58c7ca8de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Source of the RMCK clock. <a href="#abb3d396baa2a9ee33f499bf58c7ca8de"></a><br/></td></tr>
+<tr class="separator:abb3d396baa2a9ee33f499bf58c7ca8de"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a43e498c160eab1409e0ebdeabe62d31b"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___rmck_port__t_a43e498c160eab1409e0ebdeabe62d31b.html#a43e498c160eab1409e0ebdeabe62d31b">divisor</a></td></tr>
+<tr class="memdesc:a43e498c160eab1409e0ebdeabe62d31b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Divisor of the clock source. <a href="#a43e498c160eab1409e0ebdeabe62d31b"></a><br/></td></tr>
+<tr class="separator:a43e498c160eab1409e0ebdeabe62d31b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Configuration structure of a RMCK port. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___rmck_port__t.html">Ucs_Xrm_RmckPort_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___rmck_port__t_a31e66e762767a78baf49f779d598a9cd.html b/ucs2-lib/doc/html/struct_ucs___xrm___rmck_port__t_a31e66e762767a78baf49f779d598a9cd.html
new file mode 100644
index 0000000..328d76e
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___rmck_port__t_a31e66e762767a78baf49f779d598a9cd.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_RmckPort_t::resource_type</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___rmck_port__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a31e66e762767a78baf49f779d598a9cd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc">Ucs_Xrm_ResourceType_t</a> resource_type</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Type of the INIC resource object. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___rmck_port__t.html">Ucs_Xrm_RmckPort_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___rmck_port__t_a43e498c160eab1409e0ebdeabe62d31b.html b/ucs2-lib/doc/html/struct_ucs___xrm___rmck_port__t_a43e498c160eab1409e0ebdeabe62d31b.html
new file mode 100644
index 0000000..f1430c2
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___rmck_port__t_a43e498c160eab1409e0ebdeabe62d31b.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_RmckPort_t::divisor</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___rmck_port__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a43e498c160eab1409e0ebdeabe62d31b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t divisor</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Divisor of the clock source. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This attribute corresponds with the parameter <code>Divisor</code> of the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-RMCKPortCreate6A1">INIC.RMCKPortCreate</a>.</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___rmck_port__t.html">Ucs_Xrm_RmckPort_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___rmck_port__t_aae5a12e607d0f782506d9e6ec6179c64.html b/ucs2-lib/doc/html/struct_ucs___xrm___rmck_port__t_aae5a12e607d0f782506d9e6ec6179c64.html
new file mode 100644
index 0000000..e0ce3ab
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___rmck_port__t_aae5a12e607d0f782506d9e6ec6179c64.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_RmckPort_t::index</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___rmck_port__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="aae5a12e607d0f782506d9e6ec6179c64"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t index</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>RMCK Port instance. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This attribute corresponds with the parameter <code>Index</code> of the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-RMCKPortCreate6A1">INIC.RMCKPortCreate</a>.</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___rmck_port__t.html">Ucs_Xrm_RmckPort_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___rmck_port__t_abb3d396baa2a9ee33f499bf58c7ca8de.html b/ucs2-lib/doc/html/struct_ucs___xrm___rmck_port__t_abb3d396baa2a9ee33f499bf58c7ca8de.html
new file mode 100644
index 0000000..7e86c0a
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___rmck_port__t_abb3d396baa2a9ee33f499bf58c7ca8de.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_RmckPort_t::clock_source</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___rmck_port__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="abb3d396baa2a9ee33f499bf58c7ca8de"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga793fd94e2e48ff7a7fce092e6e0039e4.html#ga793fd94e2e48ff7a7fce092e6e0039e4">Ucs_Rmck_PortClockSource_t</a> clock_source</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Source of the RMCK clock. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This attribute corresponds with the parameter <code>ClockSource</code> of the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-RMCKPortCreate6A1">INIC.RMCKPortCreate</a>.</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___rmck_port__t.html">Ucs_Xrm_RmckPort_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___splitter__t.html b/ucs2-lib/doc/html/struct_ucs___xrm___splitter__t.html
new file mode 100644
index 0000000..d938b24
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___splitter__t.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_Splitter_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___splitter__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Xrm_Splitter_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s.html">XRM Referred Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Configuration structure of a splitter resource.
+ <a href="struct_ucs___xrm___splitter__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a31e66e762767a78baf49f779d598a9cd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc">Ucs_Xrm_ResourceType_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___splitter__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd">resource_type</a></td></tr>
+<tr class="memdesc:a31e66e762767a78baf49f779d598a9cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of the INIC resource object. <a href="#a31e66e762767a78baf49f779d598a9cd"></a><br/></td></tr>
+<tr class="separator:a31e66e762767a78baf49f779d598a9cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ace5ef1fb3bd4337998a8f538645f47ed"><td class="memItemLeft" align="right" valign="top">UCS_XRM_CONST <a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173">Ucs_Xrm_ResObject_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___splitter__t_ace5ef1fb3bd4337998a8f538645f47ed.html#ace5ef1fb3bd4337998a8f538645f47ed">socket_in_obj_ptr</a></td></tr>
+<tr class="memdesc:ace5ef1fb3bd4337998a8f538645f47ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference to the INIC resource object that specifies the synchronous socket. <a href="#ace5ef1fb3bd4337998a8f538645f47ed"></a><br/></td></tr>
+<tr class="separator:ace5ef1fb3bd4337998a8f538645f47ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3d1f833dbb35db5fed7638006fda4138"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___splitter__t_a3d1f833dbb35db5fed7638006fda4138.html#a3d1f833dbb35db5fed7638006fda4138">most_port_handle</a></td></tr>
+<tr class="memdesc:a3d1f833dbb35db5fed7638006fda4138"><td class="mdescLeft">&#160;</td><td class="mdescRight">Port resource handle. <a href="#a3d1f833dbb35db5fed7638006fda4138"></a><br/></td></tr>
+<tr class="separator:a3d1f833dbb35db5fed7638006fda4138"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a155bb95b36c82e42f52872c92d49e102"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___splitter__t_a155bb95b36c82e42f52872c92d49e102.html#a155bb95b36c82e42f52872c92d49e102">bytes_per_frame</a></td></tr>
+<tr class="memdesc:a155bb95b36c82e42f52872c92d49e102"><td class="mdescLeft">&#160;</td><td class="mdescRight">Total number of data bytes to be transferred each MOST network frame. <a href="#a155bb95b36c82e42f52872c92d49e102"></a><br/></td></tr>
+<tr class="separator:a155bb95b36c82e42f52872c92d49e102"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Configuration structure of a splitter resource. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___splitter__t.html">Ucs_Xrm_Splitter_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___splitter__t_a155bb95b36c82e42f52872c92d49e102.html b/ucs2-lib/doc/html/struct_ucs___xrm___splitter__t_a155bb95b36c82e42f52872c92d49e102.html
new file mode 100644
index 0000000..c25a17d
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___splitter__t_a155bb95b36c82e42f52872c92d49e102.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_Splitter_t::bytes_per_frame</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___splitter__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a155bb95b36c82e42f52872c92d49e102"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t bytes_per_frame</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Total number of data bytes to be transferred each MOST network frame. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This attribute corresponds with the parameter <code>BytesPerFrame</code> of the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-SplitterCreate911">INIC.SplitterCreate</a>.</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___splitter__t.html">Ucs_Xrm_Splitter_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___splitter__t_a31e66e762767a78baf49f779d598a9cd.html b/ucs2-lib/doc/html/struct_ucs___xrm___splitter__t_a31e66e762767a78baf49f779d598a9cd.html
new file mode 100644
index 0000000..6aeef28
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___splitter__t_a31e66e762767a78baf49f779d598a9cd.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_Splitter_t::resource_type</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___splitter__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a31e66e762767a78baf49f779d598a9cd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc">Ucs_Xrm_ResourceType_t</a> resource_type</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Type of the INIC resource object. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___splitter__t.html">Ucs_Xrm_Splitter_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___splitter__t_a3d1f833dbb35db5fed7638006fda4138.html b/ucs2-lib/doc/html/struct_ucs___xrm___splitter__t_a3d1f833dbb35db5fed7638006fda4138.html
new file mode 100644
index 0000000..9a0c5e1
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___splitter__t_a3d1f833dbb35db5fed7638006fda4138.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_Splitter_t::most_port_handle</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___splitter__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a3d1f833dbb35db5fed7638006fda4138"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t most_port_handle</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Port resource handle. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This attribute corresponds with the parameter <code>MOSTPortHandle</code> of the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-SplitterCreate911">INIC.SplitterCreate</a>.</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___splitter__t.html">Ucs_Xrm_Splitter_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___splitter__t_ace5ef1fb3bd4337998a8f538645f47ed.html b/ucs2-lib/doc/html/struct_ucs___xrm___splitter__t_ace5ef1fb3bd4337998a8f538645f47ed.html
new file mode 100644
index 0000000..b5cf53c
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___splitter__t_ace5ef1fb3bd4337998a8f538645f47ed.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_Splitter_t::socket_in_obj_ptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___splitter__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ace5ef1fb3bd4337998a8f538645f47ed"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">UCS_XRM_CONST <a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173">Ucs_Xrm_ResObject_t</a>* socket_in_obj_ptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reference to the INIC resource object that specifies the synchronous socket. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___splitter__t.html">Ucs_Xrm_Splitter_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___strm_port__t.html b/ucs2-lib/doc/html/struct_ucs___xrm___strm_port__t.html
new file mode 100644
index 0000000..9d381bf
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___strm_port__t.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_StrmPort_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___strm_port__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Xrm_StrmPort_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s.html">XRM Referred Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Configuration structure of a streaming port.
+ <a href="struct_ucs___xrm___strm_port__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a31e66e762767a78baf49f779d598a9cd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc">Ucs_Xrm_ResourceType_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___strm_port__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd">resource_type</a></td></tr>
+<tr class="memdesc:a31e66e762767a78baf49f779d598a9cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of the INIC resource object. <a href="#a31e66e762767a78baf49f779d598a9cd"></a><br/></td></tr>
+<tr class="separator:a31e66e762767a78baf49f779d598a9cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aae5a12e607d0f782506d9e6ec6179c64"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___strm_port__t_aae5a12e607d0f782506d9e6ec6179c64.html#aae5a12e607d0f782506d9e6ec6179c64">index</a></td></tr>
+<tr class="memdesc:aae5a12e607d0f782506d9e6ec6179c64"><td class="mdescLeft">&#160;</td><td class="mdescRight">Streaming Port instance. <a href="#aae5a12e607d0f782506d9e6ec6179c64"></a><br/></td></tr>
+<tr class="separator:aae5a12e607d0f782506d9e6ec6179c64"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a62dd690bdc5ee223e9b91014df94614e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#ga0e856884fa1c7908c59718da0f396484">Ucs_Stream_PortClockConfig_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___strm_port__t_a62dd690bdc5ee223e9b91014df94614e.html#a62dd690bdc5ee223e9b91014df94614e">clock_config</a></td></tr>
+<tr class="memdesc:a62dd690bdc5ee223e9b91014df94614e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clock speed configuration. <a href="#a62dd690bdc5ee223e9b91014df94614e"></a><br/></td></tr>
+<tr class="separator:a62dd690bdc5ee223e9b91014df94614e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a924dbd8d86d71e043a36523760c368b4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga02741bef1059621aaf6cf4fa956cfccf.html#ga02741bef1059621aaf6cf4fa956cfccf">Ucs_Stream_PortDataAlign_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___strm_port__t_a924dbd8d86d71e043a36523760c368b4.html#a924dbd8d86d71e043a36523760c368b4">data_alignment</a></td></tr>
+<tr class="memdesc:a924dbd8d86d71e043a36523760c368b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Alignment of the data bytes. <a href="#a924dbd8d86d71e043a36523760c368b4"></a><br/></td></tr>
+<tr class="separator:a924dbd8d86d71e043a36523760c368b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Configuration structure of a streaming port. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___strm_port__t.html">Ucs_Xrm_StrmPort_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___strm_port__t_a31e66e762767a78baf49f779d598a9cd.html b/ucs2-lib/doc/html/struct_ucs___xrm___strm_port__t_a31e66e762767a78baf49f779d598a9cd.html
new file mode 100644
index 0000000..4832311
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___strm_port__t_a31e66e762767a78baf49f779d598a9cd.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_StrmPort_t::resource_type</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___strm_port__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a31e66e762767a78baf49f779d598a9cd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc">Ucs_Xrm_ResourceType_t</a> resource_type</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Type of the INIC resource object. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___strm_port__t.html">Ucs_Xrm_StrmPort_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___strm_port__t_a62dd690bdc5ee223e9b91014df94614e.html b/ucs2-lib/doc/html/struct_ucs___xrm___strm_port__t_a62dd690bdc5ee223e9b91014df94614e.html
new file mode 100644
index 0000000..ce78da4
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___strm_port__t_a62dd690bdc5ee223e9b91014df94614e.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_StrmPort_t::clock_config</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___strm_port__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a62dd690bdc5ee223e9b91014df94614e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga0e856884fa1c7908c59718da0f396484.html#ga0e856884fa1c7908c59718da0f396484">Ucs_Stream_PortClockConfig_t</a> clock_config</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Clock speed configuration. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This attribute corresponds with the parameter <code>ClockConfig</code> of the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-StreamPortCreate681">INIC.StreamPortCreate</a>.</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___strm_port__t.html">Ucs_Xrm_StrmPort_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___strm_port__t_a924dbd8d86d71e043a36523760c368b4.html b/ucs2-lib/doc/html/struct_ucs___xrm___strm_port__t_a924dbd8d86d71e043a36523760c368b4.html
new file mode 100644
index 0000000..6ed6875
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___strm_port__t_a924dbd8d86d71e043a36523760c368b4.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_StrmPort_t::data_alignment</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___strm_port__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a924dbd8d86d71e043a36523760c368b4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga02741bef1059621aaf6cf4fa956cfccf.html#ga02741bef1059621aaf6cf4fa956cfccf">Ucs_Stream_PortDataAlign_t</a> data_alignment</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Alignment of the data bytes. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This attribute corresponds with the parameter <code>DataAlignment</code> of the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-StreamPortCreate681">INIC.StreamPortCreate</a>.</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___strm_port__t.html">Ucs_Xrm_StrmPort_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___strm_port__t_aae5a12e607d0f782506d9e6ec6179c64.html b/ucs2-lib/doc/html/struct_ucs___xrm___strm_port__t_aae5a12e607d0f782506d9e6ec6179c64.html
new file mode 100644
index 0000000..5527af9
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___strm_port__t_aae5a12e607d0f782506d9e6ec6179c64.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_StrmPort_t::index</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___strm_port__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="aae5a12e607d0f782506d9e6ec6179c64"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t index</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Streaming Port instance. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This attribute corresponds with the parameter <code>Index</code> of the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-StreamPortCreate681">INIC.StreamPortCreate</a>.</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___strm_port__t.html">Ucs_Xrm_StrmPort_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___strm_socket__t.html b/ucs2-lib/doc/html/struct_ucs___xrm___strm_socket__t.html
new file mode 100644
index 0000000..8e852e2
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___strm_socket__t.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_StrmSocket_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___strm_socket__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Xrm_StrmSocket_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s.html">XRM Referred Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Configuration structure of a streaming data socket.
+ <a href="struct_ucs___xrm___strm_socket__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a31e66e762767a78baf49f779d598a9cd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc">Ucs_Xrm_ResourceType_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___strm_socket__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd">resource_type</a></td></tr>
+<tr class="memdesc:a31e66e762767a78baf49f779d598a9cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of the INIC resource object. <a href="#a31e66e762767a78baf49f779d598a9cd"></a><br/></td></tr>
+<tr class="separator:a31e66e762767a78baf49f779d598a9cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2938957a0791aa899aaedcca5b8c0405"><td class="memItemLeft" align="right" valign="top">UCS_XRM_CONST <a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173">Ucs_Xrm_ResObject_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___strm_socket__t_a2938957a0791aa899aaedcca5b8c0405.html#a2938957a0791aa899aaedcca5b8c0405">stream_port_obj_ptr</a></td></tr>
+<tr class="memdesc:a2938957a0791aa899aaedcca5b8c0405"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference to the INIC resource object the socket is attached to. <a href="#a2938957a0791aa899aaedcca5b8c0405"></a><br/></td></tr>
+<tr class="separator:a2938957a0791aa899aaedcca5b8c0405"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6fc8b4a0550af42e193df56d3546108e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga28477f727fe10f9d6fd21cfc98a9c115.html#ga28477f727fe10f9d6fd21cfc98a9c115">Ucs_SocketDirection_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___strm_socket__t_a6fc8b4a0550af42e193df56d3546108e.html#a6fc8b4a0550af42e193df56d3546108e">direction</a></td></tr>
+<tr class="memdesc:a6fc8b4a0550af42e193df56d3546108e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Direction of the data stream. <a href="#a6fc8b4a0550af42e193df56d3546108e"></a><br/></td></tr>
+<tr class="separator:a6fc8b4a0550af42e193df56d3546108e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a9618dfa6b3de3a36d0392911a4d421"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gae12684f1b74844d622e59da79f1a23f8.html#gae12684f1b74844d622e59da79f1a23f8">Ucs_Stream_SocketDataType_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___strm_socket__t_a5a9618dfa6b3de3a36d0392911a4d421.html#a5a9618dfa6b3de3a36d0392911a4d421">data_type</a></td></tr>
+<tr class="memdesc:a5a9618dfa6b3de3a36d0392911a4d421"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data type. <a href="#a5a9618dfa6b3de3a36d0392911a4d421"></a><br/></td></tr>
+<tr class="separator:a5a9618dfa6b3de3a36d0392911a4d421"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0008a6d765e7752725ad3dd2eb446033"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___strm_socket__t_a0008a6d765e7752725ad3dd2eb446033.html#a0008a6d765e7752725ad3dd2eb446033">bandwidth</a></td></tr>
+<tr class="memdesc:a0008a6d765e7752725ad3dd2eb446033"><td class="mdescLeft">&#160;</td><td class="mdescRight">Required socket bandwidth in bytes. <a href="#a0008a6d765e7752725ad3dd2eb446033"></a><br/></td></tr>
+<tr class="separator:a0008a6d765e7752725ad3dd2eb446033"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab9430187fbd36c83ef163a19dcdd735c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gaadbd9007127f39c3c257040adf063d07.html#gaadbd9007127f39c3c257040adf063d07">Ucs_Stream_PortPinId_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___strm_socket__t_ab9430187fbd36c83ef163a19dcdd735c.html#ab9430187fbd36c83ef163a19dcdd735c">stream_pin_id</a></td></tr>
+<tr class="memdesc:ab9430187fbd36c83ef163a19dcdd735c"><td class="mdescLeft">&#160;</td><td class="mdescRight">ID of the serial interface pin. <a href="#ab9430187fbd36c83ef163a19dcdd735c"></a><br/></td></tr>
+<tr class="separator:ab9430187fbd36c83ef163a19dcdd735c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Configuration structure of a streaming data socket. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___strm_socket__t.html">Ucs_Xrm_StrmSocket_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___strm_socket__t_a0008a6d765e7752725ad3dd2eb446033.html b/ucs2-lib/doc/html/struct_ucs___xrm___strm_socket__t_a0008a6d765e7752725ad3dd2eb446033.html
new file mode 100644
index 0000000..d377cd3
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___strm_socket__t_a0008a6d765e7752725ad3dd2eb446033.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_StrmSocket_t::bandwidth</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___strm_socket__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a0008a6d765e7752725ad3dd2eb446033"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t bandwidth</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Required socket bandwidth in bytes. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This attribute corresponds with the parameter <code>Bandwidth</code> of the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-StreamSocketCreate691">INIC.StreamSocketCreate</a>.</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___strm_socket__t.html">Ucs_Xrm_StrmSocket_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___strm_socket__t_a2938957a0791aa899aaedcca5b8c0405.html b/ucs2-lib/doc/html/struct_ucs___xrm___strm_socket__t_a2938957a0791aa899aaedcca5b8c0405.html
new file mode 100644
index 0000000..0581996
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___strm_socket__t_a2938957a0791aa899aaedcca5b8c0405.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_StrmSocket_t::stream_port_obj_ptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___strm_socket__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a2938957a0791aa899aaedcca5b8c0405"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">UCS_XRM_CONST <a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173">Ucs_Xrm_ResObject_t</a>* stream_port_obj_ptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reference to the INIC resource object the socket is attached to. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___strm_socket__t.html">Ucs_Xrm_StrmSocket_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___strm_socket__t_a31e66e762767a78baf49f779d598a9cd.html b/ucs2-lib/doc/html/struct_ucs___xrm___strm_socket__t_a31e66e762767a78baf49f779d598a9cd.html
new file mode 100644
index 0000000..70cacb1
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___strm_socket__t_a31e66e762767a78baf49f779d598a9cd.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_StrmSocket_t::resource_type</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___strm_socket__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a31e66e762767a78baf49f779d598a9cd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc">Ucs_Xrm_ResourceType_t</a> resource_type</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Type of the INIC resource object. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___strm_socket__t.html">Ucs_Xrm_StrmSocket_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___strm_socket__t_a5a9618dfa6b3de3a36d0392911a4d421.html b/ucs2-lib/doc/html/struct_ucs___xrm___strm_socket__t_a5a9618dfa6b3de3a36d0392911a4d421.html
new file mode 100644
index 0000000..1bbac0c
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___strm_socket__t_a5a9618dfa6b3de3a36d0392911a4d421.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_StrmSocket_t::data_type</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___strm_socket__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a5a9618dfa6b3de3a36d0392911a4d421"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gae12684f1b74844d622e59da79f1a23f8.html#gae12684f1b74844d622e59da79f1a23f8">Ucs_Stream_SocketDataType_t</a> data_type</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Data type. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This attribute corresponds with the parameter <code>DataType</code> of the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-StreamSocketCreate691">INIC.StreamSocketCreate</a>.</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___strm_socket__t.html">Ucs_Xrm_StrmSocket_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___strm_socket__t_a6fc8b4a0550af42e193df56d3546108e.html b/ucs2-lib/doc/html/struct_ucs___xrm___strm_socket__t_a6fc8b4a0550af42e193df56d3546108e.html
new file mode 100644
index 0000000..4210e5d
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___strm_socket__t_a6fc8b4a0550af42e193df56d3546108e.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_StrmSocket_t::direction</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___strm_socket__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a6fc8b4a0550af42e193df56d3546108e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga28477f727fe10f9d6fd21cfc98a9c115.html#ga28477f727fe10f9d6fd21cfc98a9c115">Ucs_SocketDirection_t</a> direction</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Direction of the data stream. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This attribute corresponds with the parameter <code>Direction</code> of the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-StreamSocketCreate691">INIC.StreamSocketCreate</a>.</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___strm_socket__t.html">Ucs_Xrm_StrmSocket_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___strm_socket__t_ab9430187fbd36c83ef163a19dcdd735c.html b/ucs2-lib/doc/html/struct_ucs___xrm___strm_socket__t_ab9430187fbd36c83ef163a19dcdd735c.html
new file mode 100644
index 0000000..9ae269b
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___strm_socket__t_ab9430187fbd36c83ef163a19dcdd735c.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_StrmSocket_t::stream_pin_id</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___strm_socket__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ab9430187fbd36c83ef163a19dcdd735c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gaadbd9007127f39c3c257040adf063d07.html#gaadbd9007127f39c3c257040adf063d07">Ucs_Stream_PortPinId_t</a> stream_pin_id</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>ID of the serial interface pin. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This attribute corresponds with the parameter <code>StreamPinID</code> of the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-StreamSocketCreate691">INIC.StreamSocketCreate</a>.</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___strm_socket__t.html">Ucs_Xrm_StrmSocket_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___sync_con__t.html b/ucs2-lib/doc/html/struct_ucs___xrm___sync_con__t.html
new file mode 100644
index 0000000..91caabd
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___sync_con__t.html
@@ -0,0 +1,140 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_SyncCon_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___sync_con__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Xrm_SyncCon_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s.html">XRM Referred Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Configuration structure of a synchronous data connection.
+ <a href="struct_ucs___xrm___sync_con__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a31e66e762767a78baf49f779d598a9cd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc">Ucs_Xrm_ResourceType_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___sync_con__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd">resource_type</a></td></tr>
+<tr class="memdesc:a31e66e762767a78baf49f779d598a9cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of the INIC resource object. <a href="#a31e66e762767a78baf49f779d598a9cd"></a><br/></td></tr>
+<tr class="separator:a31e66e762767a78baf49f779d598a9cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ace5ef1fb3bd4337998a8f538645f47ed"><td class="memItemLeft" align="right" valign="top">UCS_XRM_CONST <a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173">Ucs_Xrm_ResObject_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___sync_con__t_ace5ef1fb3bd4337998a8f538645f47ed.html#ace5ef1fb3bd4337998a8f538645f47ed">socket_in_obj_ptr</a></td></tr>
+<tr class="memdesc:ace5ef1fb3bd4337998a8f538645f47ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference to the INIC resource object that specifies the socket that is the starting point of the link. Must be a socket of type <code>Input</code>. <a href="#ace5ef1fb3bd4337998a8f538645f47ed"></a><br/></td></tr>
+<tr class="separator:ace5ef1fb3bd4337998a8f538645f47ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a21e5760677b48c43c5e4783306819f95"><td class="memItemLeft" align="right" valign="top">UCS_XRM_CONST <a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173">Ucs_Xrm_ResObject_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___sync_con__t_a21e5760677b48c43c5e4783306819f95.html#a21e5760677b48c43c5e4783306819f95">socket_out_obj_ptr</a></td></tr>
+<tr class="memdesc:a21e5760677b48c43c5e4783306819f95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference to the INIC resource object that specifies the socket that is the ending point of the link. Must be a socket of type <code>Output</code>. <a href="#a21e5760677b48c43c5e4783306819f95"></a><br/></td></tr>
+<tr class="separator:a21e5760677b48c43c5e4783306819f95"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad24def4858c3013652eba166fe48d267"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gaef12892b897a1cd1013357cfe63f2434.html#gaef12892b897a1cd1013357cfe63f2434">Ucs_Sync_MuteMode_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___sync_con__t_ad24def4858c3013652eba166fe48d267.html#ad24def4858c3013652eba166fe48d267">mute_mode</a></td></tr>
+<tr class="memdesc:ad24def4858c3013652eba166fe48d267"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mode of operation of mute. <a href="#ad24def4858c3013652eba166fe48d267"></a><br/></td></tr>
+<tr class="separator:ad24def4858c3013652eba166fe48d267"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac681806181c80437cfab37335f62ff39"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___sync_con__t_ac681806181c80437cfab37335f62ff39.html#ac681806181c80437cfab37335f62ff39">offset</a></td></tr>
+<tr class="memdesc:ac681806181c80437cfab37335f62ff39"><td class="mdescLeft">&#160;</td><td class="mdescRight">Offset from where the socket data should be routed from a splitter. <a href="#ac681806181c80437cfab37335f62ff39"></a><br/></td></tr>
+<tr class="separator:ac681806181c80437cfab37335f62ff39"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Configuration structure of a synchronous data connection. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___sync_con__t.html">Ucs_Xrm_SyncCon_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___sync_con__t_a21e5760677b48c43c5e4783306819f95.html b/ucs2-lib/doc/html/struct_ucs___xrm___sync_con__t_a21e5760677b48c43c5e4783306819f95.html
new file mode 100644
index 0000000..2b8afa4
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___sync_con__t_a21e5760677b48c43c5e4783306819f95.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_SyncCon_t::socket_out_obj_ptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___sync_con__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a21e5760677b48c43c5e4783306819f95"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">UCS_XRM_CONST <a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173">Ucs_Xrm_ResObject_t</a>* socket_out_obj_ptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reference to the INIC resource object that specifies the socket that is the ending point of the link. Must be a socket of type <code>Output</code>. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___sync_con__t.html">Ucs_Xrm_SyncCon_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___sync_con__t_a31e66e762767a78baf49f779d598a9cd.html b/ucs2-lib/doc/html/struct_ucs___xrm___sync_con__t_a31e66e762767a78baf49f779d598a9cd.html
new file mode 100644
index 0000000..a7c992b
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___sync_con__t_a31e66e762767a78baf49f779d598a9cd.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_SyncCon_t::resource_type</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___sync_con__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a31e66e762767a78baf49f779d598a9cd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc">Ucs_Xrm_ResourceType_t</a> resource_type</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Type of the INIC resource object. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___sync_con__t.html">Ucs_Xrm_SyncCon_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___sync_con__t_ac681806181c80437cfab37335f62ff39.html b/ucs2-lib/doc/html/struct_ucs___xrm___sync_con__t_ac681806181c80437cfab37335f62ff39.html
new file mode 100644
index 0000000..ebe4f54
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___sync_con__t_ac681806181c80437cfab37335f62ff39.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_SyncCon_t::offset</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___sync_con__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ac681806181c80437cfab37335f62ff39"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t offset</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Offset from where the socket data should be routed from a splitter. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This attribute corresponds with the parameter <code>Offset</code> of the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-SyncCreate871">INIC.SyncCreate</a>.</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___sync_con__t.html">Ucs_Xrm_SyncCon_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___sync_con__t_ace5ef1fb3bd4337998a8f538645f47ed.html b/ucs2-lib/doc/html/struct_ucs___xrm___sync_con__t_ace5ef1fb3bd4337998a8f538645f47ed.html
new file mode 100644
index 0000000..f28adaa
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___sync_con__t_ace5ef1fb3bd4337998a8f538645f47ed.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_SyncCon_t::socket_in_obj_ptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___sync_con__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ace5ef1fb3bd4337998a8f538645f47ed"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">UCS_XRM_CONST <a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173">Ucs_Xrm_ResObject_t</a>* socket_in_obj_ptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reference to the INIC resource object that specifies the socket that is the starting point of the link. Must be a socket of type <code>Input</code>. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___sync_con__t.html">Ucs_Xrm_SyncCon_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___sync_con__t_ad24def4858c3013652eba166fe48d267.html b/ucs2-lib/doc/html/struct_ucs___xrm___sync_con__t_ad24def4858c3013652eba166fe48d267.html
new file mode 100644
index 0000000..f5c70f2
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___sync_con__t_ad24def4858c3013652eba166fe48d267.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_SyncCon_t::mute_mode</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___sync_con__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="ad24def4858c3013652eba166fe48d267"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gaef12892b897a1cd1013357cfe63f2434.html#gaef12892b897a1cd1013357cfe63f2434">Ucs_Sync_MuteMode_t</a> mute_mode</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Mode of operation of mute. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This attribute corresponds with the parameter <code>MuteMode</code> of the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-SyncCreate871">INIC.SyncCreate</a>.</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___sync_con__t.html">Ucs_Xrm_SyncCon_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___usb_port__t.html b/ucs2-lib/doc/html/struct_ucs___xrm___usb_port__t.html
new file mode 100644
index 0000000..66049c0
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___usb_port__t.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_UsbPort_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___usb_port__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Xrm_UsbPort_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s.html">XRM Referred Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Configuration structure of a USB port.
+ <a href="struct_ucs___xrm___usb_port__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a31e66e762767a78baf49f779d598a9cd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc">Ucs_Xrm_ResourceType_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___usb_port__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd">resource_type</a></td></tr>
+<tr class="memdesc:a31e66e762767a78baf49f779d598a9cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of the INIC resource object. <a href="#a31e66e762767a78baf49f779d598a9cd"></a><br/></td></tr>
+<tr class="separator:a31e66e762767a78baf49f779d598a9cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aae5a12e607d0f782506d9e6ec6179c64"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___usb_port__t_aae5a12e607d0f782506d9e6ec6179c64.html#aae5a12e607d0f782506d9e6ec6179c64">index</a></td></tr>
+<tr class="memdesc:aae5a12e607d0f782506d9e6ec6179c64"><td class="mdescLeft">&#160;</td><td class="mdescRight">USB port instance. <a href="#aae5a12e607d0f782506d9e6ec6179c64"></a><br/></td></tr>
+<tr class="separator:aae5a12e607d0f782506d9e6ec6179c64"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aea7ae4f766b52f8f4fa492449ba24c14"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gaa573e5854eb036998eec837e9fbf0ae1.html#gaa573e5854eb036998eec837e9fbf0ae1">Ucs_Usb_PhysicalLayer_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___usb_port__t_aea7ae4f766b52f8f4fa492449ba24c14.html#aea7ae4f766b52f8f4fa492449ba24c14">physical_layer</a></td></tr>
+<tr class="memdesc:aea7ae4f766b52f8f4fa492449ba24c14"><td class="mdescLeft">&#160;</td><td class="mdescRight">interface of the USB Port’s physical layer. <a href="#aea7ae4f766b52f8f4fa492449ba24c14"></a><br/></td></tr>
+<tr class="separator:aea7ae4f766b52f8f4fa492449ba24c14"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7d57b66daf059fcd226dc4b78be54e79"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___usb_port__t_a7d57b66daf059fcd226dc4b78be54e79.html#a7d57b66daf059fcd226dc4b78be54e79">devices_interfaces</a></td></tr>
+<tr class="memdesc:a7d57b66daf059fcd226dc4b78be54e79"><td class="mdescLeft">&#160;</td><td class="mdescRight">USB devices interfaces mask. <a href="#a7d57b66daf059fcd226dc4b78be54e79"></a><br/></td></tr>
+<tr class="separator:a7d57b66daf059fcd226dc4b78be54e79"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a95973cbb7c525bbb846928066bebe8f8"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___usb_port__t_a95973cbb7c525bbb846928066bebe8f8.html#a95973cbb7c525bbb846928066bebe8f8">streaming_if_ep_out_count</a></td></tr>
+<tr class="memdesc:a95973cbb7c525bbb846928066bebe8f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">OUT Endpoints inside the streaming interface. <a href="#a95973cbb7c525bbb846928066bebe8f8"></a><br/></td></tr>
+<tr class="separator:a95973cbb7c525bbb846928066bebe8f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa1e58aa745f43164a35bb10f76f27cf4"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___usb_port__t_aa1e58aa745f43164a35bb10f76f27cf4.html#aa1e58aa745f43164a35bb10f76f27cf4">streaming_if_ep_in_count</a></td></tr>
+<tr class="memdesc:aa1e58aa745f43164a35bb10f76f27cf4"><td class="mdescLeft">&#160;</td><td class="mdescRight">IN Endpoints inside the streaming interface. <a href="#aa1e58aa745f43164a35bb10f76f27cf4"></a><br/></td></tr>
+<tr class="separator:aa1e58aa745f43164a35bb10f76f27cf4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Configuration structure of a USB port. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___usb_port__t.html">Ucs_Xrm_UsbPort_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___usb_port__t_a31e66e762767a78baf49f779d598a9cd.html b/ucs2-lib/doc/html/struct_ucs___xrm___usb_port__t_a31e66e762767a78baf49f779d598a9cd.html
new file mode 100644
index 0000000..8714d7f
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___usb_port__t_a31e66e762767a78baf49f779d598a9cd.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_UsbPort_t::resource_type</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___usb_port__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a31e66e762767a78baf49f779d598a9cd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc">Ucs_Xrm_ResourceType_t</a> resource_type</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Type of the INIC resource object. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___usb_port__t.html">Ucs_Xrm_UsbPort_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___usb_port__t_a7d57b66daf059fcd226dc4b78be54e79.html b/ucs2-lib/doc/html/struct_ucs___xrm___usb_port__t_a7d57b66daf059fcd226dc4b78be54e79.html
new file mode 100644
index 0000000..1223ebb
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___usb_port__t_a7d57b66daf059fcd226dc4b78be54e79.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_UsbPort_t::devices_interfaces</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___usb_port__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a7d57b66daf059fcd226dc4b78be54e79"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t devices_interfaces</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>USB devices interfaces mask. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This attribute corresponds with the parameter <code>DeviceInterfaces</code> of the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-USBPortCreate661">INIC.USBPortCreate</a>.</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___usb_port__t.html">Ucs_Xrm_UsbPort_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___usb_port__t_a95973cbb7c525bbb846928066bebe8f8.html b/ucs2-lib/doc/html/struct_ucs___xrm___usb_port__t_a95973cbb7c525bbb846928066bebe8f8.html
new file mode 100644
index 0000000..0422161
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___usb_port__t_a95973cbb7c525bbb846928066bebe8f8.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_UsbPort_t::streaming_if_ep_out_count</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___usb_port__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a95973cbb7c525bbb846928066bebe8f8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t streaming_if_ep_out_count</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>OUT Endpoints inside the streaming interface. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This attribute corresponds with the parameter <code>StreamingIfEpOutCount</code> of the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-USBPortCreate661">INIC.USBPortCreate</a>.</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___usb_port__t.html">Ucs_Xrm_UsbPort_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___usb_port__t_aa1e58aa745f43164a35bb10f76f27cf4.html b/ucs2-lib/doc/html/struct_ucs___xrm___usb_port__t_aa1e58aa745f43164a35bb10f76f27cf4.html
new file mode 100644
index 0000000..c3733f1
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___usb_port__t_aa1e58aa745f43164a35bb10f76f27cf4.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_UsbPort_t::streaming_if_ep_in_count</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___usb_port__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="aa1e58aa745f43164a35bb10f76f27cf4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t streaming_if_ep_in_count</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>IN Endpoints inside the streaming interface. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This attribute corresponds with the parameter <code>StreamingIfEpInCount</code> of the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-USBPortCreate661">INIC.USBPortCreate</a>.</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___usb_port__t.html">Ucs_Xrm_UsbPort_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___usb_port__t_aae5a12e607d0f782506d9e6ec6179c64.html b/ucs2-lib/doc/html/struct_ucs___xrm___usb_port__t_aae5a12e607d0f782506d9e6ec6179c64.html
new file mode 100644
index 0000000..1708036
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___usb_port__t_aae5a12e607d0f782506d9e6ec6179c64.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_UsbPort_t::index</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___usb_port__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="aae5a12e607d0f782506d9e6ec6179c64"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t index</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>USB port instance. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This attribute corresponds with the parameter <code>Index</code> of the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-USBPortCreate661">INIC.USBPortCreate</a>.</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___usb_port__t.html">Ucs_Xrm_UsbPort_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___usb_port__t_aea7ae4f766b52f8f4fa492449ba24c14.html b/ucs2-lib/doc/html/struct_ucs___xrm___usb_port__t_aea7ae4f766b52f8f4fa492449ba24c14.html
new file mode 100644
index 0000000..cb2c4cc
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___usb_port__t_aea7ae4f766b52f8f4fa492449ba24c14.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_UsbPort_t::physical_layer</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___usb_port__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="aea7ae4f766b52f8f4fa492449ba24c14"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gaa573e5854eb036998eec837e9fbf0ae1.html#gaa573e5854eb036998eec837e9fbf0ae1">Ucs_Usb_PhysicalLayer_t</a> physical_layer</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>interface of the USB Port’s physical layer. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This attribute corresponds with the parameter <code>PhysicalLayer</code> of the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-USBPortCreate661">INIC.USBPortCreate</a>.</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___usb_port__t.html">Ucs_Xrm_UsbPort_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___usb_socket__t.html b/ucs2-lib/doc/html/struct_ucs___xrm___usb_socket__t.html
new file mode 100644
index 0000000..87637f3
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___usb_socket__t.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_UsbSocket_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___usb_socket__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">Ucs_Xrm_UsbSocket_t Struct Reference<div class="ingroups"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s.html">XRM Referred Types</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Configuration structure of a USB socket.
+ <a href="struct_ucs___xrm___usb_socket__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a31e66e762767a78baf49f779d598a9cd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc">Ucs_Xrm_ResourceType_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___usb_socket__t_a31e66e762767a78baf49f779d598a9cd.html#a31e66e762767a78baf49f779d598a9cd">resource_type</a></td></tr>
+<tr class="memdesc:a31e66e762767a78baf49f779d598a9cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of the INIC resource object. <a href="#a31e66e762767a78baf49f779d598a9cd"></a><br/></td></tr>
+<tr class="separator:a31e66e762767a78baf49f779d598a9cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3fe892af2f377651d07638c52a163326"><td class="memItemLeft" align="right" valign="top">UCS_XRM_CONST <a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173">Ucs_Xrm_ResObject_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___usb_socket__t_a3fe892af2f377651d07638c52a163326.html#a3fe892af2f377651d07638c52a163326">usb_port_obj_ptr</a></td></tr>
+<tr class="memdesc:a3fe892af2f377651d07638c52a163326"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference to the INIC resource object the socket is attached to. <a href="#a3fe892af2f377651d07638c52a163326"></a><br/></td></tr>
+<tr class="separator:a3fe892af2f377651d07638c52a163326"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6fc8b4a0550af42e193df56d3546108e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga28477f727fe10f9d6fd21cfc98a9c115.html#ga28477f727fe10f9d6fd21cfc98a9c115">Ucs_SocketDirection_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___usb_socket__t_a6fc8b4a0550af42e193df56d3546108e.html#a6fc8b4a0550af42e193df56d3546108e">direction</a></td></tr>
+<tr class="memdesc:a6fc8b4a0550af42e193df56d3546108e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Direction of the data stream. <a href="#a6fc8b4a0550af42e193df56d3546108e"></a><br/></td></tr>
+<tr class="separator:a6fc8b4a0550af42e193df56d3546108e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a211077f7fcb5f6de9739ec4a6d0b0277"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gafd56377a5a1f782e64260d18caf17dc9.html#gafd56377a5a1f782e64260d18caf17dc9">Ucs_Usb_SocketDataType_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___usb_socket__t_a211077f7fcb5f6de9739ec4a6d0b0277.html#a211077f7fcb5f6de9739ec4a6d0b0277">data_type</a></td></tr>
+<tr class="memdesc:a211077f7fcb5f6de9739ec4a6d0b0277"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data type. <a href="#a211077f7fcb5f6de9739ec4a6d0b0277"></a><br/></td></tr>
+<tr class="separator:a211077f7fcb5f6de9739ec4a6d0b0277"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a10acc74574f398d6b12989cc1ed95fe0"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___usb_socket__t_a10acc74574f398d6b12989cc1ed95fe0.html#a10acc74574f398d6b12989cc1ed95fe0">end_point_addr</a></td></tr>
+<tr class="memdesc:a10acc74574f398d6b12989cc1ed95fe0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Address of a USB Endpoint. <a href="#a10acc74574f398d6b12989cc1ed95fe0"></a><br/></td></tr>
+<tr class="separator:a10acc74574f398d6b12989cc1ed95fe0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a35a2e808843151ff172ad4ddd8ad5b8a"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ucs___xrm___usb_socket__t_a35a2e808843151ff172ad4ddd8ad5b8a.html#a35a2e808843151ff172ad4ddd8ad5b8a">frames_per_transfer</a></td></tr>
+<tr class="memdesc:a35a2e808843151ff172ad4ddd8ad5b8a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of MOST network frames/packets per one USB transaction. <a href="#a35a2e808843151ff172ad4ddd8ad5b8a"></a><br/></td></tr>
+<tr class="separator:a35a2e808843151ff172ad4ddd8ad5b8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Configuration structure of a USB socket. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___usb_socket__t.html">Ucs_Xrm_UsbSocket_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___usb_socket__t_a10acc74574f398d6b12989cc1ed95fe0.html b/ucs2-lib/doc/html/struct_ucs___xrm___usb_socket__t_a10acc74574f398d6b12989cc1ed95fe0.html
new file mode 100644
index 0000000..3c843bf
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___usb_socket__t_a10acc74574f398d6b12989cc1ed95fe0.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_UsbSocket_t::end_point_addr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___usb_socket__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a10acc74574f398d6b12989cc1ed95fe0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t end_point_addr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Address of a USB Endpoint. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This attribute corresponds with the parameter <code>EndpointAddress</code> of the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-USBSocketCreate671">INIC.USBSocketCreate</a>.</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___usb_socket__t.html">Ucs_Xrm_UsbSocket_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___usb_socket__t_a211077f7fcb5f6de9739ec4a6d0b0277.html b/ucs2-lib/doc/html/struct_ucs___xrm___usb_socket__t_a211077f7fcb5f6de9739ec4a6d0b0277.html
new file mode 100644
index 0000000..250719f
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___usb_socket__t_a211077f7fcb5f6de9739ec4a6d0b0277.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_UsbSocket_t::data_type</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___usb_socket__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a211077f7fcb5f6de9739ec4a6d0b0277"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_gafd56377a5a1f782e64260d18caf17dc9.html#gafd56377a5a1f782e64260d18caf17dc9">Ucs_Usb_SocketDataType_t</a> data_type</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Data type. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This attribute corresponds with the parameter <code>DataType</code> of the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-USBSocketCreate671">INIC.USBSocketCreate</a>.</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___usb_socket__t.html">Ucs_Xrm_UsbSocket_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___usb_socket__t_a31e66e762767a78baf49f779d598a9cd.html b/ucs2-lib/doc/html/struct_ucs___xrm___usb_socket__t_a31e66e762767a78baf49f779d598a9cd.html
new file mode 100644
index 0000000..8bb3541
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___usb_socket__t_a31e66e762767a78baf49f779d598a9cd.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_UsbSocket_t::resource_type</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___usb_socket__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a31e66e762767a78baf49f779d598a9cd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_gac238d98be8f9df6340eb4ee72de36ccc.html#gac238d98be8f9df6340eb4ee72de36ccc">Ucs_Xrm_ResourceType_t</a> resource_type</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Type of the INIC resource object. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___usb_socket__t.html">Ucs_Xrm_UsbSocket_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___usb_socket__t_a35a2e808843151ff172ad4ddd8ad5b8a.html b/ucs2-lib/doc/html/struct_ucs___xrm___usb_socket__t_a35a2e808843151ff172ad4ddd8ad5b8a.html
new file mode 100644
index 0000000..bdcc113
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___usb_socket__t_a35a2e808843151ff172ad4ddd8ad5b8a.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_UsbSocket_t::frames_per_transfer</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___usb_socket__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a35a2e808843151ff172ad4ddd8ad5b8a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t frames_per_transfer</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Number of MOST network frames/packets per one USB transaction. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This attribute corresponds with the parameter <code>FramesPerTransfer</code> of the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-USBSocketCreate671">INIC.USBSocketCreate</a>.</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___usb_socket__t.html">Ucs_Xrm_UsbSocket_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___usb_socket__t_a3fe892af2f377651d07638c52a163326.html b/ucs2-lib/doc/html/struct_ucs___xrm___usb_socket__t_a3fe892af2f377651d07638c52a163326.html
new file mode 100644
index 0000000..98dc76f
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___usb_socket__t_a3fe892af2f377651d07638c52a163326.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_UsbSocket_t::usb_port_obj_ptr</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___usb_socket__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a3fe892af2f377651d07638c52a163326"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">UCS_XRM_CONST <a class="el" href="group___g___u_c_s___x_r_m___t_y_p_e_s_ga74e06fedcde6bc971088b2cb21405173.html#ga74e06fedcde6bc971088b2cb21405173">Ucs_Xrm_ResObject_t</a>* usb_port_obj_ptr</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reference to the INIC resource object the socket is attached to. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___usb_socket__t.html">Ucs_Xrm_UsbSocket_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/struct_ucs___xrm___usb_socket__t_a6fc8b4a0550af42e193df56d3546108e.html b/ucs2-lib/doc/html/struct_ucs___xrm___usb_socket__t_a6fc8b4a0550af42e193df56d3546108e.html
new file mode 100644
index 0000000..0b547ff
--- /dev/null
+++ b/ucs2-lib/doc/html/struct_ucs___xrm___usb_socket__t_a6fc8b4a0550af42e193df56d3546108e.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>UNICENS: Ucs_Xrm_UsbSocket_t::direction</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="style_html.css" rel="stylesheet" type="text/css" />
+<link href="inic.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="GlobalWrapper">
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
+ <td>
+ <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
+ <div id="projectbrief">User Manual and API Reference</div>
+ <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.2 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_ucs___xrm___usb_socket__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<a class="anchor" id="a6fc8b4a0550af42e193df56d3546108e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group___g___u_c_s___x_r_m___e_n_u_m_ga28477f727fe10f9d6fd21cfc98a9c115.html#ga28477f727fe10f9d6fd21cfc98a9c115">Ucs_SocketDirection_t</a> direction</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Direction of the data stream. </p>
+<table class="mns_ic_table">
+<tr>
+<td id="mns_ic_inic">&#160;</td><td>This attribute corresponds with the parameter <code>Direction</code> of the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-USBSocketCreate671">INIC.USBSocketCreate</a>.</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_ucs___xrm___usb_socket__t.html">Ucs_Xrm_UsbSocket_t</a></li>
+ <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
+ </ul>
+</div>
+</body>
+<!--
+Generated on Mon Apr 3 2017 13:53:01 for UNICENS by
+Doxygen 1.8.2
+-->
+<script language="javascript">
+<!--
+$('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
+-->
+</script>
+</html>
diff --git a/ucs2-lib/doc/html/style_html.css b/ucs2-lib/doc/html/style_html.css
new file mode 100644
index 0000000..be4e411
--- /dev/null
+++ b/ucs2-lib/doc/html/style_html.css
@@ -0,0 +1,1607 @@
+/* The standard CSS for doxygen */
+
+* {
+ border: none;
+ outline: none;
+ font-size: 12px;
+ line-height: 17px;
+ font-family: Arial, Helvetica, sans-serif, HelveticaTextbook-Roman;
+}
+
+tt, code {
+ font-family: "Courier New", Courier, monospace;
+}
+/* @group Heading Levels */
+
+h1, h2, h3, h4, h5, h6, h7, h8, h9 {
+ font-weight: bold;
+
+ -webkit-transition: text-shadow 0.5s linear;
+ -moz-transition: text-shadow 0.5s linear;
+ -ms-transition: text-shadow 0.5s linear;
+ -o-transition: text-shadow 0.5s linear;
+ transition: text-shadow 0.5s linear;
+ margin-right: 15px;
+ margin-top: 25px;
+}
+
+h1 { font-size: 135%; color: #6693BC; }
+h2 { font-size: 115%; color: #333; }
+h3 { font-size: 100%; color: #333; }
+h4 { font-size: 90%; color: #333; }
+h5 { font-size: 80%; color: #333; }
+h6, h7, h8, h9 { font-size: 70%; }
+
+h2, h3, h4, h5, h6, h7, h8, h9 { margin-bottom:0px; }
+
+h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
+ text-shadow: 0 0 15px cyan;
+}
+
+.textblock p {
+margin-top: 5px;
+}
+
+.textblock .doxtable {
+ margin-bottom: 10px;
+}
+
+.title {
+ color: #ef2121;
+ font-size: 160%;
+ font-weight: bold;
+ margin: 10px 2px;
+}
+
+h2.groupheader {
+ border-bottom: 1px solid #879ECB;
+ margin-top: 1.75em;
+ padding-top: 8px;
+ padding-bottom: 4px;
+ width: 100%;
+}
+
+dt {
+ font-weight: bold;
+}
+
+div.multicol {
+ -moz-column-gap: 1em;
+ -webkit-column-gap: 1em;
+ -moz-column-count: 3;
+ -webkit-column-count: 3;
+}
+
+p.startli, p.startdd, p.starttd {
+ margin-top: 2px;
+}
+
+p.endli {
+ margin-bottom: 0px;
+}
+
+p.enddd {
+ margin-bottom: 4px;
+}
+
+p.endtd {
+ margin-bottom: 2px;
+}
+
+/* @end */
+
+caption {
+ font-weight: bold;
+}
+
+span.legend {
+ font-size: 70%;
+ text-align: center;
+}
+
+h3.version {
+ text-align: center;
+}
+
+div.qindex, div.navtab {
+ background-color: #ebebeb;
+ border: 1px solid #bcbcbc;
+ text-align: center;
+}
+
+
+
+/*
+div.qindex {
+ width: 100%;
+ line-height: 140%;
+}
+*/
+div.qindex, div.navpath {
+ width: 100%;
+ line-height: 140%;
+}
+
+
+div.navtab {
+ margin-right: 15px;
+}
+
+/* @group Link Styling */
+
+a {
+ color: #ef2121;
+ font-weight: normal;
+ text-decoration: none;
+}
+
+.contents a:visited {
+ color: #ef2121;
+}
+
+a:hover {
+ text-decoration: underline;
+}
+
+a.qindex {
+ font-weight: bold;
+}
+
+a.qindexHL {
+ font-weight: bold;
+ background-color: #9CAFD4;
+ color: #ffffff;
+ border: 1px double #869DCA;
+}
+
+.contents a.qindexHL:visited {
+ color: #ffffff;
+}
+
+a.elRef {
+}
+
+/*
+a.code, a.code:visited {
+ color: #6693BC;
+}
+*/
+
+a.codeRef, a.codeRef:visited {
+ color: #6693BC;
+}
+
+/* @end */
+
+dl.el {
+ margin-left: -1cm;
+}
+
+pre.fragment {
+ border: 1px solid #C4CFE5;
+ background-color: #FBFCFD;
+ padding: 4px 6px;
+ margin: 4px 8px 4px 2px;
+ overflow: auto;
+ word-wrap: break-word;
+ font-size: 9pt;
+ line-height: 125%;
+ font-family: monospace, fixed;
+ font-size: 105%;
+}
+
+div.fragment {
+ padding: 4px;
+ margin: 4px;
+ background-color: #FBFCFD;
+ border: 1px solid #C4CFE5;
+}
+
+div.line {
+ font-family: monospace, fixed;
+ font-size: 13px;
+ min-height: 13px;
+ line-height: 1.0;
+ text-wrap: unrestricted;
+ white-space: -moz-pre-wrap; /* Moz */
+ white-space: -pre-wrap; /* Opera 4-6 */
+ white-space: -o-pre-wrap; /* Opera 7 */
+ white-space: pre-wrap; /* CSS3 */
+ word-wrap: break-word; /* IE 5.5+ */
+ text-indent: -53px;
+ padding-left: 53px;
+ padding-bottom: 0px;
+ margin: 0px;
+ -webkit-transition-property: background-color, box-shadow;
+ -webkit-transition-duration: 0.5s;
+ -moz-transition-property: background-color, box-shadow;
+ -moz-transition-duration: 0.5s;
+ -ms-transition-property: background-color, box-shadow;
+ -ms-transition-duration: 0.5s;
+ -o-transition-property: background-color, box-shadow;
+ -o-transition-duration: 0.5s;
+ transition-property: background-color, box-shadow;
+ transition-duration: 0.5s;
+}
+
+div.line span, div.line a {
+ font-family: monospace, fixed;
+ font-size: 13px;
+ text-wrap: unrestricted;
+}
+
+div.line.glow {
+ background-color: cyan;
+ box-shadow: 0 0 10px cyan;
+}
+
+
+span.lineno {
+ padding-right: 4px;
+ text-align: right;
+ border-right: 2px solid #0F0;
+ background-color: #E8E8E8;
+ white-space: pre;
+}
+span.lineno a {
+ background-color: #D8D8D8;
+}
+
+span.lineno a:hover {
+ background-color: #C8C8C8;
+}
+
+div.ah {
+ background-color: black;
+ font-weight: bold;
+ color: #ffffff;
+ margin-bottom: 3px;
+ margin-top: 3px;
+ padding: 0.2em;
+ border: solid thin #333;
+ border-radius: 0.5em;
+ -webkit-border-radius: .5em;
+ -moz-border-radius: .5em;
+ box-shadow: 2px 2px 3px #999;
+ -webkit-box-shadow: 2px 2px 3px #999;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
+ background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000);
+}
+
+div.groupHeader {
+ margin-left: 16px;
+ margin-top: 12px;
+ font-weight: bold;
+}
+
+div.groupText {
+ margin-left: 16px;
+ font-style: italic;
+}
+
+body {
+ color: black;
+ margin: 0;
+
+
+background: #aeaeae; /* Old browsers */
+background: -moz-linear-gradient(top, #aeaeae 0%, #878787 100%); /* FF3.6+ */
+background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#aeaeae), color-stop(100%,#878787)); /* Chrome,Safari4+ */
+background: -webkit-linear-gradient(top, #aeaeae 0%,#878787 100%); /* Chrome10+,Safari5.1+ */
+background: -o-linear-gradient(top, #aeaeae 0%,#878787 100%); /* Opera 11.10+ */
+background: -ms-linear-gradient(top, #aeaeae 0%,#878787 100%); /* IE10+ */
+background: linear-gradient(to bottom, #aeaeae 0%,#878787 100%); /* W3C */
+filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#aeaeae', endColorstr='#878787',GradientType=0 ); /* IE6-9 */
+
+
+}
+
+.GlobalWrapper {
+ margin-left: auto;
+ margin-right: auto;
+ width: 1200px;
+ border-left: 1px solid #000;
+ border-right: 1px solid #000;
+ background-color: #FFF;
+
+ -moz-box-shadow: 0px 0px 20px #000;
+ -webkit-box-shadow: 0px 0px 20px #000;
+ box-shadow: 0px 0px 20px #000;
+ -ms-filter: "progid:DXImageTransform.Microsoft.Shadow(Strength=3, Direction=135, Color='#000000')";
+ filter: progid:DXImageTransform.Microsoft.Shadow(Strength=3, Direction=135, Color='#000000');
+}
+
+div.contents {
+ margin-top: 10px;
+ margin-left: 12px;
+ margin-right: 8px;
+ text-align:justify;
+}
+
+td.indexkey {
+ background-color: #ebebeb;
+ font-weight: bold;
+ border: 1px solid #C4CFE5;
+ margin: 2px 0px 2px 0;
+ padding: 2px 10px;
+ white-space: nowrap;
+ vertical-align: top;
+}
+
+td.indexvalue {
+ background-color: #ebebeb;
+ border: 1px solid #C4CFE5;
+ padding: 2px 10px;
+ margin: 2px 0px;
+}
+
+tr.memlist {
+ background-color: #EEF1F7;
+}
+
+p.formulaDsp {
+ text-align: center;
+}
+
+img.formulaDsp {
+
+}
+
+img.formulaInl {
+ vertical-align: middle;
+}
+
+div.center {
+ text-align: center;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ padding: 0px;
+}
+
+div.center img {
+ border: 0px;
+}
+
+address.footer {
+ text-align: right;
+ padding-right: 12px;
+}
+
+img.footer {
+ border: 0px;
+ vertical-align: middle;
+}
+
+/* @group Code Colorization */
+
+span.keyword {
+ color: #6693BC;
+}
+
+span.keywordtype {
+ color: #6693BC;
+}
+
+span.keywordflow {
+ color: #6693BC;
+}
+
+span.comment {
+ color: #377811;
+}
+
+span.preprocessor {
+ color: #000;
+}
+
+span.stringliteral {
+ color: #A04F11;
+}
+
+span.charliteral {
+ color: #008080
+}
+
+span.vhdldigit {
+ color: #ff00ff
+}
+
+span.vhdlchar {
+ color: #000000
+}
+
+span.vhdlkeyword {
+ color: #700070
+}
+
+span.vhdllogic {
+ color: #ff0000
+}
+
+blockquote {
+ background-color: #F7F8FB;
+ border-left: 2px solid #9CAFD4;
+ margin: 0 24px 0 4px;
+ padding: 0 12px 0 16px;
+}
+
+/* @end */
+
+/*
+.search {
+ color: #003399;
+ font-weight: bold;
+}
+
+form.search {
+ margin-bottom: 0px;
+ margin-top: 0px;
+}
+
+input.search {
+ font-size: 75%;
+ color: #000080;
+ font-weight: normal;
+ background-color: #e8eef2;
+}
+*/
+
+td.tiny {
+ font-size: 75%;
+}
+
+.dirtab {
+ padding: 4px;
+ border-collapse: collapse;
+ border: 1px solid #bcbcbc;
+}
+
+th.dirtab {
+ background: #ebebeb;
+ font-weight: bold;
+}
+
+hr {
+ height: 0px;
+ border: none;
+ border-top: 1px solid #4A6AAA;
+}
+
+hr.footer {
+ height: 1px;
+}
+
+/* @group Member Descriptions */
+
+table.memberdecls {
+ border-spacing: 0px;
+ padding: 0px;
+}
+
+.memberdecls td, .fieldtable tr {
+ -webkit-transition-property: background-color, box-shadow;
+ -webkit-transition-duration: 0.5s;
+ -moz-transition-property: background-color, box-shadow;
+ -moz-transition-duration: 0.5s;
+ -ms-transition-property: background-color, box-shadow;
+ -ms-transition-duration: 0.5s;
+ -o-transition-property: background-color, box-shadow;
+ -o-transition-duration: 0.5s;
+ transition-property: background-color, box-shadow;
+ transition-duration: 0.5s;
+}
+
+.memberdecls td.glow, .fieldtable tr.glow {
+ background-color: cyan;
+ box-shadow: 0 0 15px cyan;
+}
+
+.mdescLeft, .mdescRight,
+.memItemLeft, .memItemRight,
+.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
+ background-color: #F9FAFC;
+ border: none;
+ margin: 4px;
+ padding: 1px 0 0 8px;
+}
+
+.mdescLeft, .mdescRight {
+ padding: 0px 8px 4px 8px;
+ color: #555;
+}
+
+.memSeparator {
+ border-bottom: 1px solid #DEE4F0;
+ line-height: 1px;
+ margin: 0px;
+ padding: 0px;
+}
+
+.memItemLeft, .memTemplItemLeft {
+ white-space: nowrap;
+}
+
+.memItemRight {
+ width: 100%;
+}
+
+.memTemplParams {
+ color: #6693BC;
+ white-space: nowrap;
+ font-size: 80%;
+}
+
+/* @end */
+
+/* @group Member Details */
+
+/* Styles for detailed member documentation */
+
+.memtemplate {
+ font-size: 80%;
+ color: #6693BC;
+ font-weight: normal;
+ margin-left: 9px;
+}
+
+.memnav {
+ background-color: #ebebeb;
+ border: 1px solid #bcbcbc;
+ text-align: center;
+ margin: 2px;
+ margin-right: 15px;
+ padding: 2px;
+}
+
+.mempage {
+ width: 100%;
+}
+
+.memitem {
+ padding: 0;
+ margin-bottom: 10px;
+ margin-right: 5px;
+ -webkit-transition: box-shadow 0.5s linear;
+ -moz-transition: box-shadow 0.5s linear;
+ -ms-transition: box-shadow 0.5s linear;
+ -o-transition: box-shadow 0.5s linear;
+ transition: box-shadow 0.5s linear;
+ display: table !important;
+ width: 100%;
+}
+
+.memitem.glow {
+ box-shadow: 0 0 15px cyan;
+}
+
+.memname {
+ font-weight: bold;
+ margin-left: 6px;
+}
+
+.memname td {
+ vertical-align: bottom;
+}
+
+.memproto, dl.reflist dt {
+ border-top: 1px solid #A8B8D9;
+ border-left: 1px solid #A8B8D9;
+ border-right: 1px solid #A8B8D9;
+ padding: 6px 0px 6px 0px;
+ color: #253555;
+ font-weight: bold;
+ text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+ background-image:url('nav_f.png');
+ background-repeat:repeat-x;
+ background-color: #E2E8F2;
+ /* opera specific markup */
+ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ border-top-right-radius: 4px;
+ border-top-left-radius: 4px;
+ /* firefox specific markup */
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+ -moz-border-radius-topright: 4px;
+ -moz-border-radius-topleft: 4px;
+ /* webkit specific markup */
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ -webkit-border-top-right-radius: 4px;
+ -webkit-border-top-left-radius: 4px;
+
+}
+
+.memdoc, dl.reflist dd {
+ border-bottom: 1px solid #A8B8D9;
+ border-left: 1px solid #A8B8D9;
+ border-right: 1px solid #A8B8D9;
+ padding: 6px 10px 2px 10px;
+ background-color: #FBFCFD;
+ border-top-width: 0;
+ background-image:url('nav_g.png');
+ background-repeat:repeat-x;
+ background-color: #FFFFFF;
+ /* opera specific markup */
+ border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 4px;
+ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ /* firefox specific markup */
+ -moz-border-radius-bottomleft: 4px;
+ -moz-border-radius-bottomright: 4px;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+ /* webkit specific markup */
+ -webkit-border-bottom-left-radius: 4px;
+ -webkit-border-bottom-right-radius: 4px;
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+}
+
+dl.reflist dt {
+ padding: 5px;
+}
+
+dl.reflist dd {
+ margin: 0px 0px 10px 0px;
+ padding: 5px;
+}
+
+.paramkey {
+ text-align: right;
+}
+
+.paramtype {
+ white-space: nowrap;
+}
+
+.paramname {
+ color: #602020;
+ white-space: nowrap;
+}
+.paramname em {
+ font-style: normal;
+}
+.paramname code {
+ line-height: 14px;
+}
+
+.params, .retval, .exception, .tparams {
+ margin-left: 0px;
+ padding-left: 0px;
+}
+
+.params .paramname, .retval .paramname {
+ font-weight: bold;
+ vertical-align: top;
+}
+
+.params .paramtype {
+ font-style: italic;
+ vertical-align: top;
+}
+
+.params .paramdir {
+ font-family: "courier new",courier,monospace;
+ vertical-align: top;
+}
+
+table.mlabels {
+ border-spacing: 0px;
+}
+
+td.mlabels-left {
+ width: 100%;
+ padding: 0px;
+}
+
+td.mlabels-right {
+ vertical-align: bottom;
+ padding: 0px;
+ white-space: nowrap;
+}
+
+span.mlabels {
+ margin-left: 8px;
+}
+
+span.mlabel {
+ background-color: #728DC1;
+ border-top:1px solid #5373B4;
+ border-left:1px solid #5373B4;
+ border-right:1px solid #C4CFE5;
+ border-bottom:1px solid #C4CFE5;
+ text-shadow: none;
+ color: white;
+ margin-right: 4px;
+ padding: 2px 3px;
+ border-radius: 3px;
+ font-size: 7pt;
+ white-space: nowrap;
+ vertical-align: middle;
+}
+
+
+
+/* @end */
+
+/* these are for tree view when not used as main index */
+
+div.directory {
+ margin: 10px 0px;
+ border-top: 1px solid #A8B8D9;
+ border-bottom: 1px solid #A8B8D9;
+ width: 100%;
+}
+
+.directory table {
+ border-collapse:collapse;
+}
+
+.directory td {
+ margin: 0px;
+ padding: 0px;
+ vertical-align: top;
+}
+
+.directory td.entry {
+ white-space: nowrap;
+ padding-right: 6px;
+}
+
+.directory td.entry a {
+ outline:none;
+}
+
+.directory td.entry a img {
+ border: none;
+}
+
+.directory td.desc {
+ width: 100%;
+ padding-left: 6px;
+ padding-right: 6px;
+ padding-top: 3px;
+ border-left: 1px solid rgba(0,0,0,0.05);
+}
+
+.directory tr.even {
+ padding-left: 6px;
+ background-color: #F7F8FB;
+}
+
+.directory img {
+ vertical-align: -30%;
+}
+
+.directory .levels {
+ white-space: nowrap;
+ width: 100%;
+ text-align: right;
+ font-size: 9pt;
+}
+
+.directory .levels span {
+ cursor: pointer;
+ padding-left: 2px;
+ padding-right: 2px;
+ color: #ef2121;
+}
+
+div.dynheader {
+ margin-top: 8px;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+address {
+ font-style: normal;
+ color: #2A3D61;
+}
+
+table.doxtable {
+ border-collapse:collapse;
+ margin-top: 4px;
+ margin-bottom: 4px;
+}
+
+table.doxtable td, table.doxtable th {
+ border: 1px solid #555;
+ padding: 3px 7px 2px;
+}
+
+table.doxtable th {
+ background-color: #423132;
+ color: #fff;
+ font-size: 110%;
+ padding-bottom: 4px;
+ padding-top: 5px;
+}
+
+table.fieldtable {
+ width: 100%;
+ margin-bottom: 10px;
+ border: 1px solid #A8B8D9;
+ border-spacing: 0px;
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ border-radius: 4px;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+ -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+ box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+}
+
+.fieldtable td, .fieldtable th {
+ padding: 3px 7px 2px;
+}
+
+.fieldtable td.fieldtype, .fieldtable td.fieldname {
+ white-space: nowrap;
+ border-right: 1px solid #A8B8D9;
+ border-bottom: 1px solid #A8B8D9;
+ vertical-align: top;
+}
+
+.fieldtable td.fielddoc {
+ border-bottom: 1px solid #A8B8D9;
+ width: 100%;
+}
+
+.fieldtable tr:last-child td {
+ border-bottom: none;
+}
+
+.fieldtable th {
+ background-image:url('nav_f.png');
+ background-repeat:repeat-x;
+ background-color: #E2E8F2;
+ font-size: 90%;
+ color: #253555;
+ padding-bottom: 4px;
+ padding-top: 5px;
+ text-align:left;
+ -moz-border-radius-topleft: 4px;
+ -moz-border-radius-topright: 4px;
+ -webkit-border-top-left-radius: 4px;
+ -webkit-border-top-right-radius: 4px;
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+ border-bottom: 1px solid #A8B8D9;
+}
+
+
+.tabsearch {
+ top: 0px;
+ left: 10px;
+ height: 36px;
+ background-image: url('tab_b.png');
+ z-index: 101;
+ overflow: hidden;
+ font-size: 13px;
+}
+
+.navelem {
+ display: none;
+}
+.summary {
+ display: block;
+ padding: 13px;
+}
+
+.title .ingroups {
+ width: auto;
+ display: block;
+ padding: 0px;
+ margin-top: 15px;
+ margin-bottom: 10px;
+}
+
+.ingroups {
+ width: auto;
+ display: block;
+ padding: 12px;
+ background-image: url('back.png');
+ background-repeat: no-repeat;
+ background-position: 10px 50%;
+}
+
+
+div.header
+{
+ background-image:url('nav_h.png');
+ background-repeat:repeat-x;
+ background-color: #F9FAFC;
+ margin: 0px;
+ border-bottom: 1px solid #C4CFE5;
+}
+
+div.headertitle
+{
+ padding: 5px 5px 5px 10px;
+}
+
+dl
+{
+ padding: 0 0 0 10px;
+}
+
+/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */
+dl.section
+{
+ margin-left: 0px;
+ padding-left: 0px;
+}
+
+dl.note
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #D0C000;
+}
+
+dl.warning, dl.attention
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #FF0000;
+}
+
+dl.pre, dl.post, dl.invariant
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #00D000;
+}
+
+dl.deprecated
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #505050;
+}
+
+dl.todo
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #00C0E0;
+}
+
+dl.test
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #3030E0;
+}
+
+dl.bug
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #C08050;
+}
+
+dl.section dd {
+ margin-bottom: 6px;
+}
+
+
+/*
+#projectlogo
+{
+ text-align: center;
+ vertical-align: bottom;
+ border-collapse: separate;
+}
+
+#projectlogo img
+{
+ border: 0px none;
+}
+*/
+
+#projectname {
+ font-size: 24px;
+ margin-top: 15px !important;
+}
+#projectbrief {
+ font-size: 17px;
+}
+#projectname, #projectbrief, #searchbox {
+ margin: 0px;
+ padding: 0px;
+ padding-right: 20px;
+ text-align:right;
+ float: right;
+ clear: both;
+}
+
+#projectnumber
+{
+ font-size: 24px;
+ margin: 0px;
+ padding: 0px;
+ color: #ef2121;
+}
+
+#titlearea {
+ padding: 0px;
+ margin: 0px;
+ width: 100%;
+ background-color:#000;
+ color: #FFF;
+ height: 100px;
+ background-image:url(header_bg.png);
+ background-position: right;
+ background-repeat: no-repeat;
+ border-bottom: solid 2px #ef2121;
+}
+#titlearea table {
+ float: right;
+ width: 100%;
+}
+img[alt="Logo"] {
+ float: left;
+ margin: 20px;
+}
+/*
+#titlearea table td#projectlogo img {
+ position: absolute;
+ top: 23px;
+ left: 20px;
+}
+*/
+
+.image
+{
+ text-align: center;
+}
+
+.image img {
+ max-width: 800px;
+}
+
+.dotgraph
+{
+ text-align: center;
+}
+
+.mscgraph
+{
+ text-align: center;
+}
+
+.caption
+{
+ font-weight: bold;
+}
+
+div.zoom
+{
+ border: 1px solid #90A5CE;
+}
+
+dl.citelist {
+ margin-bottom:50px;
+
+
+}
+
+dl.citelist dt {
+ color:#334975;
+ float:left;
+ font-weight:bold;
+ margin-right:10px;
+ padding:5px;
+}
+
+dl.citelist dd {
+ margin:2px 0;
+ padding:5px 0;
+}
+
+div.toc {
+ padding: 14px 25px;
+ background-color: #F4F6FA;
+ border: 1px solid #D8DFEE;
+ border-radius: 7px 7px 7px 7px;
+ float: right;
+ height: auto;
+ margin: 0 20px 10px 10px;
+ width: 200px;
+}
+
+div.toc li {
+ background: url("bdwn.png") no-repeat scroll 0 5px transparent;
+ font-size: 10px;
+ margin-top: 5px;
+ padding-left: 10px;
+ padding-top: 2px;
+}
+
+div.toc h3 {
+ border-bottom: 0 none;
+ margin: 0;
+}
+
+div.toc ul {
+ list-style: none outside none;
+ border: medium none;
+ padding: 0px;
+}
+
+div.toc li.level1 {
+ margin-left: 0px;
+}
+
+div.toc li.level2 {
+ margin-left: 15px;
+}
+
+div.toc li.level3 {
+ margin-left: 30px;
+}
+
+div.toc li.level4 {
+ margin-left: 45px;
+}
+
+.inherit_header {
+ font-weight: bold;
+ color: gray;
+ cursor: pointer;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.inherit_header td {
+ padding: 6px 0px 2px 5px;
+}
+
+.inherit {
+ display: none;
+}
+
+tr.heading h2 {
+ margin-bottom: 4px;
+}
+
+
+
+
+
+
+/* fix ugly default bg image */
+.tablist a:hover {
+ background-image: url('tab_s.png');
+}
+
+/* fix ugly ul */
+div.contents div.textblock ul {
+ list-style: none;
+ list-style-image: none;
+ padding-left:15px;
+}
+div.contents div.textblock ul li {
+ background-image: url(bullet.gif);
+ background-position: 0px 6px;
+ background-repeat: no-repeat;
+ padding-left: 13px;
+ line-height: 18px;
+}
+
+
+
+
+@media print
+{
+ #top { display: none; }
+ #side-nav { display: none; }
+ #nav-path { display: none; }
+ body { overflow:visible; }
+ h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
+ .summary { display: none; }
+ .memitem { page-break-inside: avoid; }
+ #doc-content
+ {
+ margin-left:0 !important;
+ height:auto !important;
+ width:auto !important;
+ overflow:inherit;
+ display:inline;
+ }
+}
+
+
+#side-nav {
+ left: auto !important;
+ margin-top: 0px !important;
+}
+
+
+#searchbox {
+ width: 180px; padding-top: 10px;
+}
+#MSearchBox {
+ position: relative; width: 120px;
+}
+#MSearchBox .left {
+ position: inherit; display: inline; float: left;
+}
+#MSearchBox .right {
+ position: inherit; display: inline; float: left; margin-left: 140px; right: 0px;
+
+}
+#MSearchField {
+ width:126px;
+}
+
+
+
+#MSearchResultsWindow {
+ position: inherit;
+ width: 100%;
+ border: none;
+ padding: auto;
+ margin: auto;
+
+ text-align: right;
+ width: 100% !important;
+ height: 0px !important;
+}
+#MSearchResultsWindow iframe {
+ border-bottom: 2px solid #ef2121;
+ border-left: 2px solid #ef2121;
+ border-right: 2px solid #ef2121;
+ padding: 5px;
+ background-color: #eaeaea;
+}
+
+
+
+#nav-path ul
+{
+ background-color: #000;
+ height:30px;
+ overflow:hidden;
+ margin:0px;
+ padding:0px;
+ border-top: 2px solid #ef2121;
+}
+#nav-path li
+{
+ list-style-type: none;
+ float:right;
+ padding: 10px;
+ padding-right:15px;
+ color:#fff;
+ text-align: right;
+}
+
+/*
+#nav-path
+{
+ display: none;
+}
+
+#nav-path li.footer
+{
+ list-style-type:none;
+ float:right;
+ padding-left:10px;
+ padding-right:25px;
+ color:#fff;
+}
+
+
+#nav-path li
+{
+ list-style-type:none;
+ float:left;
+ padding-left:10px;
+ padding-right:15px;
+ color:#fff;
+}
+*/
+
+
+/*
+#nav-path ul li {
+ padding: 10px !important;
+}
+#nav-path ul {
+ height: 40px !important;
+ margin-bottom: 40px !important;
+}
+*/
+
+
+
+.overview_table {
+ border:none;
+ margin-bottom:20px;
+}
+
+.overview_table td {
+ vertical-align:top;
+}
+
+.overview_table h1{
+ margin-top:5px;
+ padding-top:0px;
+}
+
+.overview_table td img {
+ margin-top:0px;
+ padding-top:20px;
+ padding-right:30px;
+}
+
+.textblock .fragment {
+ margin-top: 20px;
+ margin-bottom: 20px;
+}
+
+.mns_param_table {
+ border: none;
+ border-spacing: 0px;
+ min-height: 16px;
+}
+.mns_param_table #mns_param_small{
+ background-image:url(icon_inic_16x16.png);
+ background-position: left top;
+ background-repeat:no-repeat;
+ height: 16px;
+ width: 20px;
+ vertical-align: middle;
+ min-height: 16px;
+ padding-bottom: 0px;
+}
+
+.mns_ic_table {
+ border: none;
+ border-spacing: 0px;
+ margin: 10px 0px 10px 0px;
+ height: 32px;
+ width: 100%;
+}
+
+ .mns_ic_table td {
+ vertical-align: bottom;
+ min-height: 32px;
+ height: 32px;
+ padding-bottom: 0px;
+ }
+
+ .mns_ic_table #mns_ic_overview,
+ .mns_ic_table #mns_ic_started,
+ .mns_ic_table #mns_ic_manual ,
+ .mns_ic_table #mns_ic_examples,
+ .mns_ic_table #mns_ic_api,
+ .mns_ic_table #mns_ic_design,
+ .mns_ic_table #mns_ic_inic {
+ background-position: left bottom;
+ background-repeat:no-repeat;
+ height: 32px;
+ width: 47px;
+ }
+
+ .mns_ic_table #mns_ic_overview {
+ background-image:url(icon_overview_32x32.png);
+ }
+
+ .mns_ic_table #mns_ic_overview {
+ background-image:url(icon_overview_32x32.png);
+ }
+
+ .mns_ic_table #mns_ic_started {
+ background-image:url(icon_started_32x32.png);
+ }
+
+ .mns_ic_table #mns_ic_manual {
+ background-image:url(icon_manual_32x32.png);
+ }
+
+ .mns_ic_table #mns_ic_examples {
+ background-image:url(icon_examples_32x32.png);
+ }
+
+ .mns_ic_table #mns_ic_api {
+ background-image:url(icon_api_ref_32x32.png);
+ }
+
+ .mns_ic_table #mns_ic_inic{
+ background-image:url(icon_inic_32x32.png);
+ }
+
+/*
+
+#FSearchBox {
+ float: left;
+}
+
+#MSearchBox {
+ white-space : nowrap;
+ position: absolute;
+ position: inherit !important;
+ float: none;
+ display: inline;
+ margin-top: 0px;
+ right: 0px;
+ width: 170px;
+ z-index: 102;
+ background-color: white;
+}
+
+#MSearchBox .left
+{
+ display:block;
+ position:absolute;
+ left:10px;
+ width:20px;
+ height:19px;
+ background:url('search_l.png') no-repeat;
+ background-position:right;
+}
+
+#MSearchSelect {
+ display:block;
+ position:absolute;
+ width:20px;
+ height:19px;
+}
+
+.left #MSearchSelect {
+ left:4px;
+}
+
+.right #MSearchSelect {
+ right:5px;
+}
+
+#MSearchField {
+ display:block;
+ position:absolute;
+ height:19px;
+ background:url('search_m.png') repeat-x;
+ border:none;
+ width:116px;
+ margin-left:20px;
+ padding-left:4px;
+ color: #909090;
+ outline: none;
+ font: 9pt Arial, Verdana, sans-serif;
+}
+
+#FSearchBox #MSearchField {
+ margin-left:15px;
+}
+
+#MSearchBox .right {
+ display:block;
+ position:absolute;
+ right:10px;
+ top:0px;
+ width:20px;
+ height:19px;
+ background:url('search_r.png') no-repeat;
+ background-position:left;
+}
+
+#MSearchClose {
+ display: none;
+ position: absolute;
+ top: 4px;
+ background : none;
+ border: none;
+ margin: 0px 4px 0px 0px;
+ padding: 0px 0px;
+ outline: none;
+}
+
+.left #MSearchClose {
+ left: 6px;
+}
+
+.right #MSearchClose {
+ right: 2px;
+}
+
+.MSearchBoxActive #MSearchField {
+ color: #000000;
+}
+
+*/
+
+
+/* MISRA Deviation Matrix */
+.misra_deviation_table {
+ width:100%;
+}
+.misra_deviation_table tr th:nth-child(1),
+.misra_deviation_table tr td:nth-child(1) {
+ width:45px;
+ text-align:center;
+}
+.misra_deviation_table tr th:nth-child(2),
+.misra_deviation_table tr td:nth-child(2) {
+ text-align:left;
+}
+.misra_deviation_table tr th:nth-child(3),
+.misra_deviation_table tr td:nth-child(3) {
+ width:55px;
+ text-align:center;
+}
+.misra_deviation_table tr th:nth-child(4),
+.misra_deviation_table tr td:nth-child(4) {
+ width:55px;
+ text-align:center;
+}
+.misra_deviation_table tr th:nth-child(5),
+.misra_deviation_table tr td:nth-child(5) {
+ width:55px;
+ text-align:center;
+}
+.misra_deviation_table tr th:nth-child(6),
+.misra_deviation_table tr td:nth-child(6) {
+ width:200px;
+ text-align:left;
+}
+.misra_dev_mat_accepted {
+ background-color:#32CD32;
+}
+.misra_dev_mat_na {
+ background-color:#FFFFE0;
+}
+.misra_dev_mat_ignored {
+ background-color:#CD5C5C;
+ color:#FFFFFF;
+}
+
+
+/* MISRA Report */
+.misra_sep {
+ height:10px;
+}
+.misra_file{
+ font-weight:bold;
+}
+.misra_block{
+ margin-left:20px;
+ margin-bottom:5px;
+}
+.misra_line {
+ color:#999999;
+ display:inline;
+}
+.misra_msg {
+ display:inline;
+}
+.misra_rule {
+ color:#999999;
+ display:inline;
+}
+.misra_reason {
+}
+.misra_general_block {
+}
+.misra_general_line {
+}
+.misra_general_key {
+ display:inline;
+ font-weight:bold;
+}
+.misra_general_value {
+ display:inline;
+}
diff --git a/ucs2-lib/doc/html/sync_off.png b/ucs2-lib/doc/html/sync_off.png
new file mode 100644
index 0000000..6ca4341
--- /dev/null
+++ b/ucs2-lib/doc/html/sync_off.png
Binary files differ
diff --git a/ucs2-lib/doc/html/sync_on.png b/ucs2-lib/doc/html/sync_on.png
new file mode 100644
index 0000000..6f92963
--- /dev/null
+++ b/ucs2-lib/doc/html/sync_on.png
Binary files differ
diff --git a/ucs2-lib/doc/html/tab_a.png b/ucs2-lib/doc/html/tab_a.png
new file mode 100644
index 0000000..d66eb2a
--- /dev/null
+++ b/ucs2-lib/doc/html/tab_a.png
Binary files differ
diff --git a/ucs2-lib/doc/html/tab_b.png b/ucs2-lib/doc/html/tab_b.png
new file mode 100644
index 0000000..c72fe65
--- /dev/null
+++ b/ucs2-lib/doc/html/tab_b.png
Binary files differ
diff --git a/ucs2-lib/doc/html/tab_h.png b/ucs2-lib/doc/html/tab_h.png
new file mode 100644
index 0000000..2df16af
--- /dev/null
+++ b/ucs2-lib/doc/html/tab_h.png
Binary files differ
diff --git a/ucs2-lib/doc/html/tab_s.png b/ucs2-lib/doc/html/tab_s.png
new file mode 100644
index 0000000..0119568
--- /dev/null
+++ b/ucs2-lib/doc/html/tab_s.png
Binary files differ
diff --git a/ucs2-lib/doc/html/tabs.css b/ucs2-lib/doc/html/tabs.css
new file mode 100644
index 0000000..7c4771f
--- /dev/null
+++ b/ucs2-lib/doc/html/tabs.css
@@ -0,0 +1,60 @@
+.tabs, .tabs2, .tabs3 {
+ background-image: url('tab_b.png');
+ width: 100%;
+ z-index: 101;
+ font-size: 13px;
+ font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+}
+
+.tabs2 {
+ font-size: 10px;
+}
+.tabs3 {
+ font-size: 9px;
+}
+
+.tablist {
+ margin: 0;
+ padding: 0;
+ display: table;
+}
+
+.tablist li {
+ float: left;
+ display: table-cell;
+ background-image: url('tab_b.png');
+ line-height: 36px;
+ list-style: none;
+}
+
+.tablist a {
+ display: block;
+ padding: 0 20px;
+ font-weight: bold;
+ background-image:url('tab_s.png');
+ background-repeat:no-repeat;
+ background-position:right;
+ color: #1C1C1C;
+ text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+ text-decoration: none;
+ outline: none;
+}
+
+.tabs3 .tablist a {
+ padding: 0 10px;
+}
+
+.tablist a:hover {
+ background-image: url('tab_h.png');
+ background-repeat:repeat-x;
+ color: #fff;
+ text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+ text-decoration: none;
+}
+
+.tablist li.current a {
+ background-image: url('tab_a.png');
+ background-repeat:repeat-x;
+ color: #fff;
+ text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+}
diff --git a/ucs2-lib/doc/ucs.chm b/ucs2-lib/doc/ucs.chm
new file mode 100644
index 0000000..e50c4b4
--- /dev/null
+++ b/ucs2-lib/doc/ucs.chm
Binary files differ
diff --git a/ucs2-lib/doc/ucs.html b/ucs2-lib/doc/ucs.html
new file mode 100644
index 0000000..2222992
--- /dev/null
+++ b/ucs2-lib/doc/ucs.html
@@ -0,0 +1,6 @@
+<html>
+<head>
+<meta http-equiv="refresh" content="0; URL=html/index.html">
+</head>
+<body></body>
+</html> \ No newline at end of file
diff --git a/ucs2-lib/inc/ucs_alm.h b/ucs2-lib/inc/ucs_alm.h
new file mode 100644
index 0000000..df9deec
--- /dev/null
+++ b/ucs2-lib/inc/ucs_alm.h
@@ -0,0 +1,111 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Internal header file of the API locking module.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_ALM
+ * @{
+ */
+
+#ifndef UCS_ALM_H
+#define UCS_ALM_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_rules.h"
+#include "ucs_eh.h"
+#include "ucs_timer.h"
+#include "ucs_obs.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Type definitions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Bitmask used to store locked API methods */
+typedef uint32_t Alm_ModuleMask_t;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Class structure of the API locking manager */
+typedef struct CApiLockingManager_
+{
+ CTimerManagement *tm_ptr; /*!< \brief Reference to timer management instance */
+ CEventHandler *eh_ptr; /*!< \brief Reference to event handler instance */
+ CTimer garbage_collector; /*!< \brief Timer for garbage collection */
+ CDlList api_list; /*!< \brief List of registered APIs */
+ void *ucs_user_ptr; /*!< \brief User reference that needs to be passed in every callback function */
+ CMaskedObserver internal_error_obs; /*!< \brief Error observer to handle internal errors and
+ events */
+
+} CApiLockingManager;
+
+/*! \brief Class structure of the API locking */
+typedef struct CApiLocking_
+{
+ CDlNode node; /*!< \brief Node of the doubly linked (API-) list */
+ CApiLockingManager *alm_ptr; /*!< \brief Reference to CApiLockingManager instance */
+ Alm_ModuleMask_t method_mask; /*!< \brief Bitmask which holds locked API methods */
+ Alm_ModuleMask_t timeout_mask; /*!< \brief Bitmask to report timeouts */
+ CSingleSubject subject; /*!< \brief Subject to update registered observer */
+ void * ucs_user_ptr; /*!< \brief UNICENS instance ID */
+
+} CApiLocking;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Prototypes of class CApiLockingManager */
+/*------------------------------------------------------------------------------------------------*/
+extern void Alm_Ctor(CApiLockingManager *self,
+ CTimerManagement *tm_ptr,
+ CEventHandler *eh_ptr,
+ void * ucs_user_ptr);
+extern void Alm_RegisterApi(CApiLockingManager *self, CApiLocking *al_ptr);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Prototypes of class CApiLocking */
+/*------------------------------------------------------------------------------------------------*/
+extern void Al_Ctor(CApiLocking *self, CSingleObserver *obs_ptr, void * ucs_user_ptr);
+extern bool Al_Lock(CApiLocking *self, Alm_ModuleMask_t method);
+extern void Al_Release(CApiLocking *self, Alm_ModuleMask_t method);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_ALM_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_amd.h b/ucs2-lib/inc/ucs_amd.h
new file mode 100644
index 0000000..069b92f
--- /dev/null
+++ b/ucs2-lib/inc/ucs_amd.h
@@ -0,0 +1,141 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Internal header file of Application Message Distributor
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_AMD
+ * @{
+ */
+#ifndef UCS_AMD_H
+#define UCS_AMD_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_ams.h"
+#include "ucs_base.h"
+#include "ucs_amsmessage.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Types */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Assignable function which is invoked as soon as an application message is received
+ * completely and available in the Rx message queue
+ * \param self The instance
+ */
+typedef void (*Amd_RxMsgCompleteCb_t)(void *self);
+
+/*! \brief Assignable callback function which is able to read and modify the Rx message
+ * \param self The instance
+ * \param msg_ptr Reference to the Rx message object
+ */
+typedef void (*Amd_RxModificationCb_t)(void *self, Ucs_AmsRx_Msg_t *msg_ptr);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Class */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Application Message Service Class
+ * \details Allows transmission and reception of MOST Application Messages
+ */
+typedef struct CAmd_
+{
+ CBase *base_ptr; /*!< \brief Reference to basic services */
+ CAms *ams_ptr; /*!< \brief Reference to AMS */
+#ifdef AMD_TX_DISTRIB
+ CAmsMsgPool *pool_ptr; /*!< \brief Reference to AMS message pool */
+ CInic *inic_ptr; /*!< \brief Reference to INIC */
+ CNetworkManagement *net_ptr; /*!< \brief Reference to network management */
+#endif
+ CService service; /*!< \brief Service object */
+ bool started; /*!< \brief Is \c true if the AMD is allowed
+ * to distribute messages
+ */
+ CMaskedObserver event_observer; /*!< \brief Observes init complete event */
+ CMaskedObserver terminate_observer; /*!< \brief Observes events leading to termination */
+
+ void *preprocess_inst_ptr; /*!< \brief Reference to the message preprocessor */
+ Amd_RxMsgCompleteCb_t preprocess_fptr; /*!< \brief Callback function which is invoked first
+ * on completed message reception
+ */
+
+ void *receive_inst_ptr; /*!< \brief Reference to the message receiver */
+ Amd_RxMsgCompleteCb_t receive_fptr; /*!< \brief Callback function which is invoked after
+ * the preprocessor has finished
+ */
+#ifdef AMD_TX_DISTRIB
+ CDlList tx_notify_queue; /*!< \brief Queue to notify asynchronously a failed transmission */
+#endif
+ CDlList pre_queue; /*!< \brief Queue of messages for the preprocessor */
+ CDlList rx_queue; /*!< \brief Queue of messages for the receiver */
+
+ CDlList *first_q_ptr; /*!< \brief Reference where to queue the messages first */
+ Amd_RxMsgCompleteCb_t first_receive_fptr; /*!< \brief Reference of the callback to be fired first */
+ void *first_receive_inst_ptr; /*!< \brief Reference to the first receiver */
+
+ Amd_RxModificationCb_t rx_modification_fptr; /*!< \brief Callback function for message modification */
+ void *rx_modification_inst_ptr; /*!< \brief Callback reference for message modification */
+
+} CAmd;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Methods */
+/*------------------------------------------------------------------------------------------------*/
+extern void Amd_Ctor(CAmd *self, CBase *base_ptr, CAms *ams_ptr);
+extern void Amd_AssignPreprocessor(CAmd *self, Amd_RxMsgCompleteCb_t callback_fptr, void *inst_ptr);
+extern void Amd_AssignReceiver(CAmd *self, Amd_RxMsgCompleteCb_t callback_fptr, void *inst_ptr);
+extern void Amd_RxAssignModificator(CAmd *self, Amd_RxModificationCb_t callback_fptr, void *inst_ptr);
+
+extern Ucs_AmsRx_Msg_t* Amd_PrePeekMsg(CAmd *self);
+extern void Amd_PreReleaseMsg(CAmd *self);
+extern void Amd_PreForwardMsg(CAmd *self);
+
+extern Ucs_AmsRx_Msg_t* Amd_RxPeekMsg(CAmd *self);
+extern void Amd_RxReleaseMsg(CAmd *self);
+extern uint16_t Amd_RxGetMsgCnt(CAmd *self);
+
+#ifdef AMD_TX_DISTRIB
+Ucs_Return_t Amd_TxSendMsg(CAmd *self, Ucs_AmsTx_Msg_t *msg_ptr, Amsg_TxCompleteSiaCb_t tx_complete_sia_fptr,
+ Amsg_TxCompleteCb_t tx_complete_fptr, void* tx_complete_inst_ptr);
+#endif
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* UCS_AMD_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_ams.h b/ucs2-lib/inc/ucs_ams.h
new file mode 100644
index 0000000..662cc43
--- /dev/null
+++ b/ucs2-lib/inc/ucs_ams.h
@@ -0,0 +1,161 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Internal header file of Application Message Service
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_AMSC
+ * @{
+ */
+
+#ifndef UCS_AMS_H
+#define UCS_AMS_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_ams_pb.h"
+#include "ucs_amsmessage.h"
+#include "ucs_amspool.h"
+#include "ucs_pool.h"
+#include "ucs_transceiver.h"
+#include "ucs_pmchannel.h"
+#include "ucs_ret_pb.h"
+#include "ucs_segmentation.h"
+#include "ucs_message.h"
+#include "ucs_telqueue.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal constants */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Defines the default LLR number for Application Messages */
+#define AMS_LLRBC_DEFAULT (MSG_LLRBC_DEFAULT)
+/*! \brief Defines the maximum LLR number for Application Messages */
+#define AMS_LLRBC_MAX (MSG_LLRBC_MAX)
+/*! \brief Default memory size that is allocated when receiving segmented messages
+ * without size prefix */
+#define AMS_RX_DEF_SIZE_PAYLOAD 400U
+/*! \brief Maximum destination address which is reserved for internal transmission */
+#define AMS_ADDR_RSVD_RANGE 0x000FU
+
+/*------------------------------------------------------------------------------------------------*/
+/* Types */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Callback function type to request FIFO routing for a Tx message.
+ * \param msg_ptr Reference to a Tx message object
+ * \return Returns \c true if a Tx message shall be routed to RCM FIFO, otherwise returns \c false.
+ */
+typedef bool (*Ams_TxIsRcmMsgCb_t)(Ucs_AmsTx_Msg_t *msg_ptr);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Class */
+/*------------------------------------------------------------------------------------------------*/
+
+/*! \brief Application Message Service Class
+ * \details Allows transmission and reception of MOST Application Messages
+ */
+typedef struct CAms_
+{
+ CService service; /*!< \brief Service object */
+ CSegmentation segmentation; /*!< \brief Segmentation object */
+ CMaskedObserver unsync_result_observer; /*!< \brief Observes un-sync result */
+
+ CBase *base_ptr; /*!< \brief Reference to basic services */
+ CAmsMsgPool *pool_ptr; /*!< \brief Pool providing Rx and Tx objects/payload */
+ CTransceiver *trcv_mcm_ptr; /*!< \brief Reference to MCM transceiver */
+ CTransceiver *trcv_rcm_ptr; /*!< \brief Reference to RCM transceiver */
+
+ struct Ams_tx_
+ {
+ CDlList queue; /*!< \brief Input queue of Tx Application Messages */
+ uint8_t default_llrbc; /*!< \brief Default LowLevelRetryBlockCount. Valid values: 0..100 */
+ Ams_TxIsRcmMsgCb_t is_rcm_fptr; /*!< \brief Assignable callback function to request the correct transceiver */
+ uint8_t next_follower_id; /*!< \brief The follower id for the next segmented
+ * message
+ */
+ } tx;
+
+ struct Ams_rx_
+ {
+ CObserver message_freed_observer; /*!< \brief Observes message freed event */
+
+ Amsg_RxCompleteCb_t complete_fptr; /*!< \brief Callback function which is invoked on
+ * message reception
+ */
+ void *complete_inst_ptr; /*!< \brief Instance which is notified on
+ * message reception
+ */
+ CTelQueue waiting_queue; /*!< \brief Queue of unprocessed single telegrams */
+
+ } rx;
+
+} CAms;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Initialization Methods */
+/*------------------------------------------------------------------------------------------------*/
+extern void Ams_Ctor(CAms *self, CBase *base_ptr, CTransceiver *mcm_trcv_ptr, CTransceiver *rcm_trcv_ptr,
+ CAmsMsgPool *pool_ptr, uint16_t rx_def_payload_sz);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Public methods / Tx */
+/*------------------------------------------------------------------------------------------------*/
+extern void Ams_TxSetDefaultRetries(CAms *self, uint8_t llrbc);
+extern void Ams_TxAssignMsgFreedObs(CAms *self, CObserver *observer_ptr);
+extern void Ams_TxAssignTrcvSelector(CAms *self, Ams_TxIsRcmMsgCb_t cb_fptr);
+extern Ucs_AmsTx_Msg_t* Ams_TxGetMsg(CAms *self, uint16_t size);
+extern void Ams_TxFreeUnusedMsg(CAms *self, Ucs_AmsTx_Msg_t *msg_ptr);
+extern uint16_t Ams_TxGetMsgCnt(CAms *self);
+extern bool Ams_TxIsValidMessage(Ucs_AmsTx_Msg_t *msg_ptr);
+extern void Ams_TxSendMsgDirect(CAms *self, Ucs_AmsTx_Msg_t *msg_ptr);
+extern Ucs_Return_t Ams_TxSendMsg(CAms *self, Ucs_AmsTx_Msg_t *msg_ptr, Amsg_TxCompleteSiaCb_t tx_complete_sia_fptr,
+ Amsg_TxCompleteCb_t tx_complete_fptr, void* tx_complete_inst_ptr);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Public methods / Rx */
+/*------------------------------------------------------------------------------------------------*/
+extern void Ams_RxAssignReceiver(CAms *self, Amsg_RxCompleteCb_t cb_fptr, void *inst_ptr);
+extern void Ams_RxFreeMsg(CAms *self, Ucs_AmsRx_Msg_t *msg_ptr);
+extern void Ams_RxOnMcmTelComplete(void *self, Msg_MostTel_t *tel_ptr);
+extern void Ams_RxOnRcmTelComplete(void *self, Msg_MostTel_t *tel_ptr);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* UCS_AMS_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_ams_pb.h b/ucs2-lib/inc/ucs_ams_pb.h
new file mode 100644
index 0000000..866a516
--- /dev/null
+++ b/ucs2-lib/inc/ucs_ams_pb.h
@@ -0,0 +1,224 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Public header file of Application Message Service
+ */
+/*!
+ * \addtogroup G_UCS_AMS_TYPES
+ * @{
+ */
+
+#ifndef UCS_AMS_PB_H
+#define UCS_AMS_PB_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_rules.h"
+#include "ucs_message_pb.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*! \brief Defines which address type was used by the transmitter of a message. */
+typedef enum Ucs_AmsRx_ReceiveType_
+{
+ UCS_AMSRX_RCT_SINGLECAST = 0U, /*!< \brief Message was transmitted as singlecast */
+ UCS_AMSRX_RCT_GROUPCAST = 1U, /*!< \brief Message was transmitted as groupcast */
+ UCS_AMSRX_RCT_BROADCAST = 2U /*!< \brief Message was transmitted as broadcast */
+
+} Ucs_AmsRx_ReceiveType_t;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Types */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Application message Tx type */
+typedef struct Ucs_AmsTx_Msg_
+{
+ uint16_t destination_address; /*!< \brief Destination address. Find some predefined addresses \ref G_UCS_AMS "here". */
+ uint16_t msg_id; /*!< \brief 16bit message descriptor */
+ uint8_t llrbc; /*!< \brief Specifies the "Low-Level Retry Block Count" (LLRBC)
+ * \details Valid values: 0..100. Default value: configurable via \ref Ucs_AmsTx_InitData_t "default_llrbc"
+ * of the initialization structure \ref Ucs_AmsTx_InitData_t.
+ */
+ uint8_t *data_ptr; /*!< \brief Payload data */
+ uint16_t data_size; /*!< \brief The size of payload data in bytes */
+ void *custom_info_ptr; /*!< \brief Customer specific reference
+ * \details The application is allowed to use this attribute to assign an
+ * own reference to the message object. The reference is initialized
+ * by the UNICENS library with \c NULL and will not alter until the
+ * transmission has finished.
+ */
+} Ucs_AmsTx_Msg_t;
+
+/*! \brief Application message Rx type */
+typedef struct Ucs_AmsRx_Msg_
+{
+ uint16_t source_address; /*!< \brief Source address */
+ uint16_t msg_id; /*!< \brief 16bit message descriptor */
+ uint8_t *data_ptr; /*!< \brief Reference to payload */
+ uint16_t data_size; /*!< \brief Payload size in bytes */
+ void *custom_info_ptr; /*!< \brief Customer specific reference */
+ Ucs_AmsRx_ReceiveType_t receive_type; /*!< \brief Defines which address type was used by the transmitter of this message */
+
+} Ucs_AmsRx_Msg_t;
+
+/*! \brief Transmission result of an application message */
+typedef enum Ucs_AmsTx_Result_
+{
+ UCS_AMSTX_RES_SUCCESS = 0x00U,/*!< \brief The transmission succeeded. */
+
+ UCS_AMSTX_RES_ERR_RETRIES_EXP = 0x01U,/*!< \brief The transmission including all retries have failed.
+ * \details The following issues may have caused the failure:
+ * - message corruption
+ * - transmission timeouts
+ * - full receive buffers of the destination device
+ * - full receive buffers of the local device if the
+ * destination was the own address, own group or broadcast
+ * address
+ * .
+ */
+ UCS_AMSTX_RES_ERR_INVALID_TGT = 0x02U,/*!< \brief The transmission failed because the specified destination
+ * address is not found or not valid.
+ * \details The following issues may have caused the failure:
+ * - device with the given destination address is not found
+ * - destination address is reserved (for future use)
+ * - destination address is 0xFFFF (un-initialized logical
+ * node address is not supported)
+ * .
+ */
+ UCS_AMSTX_RES_ERR_NOT_AVAILABLE = 0x03U,/*!< \brief The transmission failed since the network or the INIC
+ * is not available.
+ */
+ UCS_AMSTX_RES_ERR_BUF_INTERNAL = 0xFEU,/*!< \brief The transmission failed because the allocation of an Rx message object failed.
+ * The Rx message object is required to receive the message via the own Rx message queue.
+ * \details This is possible in the following cases:
+ * - A message is transmitted to the own node address and the allocation
+ * of an Rx message object failed.
+ * - The network transmission to the own group address or broadcast address
+ * succeeded but the allocation of an Rx message object failed. The application
+ * has to decide whether to retransmit the message to the own address again.
+ */
+ UCS_AMSTX_RES_ERR_UNEXPECTED = 0xFFU /*!< \brief The transmission failed due to an unexpected error.
+ * The cause of this failure may be an invalid INIC configuration,
+ * or an INIC to UNICENS incompatibility issue.
+ */
+} Ucs_AmsTx_Result_t;
+
+
+/*! \brief Detailed INIC transmission information which might be useful for debugging purposes. */
+typedef enum Ucs_AmsTx_Info_
+{
+ UCS_AMSTX_I_SUCCESS = 0x00U, /*!< \brief The transmission succeeded.
+ * \details The corresponding transmission result is \ref UCS_AMSTX_RES_SUCCESS.
+ */
+ UCS_AMSTX_I_ERR_CFG_NORECEIVER = 0x01U, /*!< \brief The transmission failed because the MOST network is not accessible for
+ * MCM in the current attach state or for ICM in general.
+ * \details The corresponding transmission result is \ref UCS_AMSTX_RES_ERR_UNEXPECTED.
+ */
+ UCS_AMSTX_I_ERR_BF = 0x08U, /*!< \brief The transmission failed because the receivers buffer is full.
+ * \details The corresponding transmission result is \ref UCS_AMSTX_RES_ERR_RETRIES_EXP.
+ */
+ UCS_AMSTX_I_ERR_CRC = 0x09U, /*!< \brief The transmission failed because of a failed CRC.
+ * \details The corresponding transmission result is \ref UCS_AMSTX_RES_ERR_RETRIES_EXP.
+ */
+ UCS_AMSTX_I_ERR_ID = 0x0AU, /*!< \brief The transmission failed because of corrupted identifiers.
+ * \details The corresponding transmission result is \ref UCS_AMSTX_RES_ERR_RETRIES_EXP.
+ */
+ UCS_AMSTX_I_ERR_ACK = 0x0BU, /*!< \brief The transmission failed because of corrupted PACK or CACK.
+ * \details The corresponding transmission result is \ref UCS_AMSTX_RES_ERR_RETRIES_EXP.
+ */
+ UCS_AMSTX_I_ERR_TIMEOUT = 0x0CU, /*!< \brief The transmission failed because of a transmission timeout.
+ * \details The corresponding transmission result is \ref UCS_AMSTX_RES_ERR_RETRIES_EXP.
+ */
+ UCS_AMSTX_I_ERR_FATAL_WT = 0x10U, /*!< \brief The transmission failed because of destination is not available.
+ * \details The corresponding transmission result is \ref UCS_AMSTX_RES_ERR_INVALID_TGT.
+ */
+ UCS_AMSTX_I_ERR_FATAL_OA = 0x11U, /*!< \brief The transmission failed because of the destination is the own node address.
+ * \details The corresponding transmission result is \ref UCS_AMSTX_RES_ERR_INVALID_TGT.
+ */
+ UCS_AMSTX_I_ERR_UNAVAIL_TRANS = 0x18U, /*!< \brief The transmission canceled during the transition from network interface state
+ * "available" to "not available".
+ * \details The corresponding transmission result is \ref UCS_AMSTX_RES_ERR_NOT_AVAILABLE.
+ */
+ UCS_AMSTX_I_ERR_UNAVAIL_OFF = 0x19U, /*!< \brief The transmission failed because the network interface state is "not available".
+ * \details The corresponding transmission result is \ref UCS_AMSTX_RES_ERR_NOT_AVAILABLE.
+ */
+ UCS_AMSTX_I_ERR_UNKNOWN = 0xFEU, /*!< \brief The transmission failed because of an unknown INIC error code.
+ * \details The corresponding transmission result is \ref UCS_AMSTX_RES_ERR_UNEXPECTED.
+ * Please check if the MNS version is compatible with the applied INIC firmware version.
+ */
+ UCS_AMSTX_I_ERR_UNSYNCED = 0xFFU /*!< \brief The transmission failed because the communication between the EHC
+ * and the INIC is lost.
+ * \details The reason can be a communication error between the EHC and the INIC or that
+ * the application has called Ucs_Stop().\n
+ * The corresponding transmission result is \ref UCS_AMSTX_RES_ERR_NOT_AVAILABLE.
+ */
+} Ucs_AmsTx_Info_t;
+
+/*! \brief Type of a callback function that is invoked as soon as a
+ * message transmission was finished
+ * \details The callback function notifies the result of a completed transmission. If
+ * the message has external payload, the application must decide whether
+ * to re-use or to free the external payload.
+ * \param msg_ptr Reference to the related Tx message object. When the callback function returns
+ * the reference is no longer valid.
+ * \param result The transmission result.
+ * \param info Detailed INIC transmission result, which might be helpful for debug purposes.
+ * \param user_ptr User reference provided in \ref Ucs_InitData_t "Ucs_InitData_t::user_ptr"
+ */
+typedef void (*Ucs_AmsTx_CompleteCb_t)(Ucs_AmsTx_Msg_t* msg_ptr, Ucs_AmsTx_Result_t result, Ucs_AmsTx_Info_t info, void *user_ptr);
+
+/*!
+ * @}
+ * \addtogroup G_UCS_AMS
+ * @{
+ */
+
+/*! \brief Type of a callback function that is invoked to notify that
+ * a Tx application message object is available again while a previous
+ * allocation using Ucs_AmsTx_AllocMsg() has failed.
+ * \param user_ptr User reference provided in \ref Ucs_InitData_t "Ucs_InitData_t::user_ptr"
+ */
+typedef void (*Ucs_AmsTx_MsgFreedCb_t)(void *user_ptr);
+
+/*! \brief Callback function type that is invoked if UNICENS has received a message
+ * completely and appended to the Rx message queue.
+ * \param user_ptr User reference provided in \ref Ucs_InitData_t "Ucs_InitData_t::user_ptr"
+ */
+typedef void (*Ucs_AmsRx_MsgReceivedCb_t)(void *user_ptr);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* ifndef UCS_AMS_PB_H */
+
+/*! @} */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_amsallocator.h b/ucs2-lib/inc/ucs_amsallocator.h
new file mode 100644
index 0000000..b22db9d
--- /dev/null
+++ b/ucs2-lib/inc/ucs_amsallocator.h
@@ -0,0 +1,104 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Internal header file of AMS Allocator Interface
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_AMSC
+ * @{
+ */
+
+#ifndef UCS_AMSALLOCATOR_H
+#define UCS_AMSALLOCATOR_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_types_cfg.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Types */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Defines the usage of a requested memory chunk */
+typedef enum Ams_MemUsage_
+{
+ AMS_MU_RX_OBJECT, /*!< \brief Memory is required to allocate an Rx message object */
+ AMS_MU_RX_PAYLOAD, /*!< \brief Memory is required to allocate Rx message payload */
+ AMS_MU_TX_OBJECT, /*!< \brief Memory is required to allocate a Tx message object */
+ AMS_MU_TX_PAYLOAD /*!< \brief Memory is required to allocate Tx message payload */
+
+} Ams_MemUsage_t;
+
+/*! \brief Callback function type that is invoked to allocate external payload for a segmented Rx message
+ * \param inst_ptr Reference to the (external) memory management
+ * \param mem_size Reference to the required memory size in bytes. Valid values: 0..65535.
+ * \param type Declares how the memory is used by UNICENS
+ * \param custom_info_pptr Reference which is related to the memory chunk and can be set by
+ * the application.
+ * \return Pointer to the provided memory chunk. The application has to guarantee that the memory size
+ * is equal or greater than \c mem_size. The application has to return \c NULL if it is not able
+ * to allocate the required memory at this moment.
+ */
+typedef void* (*Ams_AllocMemCb_t)(void *inst_ptr, uint16_t mem_size, Ams_MemUsage_t type, void** custom_info_pptr);
+
+/*! \brief Callback function type that is invoked to free external payload for a segmented Rx message
+ * \param inst_ptr Reference to the (external) memory management
+ * \param mem_ptr Reference to the external payload memory
+ * \param type Declares how the memory is used by UNICENS
+ * \param custom_info_ptr Reference to memory related information which was set by the application
+ * during memory allocation
+ */
+typedef void (*Ams_FreeMemCb_t)(void *inst_ptr, void *mem_ptr, Ams_MemUsage_t type, void* custom_info_ptr);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Allocator interface */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Keeps callback functions to an external memory management for Rx payload */
+typedef struct Ams_MemAllocator_
+{
+ void *inst_ptr; /*!< \brief The instance of the (external) memory management */
+ Ams_AllocMemCb_t alloc_fptr; /*!< \brief This function is invoked to allocate Rx user payload */
+ Ams_FreeMemCb_t free_fptr; /*!< \brief This function is invoked to free Rx user payload */
+
+} Ams_MemAllocator_t;
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* UCS_AMSALLOCATOR_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_amsmessage.h b/ucs2-lib/inc/ucs_amsmessage.h
new file mode 100644
index 0000000..8e49e8f
--- /dev/null
+++ b/ucs2-lib/inc/ucs_amsmessage.h
@@ -0,0 +1,206 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Internal header file of Application Message Classes
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_AMSMSG
+ * @{
+ */
+
+#ifndef UCS_AMSMESSAGE_H
+#define UCS_AMSMESSAGE_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_ams_pb.h"
+#include "ucs_message.h"
+#include "ucs_dl.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal constants */
+/*------------------------------------------------------------------------------------------------*/
+#define AMSG_TX_OBJECT_SZ (sizeof(Amsg_IntMsgTx_t))
+#define AMSG_RX_OBJECT_SZ (sizeof(Amsg_IntMsgRx_t))
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal types */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Internal transmission result of an application message */
+typedef enum Amsg_TxIntStatus_
+{
+ AMSG_TX_INTRES_NONE = 0x00U, /*!< \brief The internal transmission is not applicable. */
+ AMSG_TX_INTRES_SUCCESS = 0x01U, /*!< \brief The internal transmission succeeded. */
+ AMSG_TX_INTRES_ERRBUF = 0x02U /*!< \brief The internal transmission failed. */
+
+} Amsg_TxIntStatus_t;
+
+/*! \brief Assignable function which is invoked as soon as an application message is received
+ * completely and available in the Rx message queue
+ * \param self The instance (optional)
+ * \param msg_ptr Reference to the received message
+ */
+typedef void (*Amsg_RxCompleteCb_t)(void* self, Ucs_AmsRx_Msg_t* msg_ptr);
+
+/*! \brief Callback function type which is fired as soon as an AMS transmission was finished
+ * \param msg_ptr Reference to the related message object
+ * \param result Transmission result
+ * \param info Detailed INIC transmission result
+ * \param self The instance (optional)
+ */
+typedef void (*Amsg_TxCompleteCb_t)(Ucs_AmsTx_Msg_t* msg_ptr, Ucs_AmsTx_Result_t result, Ucs_AmsTx_Info_t info, void* self);
+
+/*! \brief Single instance API callback function type which is fired as soon as an AMS transmission was finished
+ * \param msg_ptr Reference to the related message object
+ * \param result Transmission result
+ * \param info Detailed INIC transmission result
+ */
+typedef void (*Amsg_TxCompleteSiaCb_t)(Ucs_AmsTx_Msg_t* msg_ptr, Ucs_AmsTx_Result_t result, Ucs_AmsTx_Info_t info);
+
+/*! \brief Callback function which is invoked to free a Tx message object to the owning pool
+ * \param owner_ptr The owning pool of the message object
+ * \param msg_ptr Reference to the related message object
+ */
+typedef void (*Amsg_TxFreedCb_t)(void *owner_ptr, Ucs_AmsTx_Msg_t* msg_ptr);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Class */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Internal Tx message structure */
+typedef struct Amsg_IntMsgTx_
+{
+ Ucs_AmsTx_Msg_t pb_msg; /*!< \brief Public message struct must be the first member */
+ void *info_ptr; /*!< \brief Custom object information required by memory management */
+
+ void *free_inst_ptr; /*!< \brief Reference which is passed to free_ptr */
+ Amsg_TxFreedCb_t free_fptr; /*!< \brief Callback function which is called to free the object */
+
+ uint8_t *memory_ptr; /*!< \brief Reference to payload provided by memory management */
+ void *memory_info_ptr; /*!< \brief Custom payload information required by memory management */
+ uint16_t memory_sz; /*!< \brief Size of the payload that is provided by memory management */
+
+ uint16_t next_segment_cnt; /*!< \brief Specifies the next segment count. '0xFF' means size prefixed */
+ uint8_t follower_id; /*!< \brief Identifier of segmented messages and corresponding telegrams */
+ Ucs_MsgTxStatus_t temp_result; /*!< \brief Stores the temporary result that is notified when then transmission
+ * has completed
+ */
+ uint16_t backup_dest_address; /*!< \brief Backup of replaced target address. */
+ Amsg_TxIntStatus_t internal_status; /*!< \brief Stores the internal transmission status */
+ bool ignore_wrong_target; /*!< \brief Forces the message to report transmission result "success", although
+ * the INIC has reported transmission error "wrong target"
+ */
+ CDlNode node; /*!< \brief Node required for message pool */
+
+ Amsg_TxCompleteSiaCb_t complete_sia_fptr; /*!< \brief Single instance API Callback function which is invoked
+ * after transmission completed
+ */
+ Amsg_TxCompleteCb_t complete_fptr; /*!< \brief Callback function which is invoked after transmission
+ * completed
+ */
+ void *complete_inst_ptr; /*!< \brief Instance pointer which is required to invoke complete_fptr */
+
+} Amsg_IntMsgTx_t;
+
+/*! \brief Internal Rx message structure */
+typedef struct Amsg_IntMsgRx_
+{
+ Ucs_AmsRx_Msg_t pb_msg; /*!< \brief Public message structure must be the first member */
+ void *info_ptr; /*!< \brief Custom object information required by memory management */
+
+ uint8_t *memory_ptr; /*!< \brief Reference to payload provided by memory management */
+ void *memory_info_ptr; /*!< \brief Custom payload information required by memory management */
+ uint16_t memory_sz; /*!< \brief The size of the allocated user payload in bytes */
+
+ CDlNode node; /*!< \brief Node required for message pool */
+
+ uint8_t exp_tel_cnt; /*!< \brief The expected TelCnt used for segmented transfer */
+ bool gc_marker; /*!< \brief Identifies message objects that were already
+ * marked by the garbage collector.
+ */
+} Amsg_IntMsgRx_t;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Class methods */
+/*------------------------------------------------------------------------------------------------*/
+/* Tx */
+extern void Amsg_TxCtor(Ucs_AmsTx_Msg_t *self, void *info_ptr, Amsg_TxFreedCb_t free_fptr, void *free_inst_ptr);
+extern void Amsg_TxSetInternalPayload(Ucs_AmsTx_Msg_t *self, uint8_t *mem_ptr, uint16_t mem_size, void *mem_info_ptr);
+extern void Amsg_TxReuse(Ucs_AmsTx_Msg_t *self);
+extern void Amsg_TxSetCompleteCallback(Ucs_AmsTx_Msg_t *self, Amsg_TxCompleteSiaCb_t compl_sia_fptr,
+ Amsg_TxCompleteCb_t compl_fptr, void* compl_inst_ptr);
+extern void Amsg_TxNotifyComplete(Ucs_AmsTx_Msg_t *self, Ucs_AmsTx_Result_t result, Ucs_AmsTx_Info_t info);
+extern void Amsg_TxFreeUnused(Ucs_AmsTx_Msg_t *self);
+extern void Amsg_TxUpdateInternalResult(Ucs_AmsTx_Msg_t *self, Amsg_TxIntStatus_t result);
+extern void Amsg_TxUpdateResult(Ucs_AmsTx_Msg_t *self, Ucs_MsgTxStatus_t result);
+extern Ucs_AmsTx_Result_t Amsg_TxGetResultCode(Ucs_AmsTx_Msg_t *self);
+extern Ucs_AmsTx_Info_t Amsg_TxGetResultInfo(Ucs_AmsTx_Msg_t *self);
+extern uint16_t Amsg_TxGetNextSegmCnt(Ucs_AmsTx_Msg_t *self);
+extern void Amsg_TxIncrementNextSegmCnt(Ucs_AmsTx_Msg_t *self);
+extern uint8_t Amsg_TxGetFollowerId(Ucs_AmsTx_Msg_t *self);
+extern void Amsg_TxSetFollowerId(Ucs_AmsTx_Msg_t *self, uint8_t id);
+extern void Amsg_TxReplaceDestinationAddr(Ucs_AmsTx_Msg_t *self, uint16_t new_destination);
+extern void Amsg_TxRemoveFromQueue(Ucs_AmsTx_Msg_t *self, CDlList *list_ptr);
+extern void Amsg_TxEnqueue(Ucs_AmsTx_Msg_t* self, CDlList* list_ptr);
+extern Ucs_AmsTx_Msg_t* Amsg_TxPeek(CDlList* list_ptr);
+extern Ucs_AmsTx_Msg_t* Amsg_TxDequeue(CDlList* list_ptr);
+
+/* Rx */
+extern void Amsg_RxCtor(Ucs_AmsRx_Msg_t *self, void *info_ptr);
+extern void Amsg_RxBuildFromTx(Ucs_AmsRx_Msg_t *self, Ucs_AmsTx_Msg_t *tx_ptr, uint16_t source_address);
+extern void Amsg_RxHandleSetup(Ucs_AmsRx_Msg_t *self);
+extern void Amsg_RxHandleSetMemory(Ucs_AmsRx_Msg_t *self, uint8_t *mem_ptr, uint16_t mem_size, void *info_ptr);
+extern bool Amsg_RxHandleIsIdentical(Ucs_AmsRx_Msg_t *self, Msg_MostTel_t *tel_ptr);
+extern void Amsg_RxCopySignatureFromTel(Ucs_AmsRx_Msg_t *self, Msg_MostTel_t* src_ptr);
+extern void Amsg_RxCopySignatureToTel(Ucs_AmsRx_Msg_t *self, Msg_MostTel_t* target_ptr);
+extern void Amsg_RxCopyToPayload(Ucs_AmsRx_Msg_t *self, uint8_t data[], uint8_t data_sz);
+extern bool Amsg_RxAppendPayload(Ucs_AmsRx_Msg_t *self, Msg_MostTel_t* src_ptr);
+extern bool Amsg_RxHasExternalPayload(Ucs_AmsRx_Msg_t *self);
+extern void Amsg_RxEnqueue(Ucs_AmsRx_Msg_t* self, CDlList* list_ptr);
+extern void Amsg_RxSetGcMarker(Ucs_AmsRx_Msg_t* self, bool value);
+extern bool Amsg_RxGetGcMarker(Ucs_AmsRx_Msg_t* self);
+extern uint8_t Amsg_RxGetExpTelCnt(Ucs_AmsRx_Msg_t* self);
+/* Rx helpers */
+extern Ucs_AmsRx_Msg_t* Amsg_RxPeek(CDlList* list_ptr);
+extern Ucs_AmsRx_Msg_t* Amsg_RxDequeue(CDlList* list_ptr);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* UCS_AMSMESSAGE_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_amspool.h b/ucs2-lib/inc/ucs_amspool.h
new file mode 100644
index 0000000..41d262c
--- /dev/null
+++ b/ucs2-lib/inc/ucs_amspool.h
@@ -0,0 +1,98 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Internal header file of Application Message Pools
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_AMSPOOL
+ * @{
+ */
+
+#ifndef UCS_AMSPOOL_H
+#define UCS_AMSPOOL_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_ams_pb.h"
+#include "ucs_obs.h"
+#include "ucs_amsallocator.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Classes */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Class members of AMS Pool */
+typedef struct CAmsMsgPool_
+{
+ Ams_MemAllocator_t *allocator_ptr; /*!< \brief Interface to memory allocator */
+ Ucs_AmsRx_Msg_t *rx_rsvd_msg_ptr; /*!< \brief Pre-allocated Rx message or NULL if no
+ * reserved message is available */
+ Ucs_AmsRx_Msg_t *rx_rsvd_msg_ref; /*!< \brief Stores the reference of the reserved message
+ * to identify it and restore the
+ * \c rx_rsvd_msg_ptr. */
+ CSubject tx_freed_subject; /*!< \brief Allows to observe freed Tx message event */
+ CSubject rx_freed_subject; /*!< \brief Allows to observe freed Rx message event */
+ bool tx_notify_freed; /*!< \brief Is \c true when to notify the next Tx freed object */
+ bool rx_notify_freed; /*!< \brief Is \c true when to notify the next Rx freed object */
+ bool terminated; /*!< \brief Is \c true if a cleanup was done. Helps to release the
+ * pre-allocated message after the first cleanup attempt. */
+ void *ucs_user_ptr; /*!< \brief User reference that needs to be passed in every callback function */
+
+} CAmsMsgPool;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Class methods */
+/*------------------------------------------------------------------------------------------------*/
+extern void Amsp_Ctor(CAmsMsgPool *self, Ams_MemAllocator_t *mem_allocator_ptr, void *ucs_user_ptr);
+extern void Amsp_Cleanup(CAmsMsgPool *self);
+/* Tx */
+extern void Amsp_AssignTxFreedObs(CAmsMsgPool *self, CObserver *observer_ptr);
+extern Ucs_AmsTx_Msg_t* Amsp_AllocTxObj(CAmsMsgPool *self, uint16_t payload_sz);
+/* Rx */
+extern void Amsp_AssignRxFreedObs(CAmsMsgPool *self, CObserver *observer_ptr);
+extern Ucs_AmsRx_Msg_t* Amsp_AllocRxObj(CAmsMsgPool *self, uint16_t payload_sz);
+extern Ucs_AmsRx_Msg_t* Amsp_AllocRxRsvd(CAmsMsgPool *self);
+extern bool Amsp_AllocRxPayload(CAmsMsgPool *self, uint16_t payload_sz, Ucs_AmsRx_Msg_t* msg_ptr);
+extern void Amsp_FreeRxObj(CAmsMsgPool *self, Ucs_AmsRx_Msg_t* msg_ptr);
+extern void Amsp_FreeRxPayload(CAmsMsgPool *self, Ucs_AmsRx_Msg_t* msg_ptr);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* UCS_AMSPOOL_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_amtp.h b/ucs2-lib/inc/ucs_amtp.h
new file mode 100644
index 0000000..b2a22a5
--- /dev/null
+++ b/ucs2-lib/inc/ucs_amtp.h
@@ -0,0 +1,83 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Internal header file of Application Message Tx Pool
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_AMTP
+ * @{
+ */
+
+#ifndef UCS_AMSP_H
+#define UCS_AMSP_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_base.h"
+#include "ucs_amsmessage.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Types */
+/*------------------------------------------------------------------------------------------------*/
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Class */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Application Message Tx Pool Class
+ * \details Provides a predefined number of Tx message objects to an internal class
+ */
+typedef struct CAmtp_
+{
+ void *ucs_user_ptr; /*!< \brief User reference that needs to be passed in every callback function */
+ CDlList msg_queue; /*!< \brief Queue of messages for the receiver */
+
+} CAmtp;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Methods */
+/*------------------------------------------------------------------------------------------------*/
+extern void Amtp_Ctor(CAmtp *self, Amsg_IntMsgTx_t msg_ptr[], uint8_t data_ptr[], uint8_t msg_cnt, uint16_t payload_sz, void *ucs_user_ptr);
+extern Ucs_AmsTx_Msg_t* Amtp_AllocMsg(CAmtp *self);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* UCS_AMD_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_api.h b/ucs2-lib/inc/ucs_api.h
new file mode 100644
index 0000000..c11b2e8
--- /dev/null
+++ b/ucs2-lib/inc/ucs_api.h
@@ -0,0 +1,72 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief UNICENSV2 API include file
+ */
+
+#ifndef UCS_API_H
+#define UCS_API_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Version */
+/*------------------------------------------------------------------------------------------------*/
+/* parasoft suppress item MISRA2004-19_4 reason "No message in public version (PPP issue)" */
+
+/*! \brief UNICENS Major Version Number
+ * \ingroup G_UCS_MISC
+ */
+#define UCS_VERSION_MAJOR 2
+
+/*! \brief UNICENS Minor Version Number
+ * \ingroup G_UCS_MISC
+ */
+#define UCS_VERSION_MINOR 1
+
+/*! \brief UNICENS Release Version Number
+ * \ingroup G_UCS_MISC
+ */
+#define UCS_VERSION_RELEASE 0
+
+/*! \brief UNICENS Build Number
+ * \ingroup G_UCS_MISC
+ */
+#define UCS_VERSION_BUILD 3491
+
+/* parasoft unsuppress item MISRA2004-19_4 reason "No message in public version (PPP issue)" */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_rules.h"
+#include "ucs_ret_pb.h"
+#include "ucs_lld_pb.h"
+#include "ucs_trace_pb.h"
+
+#include "ucs_eh_pb.h"
+#include "ucs_class_pb.h"
+
+#endif /* UCS_API_H */
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_attach.h b/ucs2-lib/inc/ucs_attach.h
new file mode 100644
index 0000000..e775c0b
--- /dev/null
+++ b/ucs2-lib/inc/ucs_attach.h
@@ -0,0 +1,102 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Declaration of CAttachService class
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_ATS
+ * @{
+ */
+
+#ifndef UCS_ATTACH_H
+#define UCS_ATTACH_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_obs.h"
+#include "ucs_fsm.h"
+#include "ucs_base.h"
+#include "ucs_pmfifos.h"
+#include "ucs_pmevent.h"
+#include "ucs_inic.h"
+#include "ucs_ret_pb.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Initialization structure of the attach service. */
+typedef struct Ats_InitData_
+{
+ CBase *base_ptr; /*!< \brief Reference to UCS base instance */
+ CPmFifos *fifos_ptr; /*!< \brief Reference to PMS FIFOs */
+ CPmEventHandler *pme_ptr; /*!< \brief Reference to PMS Event Handler */
+ CInic *inic_ptr; /*!< \brief Reference to INIC Management instance */
+
+} Ats_InitData_t;
+
+/*! \brief Class structure of the attach service. */
+typedef struct CAttachService_
+{
+ Ats_InitData_t init_data; /*!< \brief Objects required for attach process */
+ CFsm fsm; /*!< \brief Attach state machine */
+ CService ats_srv; /*!< \brief Service instance for the scheduler */
+ CObserver obs; /*!< \brief Observer used for asynchronous events */
+ CObserver obs2; /*!< \brief Observer used for asynchronous events */
+ CSingleObserver sobs; /*!< \brief Single-observer used for asynchronous
+ results */
+ CMaskedObserver internal_error_obs; /*!< \brief Error observer to handle INIC errors
+ during the attach process */
+ CTimer timer; /*!< \brief Timer to check for init timeout */
+ CSingleSubject ats_result_subject; /*!< \brief Subject to report the result of the
+ attach process */
+ Ucs_InitResult_t report_result; /*!< \brief Internal result/error code memory */
+
+} CAttachService;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Prototypes of class CAttach */
+/*------------------------------------------------------------------------------------------------*/
+extern void Ats_Ctor(CAttachService *self, Ats_InitData_t *init_ptr);
+extern void Ats_Start(void *self, CSingleObserver *obs_ptr);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_ATTACH_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_base.h b/ucs2-lib/inc/ucs_base.h
new file mode 100644
index 0000000..08e7908
--- /dev/null
+++ b/ucs2-lib/inc/ucs_base.h
@@ -0,0 +1,93 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Internal header file of the Base class.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_BASE
+ * @{
+ */
+
+#ifndef UCS_BASE_H
+#define UCS_BASE_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_rules.h"
+#include "ucs_timer.h"
+#include "ucs_scheduler.h"
+#include "ucs_trace.h"
+#include "ucs_eh.h"
+#include "ucs_alm.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Initialization structure of the Base class. */
+typedef struct Base_InitData_
+{
+ void *ucs_user_ptr; /*!< \brief User reference for API callback functions */
+ uint8_t ucs_inst_id; /*!< \brief UNICENS instance ID */
+ Scd_InitData_t scd; /*!< \brief Initialization data of the scheduler */
+ Tm_InitData_t tm; /*!< \brief Initialization data of the timer management */
+
+} Base_InitData_t;
+
+/*! \brief Class structure of the Base class. */
+typedef struct CBase_
+{
+ CScheduler scd; /*!< \brief Scheduler instance */
+ CTimerManagement tm; /*!< \brief Timer management instance */
+ CEventHandler eh; /*!< \brief Event handler instance */
+ CApiLockingManager alm; /*!< \brief API locking manager instance */
+ uint8_t ucs_inst_id; /*!< \brief UNICENS instance ID */
+ void *ucs_user_ptr; /*!< \brief User reference for API callback functions */
+
+} CBase;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Prototypes */
+/*------------------------------------------------------------------------------------------------*/
+void Base_Ctor(CBase *self, Base_InitData_t *init_ptr);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_BASE_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_bc_diag.h b/ucs2-lib/inc/ucs_bc_diag.h
new file mode 100644
index 0000000..2ffe282
--- /dev/null
+++ b/ucs2-lib/inc/ucs_bc_diag.h
@@ -0,0 +1,104 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Internal header file of class CBackChannelDiag.
+ *
+ * \cond UCS_INTERNAL_DOC
+ */
+
+#ifndef UCS_BC_DIAG_H
+#define UCS_BC_DIAG_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_exc.h"
+
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+
+/*! \brief Structure of class CBackChannelDiag. */
+typedef struct CBackChannelDiag_
+{
+ CInic *inic; /*!< \brief Reference to CInic object */
+ CExc *exc; /*!< \brief Reference to CExc object */
+ CBase *base; /*!< \brief Reference to CBase object */
+
+ CSingleObserver bcd_inic_bcd_start; /*!< \brief Observes the INIC.BCDiag result */
+ CSingleObserver bcd_inic_bcd_end; /*!< \brief Observes the INIC.BCDiagEnd result*/
+ CSingleObserver bcd_enabletx; /*!< \brief Observes the EXC.BCEnableTx result */
+ CSingleObserver bcd_diagnosis; /*!< \brief Observes the EXC.BCDiag result */
+ CSingleObserver bcd_switchback; /*!< \brief Observes the EXC.Switchback result. */
+
+
+ CMaskedObserver bcd_terminate; /*!< \brief Observes events leading to termination */
+
+ CObserver bcd_nwstatus; /*!< \brief Observes the MOST Network status */
+
+ CFsm fsm; /*!< \brief Node Discovery state machine */
+ CService service; /*!< \brief Service instance for the scheduler */
+ CTimer timer; /*!< \brief timer for monitoring messages */
+
+ Exc_WelcomeResult_t welcome_result; /*!< \brief buffer for welcome result */
+ bool neton; /*!< \brief indicates Network availability */
+
+ Ucs_Bcd_ReportCb_t report_fptr; /*!< \brief Report callback function */
+
+ uint8_t current_segment; /*!< \brief segment which is currently tested, starts with 0. */
+ Exc_BCDiagResult bcd_result; /*!< \brief Result of current tested segment. */
+
+}CBackChannelDiag;
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Prototypes */
+/*------------------------------------------------------------------------------------------------*/
+void Bcd_Ctor(CBackChannelDiag *self,
+ CInic *inic,
+ CBase *base,
+ CExc *exc);
+
+extern void Bcd_Start(CBackChannelDiag *self, Ucs_Bcd_ReportCb_t report_fptr);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* UCS_BC_DIAG_H */
+/*!
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_class.h b/ucs2-lib/inc/ucs_class.h
new file mode 100644
index 0000000..8cfa5b9
--- /dev/null
+++ b/ucs2-lib/inc/ucs_class.h
@@ -0,0 +1,297 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Internal header file of UNICENS API class
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_UCS_CLASS
+ * @{
+ */
+#ifndef UCS_CLASS_H
+#define UCS_CLASS_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_class_pb.h"
+#include "ucs_base.h"
+#include "ucs_pmfifo.h"
+#include "ucs_pmchannel.h"
+#include "ucs_pmevent.h"
+#include "ucs_transceiver.h"
+#include "ucs_factory.h"
+#include "ucs_rtm.h"
+#include "ucs_epm.h"
+#include "ucs_net.h"
+#include "ucs_attach.h"
+#include "ucs_nodedis.h"
+#include "ucs_bc_diag.h"
+#include "ucs_sys_diag.h"
+#include "ucs_prog.h"
+#include "ucs_exc.h"
+#include "ucs_smm.h"
+#include "ucs_amd.h"
+#include "ucs_cmd.h"
+#include "ucs_mgr.h"
+#include "ucs_nodeobserver.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Types */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Assignable callback function which is invoked to filter Rx messages
+ * \details Filtering is a synchronous operation. Hence, it is not possible to keep a message
+ * object for delayed processing. The invoked function has to decide whether a
+ * message shall be discarded and freed to the Rx pool. Therefore, it has to return
+ * \c true. By returning \ false, the message will be received in the usual way.
+ * \param tel_ptr Reference to the message object
+ * \param user_ptr User reference provided in \ref Ucs_InitData_t "Ucs_InitData_t::user_ptr"
+ * \return Returns \c true to discard the message and free it to the pool (no-pass). Otherwise, returns
+ * \c false (pass).
+ */
+typedef bool (*Ucs_RxFilterCb_t)(Msg_MostTel_t *tel_ptr, void *user_ptr);
+
+/*! \brief This structure holds instance and related parameters of the base component */
+typedef struct Ucs_GeneralData_
+{
+ /*! \brief Instance of the Base component */
+ CBase base;
+ /*! \brief Application callback to request UNICENS service calls */
+ Ucs_RequestServiceCb_t request_service_fptr;
+ /*! \brief Observer to proxy callback request_service_fptr() */
+ CSingleObserver service_request_obs;
+ /*! \brief Application callback to report general errors */
+ Ucs_ErrorCb_t general_error_fptr;
+ /*! \brief Observer to proxy callback general_error_fptr() */
+ CSingleObserver general_error_obs;
+ /*! \brief Application callback to request the current tick count value */
+ Ucs_GetTickCountCb_t get_tick_count_fptr;
+ /*! \brief Observer to proxy callback get_tick_count_fptr() */
+ CSingleObserver get_tick_count_obs;
+ /*! \brief Application callback to start the application timer needed for UNICENS event triggered service call. */
+ Ucs_SetAppTimerCb_t set_application_timer_fptr;
+ /*! \brief Observer to proxy callback set_application_timer_fptr() */
+ CSingleObserver set_application_timer_obs;
+
+} Ucs_GeneralData_t;
+
+/*! \brief This structure holds the reference to the local FBlock INIC instance and related parameters */
+typedef struct Ucs_InicData_
+{
+ /*! \brief Reference to the local Instance of the FBlock INIC component */
+ CInic* local_inic;
+ /*! \brief Instance of the Attach service */
+ CAttachService attach;
+ /*! \brief Observer to proxy callback power_state_fptr() */
+ CObserver device_status_obs;
+ /*! \brief The last known power state, required since no masked observer is available */
+ Ucs_Inic_PowerState_t power_state;
+
+} Ucs_InicData_t;
+
+/*! \brief This structure holds the Resources Management callback functions */
+typedef struct Ucs_UcsXrm_
+{
+ /*! \brief Callback function that reports streaming-related information for the MOST Network
+ * Port, including the state of the port and available streaming bandwidth.
+ */
+ Ucs_Xrm_Most_PortStatusCb_t most_port_status_fptr;
+ /*! \brief Observer to proxy callback most_port_status_fptr() */
+ CObserver most_port_status_obs;
+
+} Ucs_UcsXrm_t;
+
+/*! \brief This structure holds the Network Management instance and related parameters */
+typedef struct Ucs_NetData_
+{
+ /*! \brief Instance of the Network Management */
+ CNetworkManagement inst;
+ /*! \brief Application callback for NetworkStartup() */
+ Ucs_StdResultCb_t startup_fptr;
+ /*! \brief Observer to proxy callback startup_fptr() */
+ CSingleObserver startup_obs;
+ /*! \brief Application callback for NetworkShutdown() */
+ Ucs_StdResultCb_t shutdown_fptr;
+ /*! \brief Observer to proxy callback shutdown_fptr() */
+ CSingleObserver shutdown_obs;
+ /*! \brief Application callback for NetworkForceNotAvailable() */
+ Ucs_StdResultCb_t force_na_fptr;
+ /*! \brief Observer to proxy callback force_na_fptr() */
+ CSingleObserver force_na_obs;
+ /*! \brief Application callback for NetworkFrameCounterGet() */
+ Ucs_Network_FrameCounterCb_t frame_counter_fptr;
+ /*! \brief Observer to proxy callback frame_counter_fptr() */
+ CSingleObserver frame_counter_obs;
+ /*! \brief Application callback to report network status */
+ Ucs_Network_StatusCb_t status_fptr;
+ /*! \brief Observer to proxy callback status_fptr() */
+ CMaskedObserver status_obs;
+#if 0
+ /*! \brief Application callback for NetworkForceNotAvailable() */
+ Ucs_StdResultCb_t force_na_fptr;
+ /*! \brief Observer to proxy callback force_na_fptr() */
+ CSingleObserver force_na_obs;
+#endif
+
+} Ucs_NetData_t;
+
+#if 0
+/*! \brief This structure holds attach process related parameters */
+typedef struct Ucs_AtsData_
+{
+ /*! \brief Instance of the Attach service */
+ CAttachService inst;
+ /*! \brief Function pointer to start the attach process */
+ /* Ucs_StartAttachCb_t start_attach_fptr; */
+ /*! \brief Reference to instance used during the attach process */
+ /*void *attach_inst_ptr;*/
+
+} Ucs_AtsData_t;
+#endif
+
+typedef struct Ucs_MsgData_
+{
+ /*! \brief The MCM FIFO */
+ CPmFifo mcm_fifo;
+ /*! \brief The MCM communication module */
+ CTransceiver mcm_transceiver;
+ /*! \brief Application message distributor */
+ CAmd amd;
+ /*! \brief Memory allocator required for the application message service */
+ Ams_MemAllocator_t ams_allocator;
+ /*! \brief Application message pool */
+ CAmsMsgPool ams_pool;
+ /*! \brief Application message service */
+ CAms ams;
+ /*! \brief Static memory management */
+ CStaticMemoryManager smm;
+ /*! \brief Observer to proxy callback tx_message_freed_fptr() */
+ CObserver ams_tx_freed_obs;
+ /*! \brief Signals that tx_message_freed_fptr() must be called as soon as
+ * a Tx message object is freed the next time.
+ */
+ bool ams_tx_alloc_failed;
+ /*! \brief Command Interpreter */
+ CCmd cmd;
+
+} Ucs_MsgData_t;
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal Class */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief The class CUcs representing the UNICENS API */
+typedef struct CUcs_
+{
+ /*! \brief Stores the instance id, which is generated by Ucs_CreateInstance() */
+ uint8_t ucs_inst_id;
+ /*! \brief User reference that needs to be passed in every callback function */
+ void *ucs_user_ptr;
+ /*! \brief Backup of initialization data */
+ Ucs_InitData_t init_data;
+ /*! \brief Stores the init result callback function */
+ Ucs_InitResultCb_t init_result_fptr;
+ /*! \brief Observer to proxy callback init_result_fptr() */
+ CSingleObserver init_result_obs;
+ /*! \brief Stores the result callback function for Ucs_Stop() */
+ Ucs_StdResultCb_t uninit_result_fptr;
+ /*! \brief Observer to proxy callback uninit_result_fptr() */
+ CMaskedObserver uninit_result_obs;
+ /*! \brief General data required for base component */
+ Ucs_GeneralData_t general;
+
+ /*! \brief Instance of port message channel (service) */
+ CPmChannel pmch;
+ /*! \brief Instance of port message event handler */
+ CPmEventHandler pme;
+ /*! \brief Instance of port message FIFOs */
+ CPmFifos fifos;
+ /*! \brief The ICM FIFO */
+ CPmFifo icm_fifo;
+ /*! \brief The RCM FIFO */
+ CPmFifo rcm_fifo;
+ /*! \brief The ICM communication module */
+ CTransceiver icm_transceiver;
+ /*! \brief The RCM communication module */
+ CTransceiver rcm_transceiver;
+ /*! \brief Factory component instance */
+ CFactory factory;
+ /*! \brief INIC Resources Management callbacks functions */
+ Ucs_UcsXrm_t xrm;
+ /*!< \brief The XRM Pool instance */
+ CXrmPool xrmp;
+ /*!< \brief The Routes Management instance */
+ CRouteManagement rtm;
+ /*!< \brief The EndPoints Management instance */
+ CEndpointManagement epm;
+ /*! \brief FBlock INIC instance and related parameters */
+ Ucs_InicData_t inic;
+ /*! \brief Network Management instance and related parameters */
+ Ucs_NetData_t net;
+ /*! \brief FBlock EXC component instance and related parameters */
+ CExc exc;
+ /*! \brief System diagnosis component instance and related parameters */
+ CSysDiag sys_diag;
+ /*! \brief Node Discovery instance and related parameters */
+ CNodeDiscovery nd;
+ /*! \brief BackChannel Diagnosis instance and related parameters */
+ CBackChannelDiag bcd;
+ /*! \brief Programming Interface instance and parameters */
+ CProgramming prg;
+ /*! \brief Application Message related Data */
+ Ucs_MsgData_t msg;
+ /*! \brief The manager instance */
+ CManager mgr;
+ /*! \brief The node observer instance */
+ CNodeObserver nobs;
+ /*! \brief Filter callback required for unit testing*/
+ Ucs_RxFilterCb_t rx_filter_fptr;
+
+ /*! \brief Is \c true if initialization completed successfully */
+ bool init_complete;
+
+} CUcs;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Unit tests only */
+/*------------------------------------------------------------------------------------------------*/
+extern void Ucs_AssignRxFilter(Ucs_Inst_t *self, Ucs_RxFilterCb_t callback_fptr);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* UCS_CLASS_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_class_pb.h b/ucs2-lib/inc/ucs_class_pb.h
new file mode 100644
index 0000000..2e82598
--- /dev/null
+++ b/ucs2-lib/inc/ucs_class_pb.h
@@ -0,0 +1,2063 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Public header file of UNICENS API class
+ *
+ */
+#ifndef UCS_CLASS_PB_H
+#define UCS_CLASS_PB_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_rules.h"
+#include "ucs_ret_pb.h"
+#include "ucs_lld_pb.h"
+#include "ucs_trace_pb.h"
+#include "ucs_eh_pb.h"
+#include "ucs_rm_pb.h"
+#include "ucs_inic_pb.h"
+#include "ucs_gpio_pb.h"
+#include "ucs_i2c_pb.h"
+#include "ucs_ams_pb.h"
+#include "ucs_cmd_pb.h"
+#include "ucs_nodeobserver_pb.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Types */
+/*------------------------------------------------------------------------------------------------*/
+/* Ucs_Inst_t requires incomplete forward declaration, to hide internal data type.
+ * The Ucs_Inst_t object is allocated internally, the application must access only the pointer to Ucs_Inst_t. */
+struct Ucs_Inst_;
+
+/*!\brief UNICENS instance
+ * \ingroup G_UCS_INIT_AND_SRV_TYPES
+ */
+typedef struct Ucs_Inst_ Ucs_Inst_t;
+
+/*! \brief Function signature used for service request callback.
+ * \param user_ptr User reference provided in \ref Ucs_InitData_t "Ucs_InitData_t::user_ptr"
+ * \ingroup G_UCS_INIT_AND_SRV
+ */
+typedef void (*Ucs_RequestServiceCb_t)(void *user_ptr);
+
+/*! \brief Function signature used for the general error callback function
+ * \param error_code Reported error code
+ * \param user_ptr User reference provided in \ref Ucs_InitData_t "Ucs_InitData_t::user_ptr"
+ * \ingroup G_UCS_INIT_AND_SRV
+ */
+typedef void (*Ucs_ErrorCb_t)(Ucs_Error_t error_code, void *user_ptr);
+
+/*! \brief Optional callback function used to debug received raw messages with OpType UCS_OP_ERROR
+ * and UCS_OP_ERRORACK.
+ * \param msg_ptr Reference to an error messages received from network or the local INIC.
+ * It is not allowed to modify the message. The reference becomes invalid when the
+ * callback function returns.
+ * \param user_ptr User reference provided in \ref Ucs_InitData_t "Ucs_InitData_t::user_ptr"
+ * \ingroup G_UCS_TRACE
+ */
+typedef void (*Ucs_DebugErrorMsgCb_t)(Msg_MostTel_t *msg_ptr, void *user_ptr);
+
+/*! \brief Function signature used for callback function to get system tick count.
+ * \param user_ptr User reference provided in \ref Ucs_InitData_t "Ucs_InitData_t::user_ptr"
+ * \return Tick count in milliseconds
+ * \ingroup G_UCS_INIT_AND_SRV
+ */
+typedef uint16_t (*Ucs_GetTickCountCb_t)(void *user_ptr);
+
+/*! \brief Function signature used for timer callback function.
+ * \param timeout The specified time-out value.
+ * If timeout value is greater than 0, the application has to start the timer associated with the specified timeout value.
+ * If timeout value is equal to 0, the application has to stop the application timer.
+ * \param user_ptr User reference provided in \ref Ucs_InitData_t "Ucs_InitData_t::user_ptr"
+ * \note <b>The application should only dedicate one timer to UNICENS. Thus, whenever this callback function is called
+ * and the associated timeout value is greater than 0, the application should restart the timer with the new specified timeout value !</b>
+ * <!--\ucs_ic_started{ See <i>Getting Started</i>, section \ref P_UM_ADVANCED_SERVICE "Event Driven Service". }-->
+ * \ingroup G_UCS_INIT_AND_SRV
+ */
+typedef void (*Ucs_SetAppTimerCb_t)(uint16_t timeout, void *user_ptr);
+
+/*! \brief Function signature used for the results and reports of the Routing Manager.
+ * \param route_ptr Reference to the route to be looked for
+ * \param route_infos Information about the current route id.
+ * \param user_ptr User reference provided in \ref Ucs_InitData_t "Ucs_InitData_t::user_ptr"
+ * \ingroup G_UCS_ROUTING
+ */
+typedef void (*Ucs_Rm_ReportCb_t)(Ucs_Rm_Route_t* route_ptr, Ucs_Rm_RouteInfos_t route_infos, void *user_ptr);
+
+/*! \brief Function signature used for monitoring the XRM resources.
+ * \param resource_type The XRM resource type to be looked for
+ * \param resource_ptr Reference to the resource to be looked for
+ * \param resource_infos Resource information
+ * \param endpoint_inst_ptr Reference to the endpoint object that encapsulates the resource.
+ * \param user_ptr User reference provided in \ref Ucs_InitData_t "Ucs_InitData_t::user_ptr"
+ * \ingroup G_UCS_ROUTING
+ */
+typedef void (*Ucs_Rm_XrmResDebugCb_t)(Ucs_Xrm_ResourceType_t resource_type, Ucs_Xrm_ResObject_t *resource_ptr, Ucs_Xrm_ResourceInfos_t resource_infos, Ucs_Rm_EndPoint_t *endpoint_inst_ptr, void *user_ptr);
+
+/*! \brief Function signature used to monitor the INICs power state.
+ * \param power_state The current state of the INICs power management interface.
+ * \param user_ptr User reference provided in \ref Ucs_InitData_t "Ucs_InitData_t::user_ptr"
+ * \ingroup G_UCS_INIC_TYPES
+ */
+typedef void (*Ucs_Inic_PowerStateCb_t)(Ucs_Inic_PowerState_t power_state, void *user_ptr);
+
+/*! \brief Function signature used for the Network Status callback function
+ * \mns_res_inic{MOSTNetworkStatus,MNSH3-MOSTNetworkStatus520}
+ * \param change_mask Indicates which parameters have been changed since the
+ * last function call. If a bit is set the corresponding
+ * parameter has been changed since the last update.
+ * Bit Index | Value (Hex) | Parameter
+ * :-------: | :---------: | --------------------
+ * 0 | 0x01 | events
+ * 1 | 0x02 | availability
+ * 2 | 0x04 | avail_info
+ * 3 | 0x08 | avail_trans_cause
+ * 4 | 0x10 | node_address
+ * 5 | 0x20 | node_position
+ * 6 | 0x40 | max_position
+ * 7 | 0x80 | packet_bw
+ *
+ * \param events The occurred network events. Events are only indicated once they occurred.
+ * I.e., the value is not handled as a continuous state.
+ * You can use the bitmask \ref UCS_NETWORK_EVENT_NCE to identify received events.
+ * \mns_name_inic{Events}
+ * \param availability The network availability.\mns_name_inic{Availability}
+ * \param avail_info The availability information.\mns_name_inic{AvailabilityInfo}
+ * \param avail_trans_cause The availability transition cause.\mns_name_inic{AvailabilityTransitionCause}
+ * \param node_address The current node address.\mns_name_inic{NodeAddress}
+ * \param node_position The current node position.\mns_name_inic{NodePosition}
+ * \param max_position The number of available nodes.\mns_name_inic{MaxPosition}
+ * \param packet_bw The packet bandwidth.\mns_name_inic{PacketBW}
+ * \param user_ptr User reference provided in \ref Ucs_InitData_t "Ucs_InitData_t::user_ptr"
+ * \ingroup G_UCS_NET
+ */
+typedef void (*Ucs_Network_StatusCb_t)(uint16_t change_mask,
+ uint16_t events,
+ Ucs_Network_Availability_t availability,
+ Ucs_Network_AvailInfo_t avail_info,
+ Ucs_Network_AvailTransCause_t avail_trans_cause,
+ uint16_t node_address,
+ uint8_t node_position,
+ uint8_t max_position,
+ uint16_t packet_bw,
+ void *user_ptr
+ );
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief The general section of initialization data
+ * \ingroup G_UCS_INIT_AND_SRV_TYPES
+ */
+typedef struct Ucs_General_InitData_
+{
+ /*! \brief Mandatory callback function notifying an error that terminates the API. */
+ Ucs_ErrorCb_t error_fptr;
+ /*! \brief Mandatory callback function querying the actual system tick count */
+ Ucs_GetTickCountCb_t get_tick_count_fptr;
+ /*! \brief Callback function requesting the application to call Ucs_ReportTimeout() after a certain time.
+ * Mandatory callback function in event driven mode.
+ */
+ Ucs_SetAppTimerCb_t set_application_timer_fptr;
+ /*! \brief Callback function requesting the application to call Ucs_Service().
+ * Mandatory callback function in event driven mode.
+ */
+ Ucs_RequestServiceCb_t request_service_fptr;
+ /*! \brief Optional setting for debugging. Set to \c
+ * false to disable the watchdog, set to \c true (default value) to enable the watchdog.
+ * \note The INIC watchdog may only be disabled for debugging purpose. It must not be disabled
+ * in production systems.
+ */
+ bool inic_watchdog_enabled;
+ /*! \brief Optional callback function to debug incoming raw messages of operation type UCS_OP_ERROR
+ * and UCS_OP_ERRORACK.
+ */
+ Ucs_DebugErrorMsgCb_t debug_error_msg_fptr;
+
+} Ucs_General_InitData_t;
+
+/*! \brief The INIC section of initialization data
+ * \ingroup G_UCS_INIC
+ */
+typedef struct Ucs_Inic_InitData_
+{
+ /*! \brief Callback function to monitor the state of the INIC's power management interface. */
+ Ucs_Inic_PowerStateCb_t power_state_fptr;
+
+} Ucs_Inic_InitData_t;
+
+/*! \brief Structure holds parameters for the notification of the Network Status
+ * \ingroup G_UCS_NET_TYPES
+ */
+typedef struct Ucs_Network_Status_
+{
+ /*! \brief Network Status callback function. This function reports information on the
+ * whole network. */
+ Ucs_Network_StatusCb_t cb_fptr;
+ /*! \brief Notification mask (optional parameter; default value: 0xFFFF)
+ * Indicates for which parameters the notification shall be enabled. If such a
+ * bit is set and the corresponding parameter has been changed the notification
+ * callback is invoked.
+ * This is an optional parameter. If the mask is not modified notifications for
+ * all of the parameters are enabled.
+ * Bit Index | Value (Hex) | Parameter
+ * :-------: | :---------: | --------------------
+ * 0 | 0x01 | events
+ * 1 | 0x02 | availability
+ * 2 | 0x04 | avail_info
+ * 3 | 0x08 | avail_trans_cause
+ * 4 | 0x10 | node_address
+ * 5 | 0x20 | node_position
+ * 6 | 0x40 | max_position
+ * 7 | 0x80 | packet_bw
+ */
+ uint16_t notification_mask;
+
+} Ucs_Network_Status_t;
+
+/*! \brief The network section of the UNICENS initialization data
+ * \ingroup G_UCS_NET
+ */
+typedef struct Ucs_Network_InitData_
+{
+ /*! \brief Network Status */
+ Ucs_Network_Status_t status;
+
+} Ucs_Network_InitData_t;
+
+/*! \brief The initialization structure of the Low-Level Driver */
+typedef Ucs_Lld_Callbacks_t Ucs_Lld_InitData_t;
+
+/*! \brief The initialization structure of the Extended Resource Manager
+ * \ingroup G_UCS_XRM_TYPES
+ */
+typedef struct Ucs_Xrm_InitData_
+{
+ /*! \brief Callback function that reports streaming-related information for the MOST Network
+ * Port, including the state of the port and available streaming bandwidth.
+ */
+ Ucs_Xrm_Most_PortStatusCb_t most_port_status_fptr;
+
+ /*! \brief Callback function that signals the EHC to check the mute pin state of devices before attempting unmute.
+ * \details Whenever this callback function is called and the EHC has devices muted by the mute signal (INIC's MUTE pin),
+ * the EHC should ensure that the mute pin is not asserted and if so, unmute the corresponding devices.
+ */
+ Ucs_Xrm_CheckUnmuteCb_t check_unmute_fptr;
+
+} Ucs_Xrm_InitData_t;
+
+/*! \brief The initialization structure of the GPIO Module
+ *
+ * \n \b Example
+ * \code{.c}
+ *
+ * Ucs_InitData_t ucs_init_data;
+ * (void)Ucs_SetDefaultConfig(&ucs_init_data)
+ *
+ * // Resources Management init section.
+ * ucs_init_data.gpio.trigger_event_status_fptr = &App_GpioTriggerEventStatusCb;
+ *
+ *
+ * // Handle the GPIO trigger events here
+ * void App_GpioTriggerEventStatusCb(uint16_t node_address,
+ * uint16_t gpio_port_handle,
+ * uint16_t rising_edges,
+ * uint16_t falling_edges,
+ * uint16_t levels,
+ * void * user_ptr)
+ * {
+ * // Do what needs to be..
+ * }
+ *
+ * \endcode
+ * \ingroup G_UCS_GPIO
+ */
+typedef struct Ucs_Gpio_InitData_
+{
+ /*! \brief Callback function that reports trigger events information of the GPIO Port. */
+ Ucs_Gpio_TriggerEventResultCb_t trigger_event_status_fptr;
+
+} Ucs_Gpio_InitData_t;
+
+/*! \brief The initialization structure of the I2C Module
+ *
+ * \n \b Example
+ * \code{.c}
+ *
+ * Ucs_InitData_t ucs_init_data;
+ * (void)Ucs_SetDefaultConfig(&ucs_init_data)
+ *
+ * // Resources Management init section.
+ * ucs_init_data.i2c.interrupt_status_fptr = &App_I2cIntStatusCb;
+ *
+ * // Handle the I2C interrupt event here
+ * void App_I2cIntStatusCb (uint16_t node_address, void * user_ptr)
+ * {
+ * // Do what needs to be..
+ * }
+ *
+ * \endcode
+ * \ingroup G_UCS_I2C
+ */
+typedef struct Ucs_I2c_InitData_
+{
+ /*! \brief Callback function that reports the I2C interrupt. */
+ Ucs_I2c_IntEventReportCb_t interrupt_status_fptr;
+
+} Ucs_I2c_InitData_t;
+
+/*! \brief The initialization structure of the Routing Management.
+ * \ingroup G_UCS_ROUTING
+ */
+typedef struct Ucs_Rm_InitData_
+{
+ /*! \brief Initialization structure of the Extended Resource Manager
+ *
+ * \n \b Example
+ * \code{.c}
+ *
+ * Ucs_InitData_t ucs_init_data;
+ * (void)Ucs_SetDefaultConfig(&ucs_init_data);
+ *
+ * // Routing Management init section.
+ * ucs_init_data.rm.xrm.most_port_status_fptr = &App_MostPortStatusCb;
+ * ucs_init_data.rm.xrm.check_unmute_fptr = &App_CheckUnmuteStatusCb;
+ * ucs_init_data.rm.xrm.debug_resource_status_fptr = &App_OnDebuggingXrmResources;
+ *
+ * // Handle MOST Port Status event here
+ * void App_MostPortStatusCb(uint16_t most_port_handle,
+ * Ucs_Most_PortAvail_t availability,
+ * Ucs_Most_PortAvailInfo_t avail_info,
+ * uint16_t free_streaming_bw)
+ * {
+ * // Do what needs to be..
+ * }
+ *
+ * // Handle the Mute Pin check here
+ * void App_CheckUnmuteStatusCb (uint16_t node_address)
+ * {
+ * // Check the state of the mute pin here before unmuting
+ * }
+ *
+ * // Debug interface for the XRM resources
+ * void App_OnDebuggingXrmResources (Ucs_Xrm_ResourceType_t resource_type, Ucs_Xrm_ResObject_t *resource_ptr, Ucs_Xrm_ResourceInfos_t resource_infos, void *user_ptr)
+ * {
+ * switch (resource_infos)
+ * {
+ * case UCS_XRM_INFOS_BUILT:
+ * // Resource has been built
+ * break;
+ * case UCS_XRM_INFOS_DESTROYED:
+ * // resource has been destroyed
+ * break;
+ * case UCS_XRM_INFOS_ERR_BUILT:
+ * //Resource cannot be built
+ * break;
+ * default:
+ * // Resource cannot be destroyed
+ * break;
+ * }
+ * }
+ * \endcode
+ *
+ */
+ Ucs_Xrm_InitData_t xrm;
+ /*! \brief Optional report callback function pointer for all routes
+ *
+ * \note The passed result callback function does not only report the result of the build operation but also monitors
+ * the status of the created routes during their whole lifetime.
+ * That is, the callback function also reports the various states of a route (Refer to \ref Ucs_Rm_RouteInfos_t for more infos).
+ * Furthermore the result of \ref Ucs_Rm_SetRouteActive() function call is reported by this result callback function.
+ *
+ * \n \b Example
+ * \code{.c}
+ *
+ * Ucs_InitData_t ucs_init_data;
+ * (void)Ucs_SetDefaultConfig(&ucs_init_data);
+ *
+ * // Routing Management init section.
+ * ucs_init_data.rm.report_fptr = &App_OnRoutingResult;
+ *
+ * // The report callback function for all routes
+ * static void App_OnRoutingResult(uint16_t route_id, Ucs_Rm_RouteInfos_t route_infos, void *user_ptr)
+ * {
+ * // Do whatever is necessary here
+ *
+ * switch (route_infos)
+ * {
+ * case UCS_RM_ROUTE_INFOS_BUILT:
+ * // Route has been built
+ * break;
+ * case UCS_RM_ROUTE_INFOS_DESTROYED:
+ * // Route has been destroyed
+ * break;
+ * case UCS_RM_ROUTE_INFOS_PROCESS_STOP:
+ * // Route cannot be processed anymore due to UNICENS Termination
+ * break;
+ * default:
+ * // Route has been suspended
+ * break;
+ * }
+ * }
+ * \endcode
+ *
+ */
+ Ucs_Rm_ReportCb_t report_fptr;
+ /*! \brief Callback function that acts as a debug interface for XRM resources.
+ * The user application has the possibility to monitor the specified XRM resources.
+ *
+ * \n \b Example
+ * \code{.c}
+ *
+ * Ucs_InitData_t ucs_init_data;
+ * (void)Ucs_SetDefaultConfig(&ucs_init_data);
+ *
+ * // Routing Management init section.
+ * ucs_init_data.rm.debug_resource_status_fptr = &App_OnDebuggingXrmResources;
+ *
+ * // Debug interface for the XRM resources
+ * void App_OnDebuggingXrmResources (Ucs_Xrm_ResourceType_t resource_type, Ucs_Xrm_ResObject_t *resource_ptr, Ucs_Xrm_ResourceInfos_t resource_infos, Ucs_Rm_EndPoint_t * endpoint_inst_ptr, void *user_ptr)
+ * {
+ * switch (resource_infos)
+ * {
+ * case UCS_XRM_INFOS_BUILT:
+ * // Resource has been built
+ * break;
+ * case UCS_XRM_INFOS_DESTROYED:
+ * // resource has been destroyed
+ * break;
+ * case UCS_XRM_INFOS_ERR_BUILT:
+ * //Resource cannot be built
+ * break;
+ * default:
+ * // Resource cannot be destroyed
+ * break;
+ * }
+ * }
+ * \endcode
+ */
+ Ucs_Rm_XrmResDebugCb_t debug_resource_status_fptr;
+
+} Ucs_Rm_InitData_t;
+
+
+/*! \brief The initialization data of the Node Discovery service
+ * \ingroup G_UCS_INIT_AND_SRV_TYPES
+ */
+typedef struct Ucs_Nd_InitData_
+{
+ /*! \brief Callback function reporting the results of the Node Discovery service. */
+ Ucs_Nd_ReportCb_t report_fptr;
+ /*! \brief Callback function asking for evaluation of the found signature. */
+ Ucs_Nd_EvalCb_t eval_fptr;
+
+} Ucs_Nd_InitData_t;
+
+/*! \brief The Rx initialization data of the Application Message Service
+ * \ingroup G_UCS_AMS_TYPES
+ */
+typedef struct Ucs_AmsRx_InitData_
+{
+ /*! \brief Callback function that is invoked if the UNICENS library has received a message
+ * completely and appended to the Rx message queue.
+ */
+ Ucs_AmsRx_MsgReceivedCb_t message_received_fptr;
+
+} Ucs_AmsRx_InitData_t;
+
+/*! \brief The Tx initialization data of the Application Message Service
+ * \ingroup G_UCS_AMS_TYPES
+ */
+typedef struct Ucs_AmsTx_InitData_
+{
+ /*! \brief Callback function which is invoked by the UNICENS library to notify that
+ * memory of a Tx message object was freed after a previous
+ * allocation using Ucs_AmsTx_AllocMsg() has failed. The application might
+ * attempt to call Ucs_AmsTx_AllocMsg() again.
+ */
+ Ucs_AmsTx_MsgFreedCb_t message_freed_fptr;
+
+ /*! \brief Specifies the low-level retry block count which is pre-selected in an allocated
+ * Tx message object. Valid values: 0..100. Default value: 10.
+ */
+ uint8_t default_llrbc;
+
+} Ucs_AmsTx_InitData_t;
+
+/*! \brief The initialization data of the Application Message Service
+ * \ingroup G_UCS_AMS
+ */
+typedef struct Ucs_Ams_InitData_
+{
+ Ucs_AmsRx_InitData_t rx; /*!< \brief Rx related initialization parameters */
+ Ucs_AmsTx_InitData_t tx; /*!< \brief Tx related initialization parameters */
+ bool enabled; /*!< \brief If set to \c false the AMS and CMD modules are
+ * not initialized and the related features are
+ * not available.
+ */
+} Ucs_Ams_InitData_t;
+
+/*! \brief UNICENS initialization structure used by function Ucs_Init().
+ * \ingroup G_UCS_INIT_AND_SRV
+ */
+typedef struct Ucs_InitData_
+{
+ /*! \brief Optional reference to a user context which is provided within API callback functions.
+ * \details Please note that \ref Ucs_Lld_Callbacks_t "Ucs_Lld_InitData_t" provides a separate \c lld_user_ptr which is
+ * provided for LLD callback functions.
+ */
+ void *user_ptr;
+ /*! \brief General initialization data */
+ Ucs_General_InitData_t general;
+ /*! \brief Comprises assignment to low-level driver communication interfaces */
+ Ucs_Lld_InitData_t lld;
+ /*! \brief The initialization data of the Routing Management */
+ Ucs_Rm_InitData_t rm;
+ /*! \brief Initialization structure of the GPIO */
+ Ucs_Gpio_InitData_t gpio;
+ /*! \brief Initialization structure of the I2C */
+ Ucs_I2c_InitData_t i2c;
+ /*! \brief The initialization data of the Node Discovery */
+ Ucs_Nd_InitData_t nd;
+ /*! \brief The initialization data of the Application Message Service */
+ Ucs_Ams_InitData_t ams;
+ /*! \brief Network initialization data */
+ Ucs_Network_InitData_t network;
+ /*! \brief INIC initialization data */
+ Ucs_Inic_InitData_t inic;
+ /*! \brief The initialization data of the Manager */
+ Ucs_Mgr_InitData_t mgr;
+
+} Ucs_InitData_t;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Functions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Retrieves a UNICENS API instance
+ * \details One API instance is used to communicate with one local INIC. In this case the application
+ * is connected to one network.
+ * It is possible access multiple networks by having multiple API instances. Each API instance
+ * requires communication with an exclusive INIC.
+ * \return Returns a reference to new instance of UNICENS or \c NULL, if it is not
+ * possible to create a further instance. The returned instance must be used
+ * as argument \c self.
+ * \ingroup G_UCS_INIT_AND_SRV
+ */
+extern Ucs_Inst_t* Ucs_CreateInstance(void);
+
+/*! \brief Assigns default values to a provided UNICENS init structure
+ * \param init_ptr Reference to a provided MNS init structure. Must not be \c NULL.
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * ----------------- | ------------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_PARAM | Parameter \c init_ptr is \c NULL
+ * \ingroup G_UCS_INIT_AND_SRV
+ */
+Ucs_Return_t Ucs_SetDefaultConfig(Ucs_InitData_t *init_ptr);
+
+/*! \brief UNICENS initialization function.
+ * \details This function must be called by the application for initializing the complete MOST
+ * NetServices library.
+ * \note <b>Do not call this function within any of the UNICENS callbacks!</b>
+ * \param self The instance
+ * \param init_ptr Reference to UNICENS initialization data
+ * \param init_result_fptr Callback that reports the result of the initialization
+ * Possible result values are shown in the table below.
+ * Result Code | Description
+ * ----------------------------- | ----------------------------------------
+ * UCS_INIT_RES_SUCCESS | Initialization succeeded
+ * UCS_INIT_RES_ERR_BUF_OVERFLOW | No message buffer available
+ * UCS_INIT_RES_ERR_PMS_INIT | PMS cannot establish INIC synchronization within 2 seconds
+ * UCS_INIT_RES_ERR_INIC_VERSION | INIC device version check failed
+ * UCS_INIT_RES_ERR_DEV_ATT_CFG | Device attach failed due to an configuration error
+ * UCS_INIT_RES_ERR_DEV_ATT_PROC | Device attach failed due to a system error
+ * UCS_INIT_RES_ERR_NET_CFG | Network configuration failed
+ * UCS_INIT_RES_ERR_TIMEOUT | Initialization was not successful within 2 seconds
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * ----------------- | ------------------------------------
+ * UCS_RET_SUCCESS | No error.
+ * UCS_RET_ERR_PARAM | Parameter \c init_ptr or one of its attributes is not set correctly.
+ * \ingroup G_UCS_INIT_AND_SRV
+ */
+extern Ucs_Return_t Ucs_Init(Ucs_Inst_t* self, const Ucs_InitData_t *init_ptr, Ucs_InitResultCb_t init_result_fptr);
+
+/*! \brief Terminates the execution of UNICENS.
+ * \details This function stops further communication with the INIC, forces the INIC to protected
+ * mode and releases external resources, e.g. calls \c tx_complete_fptr
+ * for previously transmitted application messages. After the termination is complete
+ * UNICENS will call stopped_fptr() and will no longer invoke the
+ * request_service_fptr. \n\n
+ * The application shall no longer call any API function. Any previously retrieved
+ * UNICENS objects (e.g. messages) become invalid.
+ * \note <b>Do not call this function within any of the UNICENS callbacks!</b>
+ * \param self The instance
+ * \param stopped_fptr Mandatory callback function which is invoked as soon as the termination has
+ * been completed.
+ * Possible result values are shown in the table below.
+ * Result Code | Description
+ * ------------------- | ----------------------------------------
+ * UCS_RES_SUCCESS | Termination succeeded
+ * UCS_RES_ERR_TIMEOUT | The termination was forced after a definite time. A communication error or INIC reset may be the reason.
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * ---------------------- | -----------------------------------------------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_PARAM | Mandatory callback function not provided
+ * UCS_RET_ERR_API_LOCKED | Initialization was not completed or termination has been started before
+ * \ingroup G_UCS_INIT_AND_SRV
+ */
+extern Ucs_Return_t Ucs_Stop(Ucs_Inst_t *self, Ucs_StdResultCb_t stopped_fptr);
+
+/*! \brief The application must call this function cyclically to drive UNICENS.
+ * \param self The instance
+ * \ingroup G_UCS_INIT_AND_SRV
+ */
+extern void Ucs_Service(Ucs_Inst_t *self);
+
+/*! \brief The application must call this function if the application timer expires.
+ * \param self The instance
+ * \ingroup G_UCS_INIT_AND_SRV
+ */
+extern void Ucs_ReportTimeout(Ucs_Inst_t *self);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Routing Management */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Initializes the routing process with the given routes list information and starts the process to handle the route(s).
+ *
+ * When calling this function the routing management will be initialized and the process to handle the given routes list started.
+ * The result of each route is reported via the reference to the user callback function \ref Ucs_Rm_InitData_t::report_fptr "report_fptr" in Ucs_InitData_t (if It has been set by user).
+ *
+ * \param self The UNICENS instance pointer.
+ * \param routes_list List of routes to be handled.
+ * \param list_size Size of the given routes list.
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * --------------------------- | -------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_PARAM | At least one parameter is NULL
+ * UCS_RET_ERR_API_LOCKED | API is currently locked
+ * UCS_RET_ERR_NOT_INITIALIZED | UNICENS is not initialized
+ *
+ * \note This function must be called once and can only be called once. Otherwise, the function returns the error code \ref UCS_RET_ERR_API_LOCKED.
+ * \note The build up of routes can take some times in case the routing process may need to perform retries when uncritical errors occur (e.g.: transmission error, processing error, etc.) or when
+ * certain conditions are not met yet (e.g. network not available, node not available, etc.). By the way, the maximum number of retries is \c 0xFF and the minimum time between the retries is \c 50ms.
+ *
+ * \attention To suit your specific system needs and setup, change the default values of the following Resources Management macros:
+ * - \ref UCS_NUM_REMOTE_DEVICES in \c ucs_cfg.h
+ * - \ref UCS_XRM_NUM_JOBS in \c ucs_xrm_cfg.h
+ * - \ref UCS_XRM_NUM_RESOURCES in \c ucs_xrm_cfg.h
+ *
+ * \attention Use the \c UCS_ADDR_LOCAL_DEV macro to address the local device when specifying connection routes to or from this device.
+ * \n The following address ranges are supported:
+ * - [0x10 ... 0x2FF]
+ * - [0x500 ... 0xFEF]
+ * - UCS_ADDR_LOCAL_DEV
+ *
+ * \n\n\b Example
+ * \code
+ *
+ * // Forward declaration of result callback function
+ * static void App_OnRoutingResult(uint16_t route_id, Ucs_Rm_RouteInfos_t route_infos, void *user_ptr);
+ *
+ * // Set route Activity Flag
+ * static uint8_t is_active = 0x01U;
+ *
+ * // XRM jobs lists
+ * static Ucs_Xrm_ResObject_t * xrm_job_out[] = { &Xrm_Most_Sckt_Out, &Xrm_Usb_Port_1, &Xrm_Usb_Sckt_In, &Xrm_Sync_Conn_1, NULL };
+ * static Ucs_Xrm_ResObject_t * xrm_job_in [] = { &Xrm_Most_Sckt_In, &Xrm_Usb_Port_2, &Xrm_Usb_Sckt_Out, &Xrm_Sync_Conn_2, NULL };
+ *
+ * // Signatures specification
+ * Ucs_Signature_t src_sig = { 0x555U };
+ * Ucs_Signature_t sink_sig = { 0x556U };
+ *
+ * // Nodes objects
+ * static Ucs_Rm_Node_t node_src = { &src_sig };
+ * static Ucs_Rm_Node_t node_sink = { &sink_sig };
+ *
+ * // Source and Sink Endpoints
+ * static Ucs_Rm_EndPoint_t endpoint_src = { UCS_RM_EP_SOURCE, &xrm_job_out[0], &node_src };
+ * static Ucs_Rm_EndPoint_t endpoint_sink = { UCS_RM_EP_SINK, &xrm_job_in[0], &node_sink };
+ *
+ * // Routes Specification
+ * static Ucs_Rm_Route_t route_66[] = { {&endpoint_src, &endpoint_sink, is_active, 66U} };
+ *
+ * // Main function
+ * void main ()
+ * {
+ *
+ * Ucs_InitData_t ucs_init_data;
+ * (void)Ucs_SetDefaultConfig(&ucs_init_data);
+ * ucs_init_data.rm.report_fptr = &App_OnRoutingResult;
+ *
+ * // Starts routes processing
+ * Ucs_Return_t ret_value = Ucs_Rm_Start(ucs_inst_ptr, &route_66[0], 1U);
+ * if (ret_value != UCS_RET_SUCCESS)
+ * {
+ * // Do whatever is necessary here
+ * }
+ *
+ * // Set corresponding Nodes to "available" if they are ready
+ * // (void)Ucs_Rm_SetNodeAvailable(ucs_inst_ptr, &node_src, true);
+ * // (void)Ucs_Rm_SetNodeAvailable(ucs_inst_ptr, &node_sink, true);
+ *
+ * }
+ *
+ * // The report callback function for all routes
+ * static void App_OnRoutingResult(Ucs_Rm_Route_t* route_ptr, Ucs_Rm_RouteInfos_t route_infos, void *user_ptr)
+ * {
+ * // Do whatever is necessary here
+ *
+ * switch (route_infos)
+ * {
+ * case UCS_RM_ROUTE_INFOS_BUILT:
+ * // Route has been built
+ * break;
+ * case UCS_RM_ROUTE_INFOS_DESTROYED:
+ * // Route has been destroyed
+ * break;
+ * case UCS_RM_ROUTE_INFOS_PROCESS_STOP:
+ * // Route cannot be processed anymore due to UNICENS Termination
+ * break;
+ * default:
+ * // Route has been suspended.
+ * break;
+ * }
+ * }
+ * \endcode
+ * \ingroup G_UCS_ROUTING
+ */
+extern Ucs_Return_t Ucs_Rm_Start(Ucs_Inst_t *self, Ucs_Rm_Route_t *routes_list, uint16_t list_size);
+
+/*! \brief Sets the given route to \c active respectively \c inactive and triggers the routing process to handle the route.
+ *
+ * When setting a route to \c active the routing process will start building the route and all related resources and return the result to the user callback function (Refer to Routing Management Init Structure).
+ * When setting a route to \c inactive the routing process will start destroying the route and all related resources and return the result to the user callback function.
+ * \param self The UNICENS instance.
+ * \param route_ptr Reference to the routes to be destroyed.
+ * \param active Specifies whether the route should be activated or not. \c true is active and \c false inactive.
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * --------------------------- | ---------------------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_PARAM | At least one parameter is NULL.
+ * UCS_RET_ERR_ALREADY_SET | The given route is already active or inactive
+ * UCS_RET_ERR_NOT_INITIALIZED | UNICENS is not initialized
+ *
+ *
+ * \note The build up or the destruction of a route can take some times in case the routing process may need to perform retries when uncritical errors occur (e.g.: transmission error, processing error, etc.)
+ * or when certain conditions are not met yet (e.g. network not available, node not available, etc.). By the way, the maximum number of retries is 0xFF and the minimum time between the retries is 50ms.
+ * This results in a minimum time of ca. 13s to get a route built or suspended (if the maximum retries are reached).
+ *
+ * \attention To suit your specific system needs and setup, change the default values of the following Resources Management macros:
+ * - \ref UCS_NUM_REMOTE_DEVICES in \c ucs_cfg.h
+ * - \ref UCS_XRM_NUM_JOBS in \c ucs_xrm_cfg.h
+ * - \ref UCS_XRM_NUM_RESOURCES in \c ucs_xrm_cfg.h
+ *
+ * \attention Use the \c UCS_ADDR_LOCAL_DEV macro to address the local device when specifying connection routes to or from this device.
+ * \n The following address ranges are supported:
+ * - [0x10 ... 0x2FF]
+ * - [0x500 ... 0xFEF]
+ * - UCS_ADDR_LOCAL_DEV
+ *
+ * \n\n\b Example
+ * \code{.c}
+ *
+ * // The report callback function for all routes
+ * static void App_OnRoutingResult(uint16_t route_id, Ucs_Rm_RouteInfos_t route_infos, void *user_ptr)
+ * {
+ * // Print whatever needs to be printed here
+ * }
+ *
+ * // Activates or deactivates the route with Index 2 of the routes list.
+ * static void App_SetRouteId2_OnOff(bool active)
+ * {
+ * Ucs_Return_t ret_value;
+ *
+ * ret_value = Ucs_Rm_SetRouteActive(ucs_inst_ptr, &routes_list[2], active);
+ * if (ret_value != UCS_RET_SUCCESS)
+ * {
+ * // Do whatever is necessary
+ * }
+ * }
+ *
+ * // Main function
+ * void main(uint8_t argc, char *argv[])
+ * {
+ *
+ * // Starts routes processing
+ * Ucs_Rm_Start(ucs_inst_ptr, &routes_list[0], routes_list_size);
+ *
+ * // ...
+ *
+ * if (mic2_btn_pressed)
+ * {
+ * App_SetRouteId2_OnOff(true);
+ * }
+ * else
+ * {
+ * App_SetRouteId2_OnOff(false);
+ * }
+ * }
+ *
+ * \endcode
+ * \ingroup G_UCS_ROUTING
+ */
+extern Ucs_Return_t Ucs_Rm_SetRouteActive(Ucs_Inst_t *self, Ucs_Rm_Route_t *route_ptr, bool active);
+
+/*! \brief Sets the availability attribute (\c available or \c not \c available) of the given node and triggers the routing process to handle attached route(s).
+ * \details In case of \c available the function starts the routing process that checks whether there are endpoints to build on this node.
+ * In case of \c unavailable the function informs sub modules like XRM to check whether there are resources to release and simultaneously unlock \c suspended routes that
+ * link to this node.
+ * \param self The UNICENS instance
+ * \param node_ptr Reference to the node to be looked for.
+ * \param available Specifies whether the node is available or not
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * --------------------------- | ---------------------------------------------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_ALREADY_SET | Node is already set to "available" or "not available"
+ * UCS_RET_ERR_PARAM | At least one parameter is NULL.
+ * UCS_RET_ERR_NOT_INITIALIZED | UNICENS is not initialized
+ * UCS_RET_ERR_NOT_AVAILABLE | The function cannot be processed because the network is not available
+ *
+ * \note All nodes present in the routing system will be automatically set to \c Unavailable after the network has been shutdown respectively after
+ * transition from \c Available to \c Not \c available. This in turn means that the user has to set the corresponding nodes to \c Available
+ * after network started up respectively after the network transition from \c NotAvailable to \c Available.
+ *
+ * \n\n\b Example
+ * \code{.c}
+ *
+ * // Sets the amplifier node to "available" or "not available"
+ * static void App_SetAmplNodeAvailability(bool available)
+ * {
+ * Ucs_Return_t ret_value;
+ *
+ * ret_value = Ucs_Rm_SetNodeAvailable(ucs_inst_ptr, &ampl_node, available);
+ * if (ret_value != UCS_RET_SUCCESS)
+ * {
+ * // Do whatever is necessary here
+ * }
+ * }
+ *
+ * // Main function
+ * void main(uint8_t argc, char *argv[])
+ * {
+ * // ...
+ *
+ * if (amplifier_programming_completed)
+ * {
+ * App_SetAmplNodeAvailability(true);
+ * }
+ *
+ * // ...
+ *
+ * if (amplifier_is_unavailable)
+ * {
+ * App_SetAmplNodeAvailability(false);
+ * }
+ * }
+ *
+ * \endcode
+ * \ingroup G_UCS_ROUTING
+ */
+extern Ucs_Return_t Ucs_Rm_SetNodeAvailable(Ucs_Inst_t *self, Ucs_Rm_Node_t *node_ptr, bool available);
+
+/*! \brief Retrieves the \c "available" flag information of the given node.
+ *
+ * This function can be used to check whether the given node has been set to \c "available" or \c "not available".
+ *
+ * \param self The UNICENS instance pointer.
+ * \param node_ptr Reference to the node to be looked for.
+ * \return The \c "availability" flag of the given node.
+ *
+ * \n\n\b Example
+ * \code{.c}
+ *
+ *
+ * // Main function
+ * void main(uint8_t argc, char *argv[])
+ * {
+ * // ...
+ * if (Ucs_Rm_GetNodeAvailable(ucs_inst_ptr, &slim_mic_node))
+ * {
+ * // Do whatever is necessary to be done
+ * }
+ * }
+ *
+ * \endcode
+ * \ingroup G_UCS_ROUTING
+ */
+extern bool Ucs_Rm_GetNodeAvailable(Ucs_Inst_t *self, Ucs_Rm_Node_t *node_ptr);
+
+/*! \brief Retrieves the reference(s) of the route(s) currently attached to the given endpoint and stores It into the (external) table provided by user application.
+ *
+ * Thus, User application should provide an external reference to an empty routes table where the potential routes will be stored.
+ * That is, user application is responsible to allocate enough space to store the found routes. Refer to the \b Note below for more details.
+ *
+ * \param self The UNICENS instance pointer.
+ * \param ep_inst Reference to the endpoint instance to be looked for.
+ * \param ls_found_routes List to store references to the found routes. It should be allocated by user application.
+ * \param ls_size Size of the provided list.
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * --------------------------- | -------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_PARAM | At least one parameter is NULL.
+ * UCS_RET_ERR_NOT_INITIALIZED | UNICENS is not initialized
+ *
+ * \note The function will add a \b NULL \b pointer to the external table (provided by user application) to mark the end of the found routes. This can be helpful when user application doesn't exactly known the
+ * number of routes referred to the endpoint. That is, User application should allocate enough space to store the found routes plus the NULL-terminated pointer.
+ * Otherwise, the number of associated routes found will \b precisely \b equal the size of the list.
+ *
+ * \n\n\b Example
+ * \code{.c}
+ *
+ * // Source and Sink Endpoints
+ * static Ucs_Rm_EndPoint_t endpoint_src = { UCS_RM_EP_SOURCE, &xrm_job_out[0], &node_src };
+ * static Ucs_Rm_EndPoint_t endpoint_sink_west = { UCS_RM_EP_SINK, &xrm_job_in_w[0], &node_west };
+ * static Ucs_Rm_EndPoint_t endpoint_sink_east = { UCS_RM_EP_SINK, &xrm_job_in_e[0], &node_east };
+ *
+ * // Routes Specification
+ * static Ucs_Rm_Route_t route_66_west[] = { {&endpoint_src, &endpoint_sink_west, is_active, 0x066U} };
+ * static Ucs_Rm_Route_t route_66_east[] = { {&endpoint_src, &endpoint_sink_east, is_active, 0xE66U} };
+ *
+ * // Main function
+ * void main(uint8_t argc, char *argv[])
+ * {
+ * Ucs_Rm_Route_t * found_routes_ls[3];
+ * Ucs_Return_t ret_value;
+ *
+ * // Starts routes processing
+ * (void)Ucs_Rm_Start(ucs_inst_ptr, &routes_list[0], routes_list_size);
+ *
+ * // ...
+ *
+ * // Retrieve routes references to the given endpoint
+ * ret_value = Ucs_Rm_GetAttachedRoutes(ucs_inst_ptr, &endpoint_src, found_routes_ls, 3U);
+ * if (ret_value == UCS_RET_SUCCESS)
+ * {
+ * uint8_t k = 0U;
+ *
+ * //printf("\rEp{0x%X}: Related route id(s) --> ", &endpoint_src);
+ * do
+ * {
+ * //printf("{0x%X} ", found_routes_ls[k]->route_id);
+ * k++;
+ *
+ * } while ((k < 3U) && (found_routes_ls[k] != NULL));
+ * //printf("\r\n");
+ * }
+ * else
+ * {
+ * // Do whatever is necessary to be done
+ * }
+ * }
+ *
+ * \endcode
+ * \ingroup G_UCS_ROUTING
+ */
+extern Ucs_Return_t Ucs_Rm_GetAttachedRoutes(Ucs_Inst_t *self, Ucs_Rm_EndPoint_t * ep_inst,
+ Ucs_Rm_Route_t * ls_found_routes[], uint16_t ls_size);
+
+/*! \brief Retrieves the \c ConnectionLabel of the given route.
+ * \param self The UNICENS instance pointer.
+ * \param route_ptr Reference to the route to be looked for.
+ * \return The \c ConnectionLabel of the route. The \c ConnectionLabel value falls within the range [0x000C...0x017F] when route is built. Otherwise, 0 is returned.
+ *
+ * \n\n\b Example
+ * \code{.c}
+ *
+ * // Source and Sink Endpoints
+ * static Ucs_Rm_EndPoint_t endpoint_src = { UCS_RM_EP_SOURCE, &xrm_job_out[0], &node_src };
+ * static Ucs_Rm_EndPoint_t endpoint_sink = { UCS_RM_EP_SINK, &xrm_job_in[0], &node_sink };
+ *
+ * // Routes Specification
+ * static Ucs_Rm_Route_t route_66[] = { {&endpoint_src, &endpoint_sink, is_active, 0x066U} };
+ *
+ * // Main function
+ * void main(uint8_t argc, char *argv[])
+ * {
+ * uint16_t rt66_cl;
+ * bool rt66_is_built;
+ *
+ * // Starts routes processing
+ * (void)Ucs_Rm_Start(ucs_inst_ptr, &route_66[0], 1U);
+ *
+ * // ...
+ *
+ * // Retrieve "ConnectionLabel" of route_66.
+ * if (rt66_is_built)
+ * {
+ * rt66_cl = Ucs_Rm_GetConnectionLabel(ucs_inst_ptr, &route_66[0]);
+ * //printf("CL:route_0x%02X --> {0x%X}\r\n", (&route_66[0])->route_id, rt66_cl);
+ * }
+ * }
+ *
+ * \endcode
+ * \ingroup G_UCS_ROUTING
+ */
+extern uint16_t Ucs_Rm_GetConnectionLabel(Ucs_Inst_t *self, Ucs_Rm_Route_t *route_ptr);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Extended Resources Management (XRM) */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief This function is used to configure a Streaming Port.
+ * \mns_func_inic{StreamPortConfiguration,MNSH3-StreamPortConfiguration680}
+ * \param self The UNICENS instance pointer
+ * \param destination_address Device address of the target. Use the \c UCS_ADDR_LOCAL_DEV macro to target the local device.
+ * \n The following address ranges are supported:
+ * - [0x10 ... 0x2FF]
+ * - [0x500 ... 0xFEF]
+ * - UCS_ADDR_LOCAL_DEV
+ * \param index Streaming Port instance. \mns_name_inic{Index}
+ * \param op_mode Operation mode of the Streaming Port. \mns_name_inic{OperationMode}
+ * \param port_option Direction of the Streaming Port. \mns_name_inic{PortOptions}
+ * \param clock_mode Configuration of the FSY/SCK signals. \mns_name_inic{ClockMode}
+ * \param clock_data_delay Configuration of the FSY/SCK signals for Generic Streaming. \mns_name_inic{ClockDataDelay}
+ * \param result_fptr Required result callback
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * --------------------------- | ------------------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_PARAM | The given UNICENS instance pointer is NULL
+ * UCS_RET_ERR_BUFFER_OVERFLOW | No message buffer available
+ * UCS_RET_ERR_NOT_INITIALIZED | UNICENS is not initialized
+ *
+ * \n \b Example
+ * \code{.c}
+ *
+ * // Main function
+ * void main()
+ * {
+ * // ...
+ *
+ * Ucs_Xrm_Stream_SetPortConfig (ucs_inst_ptr,
+ * 0x555U,
+ * 0x0U,
+ * UCS_STREAM_PORT_OP_MODE_GENERIC,
+ * UCS_STREAM_PORT_OPT_IN_OUT,
+ * UCS_STREAM_PORT_CLK_MODE_OUTPUT,
+ * UCS_STREAM_PORT_CLK_DLY_NONE,
+ * &App_XrmStreamPortCfgResCb);
+ * // ...
+ *
+ * }
+ *
+ *
+ * // The streaming port result callback function
+ * static void App_XrmStreamPortCfgResCb(uint16_t node_address,
+ * uint8_t index,
+ * Ucs_Stream_PortOpMode_t op_mode,
+ * Ucs_Stream_PortOption_t port_option,
+ * Ucs_Stream_PortClockMode_t clock_mode,
+ * Ucs_Stream_PortClockDataDelay_t clock_data_delay,
+ * Ucs_StdResult_t result,
+ * void *user_ptr)
+ * {
+ * if (result.code != UCS_RES_SUCCESS)
+ * {
+ * // Do whatever is necessary here...
+ * }
+ * }
+ * \endcode
+ * \ingroup G_UCS_XRM_STREAM
+ */
+extern Ucs_Return_t Ucs_Xrm_Stream_SetPortConfig(Ucs_Inst_t *self,
+ uint16_t destination_address,
+ uint8_t index,
+ Ucs_Stream_PortOpMode_t op_mode,
+ Ucs_Stream_PortOption_t port_option,
+ Ucs_Stream_PortClockMode_t clock_mode,
+ Ucs_Stream_PortClockDataDelay_t clock_data_delay,
+ Ucs_Xrm_Stream_PortCfgResCb_t result_fptr);
+
+/*! \brief This function requests the configurations of a Streaming Port.
+ * \mns_func_inic{StreamPortConfiguration,MNSH3-StreamPortConfiguration680}
+ * \param self The UNICENS instance pointer
+ * \param destination_address Device address of the target. Use the \c UCS_ADDR_LOCAL_DEV macro to target the local device.
+ * \n The following address ranges are supported:
+ * - [0x10 ... 0x2FF]
+ * - [0x500 ... 0xFEF]
+ * - UCS_ADDR_LOCAL_DEV
+ * \param index Streaming Port instance. \mns_name_inic{Index}
+ * \param result_fptr Required result callback
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * --------------------------- | ----------------------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_PARAM | At least one parameter is wrong
+ * UCS_RET_ERR_BUFFER_OVERFLOW | No message buffer available
+ * UCS_RET_ERR_API_LOCKED | API is currently locked
+ * UCS_RET_ERR_NOT_INITIALIZED | UNICENS is not initialized
+ *
+ * \n \b Example
+ * \code{.c}
+ * // Main function
+ * void main()
+ * {
+ * (void)Ucs_Xrm_Stream_GetPortConfig(ucs_inst_ptr, 0x555U, 0x0U, &App_XrmStreamPortCfgResCb);
+ * }
+ *
+ * // The streaming port result callback function
+ * static void App_XrmStreamPortCfgResCb(uint16_t node_address,
+ * uint8_t index,
+ * Ucs_Stream_PortOpMode_t op_mode,
+ * Ucs_Stream_PortOption_t port_option,
+ * Ucs_Stream_PortClockMode_t clock_mode,
+ * Ucs_Stream_PortClockDataDelay_t clock_data_delay,
+ * Ucs_StdResult_t result,
+ * void *user_ptr)
+ * {
+ * if (result.code == UCS_RES_SUCCESS)
+ * {
+ * // Read Streaming ports configuration here...
+ * }
+ * }
+ * \endcode
+ * \ingroup G_UCS_XRM_STREAM
+ */
+extern Ucs_Return_t Ucs_Xrm_Stream_GetPortConfig(Ucs_Inst_t *self, uint16_t destination_address, uint8_t index,
+ Ucs_Xrm_Stream_PortCfgResCb_t result_fptr);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Node Scripting Management */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Runs the script(s) contained in the given node.
+ * \details The function starts the process to transmit the script(s) contained in
+ * the given node and checks for the expected results (specified by customer).
+ * The Node Scripting module will start a timer of 2600ms before sending the Tx command of each script. That is,
+ * if no incoming messages match the expected result of the script during this time the result code
+ * \ref UCS_NS_RES_ERROR is returned via the \ref Ucs_Ns_ResultCb_t user callback function. This error code is also get when the script
+ * module couldn't perform the device synchronization of the remote device. Otherwise, if an
+ * incoming message matches the expected result, \ref UCS_NS_RES_SUCCESS is returned.
+ * \n The function will return \ref UCS_RET_ERR_API_LOCKED when attempting to execute a script
+ * in a node that is currently busy with other(s) previous script(s). Ucs_Ns_Run() is namely locked for a Node
+ * when running script(s) on this node and unlocked after reporting the operation's result.
+ * However processing scripts can be executed on different nodes in parallel.
+ *
+ * \param self The UNICENS instance
+ * \param node_ptr Reference to the node instance.
+ * \param result_fptr Reference to the result function pointer
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * --------------------------- | ------------------------------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_NOT_AVAILABLE | No internal resources allocated for the given node. \n Check if value of \ref UCS_NUM_REMOTE_DEVICES is less than \n the current number of remote devices in network.
+ * UCS_RET_ERR_PARAM | At least one parameter is NULL.
+ * UCS_RET_ERR_NOT_INITIALIZED | UNICENS is not initialized
+ * UCS_RET_ERR_BUFFER_OVERFLOW | No TxBuffer Handles available
+ * UCS_RET_ERR_API_LOCKED | The API is locked.
+ *
+ *
+ * \attention The Node Scripting module is designed and intended for the use of \b I2C and \b GPIO commands only. That is, using the Scripting for any other FBlock INIC commands
+ * (for example MOST, MediaLB, USB, Streaming, Connections, etc.) is expressly \b prohibited.
+ *
+ * \n\n\b Example
+ * \code{.c}
+ *
+ * // Forward declaration of result callback function
+ * static void App_OnScriptingResult(uint16_t node_address, Ucs_Ns_ResultCode_t result, void *user_ptr);
+ *
+ * // Configuration Msg specification
+ * static uint8_t tx_data [] = { 0x00, 0x40, 0x01, 0x01 };
+ * static uint8_t rx_data [] = { 0x0F, 0x00 };
+ * static Ucs_Ns_ConfigMsg_t tx_msg = { 0x00, 0x00, 0x6C1, 0x2, 4U, &tx_data };
+ * static Ucs_Ns_ConfigMsg_t rx_msg = { 0x00, 0x01, 0x6C1, 0xC, 2U, &rx_data };
+ *
+ * // Scripts specification
+ * static Ucs_Ns_Script_t script_x = { 100U, &tx_msg, &rx_msg };
+ *
+ * // Signature specification
+ * Ucs_Signature_t sig_200 = { 200U };
+ *
+ * // Nodes objects Specification
+ * static Ucs_Rm_Node_t node_200 = { &sig_200, &script_x, 1U, 0U };
+ *
+ * // Main function
+ * void main(uint8_t argc, char *argv[])
+ * {
+ *
+ * // ...
+ *
+ * if (node200_discovered)
+ * {
+ * (void)Ucs_Ns_Run(ucs_inst_ptr, &node_200, &App_OnScriptingResult);
+ * }
+ *
+ * // ...
+ * }
+ *
+ * // The result callback function
+ * static void App_OnScriptingResult(Ucs_Rm_Node_t * node_ptr, Ucs_Ns_ResultCode_t result, void *user_ptr)
+ * {
+ * switch (result)
+ * {
+ * case UCS_NS_RES_SUCCESS:
+ * // Node can be set to "Available" for example
+ * Ucs_Rm_SetNodeAvailable(ucs_inst_ptr, node_ptr, true);
+ * break;
+ *
+ * case UCS_NS_RES_ERROR:
+ * default:
+ * // Do whatever is necessary here
+ * break;
+ * }
+ * }
+ *
+ * \endcode
+ * \ingroup G_UCS_SCRIPTING
+ */
+extern Ucs_Return_t Ucs_Ns_Run(Ucs_Inst_t *self, Ucs_Rm_Node_t * node_ptr, Ucs_Ns_ResultCb_t result_fptr);
+
+/*------------------------------------------------------------------------------------------------*/
+/* GPIO and I2C Peripheral Bus Interfaces */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Creates the GPIO port with its associated port instance identifier
+ * \mns_func_inic{GPIOPortCreate,MNSH3-GPIOPortCreate701}
+ * \param self The UNICENS instance pointer
+ * \param destination_address Address of the target device. Use the \c UCS_ADDR_LOCAL_DEV macro to target the local device.
+ * \n The following address ranges are supported:
+ * - [0x10 ... 0x2FF]
+ * - [0x500 ... 0xFEF]
+ * - UCS_ADDR_LOCAL_DEV
+ * \param index The index of the GPIO Port instance. \mns_name_inic{Index}
+ * \param debounce_time The timeout for the GPIO debounce timer (in ms). \mns_name_inic{DebounceTime}
+ * \param result_fptr Required result callback function pointer.
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * --------------------------- | ------------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_PARAM | At least one parameter is wrong
+ * UCS_RET_ERR_BUFFER_OVERFLOW | No message buffer available
+ * UCS_RET_ERR_API_LOCKED | API is currently locked
+ * UCS_RET_ERR_NOT_INITIALIZED | UNICENS is not initialized
+ *
+ * \n \b Example
+ * \code{.c}
+ *
+ * // Main function
+ * void main()
+ * {
+ * Ucs_Return_t result = Ucs_Gpio_CreatePort(UCS_ADDR_LOCAL_DEV, 0x00U, 0x0003U, &App_GpioCreatePortResCb);
+ * if (result != UCS_RET_SUCCESS)
+ * {
+ * // Error handling here
+ * }
+ * }
+ *
+ * // The GPIO CreatePort event handler function
+ * // Handle GpioCreatePort event
+ * static void App_GpioCreatePortResCb(uint16_t device_id, uint16_t port_handle, Ucs_Gpio_Result_t result, void * user_ptr)
+ * {
+ * if (result.code == UCS_GPIO_RES_SUCCESS)
+ * {
+ * // Store received port handle
+ * }
+ * else
+ * {
+ * // Error handling here
+ * }
+ * }
+ * \endcode
+ * \ingroup G_UCS_GPIO
+ */
+extern Ucs_Return_t Ucs_Gpio_CreatePort(Ucs_Inst_t *self, uint16_t destination_address, uint8_t index,
+ uint16_t debounce_time, Ucs_Gpio_CreatePortResCb_t result_fptr);
+
+/*! \brief Configures the pin mode of the given GPIO port
+ * \mns_func_inic{GPIOPortPinMode,MNSH3-GPIOPortPinMode703}
+ * \param self The UNICENS instance pointer
+ * \param destination_address Address of the target device. Use the \c UCS_ADDR_LOCAL_DEV macro to target the local device.
+ * \n The following address ranges are supported:
+ * - [0x10 ... 0x2FF]
+ * - [0x500 ... 0xFEF]
+ * - UCS_ADDR_LOCAL_DEV
+ * \param gpio_port_handle The GPIO Port resource handle. \mns_name_inic{GPIOPortHandle}
+ * \param pin The GPIO pin that is to be configured. \mns_name_inic{Pin}
+ * \param mode The mode of the GPIO pin. \mns_name_inic{Mode}
+ * \param result_fptr Required result callback function pointer.
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * --------------------------- | ------------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_PARAM | At least one parameter is wrong
+ * UCS_RET_ERR_BUFFER_OVERFLOW | No message buffer available
+ * UCS_RET_ERR_API_LOCKED | API is currently locked
+ * UCS_RET_ERR_NOT_INITIALIZED | UNICENS is not initialized
+ *
+ * \n \b Example
+ * \code{.c}
+ *
+ * // Main function
+ * void main()
+ * {
+ * // Set configuration of GPIO pin no. 3
+ * Ucs_Return_t result = Ucs_Gpio_SetPinMode(0x221U, 0x1D00, 0x03U, UCS_GPIO_OUT_DEFAULT_LOW, &App_GpioConfigPinModeResCb);
+ * if (result != UCS_RET_SUCCESS)
+ * {
+ * // Error handling here
+ * }
+ * }
+ *
+ * // The event handler function
+ * // Handle GpioConfigPinMode event
+ * static void App_GpioConfigPinModeResCb(uint16_t device_id, uint16_t port_handle, Ucs_Gpio_PinConfiguration_t pin_cfg_list[], uint8_t list_sz, Ucs_Gpio_Result_t result, void * user_ptr)
+ * {
+ * if (result.code == UCS_GPIO_RES_SUCCESS)
+ * {
+ * uint8_t i;
+ * for (i = 0U; i < list_sz; i++)
+ * {
+ * // Configuration list of all GPIO pins
+ * // Check configuration of GPIO pin no. 3 here
+ * if (pin_cfg_list[i].pin == 3 && pin_cfg_list[i].mode != UCS_GPIO_OUT_DEFAULT_LOW)
+ * {
+ * // Error handling
+ * }
+ * }
+ * }
+ * else
+ * {
+ * // Error handling here
+ * }
+ * }
+ * \endcode
+ * \ingroup G_UCS_GPIO
+ */
+extern Ucs_Return_t Ucs_Gpio_SetPinMode(Ucs_Inst_t *self, uint16_t destination_address, uint16_t gpio_port_handle,
+ uint8_t pin, Ucs_Gpio_PinMode_t mode, Ucs_Gpio_ConfigPinModeResCb_t result_fptr);
+
+/*! \brief Retrieves the pin mode configuration of the given GPIO port
+ * \mns_func_inic{GPIOPortPinMode,MNSH3-GPIOPortPinMode703}
+ * \param self The UNICENS instance pointer
+ * \param destination_address Address of the target device. Use the \c UCS_ADDR_LOCAL_DEV macro to target the local device.
+ * \n The following address ranges are supported:
+ * - [0x10 ... 0x2FF]
+ * - [0x500 ... 0xFEF]
+ * - UCS_ADDR_LOCAL_DEV
+ * \param gpio_port_handle The GPIO Port resource handle. \mns_name_inic{GPIOPortHandle}
+ * \param result_fptr Required result callback function pointer.
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * --------------------------- | ------------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_PARAM | At least one parameter is wrong
+ * UCS_RET_ERR_BUFFER_OVERFLOW | No message buffer available
+ * UCS_RET_ERR_API_LOCKED | API is currently locked
+ * UCS_RET_ERR_NOT_INITIALIZED | UNICENS is not initialized
+ *
+ * \n \b Example
+ * \code{.c}
+ *
+ * // Main function
+ * void main()
+ * {
+ * // Read configuration of GPIO pins
+ * Ucs_Return_t result = Ucs_Gpio_GetPinMode(0x222U, 0x1D00, &App_GpioConfigPinModeResCb);
+ * if (result != UCS_RET_SUCCESS)
+ * {
+ * // Error handling here
+ * }
+ * }
+ *
+ * // The event handler function
+ * // Handle GpioConfigPinMode event
+ * static void App_GpioConfigPinModeResCb(uint16_t device_id, uint16_t port_handle, Ucs_Gpio_PinConfiguration_t pin_cfg_list[], uint8_t list_sz, Ucs_Gpio_Result_t result, void * user_ptr)
+ * {
+ * if (result.code == UCS_GPIO_RES_SUCCESS)
+ * {
+ * uint8_t i;
+ * for (i = 0U; i < list_sz; i++)
+ * {
+ * // Configuration list of all GPIO pins
+ * // Do what needs to be..
+ * }
+ * }
+ * else
+ * {
+ * // Error handling here
+ * }
+ * }
+ * \endcode
+ * \ingroup G_UCS_GPIO
+ */
+extern Ucs_Return_t Ucs_Gpio_GetPinMode(Ucs_Inst_t *self, uint16_t destination_address, uint16_t gpio_port_handle, Ucs_Gpio_ConfigPinModeResCb_t result_fptr);
+
+/*! \brief Writes data to the given GPIO port.
+ * \mns_func_inic{GPIOPortPinState,MNSH3-GPIOPortPinState704}
+ * \param self The UNICENS instance pointer
+ * \param destination_address Address of the target device. Use the \c UCS_ADDR_LOCAL_DEV macro to target the local device.
+ * \n The following address ranges are supported:
+ * - [0x10 ... 0x2FF]
+ * - [0x500 ... 0xFEF]
+ * - UCS_ADDR_LOCAL_DEV
+ * \param gpio_port_handle The GPIO Port resource handle. \mns_name_inic{GPIOPortHandle}
+ * \param mask The GPIO pin to be written. \mns_name_inic{Mask}
+ * \param data The state of the GPIO pin to be written. \mns_name_inic{Data}
+ * \param result_fptr Required result callback function pointer.
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * --------------------------- | ------------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_PARAM | At least one parameter is wrong
+ * UCS_RET_ERR_BUFFER_OVERFLOW | No message buffer available
+ * UCS_RET_ERR_API_LOCKED | API is currently locked
+ * UCS_RET_ERR_NOT_INITIALIZED | UNICENS is not initialized
+ *
+ * \n \b Example
+ * \code{.c}
+ *
+ * // Main function
+ * void main()
+ * {
+ * Ucs_Return_t result = Ucs_Gpio_WritePort(0x555U, 0x1D00, 0x0039U, 0x0038U, &App_GpioWritePortResCb);
+ * if (result != UCS_RET_SUCCESS)
+ * {
+ * // Error handling here
+ * }
+ * }
+ *
+ * // The event handler function
+ * // Handle GpioWritePort event
+ * static void App_GpioWritePortResCb(uint16_t device_id, uint16_t port_handle, uint16_t current_state, uint16_t sticky_state, Ucs_Gpio_Result_t result, void * user_ptr)
+ * {
+ * if (result.code == UCS_GPIO_RES_SUCCESS)
+ * {
+ * // Do what needs to be..
+ * }
+ * else
+ * {
+ * // Error handling here
+ * switch(result.details.result_type)
+ * {
+ * case UCS_GPIO_RESULT_TYPE_TGT:
+ * // Handle the target results
+ * break;
+ *
+ * case UCS_GPIO_RESULT_TYPE_TX:
+ * // Handle transmission error
+ * break;
+ * }
+ * }
+ * }
+ * \endcode
+ * \ingroup G_UCS_GPIO
+ */
+extern Ucs_Return_t Ucs_Gpio_WritePort(Ucs_Inst_t *self, uint16_t destination_address, uint16_t gpio_port_handle,
+ uint16_t mask, uint16_t data, Ucs_Gpio_PinStateResCb_t result_fptr);
+
+/*! \brief Reads the pin state of the given GPIO port.
+ * \mns_func_inic{GPIOPortPinState,MNSH3-GPIOPortPinState704}
+ * \param self The UNICENS instance pointer
+ * \param destination_address Address of the target device. Use the \c UCS_ADDR_LOCAL_DEV macro to target the local device.
+ * \n The following address ranges are supported:
+ * - [0x10 ... 0x2FF]
+ * - [0x500 ... 0xFEF]
+ * - UCS_ADDR_LOCAL_DEV
+ * \param gpio_port_handle The GPIO Port resource handle. \mns_name_inic{GPIOPortHandle}
+ * \param result_fptr Required result callback function pointer.
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * --------------------------- | ------------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_PARAM | At least one parameter is wrong
+ * UCS_RET_ERR_BUFFER_OVERFLOW | No message buffer available
+ * UCS_RET_ERR_API_LOCKED | API is currently locked
+ * UCS_RET_ERR_NOT_INITIALIZED | UNICENS is not initialized
+ *
+ * \n \b Example
+ * \code{.c}
+ *
+ * // Main function
+ * void main()
+ * {
+ * Ucs_Return_t result = Ucs_Gpio_ReadPort(UCS_ADDR_LOCAL_DEV, 0x1D00, &App_GpioReadPortResCb);
+ * if (result != UCS_RET_SUCCESS)
+ * {
+ * // Error handling here
+ * }
+ * }
+ *
+ * // The event handler function
+ * // Handle GpioReadPort event
+ * static void App_GpioReadPortResCb(uint16_t device_id, uint16_t port_handle, uint16_t current_state, uint16_t sticky_state, Ucs_Gpio_Result_t result)
+ * {
+ * if (result.code == UCS_GPIO_RES_SUCCESS)
+ * {
+ * // Do what needs to be..
+ * }
+ * else
+ * {
+ * // Error handling here
+ * }
+ * }
+ * \endcode
+ * \ingroup G_UCS_GPIO
+ */
+extern Ucs_Return_t Ucs_Gpio_ReadPort(Ucs_Inst_t *self, uint16_t destination_address, uint16_t gpio_port_handle, Ucs_Gpio_PinStateResCb_t result_fptr);
+
+/*! \brief Creates an I2C Port with its associated parameter.
+ * \mns_func_inic{I2CPortCreate,MNSH3-I2CPortCreate6C1}
+ * \param self The UNICENS instance pointer
+ * \param destination_address Address of the target device. Use the \c UCS_ADDR_LOCAL_DEV macro to target the local device.
+ * \n The following address ranges are supported:
+ * - [0x10 ... 0x2FF]
+ * - [0x500 ... 0xFEF]
+ * - UCS_ADDR_LOCAL_DEV
+ * \param index I2C Port instance. \mns_name_inic{Index}
+ * \param speed The speed grade of the I2C Port. \mns_name_inic{Speed}
+ * \param i2c_int_mask The bit mask corresponding to the I2C-interrupt on the GPIO Port.
+ * \param result_fptr Required result callback function pointer.
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * --------------------------- | ------------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_PARAM | At least one parameter is NULL
+ * UCS_RET_ERR_BUFFER_OVERFLOW | No message buffer available
+ * UCS_RET_ERR_API_LOCKED | API is currently locked
+ * UCS_RET_ERR_NOT_INITIALIZED | UNICENS is not initialized
+ *
+ * \attention The below points should be considered in order to receive the notification of the I2C interrupt:
+ * - The \ref Ucs_I2c_IntEventReportCb_t callback function should be registered in the Ucs_InitData_t init structure.
+ * - The GPIO port has to be be opened and the I2C interrupt pin associated with that port configured correctly.
+ *
+ * \n \b Example
+ * \code{.c}
+ *
+ * #define I2C_INT_PIN_MASK ((uint8_t)0x01)
+ *
+ * // Main function
+ * void main()
+ * {
+ * Ucs_Return_t result = Ucs_I2c_CreatePort(0x556U, 0x00U, UCS_I2C_FAST_MODE, I2C_INT_PIN_MASK, &App_I2cCreatePortResCb);
+ * if (result != UCS_RET_SUCCESS)
+ * {
+ * // Error handling here
+ * }
+ * }
+ *
+ * // Handle I2cCreatePort event
+ * static void App_I2cCreatePortResCb(uint16_t device_id, uint16_t port_handle, Ucs_I2c_Result_t result, void * user_ptr)
+ * {
+ * if (result.code == UCS_I2C_RES_SUCCESS)
+ * {
+ * // Store received port handle
+ * }
+ * else
+ * {
+ * // Error handling here
+ * }
+ * }
+ * \endcode
+ * \ingroup G_UCS_I2C
+ */
+extern Ucs_Return_t Ucs_I2c_CreatePort(Ucs_Inst_t *self, uint16_t destination_address, uint8_t index, Ucs_I2c_Speed_t speed,
+ uint8_t i2c_int_mask, Ucs_I2c_CreatePortResCb_t result_fptr);
+
+/*! \brief Writes a block of bytes to an I2C device at a specified I2C address.
+ * \mns_func_inic{I2CPortWrite,MNSH3-I2CPortWrite6C4}
+ * \param self The UNICENS instance pointer
+ * \param destination_address Address of the target device. Use the \c UCS_ADDR_LOCAL_DEV macro to target the local device.
+ * \n The following address ranges are supported:
+ * - [0x10 ... 0x2FF]
+ * - [0x500 ... 0xFEF]
+ * - UCS_ADDR_LOCAL_DEV
+ * \param port_handle Port resource handle. \mns_name_inic{I2CPortHandle}
+ * \param mode The write transfer mode. \mns_name_inic{Mode}
+ * \param block_count The number of blocks to be written to the I2C address. If parameter \em mode is \b not set to Burst Mode, the value of \em block_count has to be set to \b 0.
+ * Otherwise the valid range of this parameter goes from 1 to 30. \mns_name_inic{BlockCount}
+ * \param slave_address The 7-bit I2C slave address of the peripheral to be read. \mns_name_inic{SlaveAddress}
+ * \param timeout The timeout for the I2C Port write. \mns_name_inic{Timeout}
+ * \param data_len The total number of bytes to be written to the addressed I2C peripheral. Even if parameter \em mode is set to Burst Mode, the \em data_len shall correspond to the whole size of the burst
+ * transfer. That is, the \em data_len shall equal the size of a block \b times the \em block_count value.
+ * \param data_ptr Reference to the data to be written.
+ * \param result_fptr Required result callback function pointer.
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * --------------------------- | ------------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_PARAM | At least one parameter is wrong
+ * UCS_RET_ERR_BUFFER_OVERFLOW | No message buffer available
+ * UCS_RET_ERR_API_LOCKED | API is currently locked
+ * UCS_RET_ERR_NOT_INITIALIZED | UNICENS is not initialized
+ *
+ * \n \b Example
+ * \code{.c}
+ *
+ * uint8_t myData[] = {0x4U, 0x3U, 0x2U, 0x1U, 0x0U, 0x4U, 0x3U, 0x2U, 0x1U, 0x0U, 0x05U, 0x05U};
+ *
+ * // Main function
+ * void main()
+ * {
+ * Ucs_Return_t result = Ucs_I2c_WritePort(0x15U, 0x0F00U, UCS_I2C_BURST_MODE, 4U, 0x20U, 0x0FU, 12U, myData, &App_I2cWritePortResCb);
+ * if (result != UCS_RET_SUCCESS)
+ * {
+ * // Error handling here
+ * }
+ * }
+ *
+ * // The event handler function
+ * // Handle I2cWritePort event
+ * static void App_I2cWritePortResCb(uint16_t device_id, uint16_t port_handle, uint8_t i2c_slave_address, uint8_t data_len, Ucs_I2c_Result_t result, void * user_ptr)
+ * {
+ * if (result.code == UCS_I2C_RES_SUCCESS)
+ * {
+ * // Do what needs to be..
+ * }
+ * else
+ * {
+ * // Error handling here
+ * switch(result.details.result_type)
+ * {
+ * case UCS_I2C_RESULT_TYPE_TGT:
+ * // Handle the target results
+ * break;
+ *
+ * case UCS_I2C_RESULT_TYPE_TX:
+ * default:
+ * // Handle transmission error
+ * break;
+ * }
+ * }
+ * }
+ * \endcode
+ * \ingroup G_UCS_I2C
+ */
+extern Ucs_Return_t Ucs_I2c_WritePort(Ucs_Inst_t *self, uint16_t destination_address, uint16_t port_handle, Ucs_I2c_TrMode_t mode, uint8_t block_count,
+ uint8_t slave_address, uint16_t timeout, uint8_t data_len, uint8_t * data_ptr,
+ Ucs_I2c_WritePortResCb_t result_fptr);
+
+/*! \brief Reads a block of bytes from an I2C device at a specified I2C address.
+ * \mns_func_inic{I2CPortRead,MNSH3-I2CPortRead6C3}
+ * \param self The UNICENS instance pointer
+ * \param destination_address Address of the target device. Use the \c UCS_ADDR_LOCAL_DEV macro to target the local device.
+ * \n The following address ranges are supported:
+ * - [0x10 ... 0x2FF]
+ * - [0x500 ... 0xFEF]
+ * - UCS_ADDR_LOCAL_DEV
+ * \param port_handle Port resource handle. \mns_name_inic{I2CPortHandle}
+ * \param slave_address The 7-bit I2C slave address of the peripheral to be read. \mns_name_inic{SlaveAddress}
+ * \param data_len Number of bytes to be read from the address. \mns_name_inic{Length}
+ * \param timeout The timeout for the I2C Port read. \mns_name_inic{Timeout}
+ * \param result_fptr Required result callback function pointer.
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * --------------------------- | ------------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_PARAM | At least one parameter is wrong
+ * UCS_RET_ERR_BUFFER_OVERFLOW | No message buffer available
+ * UCS_RET_ERR_API_LOCKED | API is currently locked
+ * UCS_RET_ERR_NOT_INITIALIZED | UNICENS is not initialized
+ *
+ * \n \b Example
+ * \code{.c}
+ *
+ * // Main function
+ * void main()
+ * {
+ * Ucs_Return_t result = Ucs_I2c_ReadPort(0x14U, 0x0F00U, 0x20U, 5U, 0x0FU, &App_I2cReadPortResCb);
+ * if (result != UCS_RET_SUCCESS)
+ * {
+ * // Error handling here
+ * }
+ * }
+ *
+ * // The event handler function
+ * // Handle I2cReadPort event
+ * static void App_I2cReadPortResCb(uint16_t device_id, uint16_t port_handle, uint8_t slave_address, uint8_t data_len, uint8_t data_ptr[], Ucs_I2c_Result_t result, void * user_ptr)
+ * {
+ * if (result.code == UCS_I2C_RES_SUCCESS)
+ * {
+ * // Do what needs to be..
+ * }
+ * else
+ * {
+ * // Error handling here
+ * }
+ * }
+ * \endcode
+ * \ingroup G_UCS_I2C
+ */
+extern Ucs_Return_t Ucs_I2c_ReadPort(Ucs_Inst_t *self, uint16_t destination_address, uint16_t port_handle, uint8_t slave_address, uint8_t data_len,
+ uint16_t timeout, Ucs_I2c_ReadPortResCb_t result_fptr);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Network Management */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Starts up the MOST Network
+ * \note There is no predefined timeout for this operation. I.e., the startup process is
+ * performed by the INIC until \c result_fptr is invoked or the application calls
+ * Ucs_Network_Shutdown() to abort the startup process.
+ * \param self The instance
+ * \param packet_bw The desired packet bandwidth.\mns_name_inic{PacketBW}
+ * \param forced_na_timeout The delay time in milliseconds to shutdown the network after the INIC has entered the
+ * protected mode.\mns_name_inic{AutoForcedNotAvailable}
+ * \param result_fptr Optional result callback.
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * --------------------------- | ------------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_BUFFER_OVERFLOW | No message buffer available
+ * UCS_RET_ERR_API_LOCKED | API is currently locked
+ * UCS_RET_ERR_NOT_INITIALIZED | UNICENS is not initialized
+ * \ingroup G_UCS_NET
+ */
+extern Ucs_Return_t Ucs_Network_Startup(Ucs_Inst_t *self, uint16_t packet_bw, uint16_t forced_na_timeout,
+ Ucs_StdResultCb_t result_fptr);
+
+
+
+/*! \brief Switches of the MOST Network
+ * \param self The instance
+ * \param result_fptr Optional result callback
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * --------------------------- | ------------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_BUFFER_OVERFLOW | No message buffer available
+ * UCS_RET_ERR_API_LOCKED | API is currently locked
+ * UCS_RET_ERR_NOT_INITIALIZED | UNICENS is not initialized
+ * \ingroup G_UCS_NET
+ */
+extern Ucs_Return_t Ucs_Network_Shutdown(Ucs_Inst_t *self, Ucs_StdResultCb_t result_fptr);
+
+/*! \brief Triggers the INIC to force the NotAvailable state
+ * \param self The instance
+ * \param force Is \c true if the INIC shall force the network in NotAvailable state.
+ * If \c false the INIC shall no no longer force the network to NotAvailable state.
+ * \param result_fptr Optional result callback
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * --------------------------- | ------------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_BUFFER_OVERFLOW | No message buffer available
+ * UCS_RET_ERR_API_LOCKED | API is currently locked
+ * UCS_RET_ERR_NOT_INITIALIZED | UNICENS is not initialized
+ * \ingroup G_UCS_NET
+ */
+extern Ucs_Return_t Ucs_Network_ForceNotAvailable(Ucs_Inst_t *self, bool force, Ucs_StdResultCb_t result_fptr);
+
+/*! \brief Retrieves the Network Frame Counter, which is the number of frames since reset.
+ * \mns_func_inic{MOSTNetworkFrameCounter,MNSH3-MOSTNetworkFrameCounter523}
+ * \param self The instance
+ * \param reference Reference value that shall be delivered by \c result_fptr.\mns_name_inic{Reference}
+ * \param result_fptr Result callback.
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * --------------------------- | ------------------------------------
+ * MNS_RET_SUCCESS | No error
+ * MNS_RET_ERR_BUFFER_OVERFLOW | No message buffer available
+ * MNS_RET_ERR_API_LOCKED | API is currently locked
+ * MNS_RET_ERR_NOT_INITIALIZED | UNICENS is not initialized
+ * \ingroup G_UCS_NET
+ */
+extern Ucs_Return_t Ucs_Network_GetFrameCounter(Ucs_Inst_t *self, uint32_t reference, Ucs_Network_FrameCounterCb_t result_fptr);
+
+/*! \brief Retrieves the number of nodes within the MOST network
+ * \param self The instance
+ * \return Returns the number of nodes within the MOST network.
+ * \ingroup G_UCS_NET
+ */
+extern uint8_t Ucs_Network_GetNodesCount(Ucs_Inst_t *self);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Node Discovery */
+/*------------------------------------------------------------------------------------------------*/
+
+/*! \brief Starts the Node Discovery service
+ *
+ * \param self The instance
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * --------------------------- | ------------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_API_LOCKED | Node Discovery was already started
+ *
+ *
+ * \ingroup G_UCS_NODE_DISCOVERY
+ */
+Ucs_Return_t Ucs_Nd_Start(Ucs_Inst_t *self);
+
+
+/*! \brief Stops the Node Discovery service
+ *
+ * \param self The instance
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * --------------------------- | ------------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_NOT_AVAILABLE | Node Discovery not running
+ *
+ * \ingroup G_UCS_NODE_DISCOVERY
+ */
+extern Ucs_Return_t Ucs_Nd_Stop(Ucs_Inst_t *self);
+
+
+/*! \brief Initializes all nodes.
+ * \note <b>Must not be used when Node Discovery service is started.</b>
+ * \param self The instance
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * --------------------------- | ------------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_NOT_INITIALIZED | UNICENS is not initialized
+ *
+ * \ingroup G_UCS_NODE_DISCOVERY
+ */
+extern Ucs_Return_t Ucs_Nd_InitAll(Ucs_Inst_t *self);
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* BackChannel Diagnosis */
+/*------------------------------------------------------------------------------------------------*/
+
+/*! \brief Starts the BackChannel Diagnosis
+ *
+ * \param self The instance
+ * \param report_fptr Callback function presenting reports of the diagnosis
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * --------------------------- | ------------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_NOT_INITIALIZED | UNICENS is not initialized
+ *
+ *
+ * \ingroup G_UCS_BC_DIAG
+ */
+Ucs_Return_t Ucs_Bcd_Start(Ucs_Inst_t* self, Ucs_Bcd_ReportCb_t report_fptr);
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Programming service */
+/*------------------------------------------------------------------------------------------------*/
+/*! Starts the Programming service and processes the command list
+ *
+ * \param *self The instance
+ * \param node_id The node position address of the the node to be programmed
+ * \param signature Signature of the the node to be programmed
+ * \param session_type Memory access type
+ * \param command_list List of programming tasks. It has to end with a NULL entry.
+ * \param result_fptr Result callback
+ * \return
+ * \ingroup G_UCS_PROG_MODE
+ */
+Ucs_Return_t Ucs_Prog_Start(Ucs_Inst_t *self,
+ uint16_t node_id,
+ Ucs_Signature_t *signature,
+ Ucs_Prg_SessionType_t session_type,
+ Ucs_Prg_Command_t* command_list,
+ Ucs_Prg_ReportCb_t result_fptr);
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Application Message Service */
+/*------------------------------------------------------------------------------------------------*/
+
+/*! \brief Allocates an application message object for transmission
+ * \details This function retrieves a Tx message object with a payload buffer of the given size.
+ * The application must take care that Ucs_AmsTx_Msg_t::data_size of the resulting message
+ * object does not exceed the amount of provided payload.\n
+ * The application is also allowed to provide own payload to the message object.
+ * In this case the application is allowed to call this function and pass data_size "0".
+ * The application can set Ucs_AmsTx_Msg_t::data_ptr and Ucs_AmsTx_Msg_t::data_size of
+ * the returned message object to the application provided payload.
+ * \param self The instance
+ * \param data_size Required payload size which needs to be allocated. Valid values: 0..65535.
+ * \return The allocated Tx message object or \c NULL if no Tx message object is available.
+ * If the function returns \c NULL the application can use
+ * \ref Ucs_AmsTx_InitData_t::message_freed_fptr "ams.tx.message_freed_fptr"
+ * as trigger to request a message object again.
+ * \note The application may also allocate a certain number of message objects without transmitting
+ * in one go. In this case the message object is handed over to the application which is now
+ * responsible to transmit or free the object. When UNICENS terminates it is
+ * possible that user allocated memory is still dedicated to such a message buffer. In this
+ * case the application must do the following steps for every retained Tx message object:
+ * - Free application provided payload
+ * - Call Ucs_AmsTx_FreeUnusedMsg() to release the message to UNICENS
+ * - Guarantee to access the Tx message object never again
+ * .
+ * After performing these steps the application is allowed to call Ucs_Init() again.
+ * \ingroup G_UCS_AMS
+ */
+Ucs_AmsTx_Msg_t* Ucs_AmsTx_AllocMsg(Ucs_Inst_t *self, uint16_t data_size);
+
+/*! \brief Transmits an application message
+ * \param self The instance
+ * \param msg_ptr Reference to the related Tx message object
+ * \param tx_complete_fptr Callback function that is invoked as soon as the transmission was
+ * finished and the transmission result is available. The application
+ * must assign a callback function if the transmission result is required
+ * or the Tx message object uses external payload which needs to be
+ * reused or freed by the application. Otherwise the application is
+ * allowed to pass \c NULL.
+ * \note It is important that \c msg_ptr is the reference to an object which was previously obtained
+ * from Ucs_AmsTx_AllocMsg(). The application must not pass the reference of a \em self-created
+ * Tx message object to this function.
+ * \return Possible return values are shown in the table below.
+ * <table>
+ * <tr><th>Value</th><th>Description</th></tr>
+ * <tr><td>UCS_RET_SUCCESS</td><td>No error</td></tr>
+ * <tr>
+ * <td>UCS_RET_ERR_PARAM</td>
+ * <td>Invalid parameter is given. Possible reasons are:
+ * - \c msg_ptr is \c NULL
+ * - \c destination_address is smaller than \c 0x10 (reserved for internal communication)
+ * - \c data_size of a broad or group-cast message is larger than \c 45
+ * .
+ * Either the application must modify the message and retry the function call, or must free the message
+ * object via Ucs_AmsTx_FreeUnusedMsg().</td>
+ * </tr>
+ * <tr><td>UCS_RET_ERR_NOT_INITIALIZED</td><td>UNICENS is not initialized. \n Message
+ * objects that have been allocated during initialized state are no longer valid.</td>
+ * </tr>
+ * </table>
+ * \ingroup G_UCS_AMS
+ */
+Ucs_Return_t Ucs_AmsTx_SendMsg(Ucs_Inst_t *self, Ucs_AmsTx_Msg_t *msg_ptr, Ucs_AmsTx_CompleteCb_t tx_complete_fptr);
+
+/*! \brief Frees an unused Tx message object
+ * \param self The instance
+ * \param msg_ptr Reference to the Tx message object
+ * \details It is important that the application is responsible to free external payload, which is
+ * associated with the message object.
+ * \ingroup G_UCS_AMS
+ */
+void Ucs_AmsTx_FreeUnusedMsg(Ucs_Inst_t *self, Ucs_AmsTx_Msg_t *msg_ptr);
+
+/*! \brief Retrieves a reference to the front-most message in the Rx queue
+ * \details The Application Message Service already provides a queue of
+ * completed Rx messages. Ucs_AmsRx_PeekMsg() always returns a reference
+ * to the front-most message in the Rx queue.
+ * The function call does not dequeue the message handle. Thus, multiple
+ * subsequent calls of Ucs_AmsRx_PeekMsg() will always return the same
+ * reference. After processing the front-most message, the application
+ * must call Ucs_AmsRx_ReleaseMsg(). \n
+ * Typically, an application will process the front-most Rx message and call
+ * Ucs_AmsRx_ReleaseMsg(), which dequeues and frees the Rx message.
+ * Hence, the application must not access this this reference anymore.
+ * The next call of Ucs_AmsRx_PeekMsg() returns a reference of the following
+ * Rx message, or \c NULL if no further message is available. \n
+ * However, it is possible that an application cannot process an Rx message.
+ * In that case that application must not call Ucs_AmsRx_ReleaseMsg() so that
+ * the next call of Ucs_AmsRx_PeekMsg() returns again the reference to the
+ * un-processed message.
+ * \param self The instance
+ * \return Reference to the front-most message in the Rx queue or \c NULL
+ * if the Rx queue is empty.
+ * \warning It is important that the application takes care about the life time of the
+ * Rx message object. The returned reference is valid if the application
+ * performs the peek, processing and release operation in one go.
+ * A reference returned by Ucs_AmsRx_PeekMsg() might become invalid during a
+ * call of Ucs_Service(). The reason is that the UNICENS library might process
+ * an event which will flush the AMS Rx queue.
+ * \ingroup G_UCS_AMS
+ */
+Ucs_AmsRx_Msg_t* Ucs_AmsRx_PeekMsg(Ucs_Inst_t *self);
+
+/*! \brief Removes and frees the front-most message from the Rx queue
+ * \details The application must not access the removed message any longer.
+ * \param self The instance
+ * \ingroup G_UCS_AMS
+ */
+void Ucs_AmsRx_ReleaseMsg(Ucs_Inst_t *self);
+
+/*! \brief Retrieves the number of messages that are located in the Rx queue
+ * \param self The instance
+ * \return The number of messages in the Rx queue
+ * \ingroup G_UCS_AMS
+ */
+uint16_t Ucs_AmsRx_GetMsgCnt(Ucs_Inst_t *self);
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Command Interpreter */
+/*------------------------------------------------------------------------------------------------*/
+
+/*! \brief Add a MessageId Table to the Command Interpreter.
+ * \param self The Ucs instance
+ * \param msg_id_tab_ptr Reference to MessageId Table
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * ------------------------------- | ------------------------------------
+ * UCS_CMD_RET_SUCCESS | MessageId Table was successfully added
+ * UCS_CMD_RET_ERR_ALREADY_ENTERED | MessageId Table already added
+ * UCS_CMD_RET_ERR_NULL_PTR | NULL pointer used as argument for MessageId Table reference
+ *
+ * \ingroup G_UCS_CMD
+ */
+extern Ucs_Cmd_Return_t Ucs_Cmd_AddMsgIdTable(Ucs_Inst_t *self, Ucs_Cmd_MsgId_t *msg_id_tab_ptr);
+
+
+/*! \brief Remove a MessageId Table from the Command Interpreter
+ *
+ * \param self pointer to the Ucs instance
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * ---------------------------- | ------------------------------------
+ * UCS_CMD_RET_SUCCESS | MessageId Table was successfully removed
+ *
+ * \ingroup G_UCS_CMD
+ */
+extern Ucs_Cmd_Return_t Ucs_Cmd_RemoveMsgIdTable(Ucs_Inst_t *self);
+
+/*! \brief Decode an MCM message
+ * \details Function expects that the MessageId Table ends with a termination entry
+ * (handler_function_ptr == NULL). If this entry is not present, the search may end in an
+ * endless loop.
+ * \param self Pointer to the Ucs instance
+ * \param msg_rx_ptr Reference to the message to decode
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * ------------------------------- | ------------------------------------
+ * UCS_CMD_RET_SUCCESS | Decoding was successful
+ * UCS_CMD_RET_ERR_MSGID_NOTAVAIL | MessageId not found
+ * UCS_CMD_RET_ERR_TX_BUSY | No Tx Buffer available
+ * UCS_CMD_RET_ERR_APPL | Error happened in handler function
+ * UCS_CMD_RET_ERR_NULL_PTR | NULL pointer used as argument for message reference or MessageId Table not available.
+ *
+ * \ingroup G_UCS_CMD
+ */
+extern Ucs_Cmd_Return_t Ucs_Cmd_DecodeMsg(Ucs_Inst_t *self, Ucs_AmsRx_Msg_t *msg_rx_ptr);
+
+
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* UCS_CLASS_PB_H */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_cmd.h b/ucs2-lib/inc/ucs_cmd.h
new file mode 100644
index 0000000..e7d1694
--- /dev/null
+++ b/ucs2-lib/inc/ucs_cmd.h
@@ -0,0 +1,93 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Internal header file of the Command Interpreter Add-On.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_UCS_CMD_INT
+ * @{
+ */
+
+
+
+#ifndef UCS_CMD_H
+#define UCS_CMD_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_cmd_pb.h"
+#include "ucs_base.h"
+
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+
+/*! \brief Class structure of the Command Interpreter
+ */
+typedef struct CCmd_
+{
+ Ucs_Cmd_MsgId_t *msg_id_tab_ptr; /*!< \brief Pointer to table of MessageIds */
+
+ void *ucs_user_ptr; /*!< \brief User reference for API callback functions */
+
+
+} CCmd;
+
+
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Prototypes */
+/*------------------------------------------------------------------------------------------------*/
+void Cmd_Ctor(CCmd *self, CBase *base_ptr);
+Ucs_Cmd_Return_t Cmd_AddMsgIdTable(CCmd *self, Ucs_Cmd_MsgId_t *msg_id_tab_ptr);
+Ucs_Cmd_Return_t Cmd_RemoveMsgIdTable(CCmd *self);
+Ucs_Cmd_Return_t Cmd_DecodeMsg(CCmd *self, Ucs_AmsRx_Msg_t *msg_rx_ptr);
+
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+/*!
+ * @}
+ * \endcond
+ */
+
+#endif /* #ifndef UCS_CMD_H */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_cmd_pb.h b/ucs2-lib/inc/ucs_cmd_pb.h
new file mode 100644
index 0000000..a4ac8a4
--- /dev/null
+++ b/ucs2-lib/inc/ucs_cmd_pb.h
@@ -0,0 +1,124 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Header file of the Command Interpreter.
+ *
+ */
+
+
+#ifndef UCS_CMD_PB_H
+#define UCS_CMD_PB_H
+
+#include "ucs_ams_pb.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Constants */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Denotes the end of an MessageId Table
+ * \ingroup G_UCS_CMD_TYPES
+ */
+#define UCS_CMD_MSGID_TERMINATION 0xFFFFU
+
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Enumerators */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Result codes used for Command Interpreter API functions
+ * \ingroup G_UCS_CMD_TYPES
+ */
+typedef enum Ucs_Cmd_Return_
+{
+ UCS_CMD_RET_SUCCESS = 0x00, /*!< Operation successfully completed */
+ UCS_CMD_RET_ERR_MSGID_NOTAVAIL = 0x01, /*!< MessageId not found */
+ UCS_CMD_RET_ERR_TX_BUSY = 0x02, /*!< No free Tx buffer available */
+ UCS_CMD_RET_ERR_APPL = 0x03, /*!< Application handler function reports custom error */
+ UCS_CMD_RET_ERR_ALREADY_ENTERED = 0x04, /*!< MessageId Table already connected */
+ UCS_CMD_RET_ERR_NULL_PTR = 0x05 /*!< NULL pointer used as argument */
+} Ucs_Cmd_Return_t;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Types */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Type definition of user handler functions
+ * \param msg_rx_ptr Reference to the received message
+ * \param user_ptr User reference provided in \ref Ucs_InitData_t "Ucs_InitData_t::user_ptr"
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * ------------------------------- | ------------------------------------
+ * UCS_CMD_RET_SUCCESS | The handler function succeeded.
+ * UCS_CMD_RET_ERR_TX_BUSY | The handler function could not send an answer because no free Tx Buffer was available.
+ * UCS_CMD_RET_ERR_APPL | An error happened in handler function.
+ * \note The application must not return other values than the ones listed above.
+ * \ingroup G_UCS_CMD_TYPES
+ */
+typedef Ucs_Cmd_Return_t (*Ucs_Cmd_Handler_Function_t)(Ucs_AmsRx_Msg_t *msg_rx_ptr, void *user_ptr);
+
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+
+/*! \brief Structure of a single element of the MessageId Table
+ * \details The application provides a MessageId Table which contains all supported MessageIds
+ * with their belonging handler functions. The MessageId Table is an array of several
+ * Ucs_Cmd_MsgId_t elements. It has to end with a termination entry with the
+ * value {\ref UCS_CMD_MSGID_TERMINATION, NULL}.
+ * \ingroup G_UCS_CMD_TYPES
+ */
+typedef struct Ucs_Cmd_MsgId_
+{
+ /*! \brief MessageId */
+ uint16_t msg_id;
+ /*! \brief Pointer to the belonging handler function */
+ Ucs_Cmd_Handler_Function_t handler_function_ptr;
+
+} Ucs_Cmd_MsgId_t;
+
+
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Prototypes */
+/*------------------------------------------------------------------------------------------------*/
+
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* UCS_CMD_PB_H */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_dec.h b/ucs2-lib/inc/ucs_dec.h
new file mode 100644
index 0000000..5e5ddbb
--- /dev/null
+++ b/ucs2-lib/inc/ucs_dec.h
@@ -0,0 +1,126 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Internal header file of the Command Decoder Module.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_DEC_INT
+ * @{
+ */
+
+#ifndef UCS_DEC_H
+#define UCS_DEC_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_dl.h"
+#include "ucs_message.h"
+/*#include "ucs_ams.h"*/
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Constants */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Stores FktID and OPType in one 16 bit value */
+#define DEC_FKTOP(a,b) ((uint16_t)((((uint16_t)((a)<<4)) & (uint16_t)0xFFF0)) | ((uint16_t)(((uint16_t)(b)) & (uint16_t)0x000F))) /* parasoft-suppress MISRA2004-19_7 "Is used in arrays and therefore cannot be converted to inline function." */
+
+/*! \brief Denotes the end of an FktOp table */
+#define DEC_FKTOP_TERMINATION 0xFFFFU
+
+/*------------------------------------------------------------------------------------------------*/
+/* Enumerations */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Return codes used for decoding functions */
+/* Attention: these values are used as error descriptor in error messages and
+ must therefore not changed!
+*/
+typedef enum Dec_Return_
+{
+ DEC_RET_SUCCESS = 0x00, /*!< \brief Operation successfully completed */
+ DEC_RET_FKTID_NOT_FOUND = 0x03, /*!< \brief FunctionID not found */
+ DEC_RET_OPTYPE_NOT_FOUND = 0x04 /*!< \brief Operation Type not found */
+
+} Dec_Return_t;
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Types */
+/*------------------------------------------------------------------------------------------------*/
+typedef void (*Dec_IcmCb_t)(void *self, Msg_MostTel_t *msg_ptr);
+typedef void (*Dec_RcmCb_t)(void *self, Msg_MostTel_t *msg_ptr);
+
+
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Structure of an FktID_OpType element for FBlock INIC */
+typedef struct Dec_FktOpIcm_
+{
+ /*!< \brief FktID and OPType (combined to a 16-bit value) */
+ uint16_t fkt_op;
+ /*!< \brief pointer to the belonging handler function */
+ Dec_IcmCb_t handler_function_ptr;
+
+} Dec_FktOpIcm_t;
+
+/*! \brief Structure of an FktID_OpType element for internal INIC Shadow FBlocks e.g. FBlock EXC*/
+typedef struct Dec_FktOpIsh_
+{
+ /*! \brief FktID and OPType (combined to a 16-bit value) */
+ uint16_t fkt_op;
+ /*! \brief pointer to the belonging handler function */
+ Dec_RcmCb_t handler_function_ptr;
+
+} Dec_FktOpIsh_t;
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Prototypes */
+/*------------------------------------------------------------------------------------------------*/
+extern Dec_Return_t Dec_SearchFktOpIcm(Dec_FktOpIcm_t const list[], uint16_t *index_ptr,
+ uint16_t function_id, Ucs_OpType_t op_type);
+extern Dec_Return_t Dec_SearchFktOpIsh(Dec_FktOpIsh_t const list[], uint16_t *index_ptr,
+ uint16_t function_id, Ucs_OpType_t op_type);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_DEC_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_dl.h b/ucs2-lib/inc/ucs_dl.h
new file mode 100644
index 0000000..390034c
--- /dev/null
+++ b/ucs2-lib/inc/ucs_dl.h
@@ -0,0 +1,130 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Internal header file of the doubly linked list.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_DL
+ * @{
+ */
+
+#ifndef UCS_DL_H
+#define UCS_DL_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_types_cfg.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Type definitions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Callback signature used by foreach-function
+ * \param d_ptr Reference to the data of the current node
+ * \param up_ptr Reference to the user data
+ * \return true: Stop the for-each-loop
+ * \return false: Continue the for-each-loop
+ */
+typedef bool(*Dl_ForeachFunc_t)(void *d_ptr, void *ud_ptr);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Enumerators */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Standard return values of the list module. */
+typedef enum Dl_Ret_
+{
+ DL_OK, /*!< \brief No error */
+ DL_UNKNOWN_NODE, /*!< \brief Unknown node */
+ DL_STOPPED /*!< \brief Search process stopped */
+
+} Dl_Ret_t;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Class structure of doubly linked list node. */
+typedef struct DlNode_
+{
+ struct DlNode_ *prev; /*!< \brief Reference to previous node in list */
+ struct DlNode_ *next; /*!< \brief Reference to next node in list */
+ void *data_ptr; /*!< \brief Reference to optional data */
+ bool in_use; /*!< \brief Flag which signals that the node is in use */
+
+} CDlNode;
+
+/*! \brief Class structure of the doubly linked list. */
+typedef struct CDlList_
+{
+ struct DlNode_ *head; /*!< \brief Reference to head of the list */
+ struct DlNode_ *tail; /*!< \brief Reference to tail of the list */
+ uint16_t size; /*!< \brief Number of nodes in the list */
+ void *ucs_user_ptr; /*!< \brief User reference that needs to be passed in every callback function */
+
+} CDlList;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Prototypes of class CDlList */
+/*------------------------------------------------------------------------------------------------*/
+extern void Dl_Ctor(CDlList *self, void *ucs_user_ptr);
+extern void Dl_InsertAfter(CDlList *self, CDlNode *node, CDlNode *new_node);
+extern void Dl_InsertBefore(CDlList *self, CDlNode *node, CDlNode *new_node);
+extern void Dl_InsertHead(CDlList *self, CDlNode *new_node);
+extern void Dl_InsertTail(CDlList *self, CDlNode *new_node);
+extern Dl_Ret_t Dl_Remove(CDlList *self, CDlNode *node);
+extern CDlNode * Dl_PopHead(CDlList *self);
+extern CDlNode * Dl_PopTail(CDlList *self);
+extern CDlNode * Dl_PeekHead(CDlList *self);
+extern CDlNode * Dl_PeekTail(CDlList *self);
+extern CDlNode * Dl_Foreach(CDlList *self, Dl_ForeachFunc_t func_ptr, void *user_data_ptr);
+extern bool Dl_IsNodeInList(CDlList *self, const CDlNode *node);
+extern void Dl_AppendList(CDlList *self, CDlList *list_ptr);
+extern uint16_t Dl_GetSize(CDlList *self);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Prototypes of class CDlNode */
+/*------------------------------------------------------------------------------------------------*/
+extern void Dln_Ctor(CDlNode *self, void *data_ptr);
+extern void Dln_SetData(CDlNode *self, void *data_ptr);
+extern void * Dln_GetData(CDlNode *self);
+extern bool Dln_IsNodePartOfAList(CDlNode *self);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_DL_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_eh.h b/ucs2-lib/inc/ucs_eh.h
new file mode 100644
index 0000000..8491c27
--- /dev/null
+++ b/ucs2-lib/inc/ucs_eh.h
@@ -0,0 +1,128 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Internal header file of the event handler.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_EH
+ * @{
+ */
+
+#ifndef UCS_EH_H
+#define UCS_EH_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_eh_pb.h"
+#include "ucs_obs.h"
+#include "ucs_trace.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Definitions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief A control FIFO synchronization is lost. When this event occurs the PMS still waits
+ * until all FIFOs are unsynchronized. So this event is no termination event.
+ */
+#define EH_E_SYNC_LOST 0x0001U
+/*! \brief INIC Build-In-Self-Test failed
+ */
+#define EH_E_BIST_FAILED 0x0002U
+/*! \brief Notifies completed un-synchronization of Port Message FIFOs
+ */
+#define EH_E_UNSYNC_COMPLETE 0x0004U
+/*! \brief Notifies that the Port Message Channel was not able to un-synchronize its FIFOs
+ * within a definite time
+ */
+#define EH_E_UNSYNC_FAILED 0x0008U
+/*! \brief UNICENS initialization succeeded
+ */
+#define EH_E_INIT_SUCCEEDED 0x0010U
+/*! \brief UNICENS initialization failed
+ */
+#define EH_E_INIT_FAILED 0x0020U
+
+/*! \brief Mask including all events that lead to the termination of the UCS
+ */
+#define EH_M_TERMINATION_EVENTS (EH_E_UNSYNC_COMPLETE | EH_E_UNSYNC_FAILED | \
+ EH_E_BIST_FAILED | EH_E_INIT_FAILED)
+
+/*! \brief Bitmask to identify all internal event codes
+ */
+#define EH_M_ALL_EVENTS (EH_M_TERMINATION_EVENTS | EH_E_INIT_SUCCEEDED | EH_E_SYNC_LOST)
+
+/*------------------------------------------------------------------------------------------------*/
+/* Type definitions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Function signature used for callback functions which notifies the event handler
+ * observers.
+ * \param self Instance pointer
+ * \param event_code Reported event code
+ */
+typedef void (*Ehobs_UpdateCb_t)(void *self, uint32_t event_code);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Class structure of the event handler. */
+typedef struct CEventHandler_
+{
+ /*! \brief Subject used for internal events */
+ CSubject internal_event_subject;
+ /*! \brief Single subject to report error to application */
+ CSingleSubject public_error_subject;
+ /*! \brief UNICENS instance ID */
+ void * ucs_user_ptr;
+
+} CEventHandler;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Prototypes of class CEventHandler */
+/*------------------------------------------------------------------------------------------------*/
+extern void Eh_Ctor(CEventHandler *self, void *ucs_user_ptr);
+extern void Eh_AddObsrvPublicError(CEventHandler *self, CSingleObserver *obs_ptr);
+extern void Eh_DelObsrvPublicError(CEventHandler *self);
+extern void Eh_ReportEvent(CEventHandler *self, uint32_t event_code);
+extern void Eh_AddObsrvInternalEvent(CEventHandler *self, CMaskedObserver *obs_ptr);
+extern void Eh_DelObsrvInternalEvent(CEventHandler *self, CMaskedObserver *obs_ptr);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_EH_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_eh_pb.h b/ucs2-lib/inc/ucs_eh_pb.h
new file mode 100644
index 0000000..8a049d3
--- /dev/null
+++ b/ucs2-lib/inc/ucs_eh_pb.h
@@ -0,0 +1,66 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Public header file of the event handler.
+ */
+/*!
+ * \addtogroup G_UCS_INIT_AND_SRV_TYPES
+ * @{
+ */
+
+#ifndef UCS_EH_PB_H
+#define UCS_EH_PB_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_rules.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Enumerations */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief UNICENS general error codes */
+typedef enum Ucs_Error_
+{
+ UCS_GEN_ERR_COMMUNICATION = 1, /*!< \brief Fatal communication error between EHC and INIC */
+ UCS_GEN_ERR_INIC = 2 /*!< \brief INIC internal error */
+
+} Ucs_Error_t;
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_EH_PB_H */
+
+/*! @} */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_encoder.h b/ucs2-lib/inc/ucs_encoder.h
new file mode 100644
index 0000000..346fd21
--- /dev/null
+++ b/ucs2-lib/inc/ucs_encoder.h
@@ -0,0 +1,116 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Declaration of message encoder
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_ENCODER
+ * @{
+ */
+
+#ifndef UCS_ENCODER_H
+#define UCS_ENCODER_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_message.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Defines */
+/*------------------------------------------------------------------------------------------------*/
+#define ENC_MAX_SIZE_CONTENT 16U /*!< \brief Maximum content size in bytes, quadlet aligned */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Types */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Retrieves the size of a MOST message header
+ * \return The size of the MOST message header in bytes.
+ */
+typedef uint8_t (*Enc_GetSize_t)(void);
+
+/*! \brief Retrieves the content type of a MOST message header
+ * \return The content type of the MOST message header in bytes.
+ */
+typedef uint8_t (*Enc_GetContType_t)(void);
+
+/*! \brief Encodes a message telegram to the MOST message header
+ * \param tel_ptr Reference to the Msg_MostTel_t structure
+ * \param header The header buffer
+ */
+typedef void (*Enc_Encode_t)(Msg_MostTel_t *tel_ptr, uint8_t header[]);
+
+/*! \brief Decodes a MOST message header to a message telegram structure
+ * \param tel_ptr Reference to the Msg_MostTel_t structure
+ * \param header The header buffer
+ */
+typedef void (*Enc_Decode_t)(Msg_MostTel_t *tel_ptr, uint8_t header[]);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Identifier for a MOST Message Content */
+typedef enum Enc_MsgContent_
+{
+ ENC_CONTENT_00 = 0x00, /*!< \brief Content Type "0x00": Uncompressed, excluding retry values */
+ ENC_CONTENT_80 = 0x80, /*!< \brief Content Type "0x80": Compressed, excluding retry values */
+ ENC_CONTENT_81 = 0x81 /*!< \brief Content Type "0x81": Compressed, including retry values */
+
+} Enc_MsgContent_t;
+
+/*! \brief Interface for message encoder */
+typedef struct IEncoder_
+{
+ Enc_MsgContent_t content_type; /*!< \brief Retrieves the content type of the MOST message header */
+ uint8_t pm_hdr_sz; /*!< \brief Retrieves the size of the Port Message header */
+ uint8_t msg_hdr_sz; /*!< \brief Retrieves the size of the MOST message header */
+ Enc_Encode_t encode_fptr; /*!< \brief Function required to encode a MOST message header */
+ Enc_Decode_t decode_fptr; /*!< \brief Function required to decode a MOST message header */
+
+} IEncoder;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Function prototypes */
+/*------------------------------------------------------------------------------------------------*/
+extern IEncoder *Enc_GetEncoder(Enc_MsgContent_t type);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_ENCODER_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_epm.h b/ucs2-lib/inc/ucs_epm.h
new file mode 100644
index 0000000..d84dc1e
--- /dev/null
+++ b/ucs2-lib/inc/ucs_epm.h
@@ -0,0 +1,110 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Internal header file of the EndPoint Manager.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_EPM
+ * @{
+ */
+
+
+#ifndef UCS_EPM_H
+#define UCS_EPM_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_base.h"
+#include "ucs_ret_pb.h"
+#include "ucs_rm_pb.h"
+#include "ucs_xrm.h"
+#include "ucs_factory.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+/*!< \brief Stores data required by EPM during initialization. */
+typedef struct Epm_InitData_
+{
+ CBase * base_ptr; /*!< \brief Reference to a base instance */
+ CFactory * fac_ptr; /*!< \brief Reference to factory instance */
+ Ucs_Rm_XrmResDebugCb_t res_debugging_fptr; /*!< \brief Reference to the observer callback function for XRM resources */
+ Ucs_Xrm_CheckUnmuteCb_t check_unmute_fptr; /*!< \brief Reference to the callback function pointer to signal "check unmute" of devices */
+
+} Epm_InitData_t;
+
+/*! \brief Class structure of the EndPoint Management. */
+typedef struct CEndpointManagement_
+{
+ /*!< \brief Reference to a base instance */
+ CBase *base_ptr;
+ /*!< \brief Reference to factory instance */
+ CFactory * fac_ptr;
+ /*!< \brief Reference to the application debugging callback function for XRM resources */
+ Ucs_Rm_XrmResDebugCb_t res_debugging_fptr;
+ /*!< \brief Reference to the callback function pointer to signal "check unmute" of devices */
+ Ucs_Xrm_CheckUnmuteCb_t check_unmute_fptr;
+
+} CEndpointManagement;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Prototypes of class CEndpointManagement */
+/*------------------------------------------------------------------------------------------------*/
+extern void Epm_Ctor(CEndpointManagement * self, Epm_InitData_t * init_ptr);
+extern void Epm_InitInternalInfos (CEndpointManagement * self, Ucs_Rm_EndPoint_t * ep_ptr);
+extern void Epm_ClearIntInfos(CEndpointManagement * self, Ucs_Rm_EndPoint_t * ep_ptr);
+extern void Epm_AddObserver(Ucs_Rm_EndPoint_t * ep_ptr, CObserver * obs_ptr);
+extern void Epm_DelObserver(Ucs_Rm_EndPoint_t * ep_ptr, CObserver * obs_ptr);
+extern Ucs_Return_t Epm_SetBuildProcess(CEndpointManagement * self, Ucs_Rm_EndPoint_t * ep_ptr);
+extern Ucs_Return_t Epm_SetDestroyProcess(CEndpointManagement * self, Ucs_Rm_EndPoint_t * ep_ptr);
+extern uint16_t Epm_GetConnectionLabel(CEndpointManagement * self, Ucs_Rm_EndPoint_t * ep_ptr);
+extern void Epm_SetConnectionLabel(CEndpointManagement * self, Ucs_Rm_EndPoint_t * ep_ptr, uint16_t conn_label);
+extern Ucs_Rm_EndPointState_t Epm_GetState(CEndpointManagement * self, Ucs_Rm_EndPoint_t * ep_ptr);
+extern void Epm_ResetState(CEndpointManagement * self, Ucs_Rm_EndPoint_t * ep_ptr);
+extern void Epm_ReportShutDown(CEndpointManagement * self);
+extern void Epm_ReportInvalidDevice(CEndpointManagement *self, uint16_t destination_address);
+extern void Epm_XrmResDebugCb(Ucs_Xrm_ResourceType_t resource_type, Ucs_Xrm_ResObject_t *resource_ptr,
+ Ucs_Xrm_ResourceInfos_t resource_infos, void *endpoint_inst_ptr, void *user_ptr);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_EPM_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_epm_pv.h b/ucs2-lib/inc/ucs_epm_pv.h
new file mode 100644
index 0000000..482ebea
--- /dev/null
+++ b/ucs2-lib/inc/ucs_epm_pv.h
@@ -0,0 +1,103 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Public header file of the Extended Resource Manager.
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_EPM
+ * @{
+ */
+
+#ifndef UCS_EPM_PB_H
+#define UCS_EPM_PB_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_xrm_pb.h"
+#include "ucs_obs.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Enumerators */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief This enumerator specifies the state of EndPoint objects. */
+typedef enum Ucs_Rm_EndPointState_
+{
+ UCS_RM_EP_IDLE = 0x00U, /*!< \brief Specifies the "Idle" state of the endpoint. This means that the endpoint has not been handled yet */
+ UCS_RM_EP_XRMPROCESSING = 0x01U, /*!< \brief Specifies that the EndPoint is under "XRM process". */
+ UCS_RM_EP_BUILT = 0x02U /*!< \brief Specifies that the EndPoint is "Built". */
+
+} Ucs_Rm_EndPointState_t;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+/* Epm_Inst_t requires incomplete forward declaration, to hide internal data type.
+ * The Epm_Inst_t object is allocated internally, the core library must access only the pointer to Epm_Inst_t. */
+struct Epm_Inst_;
+
+/*!\brief EndpointManagement instance */
+typedef struct Epm_Inst_ Epm_Inst_t;
+
+/*! \brief Internal configuration structure of a Connection EndPoint. */
+typedef struct Ucs_Rm_EndPointInt_
+{
+ /*! \brief Stores the current number of retries in case of error. */
+ uint8_t num_retries;
+ /*! \brief State of the endpoint object. */
+ Ucs_Rm_EndPointState_t endpoint_state;
+ /*! \brief connection label. */
+ uint16_t connection_label;
+ /*! \brief object counter. */
+ uint8_t reference_cnt;
+ /*! \brief last XRM result. */
+ Ucs_Xrm_Result_t xrm_result;
+ /*! \brief A subject object for this endpoint. */
+ CSubject subject_obj;
+ /*! \brief Reference to the EndPointManagement that handles this endpoint */
+ Epm_Inst_t * epm_inst;
+ /*! \brief magic number to signal that endpoint has already been initialized */
+ uint32_t magic_number;
+
+} Ucs_Rm_EndPointInt_t;
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_EPM_PB_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_exc.h b/ucs2-lib/inc/ucs_exc.h
new file mode 100644
index 0000000..e703f6a
--- /dev/null
+++ b/ucs2-lib/inc/ucs_exc.h
@@ -0,0 +1,323 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Internal header file of class CExc.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_EXC
+ * @{
+ */
+
+#ifndef UCS_EXC_H
+#define UCS_EXC_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_inic_pb.h"
+#include "ucs_obs.h"
+#include "ucs_fsm.h"
+#include "ucs_dec.h"
+#include "ucs_base.h"
+#include "ucs_inic.h"
+
+
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Macros */
+/*------------------------------------------------------------------------------------------------*/
+
+
+
+#define EXC_FID_HELLO 0x200U
+#define EXC_FID_WELCOME 0x201U
+#define EXC_FID_SIGNATURE 0x202U
+#define EXC_FID_DEVICE_INIT 0x203U
+#define EXC_FID_ENABLEPORT 0x210U
+#define EXC_FID_CABLE_LINK_DIAG 0x211U
+#define EXC_FID_PHY_LAY_TEST 0x220U
+#define EXC_FID_PHY_LAY_TEST_RES 0x221U
+#define EXC_FID_BC_DIAG 0x222U
+#define EXC_FID_BC_ENABLE_TX 0x223U
+#define EXC_FID_MEM_SESSION_OPEN 0x300U
+#define EXC_FID_MEM_SESSION_CLOSE 0x301U
+#define EXC_FID_MEMORY_READ 0x302U
+#define EXC_FID_MEMORY_WRITE 0x303U
+
+
+
+#define EXC_WELCOME_SUCCESS 0U /*!< \brief Welcome.Result reports success */
+
+
+
+
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Structure holds parameters for API locking */
+typedef struct Exc_ApiLock_
+{
+ /*! \brief API locking instance for EXC functions */
+ CApiLocking api;
+ /*! \brief Observer used for locking timeouts for EXC functions */
+ CSingleObserver observer;
+
+} Exc_ApiLock_t;
+
+/*! \brief Structure ExcSingleSubjects */
+typedef struct Exc_Ssubjects_
+{
+ CSingleSubject hello; /*!< \brief Subject for the Hello.Status and Hello.Error messages */
+ CSingleSubject welcome; /*!< \brief Subject for the Welcome.ResultAck and Welcome.ErrorAck messages */
+ CSingleSubject signature; /*!< \brief Subject for the Signature.Status and Signature.Error messages */
+ CSingleSubject deviceinit; /*!< \brief Subject for the DeviceInit.Error message */
+ CSingleSubject enableport; /*!< \brief Subject for the EnablePort.ResultAck and EnablePort.ErrorAck messages */
+ CSingleSubject cablelinkdiag; /*!< \brief Subject for the CableLinkDiagnosis.ResultAck and CableLinkDiagnosis.ErrorAck messages */
+ CSingleSubject phylaytest; /*!< \brief Subject for the PhysicalLayerTestResult.Status and PhysicalLayerTest.Error messages */
+ CSingleSubject phylaytestresult; /*!< \brief Subject for the PhysicalLayerTestResult.Status and PhysicalLayerTestResult.Error messages */
+ CSingleSubject memsessionopen; /*!< \brief Subject for the MemorySessionOpen.Result and MemorySessionOpen.Error messages */
+ CSingleSubject memsessionclose; /*!< \brief Subject for the MemorySessionClose.Result and MemorySessionClose.Error messages */
+ CSingleSubject memoryread; /*!< \brief Subject for the MemoryRead.Result and MemoryRead.Error messages */
+ CSingleSubject memorywrite; /*!< \brief Subject for the MemoryWrite.Result and MemoryWrite.Error messages */
+ CSingleSubject bcdiag; /*!< \brief Subject for the BCdiag.Result and Error messages */
+ CSingleSubject enabletx; /*!< \brief Subject for the BC_EnableTx.Status and Error messages */
+} Exc_Ssubjects_t;
+
+
+
+
+/*! \brief Structure of class CExc. */
+typedef struct CExc_
+{
+ /*! \brief pointer to the FktID/OPType list */
+ Dec_FktOpIsh_t const *fkt_op_list_ptr;
+
+ /*! \brief Subjects for single-observer */
+ Exc_Ssubjects_t ssubs;
+
+ /*! \brief Parameters for API locking */
+ Exc_ApiLock_t lock;
+
+ /*! \brief Reference to base instance */
+ CBase *base_ptr;
+
+ /*! \brief Reference to a Transceiver instance */
+ CTransceiver *xcvr_ptr;
+
+} CExc;
+
+/*! \brief Structure used for returning method results/errors
+ *
+ * Either the data_info or the error part of the structure contain the information.
+ * In case an error happened, data_info will be NULL. If no error happened,
+ * error.code is 0 and error.info is NULL.
+*/
+typedef struct Exc_StdResult_
+{
+ Ucs_StdResult_t result; /*!< \brief Result code and info byte stream */
+ void *data_info; /*!< \brief Reference to result values */
+
+} Exc_StdResult_t;
+
+
+/*! \brief This structure provides information on the Physical layer test result */
+typedef struct Exc_PhyTestResult_
+{
+ uint8_t port_number; /*!< \brief Port Number */
+ bool lock_status; /*!< \brief Lock status */
+ uint16_t err_count; /*!< \brief Number of Coding Errors */
+
+} Exc_PhyTestResult_t;
+
+
+/*! \brief Result values of the BCDiag command*/
+typedef enum Exc_BCDiagResValue_
+{
+ DUT_SLAVE = 0x01U, /*!< \brief Slave answered. No break on this segment. */
+ DUT_MASTER = 0x02U, /*!< \brief TimingMaster answered: ring is closed. */
+ DUT_NO_ANSWER = 0x03U, /*!< \brief Ring break found. */
+ DUT_TIMEOUT = 0x04U /*!< \brief No answer on back channel */
+
+} Exc_BCDiagResValue;
+
+/*! \brief Provides BackChannel Diagnosis result */
+typedef struct Exc_BCDiagResult_
+{
+ Exc_BCDiagResValue diag_result;
+ uint16_t admin_addr;
+} Exc_BCDiagResult;
+
+
+/*! \brief This structure provides information on the Coax Diagnosis */
+typedef struct Exc_CableLinkDiagResult_
+{
+ uint8_t port_number;
+ uint8_t result;
+
+} Exc_CableLinkDiagResult_t;
+
+
+/*! \brief This structure provides information on the Hello.Status message */
+typedef struct Exc_HelloStatus_t_
+{
+ uint8_t version;
+ Ucs_Signature_t signature;
+
+} Exc_HelloStatus_t;
+
+/*! \brief This structure provides information on the Welcome.Result message */
+typedef struct Exc_WelcomeResult_t_
+{
+ uint8_t res;
+ uint8_t version;
+ Ucs_Signature_t signature;
+
+} Exc_WelcomeResult_t;
+
+/*! \brief This structure provides information on the Signature.Status message */
+typedef struct Exc_SignatureStatus_t_
+{
+ uint8_t version;
+ Ucs_Signature_t signature;
+
+} Exc_SignatureStatus_t;
+
+/*! \brief This structure provides information on the MemoryRead.Result message */
+typedef struct Exc_MemReadResult_
+{
+ uint16_t session_handle;
+ uint8_t mem_id;
+ uint32_t address;
+ uint8_t unit_len;
+ uint8_t unit_data[18];
+
+} Exc_MemReadResult_t;
+
+/*! \brief This structure provides information on the MemoryWrite.Result message */
+typedef struct Exc_MemWriteResult_
+{
+ uint16_t session_handle;
+ uint8_t mem_id;
+
+} Exc_MemWriteResult_t;
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Prototypes */
+/*------------------------------------------------------------------------------------------------*/
+extern void Exc_Ctor(CExc *self, CBase *base_ptr, CTransceiver *rcm_ptr);
+extern void Exc_OnRcmRxFilter(void *self, Msg_MostTel_t *tel_ptr);
+
+extern Ucs_Return_t Exc_Hello_Get(CExc *self,
+ uint16_t target_address,
+ uint8_t version_limit,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Exc_Welcome_Sr(CExc *self,
+ uint16_t target_address,
+ uint16_t admin_node_address,
+ uint8_t version,
+ Ucs_Signature_t signature,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Exc_Signature_Get(CExc *self,
+ uint16_t target_address,
+ uint8_t version_limit,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Exc_DeviceInit_Start(CExc *self,
+ uint16_t target_address,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Exc_EnablePort_Sr(CExc *self,
+ uint16_t target_address,
+ uint8_t port_number,
+ bool enabled,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Exc_CableLinkDiagnosis_Start (CExc *self,
+ uint16_t target_address,
+ uint8_t port_number,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Exc_PhyTest_Start(CExc *self,
+ uint8_t port_number,
+ Ucs_Diag_PhyTest_Type_t type,
+ uint16_t lead_in,
+ uint32_t duration,
+ uint16_t lead_out,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Exc_PhyTestResult_Get(CExc *self,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Exc_BCDiag_Start(CExc *self,
+ uint8_t position,
+ uint16_t admin_na,
+ uint16_t t_send,
+ uint16_t t_wait4dut,
+ uint16_t t_switch,
+ uint16_t t_back,
+ bool autoback,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Exc_BCEnableTx_StartResult(CExc *self,
+ uint8_t port,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Exc_MemSessionOpen_Sr(CExc *self,
+ uint16_t target_address,
+ uint8_t session_type,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Exc_MemSessionClose_Sr(CExc *self,
+ uint16_t target_address,
+ uint16_t session_handle,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Exc_MemoryRead_Sr(CExc *self,
+ uint16_t target_address,
+ uint16_t session_handle,
+ uint8_t mem_id,
+ uint32_t address,
+ uint8_t unit_len,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Exc_MemoryWrite_Sr(CExc *self,
+ uint16_t target_address,
+ uint16_t session_handle,
+ uint8_t mem_id,
+ uint32_t address,
+ uint8_t unit_len,
+ uint8_t unit_data[],
+ CSingleObserver *obs_ptr);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_EXC_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_factory.h b/ucs2-lib/inc/ucs_factory.h
new file mode 100644
index 0000000..227753c
--- /dev/null
+++ b/ucs2-lib/inc/ucs_factory.h
@@ -0,0 +1,167 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Internal header file of the MNS Factory.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_FAC
+ * @{
+ */
+
+
+#ifndef UCS_FAC_H
+#define UCS_FAC_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_net.h"
+#include "ucs_base.h"
+#include "ucs_inic.h"
+#include "ucs_ret_pb.h"
+#include "ucs_rsm.h"
+#include "ucs_xrm.h"
+#include "ucs_i2c.h"
+#include "ucs_gpio.h"
+#include "ucs_nsm.h"
+#include "ucs_xrmpool.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Definitions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \def FAC_NUM_DEVICES
+ * \brief Defines the number of remote devices.
+ * \details The number of remote devices required by the application for remote jobs. The
+ * default value is 0 in MNS configuration file ucs_cfg.h. The user can adjust this
+ * value by defining the macro \ref UCS_NUM_REMOTE_DEVICES. Valid values are in
+ * the range from 0 to 63.
+ * \ingroup G_FAC
+ */
+#define FAC_NUM_DEVICES ((uint8_t)UCS_NUM_REMOTE_DEVICES + 1U)
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Enumerations */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Factory Instances type. */
+typedef enum Fac_Inst_
+{
+ FAC_INST_INIC, /*!< \brief Corresponds to the INIC Instance type */
+ FAC_INST_RSM, /*!< \brief Corresponds to the RSM Instance type */
+ FAC_INST_XRM, /*!< \brief Corresponds to the XRM Instance type */
+ FAC_INST_GPIO, /*!< \brief Corresponds to the GPIO Instance type */
+ FAC_INST_I2C, /*!< \brief Corresponds to the I2C Instance type */
+ FAC_INST_NSM /*!< \brief Corresponds to the NSM Instance type */
+} Fac_Inst_t;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Type definitions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Callback signature used by the foreach-function of the factory class.
+ * \param inst_type The instance type to be looked for.
+ * \param inst_ptr Reference to the current instance.
+ * \param ud_ptr Reference to the user data
+ * \return true: Stop the for-each-loop
+ * \return false: Continue the for-each-loop
+ */
+typedef bool (*Fac_ForeachFunc_t)(Fac_Inst_t inst_type, void *inst_ptr, void *ud_ptr);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Stores data required by the Factory during initialization. */
+typedef struct Fac_InitData_
+{
+ CBase *base_ptr; /*!< \brief Reference to base instance */
+ CNetworkManagement *net_ptr; /*!< \brief Reference to Network instance */
+ CXrmPool * xrmp_ptr; /*!< \brief Reference to the XRM Pool instance */
+ CTransceiver * icm_transceiver; /*!< \brief Reference to ICM transceiver */
+ CTransceiver * rcm_transceiver; /*!< \brief Reference to MCM transceiver */
+
+} Fac_InitData_t;
+
+/*! \brief Class structure of the MNS Factory. */
+typedef struct CFactory_
+{
+ /*! \brief FBlock INIC list */
+ CInic fbi_list[FAC_NUM_DEVICES];
+ /*! \brief XRM list */
+ CExtendedResourceManager xrm_list[FAC_NUM_DEVICES];
+ /*! \brief RSM list */
+ CRemoteSyncManagement rsm_list[FAC_NUM_DEVICES];
+ /*! \brief GPIO list */
+ CGpio gpio_list[FAC_NUM_DEVICES];
+ /*! \brief I2C list */
+ CI2c i2c_list[FAC_NUM_DEVICES];
+ /*! \brief Node Scripting list */
+ CNodeScriptManagement nsm_list[FAC_NUM_DEVICES];
+ /*! \brief Reference to a base instance */
+ CBase *base_ptr;
+ /*! \brief Reference to a network instance */
+ CNetworkManagement *net_ptr;
+ /*!< \brief Reference to the XRM Pool instance */
+ CXrmPool * xrmp_ptr;
+ /*! \brief The ICM transceiver */
+ CTransceiver * icm_transceiver;
+ /*! \brief The RCM transceiver */
+ CTransceiver * rcm_transceiver;
+
+} CFactory;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Prototypes of class CFactory */
+/*------------------------------------------------------------------------------------------------*/
+extern void Fac_Ctor(CFactory * self, Fac_InitData_t * init_ptr);
+extern CExtendedResourceManager * Fac_GetXrm(CFactory * self, uint16_t address, Ucs_Xrm_ResourceDebugCb_t res_debugging_fptr, Ucs_Xrm_CheckUnmuteCb_t check_unmute_fptr);
+extern CExtendedResourceManager * Fac_GetXrmByJobList(CFactory * self, UCS_XRM_CONST Ucs_Xrm_ResObject_t *resource_object_list[]);
+extern CExtendedResourceManager * Fac_GetXrmLegacy(CFactory * self, uint16_t address, Ucs_Xrm_CheckUnmuteCb_t check_unmute_fptr);
+extern CInic * Fac_GetInic(CFactory * self, uint16_t address);
+extern CInic * Fac_FindInic(CFactory * self, uint16_t address);
+extern CNodeScriptManagement * Fac_GetNsm(CFactory * self, uint16_t address);
+extern CNodeScriptManagement * Fac_FindNsm(CFactory * self, uint16_t address);
+extern CRemoteSyncManagement * Fac_GetRsm(CFactory * self, uint16_t address);
+extern CRemoteSyncManagement * Fac_FindRsm(CFactory * self, uint16_t address);
+extern CGpio * Fac_GetGpio(CFactory * self, uint16_t address, Ucs_Gpio_TriggerEventResultCb_t trigger_event_status_fptr);
+extern CI2c * Fac_GetI2c(CFactory * self, uint16_t address, Ucs_I2c_IntEventReportCb_t i2c_interrupt_report_fptr);
+extern void Fac_Foreach(CFactory * self, Fac_Inst_t inst_type, Fac_ForeachFunc_t func_ptr, void *user_data_ptr);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_RSM_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_fsm.h b/ucs2-lib/inc/ucs_fsm.h
new file mode 100644
index 0000000..d4b5f77
--- /dev/null
+++ b/ucs2-lib/inc/ucs_fsm.h
@@ -0,0 +1,118 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Internal header file of the Finite State Machine.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_FSM
+ * @{
+ */
+
+#ifndef UCS_FSM_H
+#define UCS_FSM_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_types_cfg.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Definitions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Internal state machine states which are also used as return values for method
+ * Fsm_Service().
+ */
+typedef enum Fsm_State_
+{
+ FSM_STATE_IDLE, /*!< \brief The state machine is in idle mode */
+ FSM_STATE_SERVICE, /*!< \brief An event is pending and the state machine must be serviced */
+ FSM_STATE_WAIT, /*!< \brief Waiting for asynchronous data/signal/event */
+ FSM_STATE_END, /*!< \brief The state machine is finished */
+ FSM_STATE_ERROR /*!< \brief An error occurred while processing the state machine */
+
+} Fsm_State_t;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Function signature used for state machine actions */
+typedef void (*Fsm_Act_t)(void *self);
+
+/*! \brief Structure is used to define state elements */
+typedef struct Fsm_StateElem_
+{
+ /*! \brief Function pointer to the action that shall be executed */
+ Fsm_Act_t action_fptr;
+ /*! \brief Next state */
+ int8_t next_state;
+
+} Fsm_StateElem_t;
+
+/*! \brief Class structure of the finite state machine */
+typedef struct CFsm_
+{
+ /*! \brief Reference to transition table */
+ const Fsm_StateElem_t *transition_table_ptr;
+ /*! \brief Instance pointer used for actions */
+ void *inst_ptr;
+ /*! \brief Current event */
+ int8_t event_occured;
+ /*! \brief Current state */
+ int8_t current_state;
+ /*! \brief Maximum number of events */
+ uint8_t num_events;
+ /*! \brief Internal state of the state machine */
+ Fsm_State_t internal_state;
+
+} CFsm;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Prototypes */
+/*------------------------------------------------------------------------------------------------*/
+extern void Fsm_Ctor(CFsm *self, void *inst_ptr, const Fsm_StateElem_t *trans_table_ptr,
+ uint8_t num_events, int8_t init_state);
+extern Fsm_State_t Fsm_Service(CFsm *self);
+extern void Fsm_SetEvent(CFsm *self, int8_t e);
+extern void Fsm_Wait(CFsm *self);
+extern void Fsm_End(CFsm *self);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_FSM_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_gpio.h b/ucs2-lib/inc/ucs_gpio.h
new file mode 100644
index 0000000..7b755ea
--- /dev/null
+++ b/ucs2-lib/inc/ucs_gpio.h
@@ -0,0 +1,144 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Internal header file of the GPIO module.
+ *
+ * \defgroup G_UCS_GPIO_TYPES GPIO Referred Types
+ * \brief Referred types used by the Extended Resource Manager.
+ * \ingroup G_UCS_GPIO
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_GPIO
+ * @{
+ */
+
+
+#ifndef UCS_GPIO_H
+#define UCS_GPIO_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_nsm.h"
+#include "ucs_ret_pb.h"
+#include "ucs_obs.h"
+#include "ucs_gpio_pb.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Type definitions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Function signature used for GPIO results in case error.
+ * \param self Reference to CGpio instance
+ * \param msg_ptr Pointer to received message
+ */
+typedef void (*Gpio_ErrResultCb_t)(void *self, void *result_ptr);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Stores data required by GPIO during initialization. */
+typedef struct Gpio_InitData_
+{
+ /*!< \brief Reference to INIC instance */
+ CInic *inic_ptr;
+ /*!< \brief Reference to NSM instance */
+ CNodeScriptManagement *nsm_ptr;
+ /*!< \brief GPIO Trigger event status function pointer */
+ Ucs_Gpio_TriggerEventResultCb_t trigger_event_status_fptr;
+
+} Gpio_InitData_t;
+
+/*! \brief Stores data required by GPIO during initialization. */
+typedef struct Gpio_UserData_
+{
+ /*!< \brief PinState Result callback */
+ Ucs_Gpio_PinStateResCb_t pinstate_res_cb;
+ /*!< \brief PinMode Result callback */
+ Ucs_Gpio_ConfigPinModeResCb_t pinmode_res_cb;
+ /*!< \brief PortCreate Result callback */
+ Ucs_Gpio_CreatePortResCb_t portcreate_res_cb;
+ /*!< \brief GPIO Trigger event status function pointer */
+ Ucs_Gpio_TriggerEventResultCb_t trigger_event_status_fptr;
+
+} Gpio_UserData_t;
+
+/*! \brief Script structure of the GPIO module */
+typedef struct Gpio_Script_
+{
+ uint8_t cfg_data[40];
+ /*! \brief script used for transmitting commands */
+ Ucs_Ns_Script_t script;
+ /*! \brief config messages used for transmitting commands */
+ Ucs_Ns_ConfigMsg_t cfg_msg;
+} Gpio_Script_t;
+
+/*! \brief Class structure of the GPIO module */
+typedef struct CGpio_
+{
+ /*! \brief Reference to an INIC instance */
+ CInic *inic_ptr;
+ /*!< \brief Reference to NSM instance */
+ CNodeScriptManagement *nsm_ptr;
+ /*! \brief Current user data */
+ Gpio_UserData_t curr_user_data;
+ /*! \brief Indicates the address of the target device */
+ uint16_t device_address;
+ /*! \brief Observer used for GPIO TriggerEvents */
+ CObserver triggerevent_observer;
+ /*!< \brief Current script to be looked for */
+ Gpio_Script_t curr_script;
+ /*!< \brief Current reference to the result callback function */
+ Gpio_ErrResultCb_t curr_res_cb;
+
+} CGpio;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Prototypes of class CGpio */
+/*------------------------------------------------------------------------------------------------*/
+extern void Gpio_Ctor(CGpio * self, Gpio_InitData_t * init_ptr);
+extern Ucs_Return_t Gpio_CreatePort(CGpio * self, uint8_t index, uint16_t debounce_time, Ucs_Gpio_CreatePortResCb_t res_fptr);
+extern Ucs_Return_t Gpio_SetPinModeConfig(CGpio * self, uint16_t gpio_port_handle, uint8_t pin, Ucs_Gpio_PinMode_t mode, Ucs_Gpio_ConfigPinModeResCb_t res_fptr);
+extern Ucs_Return_t Gpio_GetPinModeConfig(CGpio * self, uint16_t gpio_port_handle, Ucs_Gpio_ConfigPinModeResCb_t res_fptr);
+extern Ucs_Return_t Gpio_SetPinStateConfig(CGpio * self, uint16_t gpio_port_handle, uint16_t mask, uint16_t data, Ucs_Gpio_PinStateResCb_t res_fptr);
+extern Ucs_Return_t Gpio_GetPinStateConfig(CGpio * self, uint16_t gpio_port_handle, Ucs_Gpio_PinStateResCb_t res_fptr);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_GPIO_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_gpio_pb.h b/ucs2-lib/inc/ucs_gpio_pb.h
new file mode 100644
index 0000000..c098243
--- /dev/null
+++ b/ucs2-lib/inc/ucs_gpio_pb.h
@@ -0,0 +1,143 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Public header file of the Gpio module.
+ * \addtogroup G_UCS_GPIO_TYPES
+ * @{
+ */
+
+#ifndef UCS_GPIO_PB_H
+#define UCS_GPIO_PB_H
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Enumerators */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Result codes of the GPIO Module. */
+typedef enum Ucs_Gpio_ResultCode_
+{
+ UCS_GPIO_RES_SUCCESS = 0x00U, /*!< \brief GPIO command succeeded */
+ UCS_GPIO_RES_ERR_CMD = 0x01U, /*!< \brief GPIO command failed due to an INIC function-specific error or a transmission error on the MOST network.
+ * \details The \em result_type section in Ucs_Gpio_ResultDetails_t will provide you with more detailed information concerning the error type.
+ */
+ UCS_GPIO_RES_ERR_SYNC = 0x02U /*!< \brief Remote synchronization of target device failed.
+ * \details The \em inic_result section in Ucs_Gpio_ResultDetails_t will provide you with more detailed information concerning this error code.
+ */
+} Ucs_Gpio_ResultCode_t;
+
+/*! \brief This enumerator specifies the kind of result - Target or Transmission. */
+typedef enum Ucs_Gpio_ResultType_
+{
+ UCS_GPIO_RESULT_TYPE_TGT = 0x00U, /*!< \brief Specifies the target results, typically INIC function-specific error from target device. */
+ UCS_GPIO_RESULT_TYPE_TX = 0x01U /*!< \brief Specifies the transmission error information that occurred on the MOST network. */
+
+} Ucs_Gpio_ResultType_t;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Detailed information used for GPIO results. */
+typedef struct Ucs_Gpio_ResultDetails_
+{
+ /*! \brief Specifies the type of the current asynchronous result.
+ * \details The following briefly describes the different types of results available:
+ * - \b UCS_GPIO_RESULT_TYPE_TGT: target results, typically INIC function-specific error found on target device. \n Refer to \em inic_result to get the detailed information.
+ * - \b UCS_GPIO_RESULT_TYPE_TX: transmission results, typically transmission error on the MOST network. \n Refer to \em tx_result to get the transmission information.
+ */
+ Ucs_Gpio_ResultType_t result_type;
+ /*! \brief Holds the status of the transmission. */
+ Ucs_MsgTxStatus_t tx_result;
+ /*! \brief Holds the results of the target device. */
+ Ucs_StdResult_t inic_result;
+
+} Ucs_Gpio_ResultDetails_t;
+
+/*! \brief Result structure of the GPIO Module. */
+typedef struct Ucs_Gpio_Result_
+{
+ /*! \brief Result code. */
+ Ucs_Gpio_ResultCode_t code;
+ /*! \brief Detailed information on the returned result. */
+ Ucs_Gpio_ResultDetails_t details;
+
+} Ucs_Gpio_Result_t;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Type definitions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Function signature of result callback used by Ucs_Gpio_CreatePort()
+ * \param node_address The node address of the device from where the results come
+ * \param gpio_port_handle The port resource handle.
+ * \param result The operation result
+ * \param user_ptr User reference provided in \ref Ucs_InitData_t "Ucs_InitData_t::user_ptr"
+ */
+typedef void (*Ucs_Gpio_CreatePortResCb_t)(uint16_t node_address, uint16_t gpio_port_handle, Ucs_Gpio_Result_t result, void *user_ptr);
+
+/*! \brief Function signature of result callback used by Ucs_Gpio_SetPinMode() and Ucs_Gpio_GetPinMode().
+ * \param node_address The node address of the device from where the results come
+ * \param gpio_port_handle The port resource handle.
+ * \param pin The pin that has been configured.
+ * \param mode The mode of the GPIO pin.
+ * \param result The operation result
+ * \param user_ptr User reference provided in \ref Ucs_InitData_t "Ucs_InitData_t::user_ptr"
+ */
+typedef void (*Ucs_Gpio_ConfigPinModeResCb_t)(uint16_t node_address, uint16_t gpio_port_handle, Ucs_Gpio_PinConfiguration_t pin_cfg_list[], uint8_t list_sz, Ucs_Gpio_Result_t result, void *user_ptr);
+
+/*! \brief Function signature of result callback used by Ucs_Gpio_WritePort() and Ucs_Gpio_ReadPort().
+ * \param node_address The node address of the device from where the results come
+ * \param gpio_port_handle The port resource handle.
+ * \param current_state The current state of the GPIO pin
+ * \param sticky_state The sticky state of all GPIO pins configured as sticky inputs.
+ * \param result The operation result
+ * \param user_ptr User reference provided in \ref Ucs_InitData_t "Ucs_InitData_t::user_ptr"
+ */
+typedef void (*Ucs_Gpio_PinStateResCb_t)(uint16_t node_address, uint16_t gpio_port_handle, uint16_t current_state, uint16_t sticky_state, Ucs_Gpio_Result_t result, void *user_ptr);
+
+/*! \brief Function signature of result callback used by Gpio_TriggerEvents()
+ * \param node_address The node address of the device from where the results come
+ * \param gpio_port_handle The port resource handle.
+ * \param rising_edges The GPIO pins on which a rising-edge trigger condition was detected
+ * \param falling_edges The GPIO pins on which a falling-edge trigger condition was detected
+ * \param levels The GPIO pins on which a logic level condition was detected
+ * \param user_ptr User reference provided in \ref Ucs_InitData_t "Ucs_InitData_t::user_ptr"
+ */
+typedef void (*Ucs_Gpio_TriggerEventResultCb_t)(uint16_t node_address, uint16_t gpio_port_handle, uint16_t rising_edges, uint16_t falling_edges, uint16_t levels, void *user_ptr);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_GPIO_PB_H */
+
+/*!
+ * @}
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_i2c.h b/ucs2-lib/inc/ucs_i2c.h
new file mode 100644
index 0000000..5146e78
--- /dev/null
+++ b/ucs2-lib/inc/ucs_i2c.h
@@ -0,0 +1,147 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Internal header file of the I2C module.
+ *
+ * \defgroup G_UCS_I2C_TYPES I2C Referred Types
+ * \brief Referred types used by the Extended Resource Manager.
+ * \ingroup G_UCS_I2C
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_I2C
+ * @{
+ */
+
+
+#ifndef UCS_I2C_H
+#define UCS_I2C_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_nsm.h"
+#include "ucs_ret_pb.h"
+#include "ucs_obs.h"
+#include "ucs_i2c_pb.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Type definitions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Function signature used for I2C results in case error.
+ * \param self Reference to CI2c instance
+ * \param msg_ptr Pointer to received message
+ */
+typedef void (*I2c_ErrResultCb_t)(void *self, void *result_ptr);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Stores data required by I2C during initialization. */
+typedef struct I2c_InitData_
+{
+ /*!< \brief Reference to INIC instance */
+ CInic *inic_ptr;
+ /*!< \brief Reference to NSM instance */
+ CNodeScriptManagement *nsm_ptr;
+ /*!< \brief Status function pointer for the I2C Interrupt event */
+ Ucs_I2c_IntEventReportCb_t i2c_interrupt_report_fptr;
+
+} I2c_InitData_t;
+
+/*! \brief Stores data required by I2C during initialization. */
+typedef struct I2c_UserData_
+{
+ /*!< \brief PinState Result callback */
+ Ucs_I2c_ReadPortResCb_t portread_res_cb;
+ /*!< \brief PortCreate Result callback */
+ Ucs_I2c_WritePortResCb_t portwrite_res_cb;
+ /*!< \brief PortCreate Result callback */
+ Ucs_I2c_CreatePortResCb_t portcreate_res_cb;
+ /*!< \brief Status function pointer for the I2c interrupt */
+ Ucs_I2c_IntEventReportCb_t i2c_interrupt_report_fptr;
+ /*!< \brief I2C interrupt pin mask on GPIO Port */
+ uint8_t int_pin_mask;
+
+} I2c_UserData_t;
+
+/*! \brief Script structure of the I2C module */
+typedef struct I2c_Script_
+{
+ uint8_t cfg_data[40];
+ /*! \brief script used for transmitting commands */
+ Ucs_Ns_Script_t script;
+ /*! \brief config messages used for transmitting commands */
+ Ucs_Ns_ConfigMsg_t cfg_msg;
+} I2c_Script_t;
+
+/*! \brief Class structure of the I2C module */
+typedef struct CI2c_
+{
+ /*! \brief Reference to an INIC instance */
+ CInic *inic_ptr;
+ /*! \brief Reference to a base instance */
+ CBase *base_ptr;
+ /*!< \brief Reference to NSM instance */
+ CNodeScriptManagement *nsm_ptr;
+ /*!< \brief Current user data */
+ I2c_UserData_t curr_user_data;
+ /*!< \brief Indicates the address of target device */
+ uint16_t device_address;
+ /*! \brief Observer used for I2C to check the GPIO TriggerEvents */
+ CObserver triggerevent_observer;
+ /*!< \brief Current script to be looked for */
+ I2c_Script_t curr_script;
+ /*!< \brief Current reference to the result callback function */
+ I2c_ErrResultCb_t curr_res_cb;
+
+} CI2c;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Prototypes of class CI2c */
+/*------------------------------------------------------------------------------------------------*/
+extern void I2c_Ctor(CI2c * self, I2c_InitData_t * init_ptr);
+extern Ucs_Return_t I2c_CreatePort(CI2c * self, uint8_t index, Ucs_I2c_Speed_t speed, uint8_t i2c_int_mask, Ucs_I2c_CreatePortResCb_t res_fptr);
+extern Ucs_Return_t I2c_WritePort(CI2c * self, uint16_t port_handle, Ucs_I2c_TrMode_t mode, uint8_t block_count, uint8_t slave_address, uint16_t timeout,
+ uint8_t data_len, uint8_t data_ptr[], Ucs_I2c_WritePortResCb_t res_fptr);
+extern Ucs_Return_t I2c_ReadPort(CI2c * self, uint16_t port_handle, uint8_t slave_address, uint8_t data_len, uint16_t timeout, Ucs_I2c_ReadPortResCb_t res_fptr);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_I2C_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_i2c_pb.h b/ucs2-lib/inc/ucs_i2c_pb.h
new file mode 100644
index 0000000..2ad1eba
--- /dev/null
+++ b/ucs2-lib/inc/ucs_i2c_pb.h
@@ -0,0 +1,142 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Public header file of the I2c module.
+ * \addtogroup G_UCS_I2C_TYPES
+ * @{
+ */
+
+#ifndef UCS_I2C_PB_H
+#define UCS_I2C_PB_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Enumerators */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Result codes of the I2C Module. */
+typedef enum Ucs_I2c_ResultCode_
+{
+ UCS_I2C_RES_SUCCESS = 0x00U, /*!< \brief I2C command succeeded */
+ UCS_I2C_RES_ERR_CMD = 0x01U, /*!< \brief I2C command failed due to an INIC function-specific error or a transmission error on the MOST network.
+ * \details The \em result_type section in Ucs_I2c_ResultDetails_t will provide you with more detailed information concerning the error type.
+ */
+ UCS_I2C_RES_ERR_SYNC = 0x02U /*!< \brief Remote synchronization of target device failed.
+ * \details The \em inic_result section in Ucs_I2c_ResultDetails_t will provide you with more detailed information concerning the error code.
+ */
+} Ucs_I2c_ResultCode_t;
+
+/*! \brief This enumerator specifies the kind of result - Target or Transmission. */
+typedef enum Ucs_I2c_ResultType_
+{
+ UCS_I2C_RESULT_TYPE_TGT = 0x00U, /*!< \brief Specifies the target results, typically INIC function-specific error from target device. */
+ UCS_I2C_RESULT_TYPE_TX = 0x01U /*!< \brief Specifies the transmission error information that occurred on the MOST network. */
+
+} Ucs_I2c_ResultType_t;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Detailed information used for I2C results. */
+typedef struct Ucs_I2c_ResultDetails_
+{
+ /*! \brief Specifies the type of the current asynchronous result.
+ * \details The following briefly describes the different types of results available:
+ * - \b UCS_I2C_RESULT_TYPE_TGT: target results, typically INIC function-specific error found on target device. \n Refer to \em inic_result to get the detailed information.
+ * - \b UCS_I2C_RESULT_TYPE_TX: transmission results, typically transmission error on the MOST network. \n Refer to \em tx_result to get the transmission information.
+ */
+ Ucs_I2c_ResultType_t result_type;
+ /*! \brief Holds the status of the transmission. */
+ Ucs_MsgTxStatus_t tx_result;
+ /*! \brief Holds the results of the target device. */
+ Ucs_StdResult_t inic_result;
+
+} Ucs_I2c_ResultDetails_t;
+
+/*! \brief Result structure of the I2C Module. */
+typedef struct Ucs_I2c_Result_
+{
+ /*! \brief Result code. */
+ Ucs_I2c_ResultCode_t code;
+ /*! \brief Detailed information on the returned result. */
+ Ucs_I2c_ResultDetails_t details;
+
+} Ucs_I2c_Result_t;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Type definitions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Callback function type to retrieve the result of the I2c_CreatePort function
+ * \param node_address The node address of the device from where the results come
+ * \param i2c_port_handle The port resource handle.
+ * \param result The operation result
+ * \param user_ptr User reference provided in \ref Ucs_InitData_t "Ucs_InitData_t::user_ptr"
+ */
+typedef void (*Ucs_I2c_CreatePortResCb_t)(uint16_t node_address, uint16_t i2c_port_handle, Ucs_I2c_Result_t result, void *user_ptr);
+
+/*! \brief Callback function type to retrieve the result of the Gpio_ConfigPinMode function
+ * \param node_address The node address of the device from where the results come
+ * \param i2c_port_handle The port resource handle.
+ * \param i2c_slave_address The 7-bit I2C Port slave address of the peripheral to be read.
+ * \param data_len The number of bytes wrote to the I2C address.
+ * \param result The operation result
+ * \param user_ptr User reference provided in \ref Ucs_InitData_t "Ucs_InitData_t::user_ptr"
+ */
+typedef void (*Ucs_I2c_WritePortResCb_t)(uint16_t node_address, uint16_t i2c_port_handle, uint8_t i2c_slave_address, uint8_t data_len, Ucs_I2c_Result_t result, void *user_ptr);
+
+/*! \brief Callback function type to retrieve the result of the Gpio_ConfigPinMode function
+ * \param node_address The node address of the device from where the results come
+ * \param i2c_port_handle The port resource handle.
+ * \param i2c_slave_address The 7-bit I2C Port slave address of the peripheral from which the data have been read.
+ * \param data_len The number of bytes read from the address.
+ * \param data_ptr The reference to the data list.
+ * \param result The operation result
+ * \param user_ptr User reference provided in \ref Ucs_InitData_t "Ucs_InitData_t::user_ptr"
+ */
+typedef void (*Ucs_I2c_ReadPortResCb_t)(uint16_t node_address, uint16_t i2c_port_handle, uint8_t i2c_slave_address, uint8_t data_len, uint8_t data_ptr[], Ucs_I2c_Result_t result, void *user_ptr);
+
+/*! \brief Callback function type to report the I2C interrupt event
+ * \param node_address The node address of the device from where the interrupt comes
+ * \param user_ptr User reference provided in \ref Ucs_InitData_t "Ucs_InitData_t::user_ptr"
+ */
+typedef void (*Ucs_I2c_IntEventReportCb_t)(uint16_t node_address, void *user_ptr);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_I2C_PB_H */
+
+/*! @} */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_inic.h b/ucs2-lib/inc/ucs_inic.h
new file mode 100644
index 0000000..159dbf4
--- /dev/null
+++ b/ucs2-lib/inc/ucs_inic.h
@@ -0,0 +1,858 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Internal header file of class CInic.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \defgroup G_UCS_DIAG_TYPES Diagnosis Referred Types
+ * \brief Referred types used by Diagnosis functions.
+ * \ingroup G_INIC
+ *
+ * \addtogroup G_INIC
+ * @{
+ */
+
+#ifndef UCS_INIC_H
+#define UCS_INIC_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_inic_pb.h"
+#include "ucs_ret_pb.h"
+#include "ucs_dec.h"
+#include "ucs_transceiver.h"
+#include "ucs_misc.h"
+#include "ucs_obs.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Definitions and Enumerators */
+/*------------------------------------------------------------------------------------------------*/
+#define FB_INIC 0x00U
+#define FB_EXC 0x0AU
+
+/*! \brief Defines the max number of invalid resources to be destroyed by the INIC in one command. */
+#define MAX_INVALID_HANDLES_LIST 0x0AU
+
+/*! \brief Data Type which describes the operation mode of the INIC. */
+typedef enum Inic_AttachState_
+{
+ INIC_ATS_PROTECTED = 0x00U, /*!< \brief Interface is detached */
+ INIC_ATS_ATTACHED = 0x01U, /*!< \brief Interface is attached */
+ INIC_ATS_REMOTE = 0x02U /*!< \brief Interface is remote controlled
+ * (only possible for configuration interface) */
+} Inic_AttachState_t;
+
+/*! \brief Control commands used for the INIC resource monitor. */
+typedef enum Ucs_Resource_MonitorCtrl_
+{
+ UCS_INIC_RES_MON_CTRL_RESET = 0x00U /*!< \brief Requests the INIC resource monitor to go back to
+ * the OK state and release the MUTE pin of the INIC.
+ */
+} Ucs_Resource_MonitorCtrl_t;
+
+/*! \brief Control commands used for the INIC notification
+ */
+typedef enum Ucs_Inic_NotificationCtrl_
+{
+ UCS_INIC_NTF_SET_ALL = 0x00U, /*!< \brief Requests the INIC to enter the DeviceID in all properties
+ * that support notification.
+ */
+ UCS_INIC_NTF_SET_FUNC = 0x01U, /*!< \brief Requests the INIC enter the DeviceID for the functions
+ * listed.
+ */
+ UCS_INIC_NTF_CLEAR_ALL = 0x02U, /*!< \brief Requests the INIC to delete DeviceID from all functions of
+ * the notification matrix.
+ */
+ UCS_INIC_NTF_CLEAR_FUNC = 0x03U /*!< \brief Requests the INIC to delete DeviceID from the function listed.
+ *
+ */
+} Ucs_Inic_NotificationCtrl_t;
+
+/*! \brief State of the INIC resource monitor
+ */
+typedef enum Ucs_Resource_MonitorState_
+{
+ UCS_INIC_RES_MON_STATE_OK = 0x00U, /*!< \brief Default state. There are no action required
+ * from the EHC.
+ */
+ UCS_INIC_RES_MON_STATE_ACT_REQ = 0x01U /*!< \brief There are actions required from the EHC. */
+
+} Ucs_Resource_MonitorState_t;
+
+/*! \brief Data Type which describes the status/result of the Built-in Self-Test (BIST). */
+typedef enum Inic_Bist_
+{
+ /*! \brief Processing */
+ INIC_BIST_PROCESSING = 0x00U,
+ /*! \brief Error detected */
+ INIC_BIST_ERROR = 0x01U,
+ /*! \brief No errors detected */
+ INIC_BIST_OK = 0x02U
+
+} Inic_Bist_t;
+
+/*------------------------------------------------------------------------------------------------*/
+/* INIC FunctionIDs */
+/*------------------------------------------------------------------------------------------------*/
+#define INIC_FID_NOTIFICATION 0x001U /*!< \brief INIC FktID for Notification */
+#define INIC_FID_DEVICE_STATUS 0x220U /*!< \brief INIC FktID for DeviceStatus */
+#define INIC_FID_DEVICE_VERSION 0x221U /*!< \brief INIC FktID for DeviceVersion */
+#define INIC_FID_DEVICE_POWER_OFF 0x222U /*!< \brief INIC FktID for DevicePowerOff */
+#define INIC_FID_DEVICE_ATTACH 0x223U /*!< \brief INIC FktID for DeviceAttach */
+#define INIC_FID_DEVICE_SYNC 0x224U /*!< \brief INIC FktID for DeviceSync */
+#define INIC_FID_MOST_NW_STATUS 0x520U /*!< \brief INIC FktID for MOSTNetworkStatus */
+#define INIC_FID_MOST_NW_CFG 0x521U /*!< \brief INIC FktID for MOSTNetworkConfiguration */
+#define INIC_FID_MOST_NW_FRAME_COUNTER 0x523U /*!< \brief INIC FktID for MOSTNetworkFrameCounter */
+#define INIC_FID_MOST_NW_STARTUP 0x524U /*!< \brief INIC FktID for MOSTNetworkStartup */
+#define INIC_FID_MOST_NW_SHUTDOWN 0x525U /*!< \brief INIC FktID for MOSTNetworkShutdown */
+#define INIC_FID_MOST_NW_TRIGGER_RBD 0x526U /*!< \brief INIC FktID for MOSTNetworkTriggerRBD */
+#define INIC_FID_MOST_NW_RBD_RESULT 0x527U /*!< \brief INIC FktID for MOSTNetworkRBDResult */
+#define INIC_FID_MOST_NW_ATTACH 0x528U /*!< \brief INIC FktID for MOSTNetworkAttach */
+#define INIC_FID_MOST_NW_DETACH 0x529U /*!< \brief INIC FktID for MOSTNetworkDetach */
+#define INIC_FID_MOST_NW_FORCE_NO_AVAIL 0x52BU /*!< \brief INIC FktID for MOSTNetworkForceNotAvailable */
+#define INIC_FID_MOST_NW_SYS_DIAGNOSIS 0x52CU /*!< \brief INIC FktID for MOSTNetworkSystemDiagnosis */
+#define INIC_FID_MOST_NW_SYS_DIAG_END 0x52DU /*!< \brief INIC FktID for MOSTNetworkSystemDiagnosisEnd */
+#define INIC_FID_BACK_CHANNEL_DIAGNOSIS 0x52EU /*!< \brief INIC FktID for BackChannelDiagnosis */
+#define INIC_FID_BACK_CHANNEL_DIAG_END 0x52FU /*!< \brief INIC FktID for BackChannelDiagnosisEnd */
+#define INIC_FID_MOST_PORT_STATUS 0x602U /*!< \brief INIC FktID for MOSTPortStatus */
+#define INIC_FID_MOST_SOCKET_CREATE 0x611U /*!< \brief INIC FktID for MOSTSocketCreate */
+#define INIC_FID_MOST_SOCKET_STATUS 0x612U /*!< \brief INIC FktID for MOSTSocketStatus */
+#define INIC_FID_MLB_PORT_CREATE 0x621U /*!< \brief INIC FktID for MediaLBPortCreate */
+/*#define INIC_FID_MLB_PORT_ALLOCATE_ONLY 0x623U */ /*!< \brief INIC FktID for MediaLBPortAllocateOnly */
+/*#define INIC_FID_MLB_PORT_DEALLOC_ONLY 0x624U */ /*!< \brief INIC FktID for MediaLBDeallocateOnly */
+#define INIC_FID_MLB_SOCKET_CREATE 0x631U /*!< \brief INIC FktID for MediaLBSocketCreate */
+#define INIC_FID_SPI_PORT_CREATE 0x641U /*!< \brief INIC FktID for SPIPortCreate */
+#define INIC_FID_SPI_SOCKET_CREATE 0x651U /*!< \brief INIC FktID for SPISocketCreate */
+#define INIC_FID_USB_PORT_CREATE 0x661U /*!< \brief INIC FktID for USBPortCreate */
+#define INIC_FID_USB_SOCKET_CREATE 0x671U /*!< \brief INIC FktID for USBSocketCreate */
+#define INIC_FID_STREAM_PORT_CONFIG 0x680U /*!< \brief INIC FktID for StreamPortConfiguration */
+#define INIC_FID_STREAM_PORT_CREATE 0x681U /*!< \brief INIC FktID for StreamPortCreate */
+#define INIC_FID_STREAM_PORT_LOOPBACK 0x683U /*!< \brief INIC FktID for StreamPortLoopback */
+#define INIC_FID_STREAM_SOCKET_CREATE 0x691U /*!< \brief INIC FktID for StreamSocketCreate */
+#define INIC_FID_RMCK_PORT_CREATE 0x6A1U /*!< \brief INIC FktID for RMCKPortCreate */
+#define INIC_FID_I2C_PORT_CREATE 0x6C1U /*!< \brief INIC FktID for I2CPortCreate */
+#define INIC_FID_I2C_PORT_READ 0x6C3U /*!< \brief INIC FktID for I2CPortRead */
+#define INIC_FID_I2C_PORT_WRITE 0x6C4U /*!< \brief INIC FktID for I2CPortWrite */
+#define INIC_FID_PCI_PORT_CREATE 0x6E1U /*!< \brief INIC FktID for PCIPortCreate */
+#define INIC_FID_PCI_SOCKET_CREATE 0x6F1U /*!< \brief INIC FktID for PCISocketCreate */
+#define INIC_FID_GPIO_PORT_CREATE 0x701U /*!< \brief INIC FktID for GPIOPortCreate */
+#define INIC_FID_MOST_PORT_ENABLE 0x702U /*!< \brief INIC FktID for MOSTPortEnable */
+#define INIC_FID_GPIO_PORT_PIN_MODE 0x703U /*!< \brief INIC FktID for GPIOPortPinMode */
+#define INIC_FID_GPIO_PORT_PIN_STATE 0x704U /*!< \brief INIC FktID for GPIOPortPinState */
+#define INIC_FID_GPIO_PORT_TRIGGER_EVENT 0x705U /*!< \brief INIC FktID for GPIOPortTriggerEvent */
+#define INIC_FID_RESOURCE_DESTROY 0x800U /*!< \brief INIC FktID for ResourceDestroy */
+#define INIC_FID_RESOURCE_INVALID_LIST 0x801U /*!< \brief INIC FktID for ResourceInvalidList */
+#define INIC_FID_RESOURCE_MONITOR 0x802U /*!< \brief INIC FktID for ResourceMonitor */
+/*#define INIC_FID_PACKET_ATTACH_SOCKETS 0x843U*/ /*!< \brief INIC FktID for PacketAttachSockets */
+/*#define INIC_FID_PACKET_DETACH_SOCKETS 0x844U*/ /*!< \brief INIC FktID for PacketDetachSockets */
+#define INIC_FID_QOS_CREATE 0x851U /*!< \brief INIC FktID for QoSPacketCreate */
+#define INIC_FID_AVP_CREATE 0x861U /*!< \brief INIC FktID for AVPCreate */
+#define INIC_FID_SYNC_CREATE 0x871U /*!< \brief INIC FktID for SyncCreate */
+#define INIC_FID_SYNC_MUTE 0x873U /*!< \brief INIC FktID for SyncMute */
+#define INIC_FID_SYNC_DEMUTE 0x874U /*!< \brief INIC FktID for SyncDemute */
+#define INIC_FID_DFIPHASE_CREATE 0x881U /*!< \brief INIC FktID for DFIPhaseCreate */
+#define INIC_FID_IPC_CREATE 0x891U /*!< \brief INIC FktID for IPCPacketCreate */
+#define INIC_FID_COMBINER_CREATE 0x901U /*!< \brief INIC FktID for CombinerCreate */
+#define INIC_FID_SPLITTER_CREATE 0x911U /*!< \brief INIC FktID for SplitterCreate */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Indexes of SingleSubjects */
+/*------------------------------------------------------------------------------------------------*/
+#define INIC_SSUB_CREATE_CLASS 0U
+#define INIC_SSUB_DEVICE_VERSION 1U
+#define INIC_SSUB_DEVICE_ATTACH 2U
+#define INIC_SSUB_NW_STARTUP 3U
+#define INIC_SSUB_NW_SHUTDOWN 4U
+#define INIC_SSUB_NW_TRIGGER_RBD 5U
+#define INIC_SSUB_NW_ATTACH 6U
+#define INIC_SSUB_NW_DETACH 7U
+#define INIC_SSUB_NW_CHANGE_NODE_ADDR 8U
+#define INIC_SSUB_SYNC_MUTE 9U
+#define INIC_SSUB_SYNC_DEMUTE 10U
+#define INIC_SSUB_NW_RBD_RESULT 11U
+#define INIC_SSUB_NW_FRAME_COUNTER 12U
+#define INIC_SSUB_RESOURCE_DESTROY 13U
+#define INIC_SSUB_RESOURCE_INVAL_LIST 14U
+#define INIC_SSUB_ATTACH_SOCKETS 15U
+#define INIC_SSUB_DETACH_SOCKETS 16U
+#define INIC_SSUB_STREAM_PORT_CONFIG 17U
+#define INIC_SSUB_MOST_PORT_ENABLE 18U
+#define INIC_SSUB_MOST_PORT_EN_FULL_STR 19U
+#define INIC_SSUB_DEVICE_SYNC 20U
+#define INIC_SSUB_NOTIFICATION 21U
+#define INIC_SSUB_NW_CONFIG 22U
+#define INIC_SSUB_GPIO_PIN_MODE 23U
+#define INIC_SSUB_GPIO_PIN_STATE 24U
+#define INIC_SSUB_I2C_PORT_WR 25U
+#define INIC_SSUB_NW_SYS_DIAGNOSIS 26U
+#define INIC_SSUB_NW_SYS_DIAGEND 27U
+#define INIC_SSUB_NW_FORCE_NA 28U
+#define INIC_SSUB_BC_DIAGNOSIS 29U
+#define INIC_SSUB_BC_DIAG_END 30U
+
+#define INIC_NUM_SSUB 31U /* Total number of SingleSubjects */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Indexes of Subjects */
+/*------------------------------------------------------------------------------------------------*/
+#define INIC_SUB_TX_MSG_OBJ_AVAIL 0U
+#define INIC_SUB_NW_STATUS 1U
+#define INIC_SUB_NW_CONFIG 2U
+#define INIC_SUB_MOST_PORT_STATUS 3U
+#define INIC_SUB_RES_MONITOR 4U
+#define INIC_SUB_GPIO_TRIGGER_EVENT 5U
+#define INIC_SUB_DEVICE_STATUS 6U
+
+#define INIC_NUM_SUB 7U /* Total number of Subjects */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Initialization structure of the INIC module. */
+typedef struct Inic_InitData_
+{
+ CTransceiver *xcvr_ptr; /*!< \brief Reference to a Transceiver instance */
+ CBase *base_ptr; /*!< \brief Reference to UCS base instance */
+ uint16_t tgt_addr; /*!< \brief Address of the target device */
+
+} Inic_InitData_t;
+
+/*! \brief Structure used for returning method results/errors
+ *
+ * Either the data_info or the error part of the structure contain the information.
+ * In case an error happened, data_info will be NULL except for error transmission
+ * where the type of transmission error (BF, CRC, ID, WT, etc.) is registered.
+ * If no error happened, error.code is 0 and error.info is NULL.
+*/
+typedef struct Inic_StdResult_
+{
+ Ucs_StdResult_t result; /*!< \brief Result code and info byte stream */
+ void *data_info; /*!< \brief Reference to result values */
+
+} Inic_StdResult_t;
+
+/*! \brief Structure used for ResourceHandleList */
+typedef struct Inic_ResHandleList_
+{
+ uint16_t *res_handles; /*!< \brief pointer to array containing resource handles */
+ uint8_t num_handles; /*!< \brief number of resource handles */
+
+} Inic_ResHandleList_t;
+
+/*! \brief Structure used for FktIDList */
+typedef struct Inic_FktIdList_
+{
+ uint16_t *fktids_ptr; /*!< \brief pointer to array containing resource handles */
+ uint8_t num_fktids; /*!< \brief number of FktIDs in the list */
+
+} Inic_FktIdList_t;
+
+/*! \brief Structure DeviceStatus */
+typedef struct Inic_DeviceStatus_
+{
+ /*! \brief State of the application interface (ICM/RCM channel synced & DeviceAttach) */
+ Inic_AttachState_t config_iface_state;
+ /*! \brief State of the configuration interface (MCM channel synced) */
+ Inic_AttachState_t app_iface_state;
+ /*! \brief State of power management */
+ Ucs_Inic_PowerState_t power_state;
+ /*! \brief Shows the last reset reason of the INIC. */
+ Ucs_Inic_LastResetReason_t last_reset_reason;
+ /*! \brief Status/Result of the Built-in Self-Test (BIST) */
+ Inic_Bist_t bist;
+
+} Inic_DeviceStatus_t;
+
+/*! \brief Structure MOSTNetworkStatus */
+typedef struct Inic_NetworkStatus_
+{
+ /*! \brief Indicates if the MOST network is available and ready for control/packet
+ * data transmission
+ */
+ Ucs_Network_Availability_t availability;
+ /*! \brief Indicates the sub state to parameter Availability */
+ Ucs_Network_AvailInfo_t avail_info;
+ /*! \brief Indicates the transition cause of the MOST network going from Available to
+ * NotAvailable or vice versa
+ */
+ Ucs_Network_AvailTransCause_t avail_trans_cause;
+ /*! \brief Contains events relating to the functionality for the MOST Network Interface */
+ uint16_t events;
+ /*! \brief Current size of packet bandwidth */
+ uint16_t packet_bw;
+ /*! \brief Node address of the device */
+ uint16_t node_address;
+ /*! \brief Node position of the device */
+ uint8_t node_position;
+ /*! \brief Node position of last device in the ring */
+ uint8_t max_position;
+
+} Inic_NetworkStatus_t;
+
+/*! \brief Structure MOSTNetworkConfiguration */
+typedef struct Inic_NetworkConfig_
+{
+ uint16_t node_address; /*!< \brief NodeAddress */
+ uint16_t group_address; /*!< \brief GroupAddress */
+ uint8_t llrbc; /*!< \brief Control low-level retry block count */
+
+} Inic_NetworkConfig_t;
+
+/*! \brief This structure provides information on the Physical layer test result */
+typedef struct Inic_PhyTestResult_
+{
+ uint16_t most_port_handle; /*!< \brief MOST Port Handle */
+ bool lock_status; /*!< \brief Lock status */
+ uint16_t err_count; /*!< \brief Number of Coding Errors */
+
+} Inic_PhyTestResult_t;
+
+/*! \brief This structure provides information on the Ring Break Diagnosis */
+typedef struct Inic_RbdResult_
+{
+ Ucs_Diag_RbdResult_t result; /*!< \brief RBD result */
+ uint8_t position; /*!< \brief RBD position */
+ uint8_t status; /*!< \brief RBD Status */
+ uint16_t diag_id; /*!< \brief RBDDiagID */
+} Inic_RbdResult_t;
+
+/*! \brief This structure provides Mode information of a GPIO pin */
+typedef struct Inic_GpioPortPinModeStatus_
+{
+ uint16_t gpio_handle; /*!< \brief Port resource handle. */
+ Ucs_Gpio_PinConfiguration_t *cfg_list; /*!< \brief GPIO pin that is to be configured */
+ uint8_t len; /*!< \brief The size of the list */
+
+} Inic_GpioPortPinModeStatus_t;
+
+/*! \brief This structure provides State information of a GPIO pin */
+typedef struct Inic_GpioPortPinStateStatus_
+{
+ uint16_t gpio_handle; /*!< \brief Port resource handle. */
+ uint16_t current_state; /*!< \brief the current state of the GPIO pin */
+ uint16_t sticky_state; /*!< \brief sticky state of all GPIO pins configured as sticky inputs */
+
+} Inic_GpioPortPinStateStatus_t;
+
+/*! \brief This structure provides the status of the GPIO TriggerEvent Reports */
+typedef struct Inic_GpioReportTimeStatus_
+{
+ bool first_report; /*!< \brief \c True if the GPIO trigger events are reported for the first time */
+
+} Inic_GpioReportTimeStatus_t;
+
+/*! \brief This structure provides TriggerEvents information on GPIO port */
+typedef struct Inic_GpioTriggerEventStatus_
+{
+ uint16_t gpio_handle; /*!< \brief Port resource handle. */
+ uint16_t rising_edges; /*!< \brief GPIO pins on which a rising-edge trigger condition was detected by rising edge or dual edge detection logic */
+ uint16_t falling_edges; /*!< \brief GPIO pins on which a falling-edge trigger condition was detected by falling edge or dual edge detection logic */
+ uint16_t levels; /*!< \brief GPIO pins on which a logic level condition was detected by level detection logic. */
+ bool is_first_report; /*!< \brief State of the report. */
+
+} Inic_GpioTriggerEventStatus_t;
+
+/*! \brief This structure provides result information of the I2cPortRead */
+typedef struct Inic_I2cReadResStatus_
+{
+ uint16_t port_handle; /*!< \brief Port resource handle. */
+ uint8_t slave_address; /*!< \brief The 7-bit I2C slave address of the peripheral read */
+ uint8_t data_len; /*!< \brief Size of the data_ptr */
+ uint8_t * data_ptr; /*!< \brief Reference to the data. */
+
+} Inic_I2cReadResStatus_t;
+
+/*! \brief This structure provides status information on the I2cPortWrite */
+typedef struct Inic_I2cWriteResStatus_
+{
+ uint16_t port_handle; /*!< \brief Port resource handle. */
+ uint8_t slave_address; /*!< \brief The 7-bit I2C slave address of the target peripheral */
+ uint8_t data_len; /*!< \brief Number of bytes wrote */
+
+} Inic_I2cWriteResStatus_t;
+
+/*! \brief This structure provides information on the notification results */
+typedef struct Inic_NotificationResult_
+{
+ uint16_t func_id; /*!< \brief function id */
+ uint16_t device_id; /*!< \brief address of the sending device */
+
+} Inic_NotificationResult_t;
+
+/*! \brief This structure contains the results of the frame counter */
+typedef struct Inic_FrameCounterStatus_
+{
+ uint32_t reference; /*!< \brief reference value */
+ uint32_t frame_counter; /*!< \brief MOST Network frame counter */
+ uint8_t lock; /*!< \brief Indicates if the TimingSlave device is locked
+ to the MOST network. For a TimingMaster
+ device this value is always True. */
+
+}Inic_FrameCounterStatus_t;
+
+/*! \brief Structure holds parameters for API locking */
+typedef struct Inic_ApiLock_
+{
+ /*! \brief API locking instance for INIC functions */
+ CApiLocking api;
+ /*! \brief Observer used for locking timeouts for INIC functions */
+ CSingleObserver observer;
+ /*! \brief API locking instance for resource methods */
+ CApiLocking res_api;
+ /*! \brief Observer used for locking timeouts for resource methods */
+ CSingleObserver res_observer;
+ /*! \brief Used to realize a longer API timeout */
+ uint8_t rbd_trigger_timeout_counter;
+
+} Inic_ApiLock_t;
+
+/*! \brief Structure of MOSTPortStatus data */
+typedef struct Inic_MostPortStatus_
+{
+ Ucs_Most_PortAvail_t availability;
+ Ucs_Most_PortAvailInfo_t avail_info;
+ uint16_t most_port_handle;
+ uint16_t freestreaming_bw;
+ bool fullstreaming_enabled;
+
+} Inic_MostPortStatus_t;
+
+/*! \brief Structure of class CInic. */
+typedef struct CInic_
+{
+ Inic_DeviceStatus_t device_status; /*!< \brief Structure DeviceStatus */
+ Inic_GpioReportTimeStatus_t gpio_rt_status; /*!< \brief Status of the GPIO TriggerEvent Report */
+ Ucs_Inic_Version_t device_version; /*!< \brief Structure DeviceVersion*/
+ Inic_NetworkStatus_t network_status; /*!< \brief Structure MOSTNetworkStatus */
+ Inic_NetworkConfig_t network_config; /*!< \brief Structure MOSTNetworkConfiguration */
+ Inic_MostPortStatus_t most_port_status; /*!< \brief Structure MOSTPortStatus */
+ CSubject subs[INIC_NUM_SUB]; /*!< \brief contains all subjects */
+ CSingleSubject ssubs[INIC_NUM_SSUB]; /*!< \brief contains all single-subjects */
+ Inic_ApiLock_t lock; /*!< \brief Parameters for API locking */
+ bool startup_locked; /*!< \brief Locking of NetworkStartup without timeout */
+ Dec_FktOpIcm_t const *fkt_op_list_ptr; /*!< \brief pointer to the FktID/OPType list */
+ CBase *base_ptr; /*!< \brief Reference to UCS base instance */
+ CTransceiver *xcvr_ptr; /*!< \brief Reference to a Transceiver instance */
+ CMaskedObserver internal_error_obs; /*!< \brief Error observer to handle internal
+ errors and events */
+ uint16_t target_address; /*!< \brief Address of the target device */
+
+} CInic;
+
+/*! \brief Structure of MOSTSocketCreate result */
+typedef struct Inic_MostSocketCreate_Result_
+{
+ uint16_t most_socket_handle; /*!< \brief Socket resource handle of the created socket */
+ uint16_t conn_label; /*!< \brief MOST network connection label */
+
+} Inic_MostSocketCreate_Result_t;
+
+/*! \brief Structure of StreamPortConfiguration status */
+typedef struct Inic_StreamPortConfigStatus_
+{
+ uint8_t index; /*!< \brief Streaming Port instance */
+ Ucs_Stream_PortOpMode_t op_mode; /*!< \brief Streaming Port Operation mode */
+ Ucs_Stream_PortOption_t port_option; /*!< \brief Streaming Port Options */
+ Ucs_Stream_PortClockMode_t clock_mode; /*!< \brief Stream Port Clock Mode */
+ Ucs_Stream_PortClockDataDelay_t clock_data_delay; /*!< \brief Stream Port Clock Data Delay */
+
+} Inic_StreamPortConfigStatus_t;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Prototypes */
+/*------------------------------------------------------------------------------------------------*/
+extern void Inic_Ctor(CInic *self, Inic_InitData_t *init_ptr);
+extern void Inic_OnIcmRx(void *self, Msg_MostTel_t *tel_ptr);
+extern void Inic_OnRcmRxFilter(void *self, Msg_MostTel_t *tel_ptr);
+extern void Inic_InitResourceManagement(CInic *self);
+extern void Inic_AddObsrvResMonitor(CInic *self, CObserver *obs_ptr);
+extern void Inic_DelObsrvResMonitor(CInic *self, CObserver *obs_ptr);
+extern void Inic_AddObsrvMostPortStatus(CInic *self, CObserver *obs_ptr);
+extern void Inic_DelObsrvMostPortStatus(CInic *self, CObserver *obs_ptr);
+extern void Inic_AddObsrvGpioTriggerEvent(CInic *self, CObserver *obs_ptr);
+extern void Inic_DelObsrvGpioTriggerEvent(CInic *self, CObserver *obs_ptr);
+
+/* internal API functions */
+extern Ucs_Return_t Inic_DeviceVersion_Get(CInic *self,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_DeviceAttach(CInic *self,
+ CSingleObserver *obs_ptr);
+Ucs_Return_t Inic_DeviceSync (CInic *self,
+ CSingleObserver *obs_ptr);
+Ucs_Return_t Inic_DeviceUnsync (CInic *self,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_NwAttach(CInic *self,
+ uint16_t pmp_channel_handle,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_SyncMute(CInic *self,
+ uint16_t sync_handle,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_SyncDemute(CInic *self,
+ uint16_t sync_handle,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_DfiPhaseCreate(CInic *self,
+ uint16_t resource_handle_in,
+ uint16_t resource_handle_out,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_CombinerCreate(CInic *self,
+ uint16_t port_socket_handle,
+ uint16_t most_port_handle,
+ uint16_t bytes_per_frame,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_SplitterCreate(CInic *self,
+ uint16_t socket_handle_in,
+ uint16_t most_port_handle,
+ uint16_t bytes_per_frame,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_NwRbdResult_Get(CInic *self,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_NwPhyTestResult_Get(CInic *self,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_NwStartup(CInic *self,
+ uint16_t auto_forced_na,
+ uint16_t packet_bandwidth,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_NwShutdown(CInic *self,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_NwTriggerRbd(CInic *self,
+ Ucs_Diag_RbdType_t type,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_NwForceNotAvailable(CInic *self,
+ bool force,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_NwConfig_SetGet(CInic *self,
+ uint16_t mask,
+ Inic_NetworkConfig_t config, CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_NwConfig_Get(CInic *self,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_NwFrameCounter_Get(CInic *self, uint32_t reference,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_ResourceDestroy(CInic *self,
+ Inic_ResHandleList_t res_handle_list,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_ResourceInvalidList_Get(CInic *self,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_ResourceMonitor_Set(CInic *self,
+ Ucs_Resource_MonitorCtrl_t control);
+extern Ucs_Return_t Inic_Notification_Set(CInic *self,
+ Ucs_Inic_NotificationCtrl_t control,
+ uint16_t device_id,
+ Inic_FktIdList_t fktid_list);
+extern Ucs_Return_t Inic_Notification_Get(CInic *self,
+ uint16_t fktid,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_SyncCreate(CInic *self,
+ uint16_t resource_handle_in,
+ uint16_t resource_handle_out,
+ bool default_mute,
+ Ucs_Sync_MuteMode_t mute_mode,
+ uint16_t offset,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_QoSCreate(CInic *self,
+ uint16_t socket_in_handle,
+ uint16_t socket_out_handle,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_IpcCreate(CInic *self,
+ uint16_t socket_in_handle,
+ uint16_t socket_out_handle,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_AvpCreate(CInic *self,
+ uint16_t socket_in_handle,
+ uint16_t socket_out_handle,
+ Ucs_Avp_IsocPacketSize_t isoc_packet_size,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_MostSocketCreate(CInic *self,
+ uint16_t most_port_handle,
+ Ucs_SocketDirection_t direction,
+ Ucs_Most_SocketDataType_t data_type,
+ uint16_t bandwidth,
+ uint16_t connection_label,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_MlbPortCreate(CInic *self,
+ uint8_t index,
+ Ucs_Mlb_ClockConfig_t clock_config,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_MlbSocketCreate(CInic *self,
+ uint16_t mlb_port_handle,
+ Ucs_SocketDirection_t direction,
+ Ucs_Mlb_SocketDataType_t data_type,
+ uint16_t bandwidth,
+ uint16_t channel_address,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_UsbPortCreate(CInic *self,
+ uint8_t index,
+ Ucs_Usb_PhysicalLayer_t physical_layer,
+ uint16_t devices_interfaces,
+ uint8_t streaming_if_ep_out_count,
+ uint8_t streaming_if_ep_in_count,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_UsbSocketCreate(CInic *self,
+ uint16_t usb_port_handle,
+ Ucs_SocketDirection_t direction,
+ Ucs_Usb_SocketDataType_t data_type,
+ uint8_t end_point_addr,
+ uint16_t frames_per_transfer,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_StreamPortConfig_SetGet(CInic *self,
+ uint8_t index,
+ Ucs_Stream_PortOpMode_t op_mode,
+ Ucs_Stream_PortOption_t port_option,
+ Ucs_Stream_PortClockMode_t clock_mode,
+ Ucs_Stream_PortClockDataDelay_t clock_data_delay,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_StreamPortConfig_Get(CInic *self,
+ uint8_t index,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_StreamPortCreate(CInic *self,
+ uint8_t index,
+ Ucs_Stream_PortClockConfig_t clock_config,
+ Ucs_Stream_PortDataAlign_t data_alignment,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_StreamSocketCreate(CInic *self,
+ uint16_t stream_port_handle,
+ Ucs_SocketDirection_t direction,
+ Ucs_Stream_SocketDataType_t data_type,
+ uint16_t bandwidth,
+ Ucs_Stream_PortPinId_t stream_pin_id,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_RmckPortCreate(CInic *self,
+ uint8_t index,
+ Ucs_Rmck_PortClockSource_t clock_source,
+ uint16_t divisor,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_I2cPortCreate(CInic *self,
+ uint8_t index,
+ uint8_t address,
+ uint8_t mode,
+ Ucs_I2c_Speed_t speed,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_I2cPortRead(CInic *self,
+ uint16_t port_handle,
+ uint8_t slave_address,
+ uint8_t data_len,
+ uint16_t timeout,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_I2cPortWrite(CInic *self,
+ uint16_t port_handle,
+ Ucs_I2c_TrMode_t mode,
+ uint8_t block_count,
+ uint8_t slave_address,
+ uint16_t timeout,
+ uint8_t data_len,
+ uint8_t data_list[],
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_PciPortCreate(CInic *self,
+ uint8_t index,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_PciSocketCreate(CInic *self,
+ uint16_t pci_port_handle,
+ Ucs_SocketDirection_t direction,
+ Ucs_Pci_SocketDataType_t data_type,
+ uint8_t dma_channel,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_GpioPortCreate(CInic *self,
+ uint8_t gpio_port_index,
+ uint16_t debounce_time,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_MostPortEnable(CInic *self,
+ uint16_t most_port_handle,
+ bool enabled,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_GpioPortPinMode_Get(CInic *self, uint16_t gpio_handle,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_GpioPortPinMode_SetGet(CInic *self,
+ uint16_t gpio_handle,
+ uint8_t pin,
+ Ucs_Gpio_PinMode_t mode,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_GpioPortPinState_Get(CInic *self, uint16_t gpio_handle,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_GpioPortPinState_SetGet(CInic *self,
+ uint16_t gpio_handle,
+ uint16_t mask,
+ uint16_t data,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_MostPortEnFullStr(CInic *self,
+ uint16_t most_port_handle,
+ bool enabled,
+ CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_BCDiagnosis(CInic *self, CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_BCDiagEnd(CInic *self, CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_NwSysDiagnosis(CInic *self, CSingleObserver *obs_ptr);
+extern Ucs_Return_t Inic_NwSysDiagEnd(CInic *self, CSingleObserver *obs_ptr);
+
+extern void Inic_AddObsrvOnTxMsgObjAvail(CInic *self, CObserver *obs_ptr);
+extern void Inic_DelObsrvOnTxMsgObjAvail(CInic *self, CObserver *obs_ptr);
+extern void Inic_AddObsrvNwStatus(CInic *self, CObserver *obs_ptr);
+extern void Inic_DelObsrvNwStatus(CInic *self, CObserver *obs_ptr);
+extern void Inic_AddObsvrNwConfig(CInic *self, CObserver *obs_ptr);
+extern void Inic_DelObsvrNwConfig(CInic *self, CObserver *obs_ptr);
+extern void Inic_AddObsvrDeviceStatus(CInic *self, CObserver *obs_ptr);
+extern void Inic_DelObsvrDeviceStatus(CInic *self, CObserver *obs_ptr);
+
+/* handler functions */
+extern void Inic_DummyHandler(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_Notification_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_Notification_Status(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_DeviceStatus_Status(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_DeviceVersion_Status(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_DeviceVersion_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_NwStatus_Status(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_NwConfig_Status(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_NwConfig_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_NwFrameCounter_Status(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_NwFrameCounter_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_NwStartup_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_NwStartup_Result(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_NwShutdown_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_NwShutdown_Result(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_NwTriggerRbd_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_NwTriggerRbd_Result(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_NwForceNotAvailable_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_NwForceNotAvailable_Status(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_DeviceAttach_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_DeviceAttach_Result(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_DeviceSync_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_DeviceSync_Result(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_NwAttach_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_NwAttach_Result(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_NwSysDiagnosis_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_NwSysDiagnosis_Result(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_NwSysDiagEnd_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_NwSysDiagEnd_Result(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_BCDiagnosis_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_BCDiagnosis_Result(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_BCDiagEnd_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_BCDiagEnd_Result(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_NwChangeNodeAddress_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_NwChangeNodeAddress_Result(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_SyncMute_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_SyncMute_Result(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_SyncDemute_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_SyncDemute_Result(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_DfiPhaseCreate_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_DfiPhaseCreate_Result(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_NwRbdResult_Status(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_NwRbdResult_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_ResourceDestroy_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_ResourceDestroy_Result(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_ResourceInvalidList_Status(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_ResourceInvalidList_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_ResourceMonitor_Status(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_ResourceMonitor_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_AttachSockets_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_AttachSockets_Result(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_DetachSockets_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_DetachSockets_Result(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_SyncCreate_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_SyncCreate_Result(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_QoSCreate_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_QoSCreate_Result(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_IpcCreate_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_IpcCreate_Result(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_AvpCreate_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_AvpCreate_Result(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_MostPortStatus_Status(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_MostPortStatus_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_MostSocketCreate_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_MostSocketCreate_Result(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_MlbPortCreate_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_MlbPortCreate_Result(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_MlbSocketCreate_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_MlbSocketCreate_Result(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_UsbPortCreate_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_UsbPortCreate_Result(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_UsbSocketCreate_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_UsbSocketCreate_Result(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_StreamPortConfig_Status(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_StreamPortConfig_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_StreamPortCreate_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_StreamPortCreate_Result(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_StreamSocketCreate_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_StreamSocketCreate_Result(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_RmckPortCreate_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_RmckPortCreate_Result(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_I2cPortCreate_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_I2cPortCreate_Result(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_I2cPortRead_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_I2cPortRead_Result(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_I2cPortWrite_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_I2cPortWrite_Result(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_PciPortCreate_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_PciPortCreate_Result(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_PciSocketCreate_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_PciSocketCreate_Result(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_GpioPortCreate_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_GpioPortCreate_Result(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_MostPortEnable_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_MostPortEnable_Result(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_GpioPortPinMode_Status(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_GpioPortPinMode_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_GpioPortPinState_Status(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_GpioPortPinState_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_GpioPortTrigger_Status(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_GpioPortTrigger_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_MostPortEnFullStr_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_MostPortEnFullStr_Result(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_CombinerCreate_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_CombinerCreate_Result(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_SplitterCreate_Error(void *self, Msg_MostTel_t *msg_ptr);
+extern void Inic_SplitterCreate_Result(void *self, Msg_MostTel_t *msg_ptr);
+
+/* Helper functions */
+extern Ucs_StdResult_t Inic_TranslateError(CInic *self, uint8_t error_data[], uint8_t error_size);
+
+/* Synchronous Getters */
+extern uint16_t Inic_GetGroupAddress(CInic *self);
+extern uint16_t Inic_GetPacketDataBandwidth(CInic *self);
+extern uint16_t Inic_GetNodeAddress(CInic *self);
+extern uint8_t Inic_GetNodePosition(CInic *self);
+extern uint8_t Inic_GetNumberOfNodes(CInic *self);
+extern uint8_t Inic_GetInicLlrbc(CInic *self);
+extern Ucs_Inic_Version_t Inic_GetDeviceVersion(CInic *self);
+extern Ucs_Inic_LastResetReason_t Inic_GetLastResetReason(CInic *self);
+extern Ucs_Inic_PowerState_t Inic_GetDevicePowerState(CInic *self);
+extern Ucs_Network_Availability_t Inic_GetAvailability(CInic *self);
+extern uint16_t Inic_GetTargetAddress (CInic *self);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_INIC_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_inic_pb.h b/ucs2-lib/inc/ucs_inic_pb.h
new file mode 100644
index 0000000..cb8add9
--- /dev/null
+++ b/ucs2-lib/inc/ucs_inic_pb.h
@@ -0,0 +1,932 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Public header file of class CInic.
+ */
+
+#ifndef UCS_INIC_PB_H
+#define UCS_INIC_PB_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_rules.h"
+#include "ucs_ret_pb.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Definitions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Bitmask used for network status event "Network Change Event".
+ * \ingroup G_UCS_NET_TYPES
+ */
+#define UCS_NETWORK_EVENT_NCE 0x0001U
+
+/*! \brief Signature version limit of EXC commands. Denotes the maximum signature version
+ * number the INIC can handle.
+ * \ingroup G_UCS_NET_TYPES
+ */
+#define UCS_EXC_SIGNATURE_VERSION_LIMIT 1U
+
+
+/*! \brief No evaluable segment information available for BackChannel Diagnosis.
+ * \ingroup G_UCS_BC_DIAG_TYPES
+ */
+#define UCS_BCD_DUMMY_SEGMENT 0xFFU
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Enumerators */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Data Type which describes the last reset reason of the device.
+ * \ingroup G_UCS_INIC_TYPES
+ */
+typedef enum Ucs_Inic_LastResetReason_
+{
+ /*! \brief Reset due to Power on reset or reset pin (!RST) is held low. */
+ UCS_INIC_RST_STARTUP = 0x00U,
+ /*! \brief Reset due to hardware watchdog that had snapped */
+ UCS_INIC_RST_HW_WATCHDOG = 0x01U,
+ /*! \brief Reset due to stack overflow */
+ UCS_INIC_RST_STACK_OVERFLOW = 0x02U
+
+} Ucs_Inic_LastResetReason_t;
+
+/*! \brief The current power state of the INICs power management interface (PS0/PS1).
+ * \ingroup G_UCS_INIC_TYPES
+ */
+typedef enum Ucs_Inic_PowerState_
+{
+ /*! \brief Power state "UNormal" */
+ UCS_INIC_PWS_U_NORMAL = 0x00U,
+ /*! \brief Power state "ULow" */
+ UCS_INIC_PWS_U_LOW = 0x01U,
+ /*! \brief Power State "STP" */
+ UCS_INIC_PWS_STP = 0x02U,
+ /*! \brief Power State "UCritical" */
+ UCS_INIC_PWS_U_CRITICAL = 0x03U,
+ /*! \brief No power state. Power management monitoring is disabled in INIC configuration string. */
+ UCS_INIC_PWS_NO_MONITORING = 0xFFU
+
+} Ucs_Inic_PowerState_t;
+
+
+/*! \brief Defines the flags set in \c change_mask used by NetworkStatus.Status
+ * \ingroup G_UCS_NET_TYPES
+ */
+
+typedef enum Ucs_Network_StatusMask_
+{
+ UCS_NW_M_EVENTS = 0x01U, /*!< \brief Flag for notification of event changes */
+ UCS_NW_M_AVAIL = 0x02U, /*!< \brief Flag for notification of availability changes */
+ UCS_NW_M_AVAIL_INFO = 0x04U, /*!< \brief Flag for notification of availability info changes */
+ UCS_NW_M_AVAIL_TR_CAUSE = 0x08U, /*!< \brief Flag for notification of availability transition cause changes */
+ UCS_NW_M_NODE_ADDR = 0x10U, /*!< \brief Flag for notification of node address changes */
+ UCS_NW_M_NODE_POS = 0x20U, /*!< \brief Flag for notification of node position changes */
+ UCS_NW_M_MAX_POS = 0x40U, /*!< \brief Flag for notification of MPR changes */
+ UCS_NW_M_PACKET_BW = 0x80U /*!< \brief Flag for notification of packet bandwidth changes */
+
+} Ucs_Network_StatusMask_t;
+
+
+/*! \brief MOST Network Availability
+ * \ingroup G_UCS_NET_TYPES
+ */
+typedef enum Ucs_Network_Availability_
+{
+ UCS_NW_NOT_AVAILABLE = 0x00U, /*!< \brief MOST network is not available */
+ UCS_NW_AVAILABLE = 0x01U /*!< \brief MOST network is available */
+
+} Ucs_Network_Availability_t;
+
+/*! \brief MOST Network Availability Information.
+ * \details AvailabilityInfo is a sub state of Availability (\ref Ucs_Network_Availability_t)
+ * Possible pairs of Availability and Availability Information
+ * Availability | Availability Information
+ * ------------------------| ------------------------------------
+ * UCS_NW_NOT_AVAILABLE | UCS_NW_AVAIL_INFO_REGULAR
+ * UCS_NW_NOT_AVAILABLE | UCS_NW_AVAIL_INFO_DIAGNOSIS
+ * UCS_NW_NOT_AVAILABLE | UCS_NW_AVAIL_INFO_FORCED_NA
+ * UCS_NW_AVAILABLE | UCS_NW_AVAIL_INFO_UNSTABLE
+ * UCS_NW_AVAILABLE | UCS_NW_AVAIL_INFO_STABLE
+ * \ingroup G_UCS_NET_TYPES
+ */
+typedef enum Ucs_Network_AvailInfo_
+{
+ /*! \brief The network is not available because it is in NetInterface Off or Init state.
+ * It is pending to get available again.
+ */
+ UCS_NW_AVAIL_INFO_REGULAR = 0x00U,
+ /*! \brief The network is not available because it performs a ring break diagnosis or
+ * physical layer test.
+ */
+ UCS_NW_AVAIL_INFO_DIAGNOSIS = 0x02U,
+ /*! \brief The INIC forces the network to stay in "not available" state. The
+ * application may enter or leave this state by calling
+ * Ucs_Network_ForceNotAvailable(). Also see Ucs_Network_Startup().
+ */
+ UCS_NW_AVAIL_INFO_FORCED_NA = 0x06U,
+ /*! \brief Network is available. Unlocks have been detected. */
+ UCS_NW_AVAIL_INFO_UNSTABLE = 0x10U,
+ /*! \brief Network is available. Network is in Stable Lock. */
+ UCS_NW_AVAIL_INFO_STABLE = 0x11U
+
+} Ucs_Network_AvailInfo_t;
+
+/*! \brief MOST Network Availability Transition Cause
+ * \ingroup G_UCS_NET_TYPES
+ */
+typedef enum Ucs_Network_AvailTransCause_
+{
+ /*! \brief Start-up is initiated by chip e.g., INIC.MOSTNetworkStartup() */
+ UCS_NW_AV_TR_CA_CMD = 0x00U,
+ /*! \brief Chip is woken up by network activity. */
+ UCS_NW_AV_TR_CA_RX_ACTIVITY = 0x01U,
+ /*! \brief Network is typically shutdown by an INIC.MOSTNetworkShutdown() command initiated
+ * locally or by a node positioned upstream (in the latter case, the shutdown flag
+ * indicates a Normal Shutdown).
+ */
+ UCS_NW_AV_TR_CA_NORMAL = 0x10U,
+ /*! \brief Network is shutdown due to an error. In this case the shutdown reason was a sudden
+ * signal off. No shutdown flag is present.
+ */
+ UCS_NW_AV_TR_CA_ERR_SSO = 0x11U,
+ /*! \brief Network is shutdown due to an error. In this case the shutdown reason was a critical
+ * unlock. No shutdown flag is present.
+ */
+ UCS_NW_AV_TR_CA_ERR_CRIT_UNLOCK = 0x12U,
+ /*! \brief Network is shutdown due to a chip or system error. Possible reasons are:
+ * - INIC enters ForcedNA state
+ * - The AutoShutdownDownDelay time expires after the EHC has detached.
+ */
+ UCS_NW_AV_TR_CA_ERR_SYSTEM = 0x13U,
+ /*! \brief No transition */
+ UCS_NW_AV_TR_CA_NO_TRANSITION = 0xFFU
+
+} Ucs_Network_AvailTransCause_t;
+
+/*! \brief Result values for the Ring Break Diagnosis
+ * \ingroup G_UCS_DIAG_TYPES
+ */
+typedef enum Ucs_Diag_RbdResult_
+{
+ UCS_DIAG_RBD_NO_ERROR = 0x00U, /*!< \brief No error */
+ UCS_DIAG_RBD_POS_DETECTED = 0x01U, /*!< \brief Position detected */
+ UCS_DIAG_RBD_DIAG_FAILED = 0x02U, /*!< \brief Diagnosis failed */
+ UCS_DIAG_RBD_POS_0_WEAK_SIG = 0x03U /*!< \brief PosDetected = 0 and un-lockable signal on
+ * Rx was detected
+ */
+} Ucs_Diag_RbdResult_t;
+
+/*! \brief Data packet size of the isochronous channel
+ * \ingroup G_UCS_XRM_ENUM
+ */
+typedef enum Ucs_Avp_IsocPacketSize_
+{
+ UCS_ISOC_PCKT_SIZE_188 = 188U, /*!< \brief Standard MPEG2 Transport Stream packet size, no
+ * encryption
+ */
+ UCS_ISOC_PCKT_SIZE_196 = 196U, /*!< \brief DTCP Supplement B, DTCP over MOST */
+ UCS_ISOC_PCKT_SIZE_206 = 206U /*!< \brief DTCP Supplement E, DTCP over IP */
+
+} Ucs_Avp_IsocPacketSize_t;
+
+/*! \brief Mute Mode
+ * \ingroup G_UCS_XRM_ENUM
+ */
+typedef enum Ucs_Sync_MuteMode_
+{
+ UCS_SYNC_MUTE_MODE_NO_MUTING = 0x00U, /*!< \brief No mute monitoring */
+ UCS_SYNC_MUTE_MODE_MUTE_SIGNAL = 0x01U /*!< \brief Mute signal. The MUTE pin will be asserted if any registered connection may stream
+ * corrupted data.
+ */
+
+} Ucs_Sync_MuteMode_t;
+
+/*! \brief Direction of the data stream from the perspective of the INIC
+ * \ingroup G_UCS_XRM_ENUM
+ */
+typedef enum Ucs_SocketDirection_
+{
+ UCS_SOCKET_DIR_INPUT = 0U, /*!< \brief Socket transfers data into INIC */
+ UCS_SOCKET_DIR_OUTPUT = 1U /*!< \brief Socket transfers data out of INIC */
+
+} Ucs_SocketDirection_t;
+
+/*! \brief Data type of MOST Sockets
+ * \ingroup G_UCS_XRM_ENUM
+ */
+typedef enum Ucs_Most_SocketDataType_
+{
+ UCS_MOST_SCKT_SYNC_DATA = 0U, /*!< \brief Specifies the synchronous streaming data type */
+ UCS_MOST_SCKT_AV_PACKETIZED = 3U, /*!< \brief Specifies the A/V Packetized Isochronous
+ streaming data type*/
+ UCS_MOST_SCKT_QOS_IP = 4U, /*!< \brief Specifies the Quality of Service IP
+ streaming data type*/
+ UCS_MOST_SCKT_DISC_FRAME_PHASE = 5U /*!< \brief Specifies the DiscreteFrame Isochronous
+ streaming phase data type */
+} Ucs_Most_SocketDataType_t;
+
+/*! \brief Data type of MediaLB Sockets
+ * \ingroup G_UCS_XRM_ENUM
+ */
+typedef enum Ucs_Mlb_SocketDataType_
+{
+ UCS_MLB_SCKT_SYNC_DATA = 0U, /*!< \brief Specifies the synchronous streaming data type */
+ UCS_MLB_SCKT_CONTROL_DATA = 2U, /*!< \brief Specifies the control data type */
+ UCS_MLB_SCKT_AV_PACKETIZED = 3U, /*!< \brief Specifies the A/V Packetized Isochronous
+ streaming data type */
+ UCS_MLB_SCKT_QOS_IP = 4U, /*!< \brief Specifies the Quality of Service IP
+ streaming data type*/
+ UCS_MLB_SCKT_DISC_FRAME_PHASE = 5U, /*!< \brief Specifies the DiscreteFrame Isochronous
+ streaming phase data type */
+ UCS_MLB_SCKT_IPC_PACKET = 7U /*!< \brief Specifies the IPC packet data type */
+
+} Ucs_Mlb_SocketDataType_t;
+
+/*! \brief Data type of USB Sockets
+ * \ingroup G_UCS_XRM_ENUM
+ */
+typedef enum Ucs_Usb_SocketDataType_
+{
+ UCS_USB_SCKT_SYNC_DATA = 0U, /*!< \brief Specifies the synchronous streaming data type */
+ UCS_USB_SCKT_CONTROL_DATA = 2U, /*!< \brief Specifies the control data type */
+ UCS_USB_SCKT_AV_PACKETIZED = 3U, /*!< \brief Specifies the A/V Packetized Isochronous
+ streaming data type */
+ UCS_USB_SCKT_IPC_PACKET = 7U /*!< \brief Specifies the IPC packet data type */
+
+} Ucs_Usb_SocketDataType_t;
+
+/*! \brief Physical interface of the USB Port
+ * \ingroup G_UCS_XRM_ENUM
+ */
+typedef enum Ucs_Usb_PhysicalLayer_
+{
+ UCS_USB_PHY_LAYER_STANDARD = 0U, /*!< \brief Standard - USB uses the standard physical
+ * interface with analog transceivers for board
+ * communication
+ */
+ UCS_USB_PHY_LAYER_HSCI = 1U /*!< \brief HSIC - USB uses the High-Speed Inter-Chip
+ * interface without analog transceivers for board
+ * communication.
+ */
+} Ucs_Usb_PhysicalLayer_t;
+
+/*! \brief MediaLB clock speed configuration
+ * \ingroup G_UCS_XRM_ENUM
+ */
+typedef enum Ucs_Mlb_ClockConfig_
+{
+ UCS_MLB_CLK_CFG_256_FS = 0U, /*!< \brief 256 Fs */
+ UCS_MLB_CLK_CFG_512_FS = 1U, /*!< \brief 512 Fs */
+ UCS_MLB_CLK_CFG_1024_FS = 2U, /*!< \brief 1024 Fs */
+ UCS_MLB_CLK_CFG_2048_FS = 3U, /*!< \brief 2048 Fs */
+ UCS_MLB_CLK_CFG_3072_FS = 4U, /*!< \brief 3072 Fs */
+ UCS_MLB_CLK_CFG_4096_FS = 5U, /*!< \brief 4096 Fs */
+ UCS_MLB_CLK_CFG_6144_FS = 6U, /*!< \brief 6144 Fs */
+ UCS_MLB_CLK_CFG_8192_FS = 7U, /*!< \brief 8192 Fs */
+ UCS_MLB_CLK_CFG_WILDCARD = 0xFFU /*!< \brief Uses the corresponding parameter in the INIC
+ Configuration String */
+} Ucs_Mlb_ClockConfig_t;
+
+/*! \brief Source of the RMCK clock
+ * \ingroup G_UCS_XRM_ENUM
+ */
+typedef enum Ucs_Rmck_PortClockSource_
+{
+ UCS_RMCK_PORT_CLK_SRC_NW_SYSTEM = 0x01U /*!< \brief RMCK is locked to the system clock */
+
+} Ucs_Rmck_PortClockSource_t;
+
+/*! \brief Data type of PCIe Sockets
+ * \ingroup G_UCS_XRM_ENUM
+ */
+typedef enum Ucs_Pci_SocketDataType_
+{
+ UCS_PCI_SCKT_AV_PACKETIZED = 3U /*!< \brief Specifies the A/V Packetized Isochronous
+ streaming data type */
+
+} Ucs_Pci_SocketDataType_t;
+
+/*! \brief Operation mode of the Streaming Port
+ * \ingroup G_UCS_XRM_ENUM
+ */
+typedef enum Ucs_Stream_PortOpMode_
+{
+ UCS_STREAM_PORT_OP_MODE_GENERIC = 0x00U /*!< \brief If Index = PortB, data pins are linked
+ to PortA clock configuration. */
+
+} Ucs_Stream_PortOpMode_t;
+
+/*! \brief Direction of the physical pins of the indexed Streaming Port
+ * \ingroup G_UCS_XRM_ENUM
+ */
+typedef enum Ucs_Stream_PortOption_
+{
+ UCS_STREAM_PORT_OPT_IN_OUT = 0x00U, /*!< \brief Two serial interface pins are available;
+ one for direction IN and one for direction
+ OUT. */
+ UCS_STREAM_PORT_OPT_DUAL_IN = 0x01U, /*!< \brief Tow serial interface pins are available
+ for direction IN. */
+ UCS_STREAM_PORT_OPT_DUAL_OUT = 0x02U /*!< \brief Tow serial interface pins are available
+ for direction OUT. */
+
+} Ucs_Stream_PortOption_t;
+
+/*! \brief Indicates if FSY/SCK signals are configured as outputs or inputs.
+ * \ingroup G_UCS_XRM_ENUM
+ */
+typedef enum Ucs_Stream_PortClockMode_
+{
+ /*! \brief INIC drives the FSY/SCK signals as outputs, frequency locked to the network clock. */
+ UCS_STREAM_PORT_CLK_MODE_OUTPUT = 0x00U,
+ /*! \brief FSY/SCK signals are configured as inputs and are driven from outside the INIC. Use
+ * RMCK, frequency locked to the network clock, as reference for clock generation.
+ */
+ UCS_STREAM_PORT_CLK_MODE_INPUT = 0x01U,
+ /*! \brief Wildcard */
+ UCS_STREAM_PORT_CLK_MODE_WILD = 0xFFU
+
+} Ucs_Stream_PortClockMode_t;
+
+/*! \brief This setting is only applicable to data pins used for Generic Streaming including any
+ linked pins to Streaming Port B. All data pins share the same FSY / SCK signals, hence
+ this setting applies to all data pins.
+ * \ingroup G_UCS_XRM_ENUM
+ */
+typedef enum Ucs_Stream_PortClockDataDelay_
+{
+ /*! \brief Data is not delayed by a single SCK clock delay. */
+ UCS_STREAM_PORT_CLK_DLY_NONE = 0x00U,
+ /*! \brief There is a single SCK clock delay between the start of frame (falling edge of FSY)
+ * and the start of the frame data on the data pins.
+ */
+ UCS_STREAM_PORT_CLK_DLY_DELAYED = 0x01U,
+ /*! \brief Wildcard */
+ UCS_STREAM_PORT_CLK_DLY_WILD = 0xFFU
+
+} Ucs_Stream_PortClockDataDelay_t;
+
+/*! \brief Clock speed configuration of the SCK signal.
+ * \ingroup G_UCS_XRM_ENUM
+ */
+typedef enum Ucs_Stream_PortClockConfig_
+{
+ /*! \brief 8 x Fs. All data pins must be configured for sequential routing. */
+ UCS_STREAM_PORT_CLK_CFG_8FS = 0x00U,
+ /*! \brief 16 x Fs. All data pins must be configured for sequential routing. */
+ UCS_STREAM_PORT_CLK_CFG_16FS = 0x01U,
+ /*! \brief 32 x Fs. All data pins must be configured for sequential routing. */
+ UCS_STREAM_PORT_CLK_CFG_32FS = 0x02U,
+ /*! \brief 64 x Fs */
+ UCS_STREAM_PORT_CLK_CFG_64FS = 0x03U,
+ /*! \brief 128 x Fs */
+ UCS_STREAM_PORT_CLK_CFG_128FS = 0x04U,
+ /*! \brief 256 x Fs */
+ UCS_STREAM_PORT_CLK_CFG_256FS = 0x05U,
+ /*! \brief 512 x Fs */
+ UCS_STREAM_PORT_CLK_CFG_512FS = 0x06U,
+ /*! \brief Wildcard */
+ UCS_STREAM_PORT_CLK_CFG_WILD = 0xFFU
+
+} Ucs_Stream_PortClockConfig_t;
+
+/*! \brief Data types of Streaming Sockets
+ * \ingroup G_UCS_XRM_ENUM
+ */
+typedef enum Ucs_Stream_SocketDataType_
+{
+ /*! \brief Specifies the synchronous streaming data type. */
+ UCS_STREAM_PORT_SCKT_SYNC_DATA = 0x00U
+
+} Ucs_Stream_SocketDataType_t;
+
+/*! \brief ID of the serial interface pin of the addressed Streaming Port instance to which the
+ socket should be attached to.
+ * \ingroup G_UCS_XRM_ENUM
+ */
+typedef enum Ucs_Stream_PortPinId_
+{
+ UCS_STREAM_PORT_PIN_ID_SRXA0 = 0x00U, /*!< \brief PortA, pin 5. */
+ UCS_STREAM_PORT_PIN_ID_SRXA1 = 0x01U, /*!< \brief PortA, pin 6. */
+ UCS_STREAM_PORT_PIN_ID_SRXB0 = 0x10U, /*!< \brief PortB, pin 7. */
+ UCS_STREAM_PORT_PIN_ID_SRXB1 = 0x11U /*!< \brief PortB, pin 8. */
+
+} Ucs_Stream_PortPinId_t;
+
+/*! \brief Defines the alignment of the data bytes within the streaming port frame.
+ * \ingroup G_UCS_XRM_ENUM
+ */
+typedef enum Ucs_Stream_PortDataAlign_
+{
+ UCS_STREAM_PORT_ALGN_LEFT16BIT = 0x00U, /*!< \brief Left-justified, 16 bit, legacy */
+ UCS_STREAM_PORT_ALGN_LEFT24BIT = 0x01U, /*!< \brief Left-justified, 24 bit, legacy */
+ UCS_STREAM_PORT_ALGN_RIGHT16BIT = 0x02U, /*!< \brief Right-justified, 16 bit, legacy */
+ UCS_STREAM_PORT_ALGN_RIGHT24BIT = 0x03U, /*!< \brief Right-justified, 16 bit, legacy */
+ UCS_STREAM_PORT_ALGN_SEQ = 0x04U /*!< \brief Sequential */
+
+} Ucs_Stream_PortDataAlign_t;
+
+/*! \brief Indicates if the MOST Network Port is available and ready for streaming data connections.
+ * \ingroup G_UCS_XRM_ENUM
+ */
+typedef enum Ucs_Most_PortAvail_
+{
+ /*! \brief MOST Network Port is available and it is possible to have streaming data
+ * connections.
+ */
+ UCS_MOST_PORT_AVAIL = 0x01U,
+ /*! \brief MOST Network Port is not available for streaming data. FreeStreamingBW gets 0.
+ * All created sockets on this port get invalid.
+ */
+ UCS_MOST_PORT_NOT_AVAIL = 0x00U
+
+} Ucs_Most_PortAvail_t;
+
+/*! \brief Indicates the sub state to parameter Available.
+ * \ingroup G_UCS_XRM_ENUM
+ */
+typedef enum Ucs_Most_PortAvailInfo_
+{
+ /*! \brief MOST Network Port is not available for streaming data. This is for instance the
+ * case if the MOST network is shut down or Ring Break Diagnosis is running.
+ */
+ UCS_MOST_PRT_AVL_INF_REGULAR = 0x00U,
+ /*! \brief Unlocks have been detected at the port and streaming is temporarily not
+ * available.
+ */
+ UCS_MOST_PRT_AVL_INF_UNSTABLE = 0x10U,
+ /*! \brief Port is in Stable Lock. */
+ UCS_MOST_PRT_AVL_INF_STABLE = 0x11U
+
+} Ucs_Most_PortAvailInfo_t;
+
+/*! \brief Indicates the type of the Physical Layer Test.
+ * \ingroup G_UCS_DIAG_TYPES
+ */
+typedef enum Ucs_Diag_PhyTest_Type_
+{
+ UCS_DIAG_PHYTEST_MASTER = 1U, /*!< \brief Force Retimed Bypass TimingMaster mode */
+ UCS_DIAG_PHYTEST_SLAVE = 2U /*!< \brief Force Retimed Bypass TimingSlave mode */
+
+} Ucs_Diag_PhyTest_Type_t;
+
+
+/*! \brief Specifies whether the the INIC behaves as a TimingMaster or TimingSlave device
+ * during the Ring Break Diagnosis (RBD).
+ * \ingroup G_UCS_DIAG_TYPES
+ */
+typedef enum Ucs_Diag_RbdType_
+{
+ UCS_DIAG_RBDTYPE_SLAVE = 0U, /*!< \brief The INIC starts the RBD as a TimingSlave */
+ UCS_DIAG_RBDTYPE_MASTER = 1U /*!< \brief The INIC starts the RBD as a TimingMaster */
+
+} Ucs_Diag_RbdType_t;
+
+/*! \brief The speed grade of the I2C Port.
+ * \ingroup G_UCS_I2C_TYPES
+ */
+typedef enum Ucs_I2c_Speed_
+{
+ UCS_I2C_SLOW_MODE = 0x00U, /*!< \brief Speed grade of the port is 100 kHz. */
+ UCS_I2C_FAST_MODE = 0x01U /*!< \brief Speed grade of the port is 400 kHz. */
+
+} Ucs_I2c_Speed_t;
+
+/*! \brief The write transfer mode.
+ * \ingroup G_UCS_I2C_TYPES
+ */
+typedef enum Ucs_I2c_TrMode_
+{
+ UCS_I2C_DEFAULT_MODE = 0x00U, /*!< \brief Default mode of the I2C write transfer */
+ UCS_I2C_REPEATED_MODE = 0x01U, /*!< \brief Repeated Mode of the I2C write transfer */
+ UCS_I2C_BURST_MODE = 0x02U /*!< \brief Burst mode of the I2C write transfer */
+
+} Ucs_I2c_TrMode_t;
+
+/*! \brief The mode of the GPIO pin.
+ * \ingroup G_UCS_GPIO_TYPES
+ */
+typedef enum Ucs_Gpio_PinMode_
+{
+ UCS_GPIO_UNAVAILABLE = 0x00U, /*!< \brief Unavailable Mode */
+ UCS_GPIO_UNUSED = 0x01U, /*!< \brief Unused Mode */
+ UCS_GPIO_INPUT = 0x10U, /*!< \brief Input Mode */
+ UCS_GPIO_IN_STICKY_HL = 0x11U, /*!< \brief InputStickyHighLevel Mode */
+ UCS_GPIO_IN_STICKY_LL = 0x12U, /*!< \brief InputStickyLowLevel Mode */
+ UCS_GPIO_IN_TRIGGER_RE = 0x13U, /*!< \brief InputTriggerRisingEdge Mode */
+ UCS_GPIO_IN_TRIGGER_FE = 0x14U, /*!< \brief InputTriggerFallingEdge Mode */
+ UCS_GPIO_IN_TRIGGER_HL = 0x16U, /*!< \brief InputTriggerHighLevel Mode */
+ UCS_GPIO_IN_TRIGGER_LL = 0x17U, /*!< \brief InputTriggerLowLevel Mode */
+ UCS_GPIO_IN_DEBOUNCED = 0x30U, /*!< \brief InputDebounced Mode */
+ UCS_GPIO_IN_DB_TRIGGER_RE = 0x33U, /*!< \brief InputDebouncedTriggerRisingEdge Mode */
+ UCS_GPIO_IN_DB_TRIGGER_FE = 0x34U, /*!< \brief InputDebouncedTriggerFallingEdge Mode */
+ UCS_GPIO_IN_DB_TRIGGER_HL = 0x36U, /*!< \brief InputDebouncedTriggerHighLevel Mode */
+ UCS_GPIO_IN_DB_TRIGGER_LL = 0x37U, /*!< \brief InputDebouncedTriggerLowLevel Mode */
+ UCS_GPIO_OUT_DEFAULT_LOW = 0x40U, /*!< \brief OutputDefaultLow Mode */
+ UCS_GPIO_OUT_DEFAULT_HIGH = 0x41U, /*!< \brief OutputDefaultHigh Mode */
+ UCS_GPIO_OUT_OPEN_DRAIN = 0x50U, /*!< \brief OutputOpenDrain Mode */
+ UCS_GPIO_OUT_OD_TRIGGER_RE = 0x53U, /*!< \brief OutputOpenDrainTriggerRisingEdge Mode */
+ UCS_GPIO_OUT_OD_TRIGGER_FE = 0x54U, /*!< \brief OutputOpenDrainTriggerFallingEdge Mode */
+ UCS_GPIO_OUT_OD_TRIGGER_HL = 0x56U, /*!< \brief OutputOpenDrainTriggerHighLevel Mode */
+ UCS_GPIO_OUT_OD_TRIGGER_LL = 0x57U /*!< \brief OutputOpenDrainTriggerLowLevel Mode */
+
+} Ucs_Gpio_PinMode_t;
+
+/*! \brief Type of System Diagnosis Report.
+ * \ingroup G_UCS_INIC_TYPES
+ */
+typedef enum Ucs_Sd_ResCode_
+{
+ UCS_SD_TARGET_FOUND = 0x01U, /*!< \brief Segment description */
+ UCS_SD_FINISHED = 0x02U, /*!< \brief System Diagnosis finished */
+ UCS_SD_CABLE_LINK_RES = 0x03U, /*!< \brief Cable Link Diagnosis was executed. */
+ UCS_SD_ABORTED = 0x04U, /*!< \brief System Diagnosis stopped by application command */
+ UCS_SD_ERROR = 0x05U /*!< \brief System Diagnosis detected unexpected error */
+
+} Ucs_Sd_ResCode_t;
+
+/*! \brief Type of System Diagnosis Error Codes.
+ * \ingroup G_UCS_INIC_TYPES
+ */
+typedef enum Ucs_Sd_ErrCode_
+{
+ /*! \brief An internal error occurred during System Diagnosis. */
+ UCS_SD_ERR_UNSPECIFIED = 0x01U,
+ /*! \brief INIC answered with "NoSuccess" to a Welcome.StartResult command. */
+ UCS_SD_ERR_WELCOME_NO_SUCCESS = 0x02U,
+ /*! \brief Stopping the System Diagnosis mode on INIC failed. The INIC may remain in System
+ Diagnosis mode. */
+ UCS_SD_ERR_STOP_SYSDIAG_FAILED = 0x03U,
+ /*! \brief System Diagnosis stopped due to a severe error. The INIC may remain in System
+ Diagnosis mode. */
+ UCS_SD_ERR_TERMINATED = 0x04U
+
+} Ucs_Sd_ErrCode_t;
+
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief This structure contains information on the hardware and firmware modules of the INIC.
+ * \ingroup G_UCS_INIC_TYPES
+ */
+typedef struct Ucs_Inic_Version_
+{
+ uint32_t product_identifier; /*!< \brief Unique identifier that represents the product name.\mns_name_inic{ProductIdentifier} */
+ uint32_t build_version; /*!< \brief Firmware build version number.\mns_name_inic{BuildVersion} */
+ uint8_t major_version; /*!< \brief Firmware major version number.\mns_name_inic{MajorVersion} */
+ uint8_t minor_version; /*!< \brief Firmware build version number.\mns_name_inic{MinorVersion} */
+ uint8_t release_version; /*!< \brief Firmware release version number.\mns_name_inic{ReleaseVersion} */
+ uint8_t hw_revision; /*!< \brief Chip revision number.\mns_name_inic{HardwareRevision} */
+ uint16_t diagnosis_id; /*!< \brief Diagnosis identifier of the INIC.\mns_name_inic{DiagnosisID} */
+ uint8_t cs_major_version; /*!< \brief Configuration String major version number.\mns_name_inic{ExtMajorVersion} */
+ uint8_t cs_minor_version; /*!< \brief Configuration String minor version number.\mns_name_inic{ExtMinorVersion} */
+ uint8_t cs_release_version; /*!< \brief Configuration String release version number.\mns_name_inic{ExtReleaseVersion} */
+
+} Ucs_Inic_Version_t;
+
+/*! \brief This structure contains information on the GPIO pin configuration.
+ * \ingroup G_UCS_INIC_TYPES
+ */
+typedef struct Ucs_Gpio_PinConfiguration_
+{
+ uint8_t pin; /*!< \brief The GPIO pin that is to be configured */
+ Ucs_Gpio_PinMode_t mode; /*!< \brief The mode of the GPIO pin */
+
+} Ucs_Gpio_PinConfiguration_t;
+
+
+
+
+
+
+/*! \brief This structure holds the signature of the Hello, Welcome and Signature messages.
+ * It supports the signature v1 only.
+ * \ingroup G_INIC_TYPES
+ */
+typedef struct Ucs_Signature_t_
+{
+ uint16_t node_address; /*!< \brief NodeAddress */
+ uint16_t group_address; /*!< \brief GroupAddress */
+ uint16_t mac_47_32; /*!< \brief MACAddress_47_32 */
+ uint16_t mac_31_16; /*!< \brief MACAddress_31_16 */
+ uint16_t mac_15_0; /*!< \brief MACAddress_15_0 */
+ uint16_t node_pos_addr; /*!< \brief NodePositionAddress */
+ uint16_t diagnosis_id; /*!< \brief DiagnosisID */
+ uint8_t num_ports; /*!< \brief NumberOfPorts */
+ uint8_t chip_id; /*!< \brief ChipID */
+ uint8_t fw_major; /*!< \brief FWVersion_Major */
+ uint8_t fw_minor; /*!< \brief FWVersion_Minor */
+ uint8_t fw_release; /*!< \brief FWVersion_Release */
+ uint32_t fw_build; /*!< \brief FWVersion_Build */
+ uint8_t cs_major; /*!< \brief CSVersion_Major */
+ uint8_t cs_minor; /*!< \brief CSVersion_Minor */
+ uint8_t cs_release; /*!< \brief CSVersion_Release */
+/* uint8_t uid_persistency;*/ /*!< \brief UIDPersistency */
+/* uint32_t uid;*/ /*!< \brief UID */
+
+} Ucs_Signature_t;
+
+/*------------------------------------------------------------------------------------------------*/
+/* System Diagnosis */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief This structure holds the segment information of the system diagnosis
+ * \ingroup G_INIC_TYPES
+ */
+typedef struct Ucs_Sd_Segment_t_
+{
+ uint8_t branch; /*!< \brief Number of the currently tested branch. Numbering starts
+ with 0 and corresponds to the port number if the Timing
+ Master is a multi port INIC */
+ uint8_t num; /*!< \brief Segment number inside the tested branch. Numbering starts with 1 */
+ Ucs_Signature_t source; /*!< \brief Signature of the first node of the segment
+ \mns_param_inic{Signature,Hello,MNSH2-Hello200} */
+ Ucs_Signature_t target; /*!< \brief Signature of the second node of the segment
+ \mns_param_exc{Signature,Hello,MNSH2-Hello200} */
+} Ucs_Sd_Segment_t;
+
+
+/*! \brief This structure holds the results of the system diagnosis
+ * \ingroup G_INIC_TYPES
+ */
+typedef struct Ucs_Sd_Report_t_
+{
+ Ucs_Sd_ResCode_t code; /*!< \brief Result code */
+ Ucs_Sd_Segment_t segment; /*!< \brief Information about tested segment */
+ uint8_t cable_link_info; /*!< \brief Result of a cable link diagnosis.
+ \mns_param_exc{Result,CableLinkDiagnosis,MNSH2-CableLinkDiagnosis211} */
+ Ucs_Sd_ErrCode_t err_info; /*!< \brief Error codes, values are defined in Ucs_Sd_ErrCode_t */
+
+} Ucs_Sd_Report_t;
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Node Discovery */
+/*------------------------------------------------------------------------------------------------*/
+
+
+/*! \brief Result values of the Node Discovery service.
+ * \ingroup G_UCS_NODE_DISCOVERY_TYPES
+ */
+typedef enum Ucs_Nd_ResCode_t_
+{
+ UCS_ND_RES_WELCOME_SUCCESS = 0x01U, /*!< \brief Node was successfully added to the network. */
+ UCS_ND_RES_UNKNOWN = 0x02U, /*!< \brief Node signature is unknown to the application, node will be ignored. */
+ UCS_ND_RES_MULTI = 0x03U, /*!< \brief A node with the same signature is already part of the system. The new node will be ignored. */
+ UCS_ND_RES_STOPPED = 0x04U, /*!< \brief The Node Discovery service was stopped by API function Ucs_Nd_Stop(). Ucs_Nd_Start() has to be called to start again. */
+ UCS_ND_RES_NETOFF = 0x05U, /*!< \brief The Node Discovery service detected a NetOff event and pauses . It resumes automatically as soon as NetOn occurs. */
+ UCS_ND_RES_ERROR = 0x06U /*!< \brief An unexpected error occurred. Node Discovery service was stopped. Ucs_Nd_Start() has to be called to start again. */
+
+} Ucs_Nd_ResCode_t;
+
+/*! \brief Result values of the application's evaluation function (type \ref Ucs_Nd_EvalCb_t).
+ * \ingroup G_UCS_NODE_DISCOVERY_TYPES
+ */
+typedef enum Ucs_Nd_CheckResult_t_
+{
+ UCS_ND_CHK_WELCOME = 0x01U, /*!< \brief Node is ok, try to add it to the network. */
+ UCS_ND_CHK_UNIQUE = 0x02U, /*!< \brief Test if this node is unique. */
+ UCS_ND_CHK_UNKNOWN = 0x03U /*!< \brief The node is unknown, no further action. */
+
+} Ucs_Nd_CheckResult_t;
+
+
+/*! \brief Function signature of node evaluation callback used by Node Discovery service.
+ *
+ * The Node Discovery service announces the signature of each node it has found to the
+ * application via the evaluation function. In this function the application
+ * decides how the Node Discovery service shall proceed with the node.
+ * The application maintains two lists:
+ *
+ * <dl>
+ * <dt> *set_list* </dt>
+ * <dd> Contains the signatures of the nodes the system shall contain
+ *
+ * <dt> *device_list* </dt>
+ * <dd> Contains the signatures of the nodes detected in the system
+ * </dl>
+ *
+ * The evaluation has to follow these rules:
+ * - If the node is not part of the *set_list*, it is regarded as unknown (\ref UCS_ND_CHK_UNKNOWN)
+ * and will be ignored.
+ * - If the node is part of the *set_list* and is not yet in the *device_list*, the Node Discovery
+ * Service shall try to add the node to network (\ref UCS_ND_CHK_WELCOME).
+ * - If the node is already part of the *device_list*, there are two possibilities: the node in the
+ * *device_list* experienced a reset or there are two nodes with the same signature. Evaluation
+ * result is \ref UCS_ND_CHK_UNIQUE. The Node Discovery service will perform further tests.
+ *
+ * \param signature Signature of the respective node
+ * \param user_ptr User reference provided in \ref Ucs_InitData_t "Ucs_InitData_t::user_ptr"
+ * \returns UCS_ND_CHK_WELCOME Node is ok, try to add it to the network.
+ * \returns UCS_ND_CHK_UNIQUE Test if this node is unique.
+ * \returns UCS_ND_CHK_UNKNOWN Node is unknown, no further action.
+ * \ingroup G_UCS_NODE_DISCOVERY
+ */
+typedef Ucs_Nd_CheckResult_t (*Ucs_Nd_EvalCb_t)(Ucs_Signature_t *signature, void *user_ptr);
+
+/*! \brief Function signature of result callback used by Node Discovery service.
+ *
+ * The Node Discovery service reports the result of each node and some system events by
+ * this callback function.
+ *
+ * \note The parameter <b>signature</b> will be NULL, if parameter <b>code</b> is
+ * \ref UCS_ND_RES_STOPPED, \ref UCS_ND_RES_NETOFF or \ref UCS_ND_RES_ERROR.
+ *
+ * \param code Result code
+ * \param signature Signature of the respective node
+ * \param user_ptr User reference provided in \ref Ucs_InitData_t "Ucs_InitData_t::user_ptr"
+ * \ingroup G_UCS_NODE_DISCOVERY
+ */
+typedef void (*Ucs_Nd_ReportCb_t)(Ucs_Nd_ResCode_t code,
+ Ucs_Signature_t *signature,
+ void *user_ptr);
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Programming service */
+/*------------------------------------------------------------------------------------------------*/
+
+/*! \brief Defines the set of MemIDs and the memory access types.
+ * \ingroup G_UCS_PROG_MODE_TYPES
+ */
+typedef enum Ucs_Prg_SessionType_
+{
+ UCS_PRG_ST_CS = 0x01U, /*!< \brief Writes to configuration string */
+ UCS_PRG_ST_IS = 0x02U, /*!< \brief Writes to identification string */
+ UCS_PRG_ST_CS_IS = 0x04U, /*!< \brief Writes to configuration and identification string */
+ UCS_PRG_ST_ERASE_EM = 0x08U, /*!< \brief Erases the error memory */
+ UCS_PRG_ST_CFG_READ = 0x10U /*!< \brief Reads data from all configuration memories */
+} Ucs_Prg_SessionType_t;
+
+
+/*! \brief Represents the memory resource to be written.
+ * \ingroup G_UCS_PROG_MODE_TYPES
+ */
+typedef enum Ucs_Prg_MemId_
+{
+ UCS_PRG_MID_CS = 0x00U, /*!< \brief Writes the configuration string */
+ UCS_PRG_MID_IS = 0x01U, /*!< \brief Writes the identification string */
+ UCS_PRG_MID_CSTEST = 0x0CU, /*!< \brief Writes the test configuration string */
+ UCS_PRG_MID_ISTEST = 0x0DU /*!< \brief Writes the test identification string */
+} Ucs_Prg_MemId_t;
+
+/*! \brief Represents a programming task.
+ * \ingroup G_UCS_PROG_MODE_TYPES
+ */
+typedef struct Ucs_Prg_Command_
+{
+ Ucs_Prg_MemId_t mem_id; /*!< \brief Represents the memory resource to be written. */
+ uint32_t address; /*!< \brief Defines the memory location at which the writing
+ operation starts. */
+ uint8_t unit_length; /*!< \brief Sets the number of memory units to be written.
+ Memory units can be unsigned bytes, unsigned words
+ or unsigned masked data depending on the memory type. */
+ uint8_t data_length; /*!< \brief Lenght of data */
+ uint8_t *data; /*!< \brief Contains the actual data written to the memory
+ resource and formatted as memory units. */
+} Ucs_Prg_Command_t;
+
+/*! \brief Result values of the Programming service.
+ * \ingroup G_UCS_PROG_MODE_TYPES
+ */
+typedef enum Ucs_Prg_ResCode_t_
+{
+ UCS_PRG_RES_SUCCESS = 0x01U, /*!< \brief Node was successfully programmed. */
+ UCS_PRG_RES_TIMEOUT = 0x02U, /*!< \brief Node did not answer timely. */
+ UCS_PRG_RES_NET_OFF = 0x03U, /*!< \brief A NetOff event occurred during programming. */
+ UCS_PRG_RES_FKT_SYNCH = 0x04U, /*!< \brief The call of the internal API function returned an error,
+ so the command was not sent to the node.*/
+ UCS_PRG_RES_FKT_ASYNCH = 0x05U, /*!< \brief Node returned an error message as result. */
+ UCS_PRG_RES_ERROR = 0x06U /*!< \brief An unexcpected error occurred. Programming service was stopped. */
+
+} Ucs_Prg_ResCode_t;
+
+/*! \brief Denotes the function where an error occurred.
+ * \ingroup G_UCS_PROG_MODE_TYPES
+ */
+typedef enum Ucs_Prg_Func_t_
+{
+ UCS_PRG_FKT_DUMMY = 0x00U, /*!< \brief Dummy value, used in case of UCS_PRG_RES_SUCCESS */
+ UCS_PRG_FKT_WELCOME = 0x01U, /*!< \brief Error occurred in the context of function Welcome */
+ UCS_PRG_FKT_WELCOME_NOSUCCESS = 0x02U, /*!< \brief Welcome result was No Success */
+ UCS_PRG_FKT_MEM_OPEN = 0x03U, /*!< \brief Error occurred in the context of function MemorySessionOpen */
+ UCS_PRG_FKT_MEM_WRITE = 0x04U, /*!< \brief Error occurred in the context of function MemoryWrite */
+ UCS_PRG_FKT_MEM_CLOSE = 0x05U, /*!< \brief Error occurred in the context of function MemorySessionClose */
+ UCS_PRG_FKT_INIT = 0x06U /*!< \brief Error occurred in the context of function Init */
+} Ucs_Prg_Func_t;
+
+/*! \brief Function signature of result callback used by Programming service.
+ *
+ * The Programming service reports the result of programming a certain device by
+ * this callback function.
+ *
+ *
+ * \param code Result values of the Programming service
+ * \param function Signature of the node to be programmed.
+ * \param ret_len Length of the error parameter field parm. It is 0 if no error occurred.
+ * \param parm Pointer to the parameters of a potential error message.
+ * \param user_ptr User reference provided in \ref Ucs_InitData_t "Ucs_InitData_t::user_ptr"
+ * \ingroup G_UCS_PROG_MODE
+ */
+typedef void (*Ucs_Prg_ReportCb_t)(Ucs_Prg_ResCode_t code,
+ Ucs_Prg_Func_t function,
+ uint8_t ret_len,
+ uint8_t parm[],
+ void *user_ptr);
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* BackChannel Diagnosis */
+/*------------------------------------------------------------------------------------------------*/
+
+/*! \brief Result values of the BackChannel Diagnosis.
+ * \ingroup G_UCS_BC_DIAG_TYPES
+ */
+typedef enum Ucs_Bcd_ResCode_t_
+{
+ UCS_BCD_RES_SUCCESS = 0x01U, /*!< \brief current segment is not broken */
+ UCS_BCD_RES_NO_RING_BREAK = 0x02U, /*!< \brief TM answered: no ring break. */
+ UCS_BCD_RES_RING_BREAK = 0x03U, /*!< \brief Ring break detected in current segment. */
+ UCS_BCD_RES_TIMEOUT1 = 0x04U, /*!< \brief No communication on back channel. */
+ UCS_BCD_RES_TIMEOUT2 = 0x05U, /*!< \brief No result from INIC received. */
+ UCS_BCD_RES_ERROR = 0x06U, /*!< \brief An unexpected error occurred. BackChannel Diagnosis was stopped. */
+ UCS_BCD_RES_END = 0x07U /*!< \brief BackChannel Diagnosis ended regularly. */
+} Ucs_Bcd_ResCode_t;
+
+
+/*! \brief Function signature of result callback used by BackChannel Diagnosis.
+ *
+ * The BackChannel Diagnosis reports the result of certain segment by
+ * this callback function.
+ *
+ * \param code Result code
+ * \param segment Number of the segment which was inspected. Numbering starts with 0 denoting the segment following the TimingMaster. The number is increased for each following segment.
+ * \param user_ptr User reference provided in \ref Ucs_InitData_t "Ucs_InitData_t::user_ptr"
+ * \ingroup G_UCS_BC_DIAG
+ */
+typedef void (*Ucs_Bcd_ReportCb_t)(Ucs_Bcd_ResCode_t code,
+ uint8_t segment,
+ void *user_ptr);
+
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Network functions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Function signature of result callback used by Ucs_Network_GetFrameCounter().
+ * \mns_res_inic{MOSTNetworkFrameCounter,MNSH3-MOSTNetworkFrameCounter523}
+ * \mns_ic_manual{ See also <i>User Manual</i>, section \ref P_UM_SYNC_AND_ASYNC_RESULTS. }
+ * \param frame_counter The MOST network frame count.\mns_name_inic{FrameCounter}
+ * \param reference Reference value that was passed to Mns_Network_GetFrameCounter().\mns_name_inic{Reference}
+ * \param lock Indicates if the TimingSlave device is locked to the MOST network. For a
+ TimingMaster device this value is always True.
+ * \param result Returned result of the operation
+ * \param user_pter User reference provided in \ref Ucs_InitData_t "Ucs_InitData_t::user_ptr"
+ * \ingroup G_UCS_NET
+ */
+typedef void (*Ucs_Network_FrameCounterCb_t)(uint32_t reference,
+ uint32_t frame_counter,
+ bool frame_lock,
+ Ucs_StdResult_t result,
+ void * user_pointer);
+
+
+
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_INIC_PB_H */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_jobs.h b/ucs2-lib/inc/ucs_jobs.h
new file mode 100644
index 0000000..7642279
--- /dev/null
+++ b/ucs2-lib/inc/ucs_jobs.h
@@ -0,0 +1,173 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Internal header file of Job classes
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_JOBS
+ * @{
+ */
+
+#ifndef UCS_JOBS_H
+#define UCS_JOBS_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_base.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal constants */
+/*------------------------------------------------------------------------------------------------*/
+
+/*------------------------------------------------------------------------------------------------*/
+/* Types */
+/*------------------------------------------------------------------------------------------------*/
+struct CJob_;
+typedef struct CJob_ CJob;
+
+/*! \brief Starts up the MOST Network
+ * \param self The instance
+ */
+typedef void (*Job_StartCb_t)(void *self);
+
+/*------------------------------------------------------------------------------------------------*/
+/* CJob Class */
+/*------------------------------------------------------------------------------------------------*/
+
+/*! \brief Job state */
+typedef enum Job_State_
+{
+ JOB_S_STOPPED = 0U,
+ JOB_S_STARTED = 1U,
+ JOB_S_FINISHED = 2U
+
+} Job_State_t;
+
+/*! \brief Job result */
+typedef enum Job_Result_
+{
+ JOB_R_NA = 0U,
+ JOB_R_SUCCESS = 1U,
+ JOB_R_FAILED = 2U
+
+} Job_Result_t;
+
+/*! \brief Job class
+ * \details Definition of job class
+ */
+struct CJob_
+{
+ void *inst_ptr;
+ Job_StartCb_t start_fptr;
+ Job_State_t state;
+ Job_Result_t result;
+ CSingleSubject subject;
+};
+
+/*------------------------------------------------------------------------------------------------*/
+/* CJob Methods */
+/*------------------------------------------------------------------------------------------------*/
+void Job_Ctor(CJob *self, Job_StartCb_t start_fptr, void *inst_ptr);
+void Job_Start(CJob *self, CSingleObserver *result_obs_ptr);
+void Job_Stop(CJob *self);
+void Job_SetResult(CJob *self, Job_Result_t result);
+Job_State_t Job_GetState(CJob *self);
+Job_Result_t Job_GetResult(CJob *self);
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* CJobQ Class */
+/*------------------------------------------------------------------------------------------------*/
+struct CJobService_;
+typedef struct CJobService_ CJobService;
+
+/*! \brief JobQ class
+ * \details Definition of job queue class
+ */
+typedef struct CJobQ_
+{
+ Srv_Event_t event_id;
+ Job_State_t state;
+ Job_Result_t result;
+ CJob** job_list;
+ CJobService* job_service_ptr;
+
+ uint8_t index; /*! \brief The index of current job */
+ CSingleObserver result_obs; /*! \brief Required to get the job result */
+ CSingleSubject q_subject; /*! \brief Notifies the JobQ result */
+ CDlNode node; /*! \brief Required node to add JobQ to JobService class*/
+
+} CJobQ;
+
+/*------------------------------------------------------------------------------------------------*/
+/* CJobQ Methods */
+/*------------------------------------------------------------------------------------------------*/
+void Jbq_Ctor(CJobQ *self, CJobService *job_service_ptr, Srv_Event_t event_id, CJob *job_list[]);
+void Jbq_Start(CJobQ *self, CSingleObserver *result_obs_ptr);
+void Jbq_Stop(CJobQ *self);
+void Jbq_Service(CJobQ *self);
+Srv_Event_t Jbq_GetEventId(CJobQ *self);
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* CJobService Class */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Job Service class
+ * \details Definition of job service class
+ */
+struct CJobService_
+{
+ CBase *base_ptr;
+ CDlList list;
+ CService service;
+};
+
+/*------------------------------------------------------------------------------------------------*/
+/* CJobService Methods */
+/*------------------------------------------------------------------------------------------------*/
+void Jbs_Ctor(CJobService *self, CBase *base_ptr);
+void Jbs_RegisterJobQ(CJobService *self, CDlNode *job_q_node);
+void Jbs_TriggerEvent(CJobService *self, Srv_Event_t id);
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* UCS_JOBS_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_lld_pb.h b/ucs2-lib/inc/ucs_lld_pb.h
new file mode 100644
index 0000000..268e564
--- /dev/null
+++ b/ucs2-lib/inc/ucs_lld_pb.h
@@ -0,0 +1,222 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Declaration of the low-level driver interface
+ *
+ * \addtogroup G_UCS_LLD
+ * @{
+ * \details UNICENS provides a certain set of functions which are only dedicated to the low-level driver.
+ * The low-level driver \em API is a set of functions which shall be used by the low-level driver.
+ * The low-level driver \em callbacks is a set of function that shall be implemented by the low-level driver.
+ * The low-level driver \em callbacks shall be assigned to the UNICENS initialization structure.
+ * During initialization UNICENS invokes the callback \ref Ucs_Lld_Callbacks_t "start_fptr" and
+ * passes the low-level driver \em API as pointer to \ref Ucs_Lld_Api_t.
+ * <!--
+ * \mns_ic_started{ See also Getting Started with \ref P_UM_STARTED_LLD. }
+ * \mns_ic_examples{ See also <i>Examples</i>, section \ref P_UM_EXAMPLE_LLD_01, \ref P_UM_EXAMPLE_LLD_02 and \ref P_UM_EXAMPLE_LLD_03. }
+ * -->
+ * @}
+ */
+
+#ifndef UCS_LLD_PB_H
+#define UCS_LLD_PB_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_types_cfg.h"
+#include "ucs_memory_pb.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*!
+ * \addtogroup G_UCS_LLD_TYPES
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Tx message object providing the raw port message byte stream */
+typedef struct Ucs_Lld_TxMsg_
+{
+ struct Ucs_Lld_TxMsg_ *custom_next_msg_ptr;/*!< \brief Shall be used by the LLD implementation to queue messages for
+ * asynchronous transmission
+ * \details UNICENS will set this value to \c NULL since only
+ * single messages are forwarded to the LLD. Within the transmit function
+ * it is recommended that the LLD queues the message for asynchronous
+ * transmission. Despite a driver's transmit function might signal busy for
+ * a short term the UNICENS library might forward multiple messages for
+ * transmission. If a driver works asynchronously (interrupt driven) it
+ * can easily use this pointer build a queue of waiting messages.
+ * Nonetheless, it is important that \ref Ucs_Lld_Api_t::tx_release_fptr
+ * "tx_release_fptr" is invoked for every message separately. The Interface
+ * between the UNICENS library and the LLD does only support single messages.
+ */
+ Ucs_Mem_Buffer_t *memory_ptr; /*!< \brief Points to the data buffer */
+
+} Ucs_Lld_TxMsg_t;
+
+/*! \brief Rx message object pointing to the raw port message byte stream. */
+typedef struct Ucs_Lld_RxMsg_
+{
+ uint8_t* data_ptr; /*!< \brief Points to a UNICENS allocated memory chunk. */
+ uint16_t data_size; /*!< \brief Size of the memory chunk in bytes. Valid values: 6..72. */
+
+} Ucs_Lld_RxMsg_t;
+
+/*!
+ * @}
+ * \addtogroup G_UCS_LLD_API
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Low-level driver API */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Allocates an Rx message object
+ * \param inst_ptr Reference to an internal UNICENS handler
+ * \param buffer_size The size in bytes of the received Rx message.
+ * Valid values: 6..72.
+ * \return The Rx message object or \c NULL if no message object is available. In the latter
+ * case the low-level driver can wait until Ucs_Lld_RxMsgAvailableCb_t() is invoked.
+ * The low-level driver is allowed to pre-allocate Rx messages with the maximum size
+ * of 72 bytes. After writing received data into Ucs_Lld_RxMsg_t::data_ptr the
+ * low-level driver must set Ucs_Lld_RxMsg_t::data_size to the actual message size.
+ * \warning
+ * The function will also return \c NULL if the requested \c buffer_size exceeds the valid range.
+ * In such a case the UNICENS cannot guarantee that Ucs_Lld_RxMsgAvailableCb_t() is
+ * called as expected. Received messages exceeding the valid range must be discarded by the LLD.
+ */
+typedef Ucs_Lld_RxMsg_t* (*Ucs_Lld_RxAllocateCb_t)(void *inst_ptr, uint16_t buffer_size);
+
+/*! \brief Frees an unused Rx message object
+ * \param inst_ptr Reference to internal UNICENS handler
+ * \param msg_ptr Reference to the unused Rx message object
+ */
+typedef void (*Ucs_Lld_RxFreeUnusedCb_t)(void *inst_ptr, Ucs_Lld_RxMsg_t *msg_ptr);
+
+/*! \brief Pass an Rx message to UNICENS
+ * \param inst_ptr Reference to internal UNICENS handler
+ * \param msg_ptr Reference to the Rx message object containing the received
+ * message.
+ */
+typedef void (*Ucs_Lld_RxReceiveCb_t)(void *inst_ptr, Ucs_Lld_RxMsg_t *msg_ptr);
+
+/*! \brief Notifies that the LLD no longer needs to access the Tx message object
+ * \param inst_ptr Reference to internal UNICENS handler
+ * \param msg_ptr Reference to the Tx message object which is no longer accessed
+ * by the low-level driver
+ */
+typedef void (*Ucs_Lld_TxReleaseCb_t)(void *inst_ptr, Ucs_Lld_TxMsg_t *msg_ptr);
+
+/*! \brief Initialization required for one communication channel (control or packet)
+ */
+typedef struct Ucs_Lld_Api_
+{
+ Ucs_Lld_RxAllocateCb_t rx_allocate_fptr; /*!< \brief Allocates an Rx message object */
+ Ucs_Lld_RxFreeUnusedCb_t rx_free_unused_fptr; /*!< \brief Frees an unused Rx message object */
+ Ucs_Lld_RxReceiveCb_t rx_receive_fptr; /*!< \brief Pass an Rx message to the UNICENS library */
+ Ucs_Lld_TxReleaseCb_t tx_release_fptr; /*!< \brief Notifies that the LLD no longer needs to access the Tx message object */
+
+} Ucs_Lld_Api_t;
+
+/*!
+ * @}
+ * \addtogroup G_UCS_LLD
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* LLD interface functions */
+/*------------------------------------------------------------------------------------------------*/
+
+/*! \brief Notifies the LLD to start transmitting and receiving messages
+ * \param api_ptr Reference to UNICENS LLD interface
+ * \param inst_ptr Reference to internal UNICENS handler
+ * \param lld_user_ptr User defined pointer which is provided in \ref Ucs_Lld_Callbacks_t structure.
+ */
+typedef void (*Ucs_Lld_StartCb_t)(Ucs_Lld_Api_t* api_ptr, void *inst_ptr, void *lld_user_ptr);
+
+/*! \brief Notifies the LLD to stop/abort transmitting and receiving messages
+ * \details As soon as this function is called the low-level driver is not allowed
+ * to call any UNICENS API function.
+ * \param lld_user_ptr User defined pointer which is provided in \ref Ucs_Lld_Callbacks_t structure.
+ */
+typedef void (*Ucs_Lld_StopCb_t)(void *lld_user_ptr);
+
+/*! \brief Notifies the LLD to reset the INIC
+ * \details If this function is called the low-level driver is responsible to
+ * perform an INIC hardware reset.
+ * \param lld_user_ptr User defined pointer which is provided in \ref Ucs_Lld_Callbacks_t structure.
+ */
+typedef void (*Ucs_Lld_ResetInicCb_t)(void *lld_user_ptr);
+
+/*! \brief Callback function which is invoked as soon as port message objects are available again.
+ * \details By implementing this callback function the low-level driver can avoid polling for
+ * Rx message objects. The low-level driver should wait for the function call as soon
+ * as Ucs_Lld_RxAllocateCb_t() returns NULL. Only then it shall call those functions again.
+ * \param lld_user_ptr User defined pointer which is provided in \ref Ucs_Lld_Callbacks_t structure.
+ */
+typedef void (*Ucs_Lld_RxMsgAvailableCb_t)(void *lld_user_ptr);
+
+/*! \brief Callback function which is invoked to transmit a single message to the INIC
+ * \param msg_ptr Reference to a single Tx message.
+ * \param lld_user_ptr User defined pointer which is provided in \ref Ucs_Lld_Callbacks_t structure.
+ */
+typedef void (*Ucs_Lld_TxTransmitCb_t)(Ucs_Lld_TxMsg_t *msg_ptr, void *lld_user_ptr);
+
+/*!
+ * @}
+ * \addtogroup G_UCS_LLD_TYPES
+ * @{
+ */
+
+/*! \brief Set of functions implemented by the low-level driver
+ */
+typedef struct Ucs_Lld_Callbacks_
+{
+ void *lld_user_ptr; /*!< \brief Optional pointer that is passed when invoking a callback function which is assigned in Ucs_Lld_Callbacks_t. */
+ Ucs_Lld_StartCb_t start_fptr; /*!< \brief Callback function to initialize the low-level driver and
+ * start the transmission and reception of messages */
+ Ucs_Lld_StopCb_t stop_fptr; /*!< \brief Callback function to stop/abort the transmission and reception of messages */
+ Ucs_Lld_RxMsgAvailableCb_t rx_available_fptr; /*!< \brief Callback function which is invoked as soon as Rx message objects are available again */
+ Ucs_Lld_TxTransmitCb_t tx_transmit_fptr; /*!< \brief Callback function to transmit one or multiple messages to the INIC */
+
+} Ucs_Lld_Callbacks_t;
+
+/*! @} */
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_LLD_PB_H */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_lldpool.h b/ucs2-lib/inc/ucs_lldpool.h
new file mode 100644
index 0000000..77d8bd4
--- /dev/null
+++ b/ucs2-lib/inc/ucs_lldpool.h
@@ -0,0 +1,110 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Internal header file of LLD Message Pool
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_PMF
+ * @{
+ */
+
+#ifndef UCS_LLDPOOL_H
+#define UCS_LLDPOOL_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_rules.h"
+#include "ucs_base.h"
+#include "ucs_lld_pb.h"
+#include "ucs_message.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Macros */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Number of LLD Tx handles dedicated to each FIFO */
+#define LLDP_NUM_HANDLES 5U
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal types */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Internal LLD Tx message */
+typedef struct Lld_IntTxMsg_
+{
+ Ucs_Lld_TxMsg_t lld_msg; /*!< \brief Contains the public LLD Tx message
+ * \details This attribute needs to be the first one in this structure
+ */
+ CDlNode node; /*!< \brief Node required for queuing */
+ CMessage *msg_ptr; /*!< \brief Reference to the associated common message object, or
+ * \c NULL if the object is a command */
+ void *owner_ptr; /*!< \brief Points to the FIFO which owns the message object
+ * or NULL if the object is a command */
+
+} Lld_IntTxMsg_t;
+
+/*! \brief Internal LLD Rx message */
+typedef struct Lld_IntRxMsg_
+{
+ Ucs_Lld_RxMsg_t lld_msg; /*!< \brief Contains the public LLD Rx message
+ * \details This attribute needs to be the first one in this structure
+ */
+ CMessage *msg_ptr; /*!< \brief Reference to the associated common message object*/
+
+} Lld_IntRxMsg_t;
+
+/*! \brief The class CLldPool*/
+typedef struct CLldPool_
+{
+ CDlList list; /*!< \brief Points to the first available message in Tx pool */
+ Lld_IntTxMsg_t messages[LLDP_NUM_HANDLES];/*!< \brief Available messages in Tx pool */
+
+} CLldPool;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Function prototypes */
+/*------------------------------------------------------------------------------------------------*/
+extern void Lldp_Ctor(CLldPool *self, void *owner_ptr, void *ucs_user_ptr);
+extern void Lldp_ReturnTxToPool(CLldPool *self, Lld_IntTxMsg_t *msg_ptr);
+extern Lld_IntTxMsg_t* Lldp_GetTxFromPool(CLldPool *self);
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* UCS_LLDPOOL_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_memory.h b/ucs2-lib/inc/ucs_memory.h
new file mode 100644
index 0000000..927ed78
--- /dev/null
+++ b/ucs2-lib/inc/ucs_memory.h
@@ -0,0 +1,110 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Declaration of internal memory buffer
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_MEMORY
+ * @{
+ */
+
+#ifndef UCS_MEMORY_H
+#define UCS_MEMORY_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_memory_pb.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* IAllocator Types */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Callback function which frees memory
+ * \param allocator Reference to the Mem_Allocator_t object
+ * \param mem_ptr Reference to memory chunk
+ * \param mem_info_ptr Customer specific information needed to free
+ * the related memory chunk
+ */
+typedef void (*Mem_Free_t)(void *allocator, void* mem_ptr, void* mem_info_ptr);
+
+/*! \brief Callback function which allocated memory
+ * \param allocator Reference to the Mem_Allocator_t object
+ * \param size Size of the demanded memory chunk
+ * \param mem_info_ptr Customer specific information needed to free
+ * the related memory chunk
+ * \return Reference to a memory chunk with a minimum size of \c size.
+ * Otherwise NULL.
+ */
+typedef void* (*Mem_Allocate_t)(void *allocator, uint16_t size, void** mem_info_ptr);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Interface IAllocator */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Interface which is needed to be implemented by a memory allocator */
+typedef struct IAllocator_
+{
+ void* base; /*!< Reference to the base class */
+ Mem_Allocate_t allocate_fptr; /*!< Callback function required to allocate memory */
+ Mem_Free_t free_fptr; /*!< Callback function required to free memory */
+
+} IAllocator;
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Memory buffer */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Memory chunk comprising non public fields */
+typedef struct Mem_IntBuffer_
+{
+ Ucs_Mem_Buffer_t public_buffer; /*!< \brief Public attributes of memory buffer
+ * \details This has to be the first member in this
+ * struct
+ */
+ IAllocator *allocator_ptr; /*!< \brief Reference to the allocator which is
+ * required to free the memory chunk
+ */
+ void *mem_info_ptr; /*!< \brief Customer specific information needed to
+ * free the related memory chunk
+ */
+} Mem_IntBuffer_t;
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_MEMORY_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_memory_pb.h b/ucs2-lib/inc/ucs_memory_pb.h
new file mode 100644
index 0000000..2495a78
--- /dev/null
+++ b/ucs2-lib/inc/ucs_memory_pb.h
@@ -0,0 +1,70 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Declaration of memory buffer and memory allocator
+ */
+/*!
+ * \addtogroup G_UCS_LLD_TYPES
+ * @{
+ */
+
+#ifndef UCS_MEMORY_PB_H
+#define UCS_MEMORY_PB_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_types_cfg.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Memory buffer */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Memory chunk representing a message or part of a message. */
+typedef struct Ucs_Mem_Buffer_
+{
+ struct Ucs_Mem_Buffer_ *next_buffer_ptr; /*!< \brief Points to an additional memory buffer
+ * that belongs to the same message.
+ */
+ uint8_t *data_ptr; /*!< \brief Points to the data buffer */
+ uint16_t data_size; /*!< \brief Size of the data buffer */
+ uint16_t total_size; /*!< \brief Reserved for future use. Size of this and all concatenated data buffers */
+
+} Ucs_Mem_Buffer_t;
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_MEMORY_PB_H */
+
+/*! @} */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_message.h b/ucs2-lib/inc/ucs_message.h
new file mode 100644
index 0000000..6e4ea58
--- /dev/null
+++ b/ucs2-lib/inc/ucs_message.h
@@ -0,0 +1,182 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Declaration of class message
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_MESSAGE
+ * @{
+ */
+
+#ifndef UCS_MESSAGE_H
+#define UCS_MESSAGE_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_memory.h"
+#include "ucs_dl.h"
+#include "ucs_message_pb.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Common macros */
+/*------------------------------------------------------------------------------------------------*/
+#define MSG_ADDR_INVALID 0U /*!< \brief The (source) address the INIC uses to declare an invalid source address.
+ * \details Invalid source addresses can be:
+ * - invalid messages from MOST: source_address = [0x0000..0x000F]
+ * - invalid messages from EHC: source_address != [0x0002, 0x0003]
+ * .
+ */
+#define MSG_ADDR_INIC 1U /*!< \brief The address of the local INIC */
+#define MSG_ADDR_EHC_CFG 2U /*!< \brief The address of the EHC configuration interface (ICM and RCM FIFO) */
+#define MSG_ADDR_EHC_APP 3U /*!< \brief The address of the EHC application interface (MCM FIFO) */
+
+#define MSG_LLRBC_DEFAULT 10U /*!< \brief The default LowLevelRetry BlockCount */
+#define MSG_LLRBC_MAX 100U/*!< \brief The maximum LowLevelRetry BlockCount */
+
+#define MSG_DEF_FBLOCK_ID 0xCCU /*! \brief Predefined FBlockID required to surround "new 16bit message id". */
+#define MSG_DEF_FUNC_ID_LSN 0xCU /*! \brief Predefined function id (least sign. nibble) required to surround "new 16bit message id". */
+#define MSG_DEF_OP_TYPE (UCS_OP_STATUS) /*! \brief Predefined OpType required to surround "new 16bit message id". */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Types */
+/*------------------------------------------------------------------------------------------------*/
+/* necessary forward declaration */
+struct CMessage_;
+/*! \brief Common message class which provides MOST style message addressing */
+typedef struct CMessage_ CMessage;
+
+/*! \brief Assignable function which is invoked as soon as transmission
+ * of the message object is finished.
+ * \param self The instance
+ * \param msg_ptr Reference to the message object
+ * \param status Transmission status
+ */
+typedef void (*Msg_TxStatusCb_t)(void *self, Msg_MostTel_t *tel_ptr, Ucs_MsgTxStatus_t status);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Macros */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Size in bytes of reserved message header */
+#define MSG_SIZE_RSVD_HEADER 24U
+/*! \brief Size in bytes of message payload */
+#define MSG_MAX_SIZE_PAYLOAD 45U
+/*! \brief Size in bytes of pre-allocated message buffer
+ * \details Size = 24(header) + 45(payload) + 3(stuffing) = 72 */
+#define MSG_SIZE_RSVD_BUFFER 72U
+
+/*------------------------------------------------------------------------------------------------*/
+/* Class CMessage */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Class CMessage
+ * \details Common internal message class which embeds the public message attributes
+ */
+struct CMessage_
+{
+ Msg_MostTel_t pb_msg; /*!< \brief Public part which defines the MOST telegram
+ * structure. This attribute must be the first
+ * element inside the message structure.
+ */
+ uint8_t rsvd_buffer[MSG_SIZE_RSVD_BUFFER]; /*!< \brief Reserved memory space */
+ Mem_IntBuffer_t rsvd_memory; /*!< \brief Reserved memory which is needed at least for the
+ * Port message header (24 bytes) */
+ Mem_IntBuffer_t ext_memory; /*!< \brief Possible user memory */
+
+ uint8_t *start_ptr; /*!< \brief Points to the start of the message buffer */
+ uint8_t header_curr_idx; /*!< \brief Index of the end of the current header */
+ uint8_t header_curr_sz; /*!< \brief Current size of header in bytes */
+ uint8_t header_rsvd_sz; /*!< \brief Reserved size of header in bytes */
+
+ void *pool_ptr; /*!< \brief Point to the pool the message is allocated from and released to */
+ void *lld_handle_ptr; /*!< \brief Possible reference to another message object */
+ CDlNode node; /*!< \brief Node for usage in a doubly linked list */
+
+ Msg_TxStatusCb_t tx_status_fptr; /*!< \brief Pointer to Tx status callback */
+ void *tx_status_inst; /*!< \brief Reference to instance which needs Tx status notification */
+
+ bool tx_active; /*!< \brief Is \c true if the object is occupied by the LLD, otherwise \c false */
+ bool tx_bypass; /*!< \brief Is \c true if a message was queued as bypass message */
+
+};
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Methods */
+/*------------------------------------------------------------------------------------------------*/
+extern void Msg_Ctor(CMessage *self);
+extern void Msg_Cleanup(CMessage *self);
+
+extern void Msg_ReserveHeader(CMessage *self, uint8_t header_sz);
+extern void Msg_PullHeader(CMessage *self, uint8_t header_sz);
+extern void Msg_PushHeader(CMessage *self, uint8_t header_sz);
+
+extern void Msg_NotifyTxStatus(CMessage *self, Ucs_MsgTxStatus_t status);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Properties */
+/*------------------------------------------------------------------------------------------------*/
+extern Msg_MostTel_t* Msg_GetMostTel(CMessage *self);
+
+extern uint8_t* Msg_GetHeader(CMessage *self);
+extern uint8_t Msg_GetHeaderSize(CMessage *self);
+extern Ucs_Mem_Buffer_t* Msg_GetMemTx(CMessage *self);
+
+extern void Msg_SetLldHandle(CMessage *self, void *handle);
+extern void *Msg_GetLldHandle(CMessage *self);
+extern void Msg_SetPoolReference(CMessage *self, void *pool_ptr);
+extern void *Msg_GetPoolReference(CMessage *self);
+
+extern CDlNode *Msg_GetNode(CMessage *self);
+
+extern void Msg_SetTxStatusHandler(CMessage *self, Msg_TxStatusCb_t callback_fptr, void *inst_ptr);
+extern void Msg_SetExtPayload(CMessage *self, uint8_t *payload_ptr, uint8_t payload_sz, void* mem_info_ptr);
+extern void Msg_SetTxActive(CMessage *self, bool active);
+extern bool Msg_IsTxActive(CMessage *self);
+extern void Msg_SetTxBypass(CMessage *self, bool bypass);
+extern bool Msg_IsTxBypass(CMessage *self);
+
+extern bool Msg_VerifyContent(CMessage *self);
+
+extern uint16_t Msg_GetAltMsgId(CMessage *self);
+extern void Msg_SetAltMsgId(CMessage *self, uint16_t alt_id);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_MESSAGE_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_message_pb.h b/ucs2-lib/inc/ucs_message_pb.h
new file mode 100644
index 0000000..53ec7fe
--- /dev/null
+++ b/ucs2-lib/inc/ucs_message_pb.h
@@ -0,0 +1,181 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Declaration of public message types
+ */
+
+#ifndef UCS_MESSAGE_PB_H
+#define UCS_MESSAGE_PB_H
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*!
+ * \addtogroup G_UCS_TRACE_TYPES
+ * @{
+ */
+/*------------------------------------------------------------------------------------------------*/
+/* Defines */
+/*------------------------------------------------------------------------------------------------*/
+#define UCS_ADDR_INTERNAL 0x0000U /* < \brief Internal transmission destination address
+ * \details Can be used for internal message transmission
+ * to avoid possible race conditions during
+ * recalculation of the own node address.
+ */
+#define UCS_ADDR_LOCAL_INIC 0x0001U /* < \brief Destination address of the local INIC */
+#define UCS_ADDR_BROADCAST_BLOCKING 0x03C8U /*!< \brief Blocking broadcast destination address */
+#define UCS_ADDR_BROADCAST_UNBLOCKING 0x03FFU /*!< \brief Unblocking broadcast destination address */
+#define UCS_ADDR_DEBUG 0x0FF0U /* < \brief Optional debug destination address */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Types */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Message transmission status for internal/debug use
+ */
+typedef enum Ucs_MsgTxStatus_
+{
+ UCS_MSG_STAT_OK = 0x00U, /*!< \brief Transmission succeeded */
+ UCS_MSG_STAT_ERROR_CFG_NO_RCVR = 0x01U, /*!< \brief No internal receiver exists */
+ UCS_MSG_STAT_ERROR_BF = 0x08U, /*!< \brief Buffer full */
+ UCS_MSG_STAT_ERROR_CRC = 0x09U, /*!< \brief CRC */
+ UCS_MSG_STAT_ERROR_ID = 0x0AU, /*!< \brief Corrupted identifiers */
+ UCS_MSG_STAT_ERROR_ACK = 0x0BU, /*!< \brief Corrupted PACK or CACK */
+ UCS_MSG_STAT_ERROR_TIMEOUT = 0x0CU, /*!< \brief TX timeout */
+ UCS_MSG_STAT_ERROR_FATAL_WT = 0x10U, /*!< \brief Wrong target */
+ UCS_MSG_STAT_ERROR_FATAL_OA = 0x11U, /*!< \brief Own node address */
+ UCS_MSG_STAT_ERROR_NA_TRANS = 0x18U, /*!< \brief Control channel was switched off and
+ * a pending transmission was canceled */
+ UCS_MSG_STAT_ERROR_NA_OFF = 0x19U, /*!< \brief Control channel not available */
+ UCS_MSG_STAT_ERROR_UNKNOWN = 0xFEU, /*!< \brief Unknown error status */
+ UCS_MSG_STAT_ERROR_SYNC = 0xFFU /*!< \brief Internal error which is notified if
+ * communication link with INIC is lost
+ */
+} Ucs_MsgTxStatus_t;
+
+/*! \brief Operation Types
+ */
+typedef enum Ucs_OpType_
+{
+ UCS_OP_SET = 0x0, /*!< \brief Operation Set (Property) */
+ UCS_OP_GET = 0x1, /*!< \brief Operation Get (Property) */
+ UCS_OP_SETGET = 0x2, /*!< \brief Operation SetGet (Property) */
+ UCS_OP_INC = 0x3, /*!< \brief Operation Increment (Property) */
+ UCS_OP_DEC = 0x4, /*!< \brief Operation Decrement (Property) */
+ UCS_OP_STATUS = 0xC, /*!< \brief Operation Status (Property) */
+
+ UCS_OP_START = 0x0, /*!< \brief Operation Start (Method) */
+ UCS_OP_ABORT = 0x1, /*!< \brief Operation Abort (Method) */
+ UCS_OP_STARTRESULT = 0x2, /*!< \brief Operation StartResult (Method) */
+ UCS_OP_PROCESSING = 0xB, /*!< \brief Operation Processing (Method) */
+ UCS_OP_RESULT = 0xC, /*!< \brief Operation Result (Method) */
+
+ UCS_OP_STARTACK = 0x8, /*!< \brief Operation StartAck (Method) */
+ UCS_OP_ABORTACK = 0x7, /*!< \brief Operation AbortAck (Method) */
+ UCS_OP_STARTRESULTACK = 0x6, /*!< \brief Operation StartResultAck (Method) */
+ UCS_OP_PROCESSINGACK = 0xA, /*!< \brief Operation ProcessingAck (Method) */
+ UCS_OP_RESULTACK = 0xD, /*!< \brief Operation ResultAck (Method) */
+
+ UCS_OP_GETINTERFACE = 0x5, /*!< \brief Operation GetInterface (Property/Method) */
+ UCS_OP_INTERFACE = 0xE, /*!< \brief Operation Interface (Property/Method) */
+ UCS_OP_ERROR = 0xF, /*!< \brief Operation Error (Property/Method) */
+ UCS_OP_ERRORACK = 0x9 /*!< \brief Operation ErrorAck (Property/Method) */
+
+} Ucs_OpType_t;
+
+/*! \brief MOST message id "FBlockID.InstID.FktID.OPType" */
+typedef struct Msg_MsgId_
+{
+ uint8_t fblock_id; /*!< \brief FBlockID */
+ uint8_t instance_id; /*!< \brief InstID */
+ uint16_t function_id; /*!< \brief FktID */
+ Ucs_OpType_t op_type; /*!< \brief Operation type */
+
+} Msg_MsgId_t;
+
+/*! \brief Retry options */
+typedef struct Msg_TxOptions_
+{
+ uint8_t llrbc; /*!< \brief Low-level retry block count performed by the INIC.
+ * \details The LLRBC are applicable for MCMs. ICMs don't care.
+ * Values exceeding the maximum value are be corrected
+ * by the INIC silently to the maximum value.
+ * Valid range: 0..100
+ */
+ uint8_t cancel_id; /*!< \brief Either "0" or label for a group of dependent telegrams.
+ * \details The value determines the required action if the transmission
+ * has failed.
+ * Valid range:
+ * - 0: Only the failed telegram will is removed from the FIFO.
+ * - 1..255: All telegrams with the same cancel_id as a failed telegram
+ * will be removed from the FIFO queue.
+ */
+
+} Msg_TxOptions_t;
+
+/*! \brief Most telegram data */
+typedef struct Msg_TelData_
+{
+ uint8_t tel_id; /*!< \brief Telegram id which indicates the telegram as part of
+ * segmented message or as single transfer. */
+ uint8_t tel_len; /*!< \brief The telegram length.
+ * I.e. the number of telegram bytes starting at address
+ * which is referred in \c tel_data_ptr. The INIC will add
+ * \em one in case of \"tel_id = 1..3\".
+ */
+ uint8_t tel_cnt; /*!< \brief The message count indexing the telegram within a segmented
+ * message.
+ * The respective tel_cnt is moved by the INIC to \"DATA[0]\"
+ * in case of \"tel_id = 1..3\". Otherwise it is ignored.
+ */
+ uint8_t *tel_data_ptr; /*!< \brief Points to telegram data. */
+
+} Msg_TelData_t;
+
+/*! \brief Common MOST message */
+typedef struct Msg_MostTel_
+{
+ uint16_t destination_addr; /*!< \brief MOST destination address */
+ uint16_t source_addr; /*!< \brief MOST source address */
+
+ Msg_MsgId_t id; /*!< \brief MOST message id "FBlockID.InstID.FktID.OPType" */
+ Msg_TxOptions_t opts; /*!< \brief Message transmission options */
+ Msg_TelData_t tel; /*!< \brief MOST telegram data */
+ void *info_ptr; /*!< \brief Possible reference to additional data */
+
+} Msg_MostTel_t;
+
+/*! @} */
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_MESSAGE_PB_H */
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_mgr.h b/ucs2-lib/inc/ucs_mgr.h
new file mode 100644
index 0000000..719b622
--- /dev/null
+++ b/ucs2-lib/inc/ucs_mgr.h
@@ -0,0 +1,121 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Internal header file of the CManager class
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_MGR
+ * @{
+ */
+
+#ifndef UCS_MGR_H
+#define UCS_MGR_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_fsm.h"
+#include "ucs_inic.h"
+#include "ucs_net.h"
+#include "ucs_base.h"
+#include "ucs_jobs.h"
+#include "ucs_nodedis.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal constants */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief The default value of the desired packet bandwidth for startup command */
+#define MGR_PACKET_BW_DEFAULT 52U
+
+/*------------------------------------------------------------------------------------------------*/
+/* Types */
+/*------------------------------------------------------------------------------------------------*/
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Class */
+/*------------------------------------------------------------------------------------------------*/
+
+/*! \brief Manager Class
+ * \details Implements the UNICENS Manager State Machine
+ */
+typedef struct CManager_
+{
+ bool listening; /*!< \brief Listening is active */
+ CFsm fsm; /*!< \brief State machine object */
+ CJobService job_service;
+ CSingleObserver job_q_obs;
+ CJobQ *current_q_ptr;
+
+ CJobQ job_q_startup;
+ CJobQ job_q_force_startup;
+ /* CJobQ job_q_shutdown; */
+ CJob job_startup;
+ CJob job_leave_forced_na;
+ /* CJob job_shutdown; */
+
+ CJob *list_startup[2];
+ CJob *list_force_startup[3];
+ /* CJob *list_shutdown[2]; */
+
+ CMaskedObserver event_observer; /*!< \brief Observes init complete event */
+ CMaskedObserver nwstatus_mobs; /*!< \brief Observe network status */
+
+ uint16_t packet_bw; /*!< \brief The desired packet bandwidth */
+ CBase *base_ptr; /*!< \brief Reference to base services */
+ CInic *inic_ptr; /*!< \brief Reference to class CInic */
+ CNetworkManagement *net_ptr; /*!< \brief Reference to network management */
+ CNodeDiscovery *nd_ptr; /*!< \brief Reference to node discovery */
+
+ CSingleObserver startup_obs; /*!< \brief Startup result callback */
+ /* CSingleObserver shutdown_obs; */ /*!< \brief Shutdown result callback */
+ CSingleObserver force_na_obs; /*!< \brief ForceNA result callback */
+ bool initial; /*!< \brief Is \c true for the initial network status "available" */
+
+} CManager;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Methods */
+/*------------------------------------------------------------------------------------------------*/
+extern void Mgr_Ctor(CManager *self, CBase *base_ptr, CInic *inic_ptr, CNetworkManagement *net_ptr, CNodeDiscovery *nd_ptr, uint16_t packet_bw);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* UCS_MGR_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_misc.h b/ucs2-lib/inc/ucs_misc.h
new file mode 100644
index 0000000..fb383cb
--- /dev/null
+++ b/ucs2-lib/inc/ucs_misc.h
@@ -0,0 +1,153 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Internal header file of the library module which contains miscellaneous helper functions.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_MISC
+ * @{
+ */
+
+#ifndef UCS_MISC_H
+#define UCS_MISC_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_rules.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Standard library functions */
+/*------------------------------------------------------------------------------------------------*/
+/* parasoft suppress item MISRA2004-19_7 reason "function-like macros allowed for stdlib and helper functions" */
+
+/*! \def MISC_MEM_SET
+ * \brief Macro to encapsulate memset function
+ * \details By defining the macro UCS_MEM_SET the application is able to specify its own memset
+ * function. If the macro is not defined UNICENS internal memset function
+ * Misc_MemSet() is used.
+ * \param dest Pointer to the block of memory to fill
+ * \param value Value to be set
+ * \param size Number of bytes to be set to the value.
+ */
+#ifdef UCS_MEM_SET
+#define MISC_MEM_SET(dest, value, size) (UCS_MEM_SET((dest), (value), (size)))
+#else
+#define MISC_MEM_SET(dest, value, size) (Misc_MemSet((dest), (value), (size)))
+#endif
+
+/*! \def MISC_MEM_CPY
+ * \brief Macro to encapsulate memcpy function
+ * \details By defining the macro UCS_MEM_CPY the application is able to specify its own memcpy
+ * function. If the macro is not defined UNICENS internal memcpy function
+ * Misc_MemCpy() is used.
+ * \param dest Pointer to the destination array where the content is to be copied
+ * \param src Pointer to the source of data to be copied
+ * \param size Number of bytes to copy
+ */
+#ifdef UCS_MEM_CPY
+#define MISC_MEM_CPY(dest, src, size) (UCS_MEM_CPY((dest), (src), (size)))
+#else
+#define MISC_MEM_CPY(dest, src, size) (Misc_MemCpy((dest), (src), (size)))
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Helper Macros */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Macro to avoid compiler warning "Unused Parameter" */
+#define MISC_UNUSED(p) ((p) = (p))
+
+/*! \brief High Byte of 16-bit value */
+#define MISC_HB(value) ((uint8_t)((uint16_t)(value) >> 8))
+
+/*! \brief Low Byte of 16-bit value */
+#define MISC_LB(value) ((uint8_t)((uint16_t)(value) & (uint16_t)0xFF))
+
+/*! \brief Big-Endian to target 16 bit */
+#define MISC_DECODE_WORD(w_ptr, msb_ptr) (*(w_ptr) = \
+ (uint16_t)((uint16_t)((uint16_t)(msb_ptr)[0] << 8) | (uint16_t)(msb_ptr)[1]))
+
+/*! \brief Big-Endian to target 32 bit */
+#define MISC_DECODE_DWORD(dw_ptr, msb_ptr) (*(dw_ptr) = \
+ (uint32_t)((uint32_t)((uint32_t)(msb_ptr)[0] << 24) | \
+ (uint32_t)((uint32_t)(msb_ptr)[1] << 16) | \
+ (uint32_t)((uint32_t)(msb_ptr)[2] << 8) | (uint32_t)(msb_ptr)[3]))
+
+/*! \brief Checks if a value is inside a certain range */
+#define MISC_IS_VALUE_IN_RANGE(val, min, max) ((((val) >= (min)) && ((val) <= (max))) ? true : false)
+
+/*! \brief Checks if the given size is a multiple of 4. If not, the given size is corrected
+ * by that macro.
+ */
+#define MISC_QUADLET_ALGINED_SIZE(size) (((((size)+4U)-1U)/4U)*4U)
+
+/* parasoft unsuppress item MISRA2004-19_7 reason "function-like macros allowed for stdlib and helper functions" */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Prototypes */
+/*------------------------------------------------------------------------------------------------*/
+extern void Misc_MemSet(void *dst_ptr, int32_t value, uint32_t size);
+extern void Misc_MemCpy(void *dst_ptr, void *src_ptr, uint32_t size);
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*!
+ * \def UCS_MEM_SET
+ * \brief Customer assignment of memset function
+ * \details By defining the macro UCS_MEM_SET the application is able to specify its own memset
+ * function to be used by UNICENS. If the macro is not set will use byte wise write operations.
+ * \ingroup G_UCS_MISC_CFG
+ */
+#ifndef UCS_MEM_SET
+#define UCS_MEM_SET
+#endif
+
+/*!
+ * \def UCS_MEM_CPY
+ * \brief Customer assignment of memcpy function
+ * \details By defining the macro UCS_MEM_CPY the application is able to specify its own memcpy
+ * function to be used by UNICENS. If the macro is not set UNICENS will use byte wise copy operations.
+ * \ingroup G_UCS_MISC_CFG
+ */
+#ifndef UCS_MEM_CPY
+#define UCS_MEM_CPY
+#endif
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* UCS_MISC_H */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_net.h b/ucs2-lib/inc/ucs_net.h
new file mode 100644
index 0000000..4e53c0b
--- /dev/null
+++ b/ucs2-lib/inc/ucs_net.h
@@ -0,0 +1,179 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Internal header file of the Network Management.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_NET
+ * @{
+ */
+
+#ifndef UCS_NET_H
+#define UCS_NET_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_base.h"
+#include "ucs_inic.h"
+#include "ucs_ret_pb.h"
+#include "ucs_obs.h"
+#include "ucs_fsm.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Enumerations */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Result codes of function Net_IsOwnAddress() */
+typedef enum Net_IsOwnAddrResult_
+{
+ NET_IS_OWN_ADDR_NODE, /*!< \brief Is own node position address or own logical node address */
+ NET_IS_OWN_ADDR_GROUP, /*!< \brief Is own group address */
+ NET_IS_OWN_ADDR_NONE /*!< \brief Is foreign address */
+
+} Net_IsOwnAddrResult_t;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Initialization structure of the attach service. */
+typedef struct Net_InitData_
+{
+ CBase *base_ptr; /*!< \brief Reference to base instance */
+ CInic *inic_ptr; /*!< \brief Reference to INIC instance */
+
+} Net_InitData_t;
+
+/*! \brief Parameter structure for MOST Network Status */
+typedef struct Net_NetworkStatusParam_
+{
+ /*! \brief Indicates if parameters have been changed since last update */
+ uint16_t change_mask;
+ /*! \brief Indicates if the MOST network is available and ready for control/packet
+ data transmission */
+ Ucs_Network_Availability_t availability;
+ /*! \brief Indicates the sub state to parameter Availability */
+ Ucs_Network_AvailInfo_t avail_info;
+ /*! \brief Indicates the transition cause of the MOST network going from Available to
+ NotAvailable or vice versa */
+ Ucs_Network_AvailTransCause_t avail_trans_cause;
+ /*! \brief Contains events relating to the functionality for the MOST Network Interface */
+ uint16_t events;
+ /*! \brief Current size of packet bandwidth */
+ uint16_t packet_bw;
+ /*! \brief Current node address of the device */
+ uint16_t node_address;
+ /*! \brief Node position of the device */
+ uint8_t node_position;
+ /*! \brief Node position of last device in the ring */
+ uint8_t max_position;
+
+} Net_NetworkStatusParam_t;
+
+/*! \brief Structure holds the parameters of property INIC.MOSTNetworkStatus */
+typedef struct Net_NetworkStatus_
+{
+ /*! \brief Parameters of MOST Network Status */
+ Net_NetworkStatusParam_t param;
+ /*! \brief Observe MOST Network status in INIC module */
+ CObserver observer;
+ /*! \brief Subject to notify MOST Network Status the first time a observer has been added */
+ CSubject pre_subject;
+ /*! \brief Subject to notify MOST Network Status */
+ CSubject subject;
+
+} Net_NetworkStatus_t;
+
+/*! \brief Parameter structure for MOST Network Configuration */
+typedef struct Net_NetworkConfigParam_
+{
+ /*! \brief Indicates if parameters have been changed since last update */
+ uint16_t change_mask;
+ /*! \brief Current node address of the device */
+ uint16_t node_address;
+ /*! \brief Current group address of the device */
+ uint16_t group_address;
+ /*! \brief Low-level retry block count */
+ uint8_t llrbc;
+
+} Net_NetworkConfigParam_t;
+
+/*! \brief Structure holds the parameters of property INIC.MOSTNetworkConfiguration */
+typedef struct Net_NetworkConfiguration_
+{
+ /*! \brief Parameters of MOST Network Configuration */
+ Net_NetworkConfigParam_t param;
+ /*! \brief Observe MOST Network Configuration in INIC module */
+ CObserver observer;
+ /*! \brief Subject to notify MOST Network Configuration the first time a observer has been added */
+ CSubject pre_subject;
+ /*! \brief Subject to notify MOST Network Configuration */
+ CSubject subject;
+
+} Net_NetworkConfiguration_t;
+
+/*! \brief Class structure of the Network Management. */
+typedef struct CNetworkManagement_
+{
+ /*! \brief Parameters of property INIC.MOSTNetworkStatus */
+ Net_NetworkStatus_t network_status;
+ /*! \brief Parameters of property INIC.MOSTNetworkConfig. */
+ Net_NetworkConfiguration_t network_configuration;
+ /*! \brief Reference to INIC instance */
+ CInic *inic_ptr;
+ /*! \brief Reference to base instance */
+ CBase *base_ptr;
+ /*! \brief Service instance for the scheduler */
+ CService net_srv;
+
+} CNetworkManagement;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Prototypes of class CNetworkManagement */
+/*------------------------------------------------------------------------------------------------*/
+extern void Net_Ctor(CNetworkManagement *self, Net_InitData_t *init_ptr);
+extern void Net_AddObserverNetworkStatus(CNetworkManagement *self, CMaskedObserver *obs_ptr);
+extern void Net_DelObserverNetworkStatus(CNetworkManagement *self, CMaskedObserver *obs_ptr);
+extern void Net_AddObserverNetworkConfig(CNetworkManagement *self, CMaskedObserver *obs_ptr);
+extern void Net_DelObserverNetworkConfig(CNetworkManagement *self, CMaskedObserver *obs_ptr);
+extern Net_IsOwnAddrResult_t Net_IsOwnAddress(CNetworkManagement *self, uint16_t address);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_NET_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_nodedis.h b/ucs2-lib/inc/ucs_nodedis.h
new file mode 100644
index 0000000..bd4b676
--- /dev/null
+++ b/ucs2-lib/inc/ucs_nodedis.h
@@ -0,0 +1,197 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Internal header file of class CNodeDiscovery.
+ *
+ * \cond UCS_INTERNAL_DOC
+ */
+#ifndef UCS_NODEDIS_H
+#define UCS_NODEDIS_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_exc.h"
+
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+
+#define ND_NUM_NODES 40U /*!< \brief max number of nodes */
+
+
+
+/*! \brief Function signature of node evaluation callback used by Node Discovery service.
+ *
+ * The Node Discovery service announces the signature of each node it has found to the
+ * application via the evaluation function. In this function the application
+ * decides how the Node Discovery service shall proceed with the node.
+ * The application maintains two lists:
+ *
+ * <dl>
+ * <dt> *set_list* </dt>
+ * <dd> Contains the signatures of the nodes the system shall contain
+ *
+ * <dt> *device_list* </dt>
+ * <dd> Contains the signatures of the nodes detected in the system
+ * </dl>
+ *
+ * The evaluation has to follow these rules:
+ * - If the node is not part of the *set_list*, it is regarded as unknown (\ref UCS_ND_CHK_UNKNOWN)
+ * and will be ignored.
+ * - If the node is part of the *set_list* and is not yet in the *device_list*, the Node Discovery
+ * Service shall try to add the node to network (\ref UCS_ND_CHK_WELCOME).
+ * - If the node is already part of the *device_list*, there are two possibilities: the node in the
+ * *device_list* experienced a reset or there are two nodes with the same signature. Evaluation
+ * result is \ref UCS_ND_CHK_UNIQUE. The Node Discovery service will perform further tests.
+ *
+ * \param self The instance
+ * \param signature Signature of the respective node
+ * \returns UCS_ND_CHK_WELCOME Node is ok, try to add it to the network.
+ * \returns UCS_ND_CHK_UNIQUE Test if this node is unique.
+ * \returns UCS_ND_CHK_UNKNOWN Node is unknown, no further action.
+ * \ingroup G_UCS_NODE_DISCOVERY
+ */
+typedef Ucs_Nd_CheckResult_t (*Nd_EvalCb_t)(void *self, Ucs_Signature_t *signature);
+
+/*! \brief Function signature of result callback used by Node Discovery service.
+ *
+ * The Node Discovery service reports the result of each node and some system events by
+ * this callback function.
+ *
+ * \note The parameter <b>signature</b> will be NULL, if parameter <b>code</b> is
+ * \ref UCS_ND_RES_STOPPED, \ref UCS_ND_RES_NETOFF or \ref UCS_ND_RES_ERROR.
+ *
+ * \param self The instance
+ * \param code Result code
+ * \param signature Signature of the respective node
+ * \ingroup G_UCS_NODE_DISCOVERY
+ */
+typedef void (*Nd_ReportCb_t)(void *self, Ucs_Nd_ResCode_t code, Ucs_Signature_t *signature);
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Structure decribing a node. */
+typedef struct Nd_Node_
+{
+ /*bool available; */ /*!< \brief node available? *//*! i todo RWI: */
+ /*uint16_t node_address; */ /*!< \brief node address used for welcome command */
+ /*uint8_t result; */ /*!< \brief result parameter of Welcome.Result message */
+ /*uint8_t version; */ /*!< \brief version parameter of Hello and Welcome messages */
+ Ucs_Signature_t signature; /*!< \brief signature of the node */
+ CDlNode node; /*!< \brief enables listing */
+
+} Nd_Node;
+
+
+/*! \brief Initialization structure of the Node Discovery service. */
+typedef struct Nd_InitData_
+{
+ void *inst_ptr; /*!< \brief The instance used when invoking the callback functions */
+ Nd_ReportCb_t report_fptr; /*!< \brief Report callback function */
+ Nd_EvalCb_t eval_fptr; /*!< \brief Evaluation callback function */
+
+} Nd_InitData_t;
+
+
+
+
+/*! \brief Structure of class CNodeDiscovery. */
+typedef struct CNodeDiscovery_
+{
+ CInic *inic; /*!< \brief Reference to CInic object */
+ CExc *exc; /*!< \brief Reference to CExc object */
+ CBase *base; /*!< \brief Reference to CBase object */
+
+ bool running; /*!< \brief Indicates th Node Discovery is running. */
+ CSingleObserver nd_hello; /*!< \brief Observes the Hello result */
+ CSingleObserver nd_welcome; /*!< \brief Observes the Welcome result */
+ CSingleObserver nd_signature; /*!< \brief Observes the Signature result */
+ CSingleObserver nd_init; /*!< \brief Observes the DeviceInit result */
+
+ CMaskedObserver nd_terminate; /*!< \brief Observes events leading to termination */
+
+ CObserver nd_nwstatus; /*!< \brief Observes the MOST Network status */
+
+ CFsm fsm; /*!< \brief Node Discovery state machine */
+ CService service; /*!< \brief Service instance for the scheduler */
+
+ CTimer timer; /*!< \brief timer for monitoring messages */
+
+
+ CDlList new_list; /*!< \brief list of detected nodes */
+ CDlList unused_list; /*!< \brief list of unused node elements */
+ Nd_Node nodes[ND_NUM_NODES]; /*!< \brief device nodes */
+ Ucs_Signature_t current_sig; /*!< \brief node which is checked currently */
+
+ Exc_WelcomeResult_t welcome_result; /*!< \brief buffer for welcome result */
+ Exc_SignatureStatus_t signature_status; /*!< \brief buffer for signature status */
+
+ bool stop_request; /*!< \brief indicates a request to stop node discovery */
+ bool hello_mpr_request; /*!< \brief indicates an Hello.Get request due to an MPR event*/
+ bool hello_neton_request; /*!< \brief indicates an Hello.Get request due to an NetOn event*/
+ bool neton; /*!< \brief indicates Network availability */
+
+ void *cb_inst_ptr; /*!< \brief Instance required for callback functions */
+ Nd_ReportCb_t report_fptr; /*!< \brief Report callback function */
+ Nd_EvalCb_t eval_fptr; /*!< \brief Node evaluation callback function */
+
+}CNodeDiscovery;
+
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Prototypes */
+/*------------------------------------------------------------------------------------------------*/
+void Nd_Ctor(CNodeDiscovery *self,
+ CInic *inic,
+ CBase *base,
+ CExc *exc,
+ Nd_InitData_t *init_ptr);
+
+
+extern Ucs_Return_t Nd_Start(CNodeDiscovery *self);
+extern Ucs_Return_t Nd_Stop(CNodeDiscovery *self);
+extern void Nd_InitAll(CNodeDiscovery *self);
+
+
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* UCS_NODEDIS_H */
+/*!
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_nodeobserver.h b/ucs2-lib/inc/ucs_nodeobserver.h
new file mode 100644
index 0000000..30ec5cd
--- /dev/null
+++ b/ucs2-lib/inc/ucs_nodeobserver.h
@@ -0,0 +1,101 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Internal header file of the CNodeObserver class
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_NODEOBSERVER
+ * @{
+ */
+
+#ifndef UCS_NODEOBSERVER_H
+#define UCS_NODEOBSERVER_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_base.h"
+#include "ucs_nodedis.h"
+#include "ucs_rtm.h"
+#include "ucs_nodeobserver_pb.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal constants */
+/*------------------------------------------------------------------------------------------------*/
+
+/*------------------------------------------------------------------------------------------------*/
+/* Types */
+/*------------------------------------------------------------------------------------------------*/
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Class */
+/*------------------------------------------------------------------------------------------------*/
+
+/*! \brief CNodeObserver Class
+ * \details Implements the NodeObserver
+ */
+typedef struct CNodeObserver_
+{
+ CBase *base_ptr; /*!< \brief Reference to base services */
+ CNodeDiscovery *nd_ptr; /*!< \brief Reference to node discovery */
+ CRouteManagement *rtm_ptr; /*!< \brief Reference to route management */
+ Ucs_Mgr_InitData_t init_data; /*!< \brief Initialization data describing nodes and routes*/
+ CMaskedObserver event_observer; /*!< \brief Observes init complete event */
+
+ Ucs_Signature_t eval_signature;
+ Ucs_Nd_CheckResult_t eval_action;
+ Ucs_Rm_Node_t *eval_node_ptr;
+ CTimer wakeup_timer; /*!< \brief Timer wakes up processing, sets current
+ * node available and restarts NodeDiscovery
+ */
+
+} CNodeObserver;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Methods */
+/*------------------------------------------------------------------------------------------------*/
+extern void Nobs_Ctor(CNodeObserver *self, CBase *base_ptr, CNodeDiscovery *nd_ptr, CRouteManagement *rtm_ptr, Ucs_Mgr_InitData_t *init_ptr);
+extern Ucs_Nd_CheckResult_t Nobs_OnNdEvaluate(void *self, Ucs_Signature_t *signature_ptr);
+extern void Nobs_OnNdReport(void *self, Ucs_Nd_ResCode_t code, Ucs_Signature_t *signature_ptr);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* UCS_NODEOBSERVER_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_nodeobserver_pb.h b/ucs2-lib/inc/ucs_nodeobserver_pb.h
new file mode 100644
index 0000000..a76e1ee
--- /dev/null
+++ b/ucs2-lib/inc/ucs_nodeobserver_pb.h
@@ -0,0 +1,105 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Public header file of the CNodeObserver class
+ */
+/*!
+ * \addtogroup G_UCS_MGR
+ * @{
+ */
+
+#ifndef UCS_NODEOBSERVER_PB_H
+#define UCS_NODEOBSERVER_PB_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_rules.h"
+#include "ucs_rm_pb.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*! \brief Manager report codes */
+typedef enum Ucs_MgrReport_
+{
+ UCS_MGR_REP_IGNORED_UNKNOWN = 0, /*!< \brief A discovered node is ignored due to a wrong signature,
+ * a missing entry in the \ref Ucs_Mgr_InitData_t "nodes_list_ptr",
+ * or since the desired node address is not within the following range:
+ * 0x200..0x2FF, 0x500..0xEFF.
+ */
+ UCS_MGR_REP_IGNORED_DUPLICATE = 1, /*!< \brief A discovered node is ignored due since it is a duplicate
+ * of an alredy welcomed node.
+ */
+ UCS_MGR_REP_AVAILABLE = 2, /*!< \brief A discovered node was successfully "welcomed"
+ * in the network.
+ */
+ UCS_MGR_REP_NOT_AVAILABLE = 3 /*!< \brief A previously welcomed node became invalid and is
+ * no longer accessible in the network.
+ */
+} Ucs_MgrReport_t;
+
+/*! \brief Optional callback function that reports events on ignored, welcomed and lost nodes.
+ * \param code Report code
+ * \param node_address The desired node_address of the node which is defined in it's signature.
+ * \param node_ptr Reference to the node object which is part of the \ref Ucs_Mgr_InitData_t "nodes_list_ptr".
+ * The reference is \c NULL if \c code is \c UCS_MGR_REP_IGNORED_UNKNOWN or
+ * \c UCS_MGR_REP_IGNORED_DUPLICATE.
+ * \param user_ptr User reference provided in \ref Ucs_InitData_t "Ucs_InitData_t::user_ptr".
+ */
+typedef void (*Ucs_MgrReportCb_t)(Ucs_MgrReport_t code, uint16_t node_address, Ucs_Rm_Node_t *node_ptr, void *user_ptr);
+
+/*! \brief The initialization data of the Manager */
+typedef struct Ucs_Mgr_InitData_
+{
+ bool enabled; /*!< \brief If set to \c false the application must
+ * handle network startup, node discovery and
+ * rooting by hand.
+ */
+ uint16_t packet_bw; /*!< \brief The desired packet bandwidth.\mns_name_inic{PacketBW} */
+
+ Ucs_Rm_Route_t *routes_list_ptr; /*!< \brief Reference to a list of routes */
+ uint16_t routes_list_size; /*!< \brief Number of routes in the list */
+
+ Ucs_Rm_Node_t *nodes_list_ptr; /*!< \brief Reference to the list of nodes */
+ uint16_t nodes_list_size; /*!< \brief Number of nodes in the list */
+
+ Ucs_MgrReportCb_t report_fptr; /*!< \brief Optional callback function notifying node events */
+
+} Ucs_Mgr_InitData_t;
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* ifndef UCS_NODEOBSERVER_PB_H */
+
+/*! @} */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_nsm.h b/ucs2-lib/inc/ucs_nsm.h
new file mode 100644
index 0000000..7c2be23
--- /dev/null
+++ b/ucs2-lib/inc/ucs_nsm.h
@@ -0,0 +1,200 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Internal header file of the Node Scripting Management.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_NSM
+ * @{
+ */
+#ifndef UCS_NSM_H
+#define UCS_NSM_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_base.h"
+#include "ucs_ret_pb.h"
+#include "ucs_rsm.h"
+#include "ucs_nsm_pb.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Enumerators */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief This enumerator specifies the kind of result - Target or Transmission. */
+typedef enum Ns_ResultType_
+{
+ /*!< \brief Specifies the result of the scripting from target device (typically INIC function-specific error) */
+ NS_RESULT_TYPE_TGT_SCRIPT = 0x00U,
+ /*!< \brief Specifies the result of the remote synchronization from target device (typically INIC function-specific error) */
+ NS_RESULT_TYPE_TGT_SYNC = 0x01U,
+ /*!< \brief Specifies the transmission error information that occurred on the MOST network. */
+ NS_RESULT_TYPE_TX = 0x02U
+
+} Ns_ResultType_t;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Detailed information used for I2C results. */
+typedef struct Nsm_ResultDetails_
+{
+ /*! \brief Specifies the type of the current asynchronous result.
+ * \details The following briefly describes the different types of results available:
+ * - \b NS_RESULT_TYPE_TGT: target results, typically INIC function-specific error found on target device. \n Refer to \em inic_result to get the detailed information.
+ * - \b NS_RESULT_TYPE_TX: transmission results, typically transmission error on the MOST network. \n Refer to \em tx_result to get the transmission information.
+ */
+ Ns_ResultType_t result_type;
+ /*! \brief Holds the status of the transmission. */
+ Ucs_MsgTxStatus_t tx_result;
+ /*! \brief Holds the results of the target device. */
+ Ucs_StdResult_t inic_result;
+
+} Nsm_ResultDetails_t;
+
+/*! \brief Stores the NodeScript result for internal use. */
+typedef struct Nsm_Result_
+{
+ /*! \brief Result code. */
+ Ucs_Ns_ResultCode_t code;
+ /*! \brief Detailed information on the returned result. */
+ Nsm_ResultDetails_t details;
+
+} Nsm_Result_t;
+
+/*! \brief Stores data required by NSM during initialization. */
+typedef struct Nsm_InitData_
+{
+ CBase *base_ptr; /*!< \brief Reference to base instance */
+ CTransceiver * rcm_ptr; /*!< \brief Reference to RCM transceiver instance */
+ CRemoteSyncManagement * rsm_ptr; /*!< \brief Reference to RSM instance */
+
+} Nsm_InitData_t;
+
+/*! \brief Structure holds parameters for API locking */
+typedef struct Script_ApiLock_
+{
+ /*! \brief Flag to lock the API */
+ bool api;
+ /*! \brief API locking instance for Scripting function */
+ CApiLocking rcm_api;
+ /*! \brief Observer used for locking timeouts for Scripting function */
+ CSingleObserver observer;
+
+} Script_ApiLock_t;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Type definitions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Function signature used for the results of the Scripting Manager.
+ * \param user_ptr Reference to the called user instance.
+ * \param result Result of the scripting operation.
+ */
+typedef void (*Nsm_ResultCb_t)(void * user_ptr, Nsm_Result_t result);
+
+/*! \brief Function signature used for the results of the Scripting Manager.
+ * \param tel_ptr Reference to the message object.
+ * \param user_ptr Reference to the user argument.
+ * \return Returns \c true to discard the message and free it to the pool (no-pass). Otherwise, returns
+ * \c false (pass).
+ */
+typedef bool (*Nsm_RxFilterCb_t)(Msg_MostTel_t *tel_ptr, void *user_ptr);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Class structure of the Node Scripting Management. */
+typedef struct CNodeScriptManagement_
+{
+ /*!< \brief Reference to a base instance */
+ CBase *base_ptr;
+ /*!< \brief Reference to RCM instance */
+ CTransceiver * rcm_ptr;
+ /*!< \brief Reference to RSM instance */
+ CRemoteSyncManagement * rsm_ptr;
+ /*!< \brief Reference to the timer management */
+ CTimerManagement * tm_ptr;
+ /*!< \brief Timer for pausing script */
+ CTimer script_pause;
+ /*!< \brief Service instance for the scheduler */
+ CService nsm_srv;
+ /*!< \brief Observer used to monitor UCS initialization result */
+ CMaskedObserver ucsinit_observer;
+ /*!< \brief Observer used to monitor UCS termination event */
+ CMaskedObserver ucstermination_observer;
+ /*!< \brief Flag to lock the API */
+ Script_ApiLock_t lock;
+ /*!< \brief Current reference to the script table */
+ Ucs_Ns_Script_t * curr_sript_ptr;
+ /*!< \brief Current result for internal use */
+ Nsm_Result_t curr_internal_result;
+ /*!< \brief Current script size */
+ uint8_t curr_sript_size;
+ /*!< \brief Current script pause */
+ uint16_t curr_pause;
+ /*!< \brief Flag to determine whether the private api is used or not */
+ bool is_private_api_used;
+ /*!< \brief Reference to the user instance */
+ void * curr_user_ptr;
+ /*!< \brief RX filter callback function */
+ Nsm_RxFilterCb_t curr_rxfilter_fptr;
+ /*!< \brief Private result callback function pointer for current script */
+ Nsm_ResultCb_t curr_pv_result_fptr;
+ /*!< \brief Current reference to the Node used in public API */
+ Ucs_Rm_Node_t * curr_node_ptr;
+ /*!< \brief Public result callback function pointer for current script */
+ Ucs_Ns_ResultCb_t curr_pb_result_fptr;
+ /*!< \brief Target address of the device to be looked for */
+ uint16_t target_address;
+
+} CNodeScriptManagement;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Prototypes of class CRemoteSyncManagement */
+/*------------------------------------------------------------------------------------------------*/
+extern void Nsm_Ctor(CNodeScriptManagement * self, Nsm_InitData_t * init_ptr);
+extern Ucs_Return_t Nsm_Run_Pb(CNodeScriptManagement * self, Ucs_Rm_Node_t * node_ptr, Ucs_Ns_ResultCb_t pb_result_fptr);
+extern Ucs_Return_t Nsm_Run_Pv(CNodeScriptManagement * self, Ucs_Ns_Script_t * script, uint8_t size, void * user_ptr, Nsm_RxFilterCb_t rx_filter_fptr, Nsm_ResultCb_t result_fptr);
+extern bool Nsm_OnRcmRxFilter(void *self, Msg_MostTel_t *tel_ptr);
+extern bool Nsm_IsLocked(CNodeScriptManagement * self);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_NSM_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_nsm_pb.h b/ucs2-lib/inc/ucs_nsm_pb.h
new file mode 100644
index 0000000..9062360
--- /dev/null
+++ b/ucs2-lib/inc/ucs_nsm_pb.h
@@ -0,0 +1,136 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Public header file of the Node Script Management.
+ */
+
+#ifndef UCS_NSM_PB_H
+#define UCS_NSM_PB_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_rules.h"
+#include "ucs_rm_pv.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Enumerators */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Result codes of the Node Script Management.
+ * \ingroup G_UCS_SCRIPTING
+ */
+typedef enum Ucs_Ns_ResultCode_
+{
+ UCS_NS_RES_SUCCESS = 0x00U, /*!< \brief Transmission of script(s) was successful. */
+ UCS_NS_RES_ERROR = 0x01U /*!< \brief Transmission of script(s) failed. */
+
+} Ucs_Ns_ResultCode_t;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Structure of a ConfigMsg used in Node-Script.
+ * \ingroup G_UCS_SCRIPTING
+ */
+typedef struct Ucs_Ns_ConfigMsg_
+{
+ /*! \brief FBlockId of the config msg. */
+ uint8_t FBlockId;
+ /*! \brief InstId of the config msg. */
+ uint8_t InstId;
+ /*! \brief FunktId of the config msg. */
+ uint16_t FunktId;
+ /*! \brief OpCode of the config msg. */
+ uint8_t OpCode;
+ /*! \brief Data length. */
+ uint8_t DataLen;
+ /*! \brief Reference to the Data */
+ uint8_t * DataPtr;
+
+} Ucs_Ns_ConfigMsg_t;
+
+/*! \brief Structure of a node-script used to configure a remote node.
+ * \attention The Node Scripting module is designed and intended for the use of \b I2C and \b GPIO commands only. That is, using the Scripting for any other FBlock INIC commands
+ * (for example MOST, MediaLB, USB, Streaming, Connections, etc.) is expressly \b prohibited.
+ * \ingroup G_UCS_SCRIPTING
+ */
+typedef struct Ucs_Ns_Script_
+{
+ /*! \brief Specifies the pause which shall be set before sending
+ * the configuration message.
+ */
+ uint16_t pause;
+ /*! \brief Command to be transmitted. */
+ Ucs_Ns_ConfigMsg_t * send_cmd;
+ /*! \brief Expected result. */
+ Ucs_Ns_ConfigMsg_t * exp_result;
+
+} Ucs_Ns_Script_t;
+
+/*! \brief Configuration structure of a Node.
+ *
+ * \attention Use the \ref UCS_ADDR_LOCAL_DEV macro to address your local device when specifying routes to/from It.
+ * \n The following address ranges are supported:
+ * - [0x10 ... 0x2FF]
+ * - [0x500 ... 0xFEF]
+ * - UCS_ADDR_LOCAL_DEV
+ * \ingroup G_UCS_ROUTING_TYPES
+ */
+typedef struct Ucs_Rm_Node_
+{
+ /*! \brief node signature. */
+ Ucs_Signature_t * signature_ptr;
+ /*! \brief Reference to a list of configuration scripts. */
+ Ucs_Ns_Script_t * script_list_ptr;
+ /*! \brief size of the scripts table. */
+ uint8_t script_list_size;
+ /*! \brief Internal information of this node object. */
+ Ucs_Rm_NodeInt_t internal_infos;
+
+} Ucs_Rm_Node_t;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Type definitions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Function signature used for the results of the Scripting Manager.
+ * \param node_ptr Reference to the node instance
+ * \param result Result of the scripting operation.
+ * \param ucs_user_ptr User reference for API callback functions.
+ * \ingroup G_UCS_SCRIPTING
+ */
+typedef void (*Ucs_Ns_ResultCb_t)(Ucs_Rm_Node_t * node_ptr, Ucs_Ns_ResultCode_t result, void *ucs_user_ptr);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_NSM_PB_H */
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_obs.h b/ucs2-lib/inc/ucs_obs.h
new file mode 100644
index 0000000..7ef2d83
--- /dev/null
+++ b/ucs2-lib/inc/ucs_obs.h
@@ -0,0 +1,195 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Internal header file of the observer library module. The module consists of the two
+ * classes CSubject and CObserver.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_OBS
+ * @{
+ */
+
+#ifndef UCS_OBS_H
+#define UCS_OBS_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_types_cfg.h"
+#include "ucs_dl.h"
+#include "ucs_ret_pb.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Type definitions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Function signature used for callback functions which notifies the observers.
+ * \param self Instance pointer
+ * \param data_ptr Reference to optional data
+ */
+typedef void (*Obs_UpdateCb_t)(void *self, void *data_ptr);
+
+/*! \brief Function signature used for callback functions which notifies the single-observers.
+ * \param self Instance pointer
+ * \param data_ptr Reference to optional data
+ */
+typedef void (*Sobs_UpdateCb_t)(void *self, void *data_ptr);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Enumerators */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Standard return values of the subject class. */
+typedef enum Sub_Ret_
+{
+ SUB_OK, /*!< \brief No error */
+ SUB_DELAYED, /*!< \brief Operation is queued since notification is still active */
+ SUB_ALREADY_ADDED, /*!< \brief Observer already added */
+ SUB_UNKNOWN_OBSERVER, /*!< \brief Unknown observer */
+ SUB_INVALID_OPERATION /*!< \brief Invalid operation */
+
+} Sub_Ret_t;
+
+/*! \brief Standard return values of the single-subject class. */
+typedef enum Ssub_Ret_
+{
+ SSUB_OK, /*!< \brief No error */
+ SSUB_ALREADY_ADDED, /*!< \brief Observer already added */
+ SSUB_UNKNOWN_OBSERVER /*!< \brief Unknown observer */
+
+} Ssub_Ret_t;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Class structure of observers which are notified by subjects. */
+typedef struct CObserver_
+{
+ CDlNode node; /*!< \brief Node element to be able to add observer to list */
+ void *inst_ptr; /*!< \brief Reference to instance used by update_fptr() */
+ Obs_UpdateCb_t update_fptr; /*!< \brief Callback function to update the observer */
+ bool valid; /*!< \brief Used for queued remove operation */
+
+} CObserver;
+
+/*! \brief Class structure of subjects. */
+typedef struct CSubject_
+{
+ CDlList list; /*!< \brief Doubly linked list to manage observers */
+ CDlList add_list; /*!< \brief List to manage delayed add operations */
+ uint8_t num_observers; /*!< \brief Number of added observers */
+ bool notify; /*!< \brief Signals that the notification is in progress */
+ bool changed; /*!< \brief Signals that an add- or a remove-operation
+ has been queued */
+ void *ucs_user_ptr; /*!< \brief User reference that needs to be passed in every callback function */
+
+} CSubject;
+
+/*! \brief Class structure of a single-observer which is notified by a single-subject. */
+typedef struct CSingleObserver_
+{
+ void *inst_ptr; /*!< \brief Reference to instance used by update_fptr() */
+ Obs_UpdateCb_t update_fptr; /*!< \brief Callback function to update the observer */
+
+} CSingleObserver;
+
+/*! \brief Class structure of a single-subject. */
+typedef struct CSingleSubject_
+{
+ CSingleObserver *observer_ptr; /*!< \brief Reference to the assigned single-observer */
+ void *ucs_user_ptr; /*!< \brief User reference that needs to be passed in every callback function */
+ uint32_t user_mask; /*!< \brief Current user mask to the single observer */
+
+} CSingleSubject;
+
+/*! \brief Class structure of masked observers which are notified by subjects. */
+typedef struct CMaskedObserver_
+{
+ CObserver parent; /*!< \brief Parent class instance */
+ uint32_t notification_mask; /*!< \brief Notification bitmask */
+
+} CMaskedObserver;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Prototypes of class CSubject */
+/*------------------------------------------------------------------------------------------------*/
+extern void Sub_Ctor(CSubject *self, void *ucs_user_ptr);
+extern Sub_Ret_t Sub_AddObserver(CSubject *self, CObserver *obs_ptr);
+extern Sub_Ret_t Sub_RemoveObserver(CSubject *self, CObserver *obs_ptr);
+extern void Sub_Notify(CSubject *self, void *data_ptr);
+extern uint8_t Sub_GetNumObservers(CSubject *self);
+extern Sub_Ret_t Sub_SwitchObservers(CSubject *sub_target, CSubject *sub_source);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Prototypes of class CObserver */
+/*------------------------------------------------------------------------------------------------*/
+extern void Obs_Ctor(CObserver *self, void *inst_ptr, Obs_UpdateCb_t update_fptr);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Prototypes of class CSingleSubject */
+/*------------------------------------------------------------------------------------------------*/
+extern void Ssub_Ctor(CSingleSubject *self, void *ucs_user_ptr);
+extern Ssub_Ret_t Ssub_AddObserver(CSingleSubject *self, CSingleObserver *obs_ptr);
+extern void Ssub_RemoveObserver(CSingleSubject *self);
+extern void Ssub_Notify(CSingleSubject *self, void *data_ptr, bool auto_remove);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Prototypes of class CSingleObserver */
+/*------------------------------------------------------------------------------------------------*/
+extern void Sobs_Ctor(CSingleObserver *self, void *inst_ptr, Sobs_UpdateCb_t update_fptr);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Prototypes of class CMaskedObserver */
+/*------------------------------------------------------------------------------------------------*/
+extern void Mobs_Ctor(CMaskedObserver *self,
+ void *inst_ptr,
+ uint32_t notification_mask,
+ Obs_UpdateCb_t update_fptr);
+extern void Mobs_SetNotificationMask(CMaskedObserver *self, uint32_t mask);
+extern uint32_t Mobs_GetNotificationMask(CMaskedObserver *self);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Additional prototypes of class CSubject used in combination with CMaskedObserver */
+/*------------------------------------------------------------------------------------------------*/
+extern Sub_Ret_t Msub_AddObserver(CSubject *self, CMaskedObserver *obs_ptr);
+extern Sub_Ret_t Msub_RemoveObserver(CSubject *self, CMaskedObserver *obs_ptr);
+extern void Msub_Notify(CSubject *self, void *data_ptr, uint32_t notification_mask);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_OBS_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_pmchannel.h b/ucs2-lib/inc/ucs_pmchannel.h
new file mode 100644
index 0000000..300c00a
--- /dev/null
+++ b/ucs2-lib/inc/ucs_pmchannel.h
@@ -0,0 +1,175 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Internal header file of Port Message Channel
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_PMC
+ * @{
+ */
+
+#ifndef UCS_PMCHANNEL_H
+#define UCS_PMCHANNEL_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_rules.h"
+#include "ucs_lld_pb.h"
+#include "ucs_lldpool.h"
+#include "ucs_pool.h"
+#include "ucs_base.h"
+#include "ucs_message.h"
+#include "ucs_pmp.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Macros */
+/*------------------------------------------------------------------------------------------------*/
+#define PMCH_POOL_SIZE_RX_MIN 10U /*!< \brief Minimal size of Rx pool which is shared by all FIFOs */
+#define PMCH_POOL_SIZE_RX_OPT 35U /*!< \brief Optimal size of Rx pool which is shared by all FIFOs */
+
+#define PMCH_MCM_CREDITS_OPT 21U /*!< \brief Optimal number of credits configured for MCM FIFO */
+#define PMCH_MCM_THRESHOLD_OPT 8U /*!< \brief Optimal threshold configured for MCM FIFO */
+
+#define PMCH_FIFO_CREDITS_OPT 5U /*!< \brief Optimal number of credits configured for conventional FIFOs */
+#define PMCH_FIFO_THRESHOLD_OPT 4U /*!< \brief Optimal threshold configured for conventional FIFO */
+
+#define PMCH_FIFO_CREDITS_MIN 3U /*!< \brief Minimal number of credits configured for conventional FIFOs */
+#define PMCH_FIFO_THRESHOLD_MIN 2U /*!< \brief Minimal threshold configured for conventional FIFO */
+
+/* required rules */
+#if defined(MNSL_FOOTPRINT_TINY) && defined(MNSL_CHANNEL_POOL_SIZE_RX)
+# error Forbidden combination of macros MNSL_FOOTPRINT_TINY and MNSL_CHANNEL_POOL_SIZE_RX
+#endif
+
+#ifdef MNSL_CHANNEL_POOL_SIZE_RX
+# if (MNSL_CHANNEL_POOL_SIZE_RX < PMCH_POOL_SIZE_RX_MIN)
+# error MNSL_CHANNEL_POOL_SIZE_RX must be at least 10
+# endif
+#endif
+
+/*! \def MNSL_CHANNEL_POOL_SIZE_RX
+ * \brief MNSL configuration that defines the number of pre-allocated Rx messages which are shared by all FIFOs.
+ * Valid values: 35...65535. Default value: 35.
+ *
+ * \def PMCH_POOL_SIZE_RX
+ * \brief Defines the number of pre-allocated Rx messages which are shared by all FIFOs.
+ */
+#ifdef MNSL_FOOTPRINT_TINY
+# define PMCH_POOL_SIZE_RX (PMCH_POOL_SIZE_RX_MIN)
+# define PMCH_MCM_CREDITS (PMCH_FIFO_CREDITS_MIN)
+# define PMCH_FIFO_CREDITS (PMCH_FIFO_CREDITS_MIN)
+# define PMCH_MCM_THRESHOLD (PMCH_FIFO_THRESHOLD_MIN)
+# define PMCH_FIFO_THRESHOLD (PMCH_FIFO_THRESHOLD_MIN)
+# define MNSL_CHANNEL_POOL_SIZE_RX (PMCH_POOL_SIZE_RX_MIN)
+#elif defined MNSL_CHANNEL_POOL_SIZE_RX
+# define PMCH_POOL_SIZE_RX ((uint16_t)MNSL_CHANNEL_POOL_SIZE_RX)
+# define PMCH_MCM_CREDITS (PMCH_FIFO_CREDITS_MIN)
+# define PMCH_FIFO_CREDITS (PMCH_FIFO_CREDITS_MIN)
+# define PMCH_MCM_THRESHOLD (PMCH_FIFO_THRESHOLD_MIN)
+# define PMCH_FIFO_THRESHOLD (PMCH_FIFO_THRESHOLD_MIN)
+#else
+# define PMCH_POOL_SIZE_RX (PMCH_POOL_SIZE_RX_OPT)
+# define PMCH_MCM_CREDITS (PMCH_MCM_CREDITS_OPT)
+# define PMCH_FIFO_CREDITS (PMCH_FIFO_CREDITS_OPT)
+# define PMCH_MCM_THRESHOLD (PMCH_MCM_THRESHOLD_OPT)
+# define PMCH_FIFO_THRESHOLD (PMCH_FIFO_THRESHOLD_OPT)
+# define MNSL_CHANNEL_POOL_SIZE_RX (PMCH_POOL_SIZE_RX_OPT)
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Types */
+/*------------------------------------------------------------------------------------------------*/
+typedef void (*Pmch_OnRxMsg_t)(void *fifo_ptr, CMessage *msg_ptr);
+typedef void (*Pmch_OnTxRelease_t)(void *fifo_ptr, Ucs_Lld_TxMsg_t *handle_ptr);
+
+/*! \brief Initialization structure of the Base Module. */
+typedef struct Pmch_InitData_
+{
+ void *ucs_user_ptr; /*!< \brief User reference that needs to be passed in every callback function */
+ Ucs_Lld_Callbacks_t lld_iface; /*!< \brief LLD callback functions */
+ Pmch_OnTxRelease_t tx_release_fptr; /*!< \brief Callback which releases a FIFO dedicated LLD buffer */
+
+} Pmch_InitData_t;
+
+/*! \brief Combination of callback and instance for a receiving FIFO */
+typedef struct Pmch_Receiver_
+{
+ Pmch_OnRxMsg_t rx_fptr; /*!< \brief Reference to an Rx callback function */
+ void *inst_ptr; /*!< \brief Reference to the instance which shall be
+ * passed to the callback function */
+} Pmch_Receiver_t;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Class attributes */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Structure of a PMS object */
+typedef struct CPmChannel_
+{
+ Pmch_InitData_t init_data; /*!< \brief Copy of initialization data */
+
+ Lld_IntRxMsg_t lld_rx_msgs[PMCH_POOL_SIZE_RX]; /*!< \brief Pre-allocated LLD Rx message objects */
+ CMessage rx_msgs[PMCH_POOL_SIZE_RX]; /*!< \brief Pre-allocated Rx message objects */
+ CPool rx_msgs_pool; /*!< \brief Pre-allocated Rx message pool */
+ bool rx_trigger_available; /*!< \brief Triggers LLD callback function if a buffer
+ * is available again.
+ */
+ bool lld_active; /*!< \brief Determines whether the LLD is running */
+ Ucs_Lld_Api_t ucs_iface; /*!< \brief PMS function pointers */
+
+ Pmch_Receiver_t receivers[PMP_MAX_NUM_FIFOS]; /*!< \brief Registered FIFOs for Rx */
+
+} CPmChannel;
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Class methods */
+/*------------------------------------------------------------------------------------------------*/
+/* component creation */
+extern void Pmch_Ctor(CPmChannel *self, const Pmch_InitData_t *init_ptr);
+extern void Pmch_Initialize(CPmChannel *self);
+extern void Pmch_Uninitialize(CPmChannel *self);
+extern void Pmch_RegisterReceiver(CPmChannel *self, Pmp_FifoId_t fifo_id, Pmch_OnRxMsg_t rx_fptr, void *inst_ptr);
+extern void Pmch_Transmit(CPmChannel *self, Ucs_Lld_TxMsg_t *msg_ptr);
+extern void Pmch_ReturnRxToPool(void *self, CMessage *msg_ptr);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* UCS_PMCHANNEL_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_pmcmd.h b/ucs2-lib/inc/ucs_pmcmd.h
new file mode 100644
index 0000000..3fdc5d1
--- /dev/null
+++ b/ucs2-lib/inc/ucs_pmcmd.h
@@ -0,0 +1,90 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Declaration of class CPmCommand
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_PM_CMD
+ * @{
+ */
+
+#ifndef UCS_PMCMD_H
+#define UCS_PMCMD_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_types_cfg.h"
+#include "ucs_memory.h"
+#include "ucs_lldpool.h"
+#include "ucs_pmp.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Class CPmCommand */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Class CPmCommand */
+typedef struct CPmCommand_
+{
+ Lld_IntTxMsg_t tx_obj; /*!< \brief Required LLD Tx structure, must be first attribute */
+ uint8_t data[10]; /*!< \brief Reserved memory space */
+ Ucs_Mem_Buffer_t memory; /*!< \brief Public memory structure */
+ bool reserved; /*!< \brief \c true if the command is in use, otherwise \c false. */
+ bool trigger; /*!< \brief \c true if the command is triggered, otherwise \c false. */
+
+} CPmCommand;
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Methods */
+/*------------------------------------------------------------------------------------------------*/
+extern void Pmcmd_Ctor(CPmCommand *self, Pmp_FifoId_t fifo, Pmp_MsgType_t type);
+extern Ucs_Lld_TxMsg_t* Pmcmd_GetLldTxObject(CPmCommand *self);
+extern bool Pmcmd_Reserve(CPmCommand *self);
+extern void Pmcmd_Release(CPmCommand *self);
+extern void Pmcmd_SetContent(CPmCommand *self, uint8_t sid, uint8_t ext_type,
+ uint8_t ext_code, uint8_t add_data_ptr[], uint8_t add_data_sz);
+extern void Pmcmd_UpdateContent(CPmCommand *self, uint8_t sid, uint8_t ext_type, uint8_t ext_code);
+extern void Pmcmd_SetTrigger(CPmCommand *self, bool trigger);
+extern bool Pmcmd_IsTriggered(CPmCommand *self);
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_PMCMD_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_pmevent.h b/ucs2-lib/inc/ucs_pmevent.h
new file mode 100644
index 0000000..d12d8e0
--- /dev/null
+++ b/ucs2-lib/inc/ucs_pmevent.h
@@ -0,0 +1,85 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Internal header file of Port Message Event Handler
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_PMEH
+ * @{
+ */
+
+#ifndef UCS_PMEV_H
+#define UCS_PMEV_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_pmfifos.h"
+#include "ucs_base.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Macros */
+/*------------------------------------------------------------------------------------------------*/
+
+/*------------------------------------------------------------------------------------------------*/
+/* Class attributes */
+/*------------------------------------------------------------------------------------------------*/
+
+/*! \brief Structure of a Port Message Event Handler */
+typedef struct CPmEventHandler_
+{
+ CBase *base_ptr; /*!< \brief Reference to base object */
+ CPmFifos *fifos_ptr; /*!< \brief Reference to FIFOs handler */
+ CObserver observer; /*!< \brief Observer of PMS events */
+ CMaskedObserver sys_observer; /*!< \brief Observer of system events */
+
+} CPmEventHandler;
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Class methods */
+/*------------------------------------------------------------------------------------------------*/
+extern void Pmev_Ctor(CPmEventHandler *self, CBase *base_ptr, CPmFifos *fifos_ptr);
+extern void Pmev_Start(CPmEventHandler *self);
+extern void Pmev_Stop(CPmEventHandler *self);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* UCS_PMEV_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_pmfifo.h b/ucs2-lib/inc/ucs_pmfifo.h
new file mode 100644
index 0000000..0f7f68a
--- /dev/null
+++ b/ucs2-lib/inc/ucs_pmfifo.h
@@ -0,0 +1,230 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Internal header file of Port Message FIFO
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_PMF
+ * @{
+ */
+
+#ifndef UCS_PMFIFO_H
+#define UCS_PMFIFO_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_rules.h"
+#include "ucs_base.h"
+#include "ucs_lld_pb.h"
+#include "ucs_message.h"
+#include "ucs_encoder.h"
+#include "ucs_pmp.h"
+#include "ucs_lldpool.h"
+#include "ucs_pmchannel.h"
+#include "ucs_pmcmd.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Macros */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Number of LLD Tx handles dedicated to each FIFO */
+#define FIFO_TX_HANDLES 5U
+
+/*------------------------------------------------------------------------------------------------*/
+/* Types */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Callback function which is invoked when receiving an Rx message
+ * \param self The Instance (of the host)
+ * \param msg_ptr The Rx message
+ */
+typedef void (*Fifo_OnRxMsg_t)(void *self, CMessage *msg_ptr);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Initialization structure of class Port Message FIFO */
+typedef struct Fifo_InitData_
+{
+ CBase *base_ptr; /*!< \brief Reference to base module */
+ CPmChannel *channel_ptr; /*!< \brief Points to channel object which is needed to communicate with
+ * the driver */
+ IEncoder *tx_encoder_ptr; /*!< \brief Encoder for Tx messages */
+ IEncoder *rx_encoder_ptr; /*!< \brief Encoder for Rx messages */
+ Fifo_OnRxMsg_t rx_cb_fptr; /*!< \brief Callback function invoked for Rx */
+ void *rx_cb_inst; /*!< \brief Instance which is referred when invoking rx_cb_fptr */
+
+} Fifo_InitData_t;
+
+/*! \brief Initialization structure of class Port Message FIFO */
+typedef struct Fifo_Config_
+{
+ Pmp_FifoId_t fifo_id; /*!< \brief Identifier of message FIFO.
+ * \details It is required that the fifo_id has the same value as
+ * specified in PMP.
+ */
+ uint8_t rx_credits; /*!< \brief Number of Rx credits, i.e. reserved Rx messages */
+ uint8_t rx_threshold; /*!< \brief Number of Rx credits which are acknowledged in a single status.
+ * \details The value needs to be smaller or equal than \c rx_credits.
+ * Valid values are:
+ * - 0,1: Single message acknowledge
+ * - 2..rx_credits: Implicit acknowledge is triggered after
+ * the specified number of messages.
+ */
+ uint8_t tx_wd_timeout; /*!< \brief Idle timeout in x100ms. Formerly known as watchdog timeout */
+ uint16_t tx_wd_timer_value; /*!< \brief Timer value used to trigger the watchdog in ms */
+ uint8_t rx_ack_timeout; /*!< \brief Rx status timeout in x100ms. */
+ uint8_t rx_busy_allowed; /*!< \brief Number of allowed RxStatus busy responds. 0..14, or 0xF (infinite) */
+
+} Fifo_Config_t;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal types */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief The synchronization status */
+typedef enum Fifo_SyncState_
+{
+ FIFO_S_UNSYNCED_INIT,
+ FIFO_S_SYNCING,
+ FIFO_S_UNSYNCED_BUSY,
+ FIFO_S_UNSYNCED_READY,
+ FIFO_S_SYNCED,
+ FIFO_S_UNSYNCING
+
+} Fifo_SyncState_t;
+
+/*! \brief The class CPmFifo*/
+typedef struct CPmFifo_
+{
+ Fifo_InitData_t init; /*!< \brief Initialization data */
+ Fifo_Config_t config; /*!< \brief Configuration data */
+
+ CService service; /*!< \brief Service object */
+ Fifo_SyncState_t sync_state; /*!< \brief Synchronization state of the FIFO */
+ CSubject sync_state_subject; /*!< \brief Notification of changed synchronization state */
+ uint8_t sync_params[4]; /*!< \brief Synchronization parameters */
+ uint8_t sync_cnt; /*!< \brief Counts the number of synchronization attempts */
+
+ struct CPmFifo_wd_
+ {
+ CTimer timer; /*!< \brief The timer object */
+ CPmCommand wd_cmd; /*!< \brief The watchdog command message */
+ uint16_t timer_value; /*!< \brief The internal timer value used by PMC to trigger the watchdog */
+ bool request_started; /*!< \brief Is used to check if the INIC responds with a status before the
+ * next Cmd.REQUEST_STATUS is triggered.
+ */
+ } wd;
+
+ struct CPmFifo_rx_
+ {
+ CDlList queue; /*!< \brief Message queue containing all incoming messages */
+
+ IEncoder *encoder_ptr; /*!< \brief Encoder for Rx messages */
+ Fifo_OnRxMsg_t on_complete_fptr; /*!< \brief Callback function invoked for Rx */
+ void *on_complete_inst; /*!< \brief Instance which is referred when invoking rx_cb_fptr */
+
+ uint8_t ack_threshold; /*!< \brief Number of unacknowledged Rx credits */
+ uint8_t ack_last_ok_sid; /*!< \brief Latest SID which was acknowledged with "success" */
+ uint8_t expected_sid; /*!< \brief The next expected Rx message SeqId */
+ uint8_t busy_num; /*!< \brief The number of currently processing data messages */
+
+ bool wait_processing; /*!< \brief If set: Wait until transmission of e.g. NACK has finished
+ * before continuing with further Rx message processing.
+ * The flag is used if a status must be sent explicitly.
+ */
+ CPmCommand status; /*!< \brief Rx status channel control */
+
+ } rx;
+
+ struct CPmFifo_tx_
+ {
+ CDlList waiting_queue; /*!< \brief Queue containing all outgoing messages */
+ CDlList pending_q; /*!< \brief Queue containing all messages waiting for Tx status */
+ IEncoder *encoder_ptr; /*!< \brief Encoder for Tx messages */
+ uint8_t credits; /*!< \brief Remaining Tx credits */
+
+ CLldPool lld_pool; /*!< \brief Pool of LLD Tx messages, used for data messages */
+
+ CPmh pm_header; /*!< \brief Temporary header which is used to build the FIFO data messages*/
+ CPmCommand cancel_cmd; /*!< \brief Tx cancel command message */
+ CPmCommand sync_cmd; /*!< \brief Sync command message */
+
+ uint8_t sid_next_to_use; /*!< \brief SID that shall be used for the next transmission */
+ uint8_t sid_last_completed; /*!< \brief Latest SID that was acknowledged by the INIC */
+ uint8_t current_sid; /*!< \brief Tracks the latest valid FIFO status SID received from the INIC */
+ Pmp_StatusType_t current_type; /*!< \brief Tracks the latest valid FIFO status type received from the INIC */
+ uint8_t current_code; /*!< \brief Tracks the latest valid FIFO status code received from the INIC */
+
+ bool status_waiting_release; /*!< \brief Is \c true if status notification wasn't completed due to messages
+ * which are not yet released by the LLD.
+ */
+ bool cancel_all_running; /*!< \brief Is \c true during pending command CANCEL_ALL. This command is required
+ * if the front-most message is segmented which requires to discard all
+ * belonging segments (same \c cancel_id) after the CANCEL_ALL was completed.
+ */
+ uint8_t failure_status; /*!< \brief Stores the Tx status until the message is canceled */
+ uint8_t failure_sid; /*!< \brief Stores the SID of the last cancelled data message */
+ } tx;
+
+} CPmFifo;
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Function Prototypes */
+/*------------------------------------------------------------------------------------------------*/
+extern void Fifo_Ctor(CPmFifo *self, const Fifo_InitData_t *init_ptr, const Fifo_Config_t *config_ptr);
+extern void Fifo_Stop(CPmFifo *self, Fifo_SyncState_t new_state, bool allow_notification);
+extern void Fifo_Cleanup(CPmFifo *self);
+
+extern void Fifo_Synchronize(CPmFifo *self);
+extern void Fifo_Unsynchronize(CPmFifo *self);
+extern Fifo_SyncState_t Fifo_GetState(CPmFifo *self);
+extern void Fifo_AddStateObserver(CPmFifo *self, CObserver *obs_ptr);
+extern void Fifo_RemoveStateObserver(CPmFifo *self, CObserver *obs_ptr);
+
+/* Rx interface */
+extern void Fifo_RxReleaseMsg(CPmFifo *self, CMessage *msg_ptr);
+
+/* Tx interface */
+extern void Fifo_Tx(CPmFifo *self, CMessage *msg_ptr, bool bypass);
+extern void Fifo_TxOnRelease(void *self, Ucs_Lld_TxMsg_t *handle_ptr);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* UCS_PMFIFO_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_pmfifos.h b/ucs2-lib/inc/ucs_pmfifos.h
new file mode 100644
index 0000000..fb815dc
--- /dev/null
+++ b/ucs2-lib/inc/ucs_pmfifos.h
@@ -0,0 +1,128 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Internal header file of class CPmFifos
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_PMFIFOS
+ * @{
+ */
+
+#ifndef UCS_PMFIFOS_H
+#define UCS_PMFIFOS_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_rules.h"
+#include "ucs_base.h"
+#include "ucs_pmfifo.h"
+#include "ucs_pmchannel.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Macros */
+/*------------------------------------------------------------------------------------------------*/
+#define FIFOS_SYNC_TIMEOUT 50U /*!< \brief Synchronization timeout in milliseconds */
+#define FIFOS_SYNC_RETRIES 40U /*!< \brief Maximum number of synchronization retries after timeout */
+#define FIFOS_UNSYNC_TIMEOUT 200U /*!< \brief Un-synchronization timeout in milliseconds */
+#define FIFOS_UNSYNC_RETRIES 0U /*!< \brief Un-synchronization retries */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal types */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief The synchronization status of all FIFOs */
+typedef enum Fifos_SyncState_
+{
+ FIFOS_S_UNSYNCED, /*!< \brief Not all FIFOs are synchronized */
+ FIFOS_S_SYNCING, /*!< \brief FIFOs synchronization has started */
+ FIFOS_S_SYNCED, /*!< \brief All FIFOs are synchronized */
+ FIFOS_S_UNSYNCING /*!< \brief FIFOs un-synchronization has started */
+
+} Fifos_SyncState_t;
+
+/*! \brief PMS Events */
+typedef enum Fifos_Event_
+{
+ FIFOS_EV_SYNC_LOST = 0, /*!< \brief Synchronization of at least one FIFO is lost */
+ FIFOS_EV_SYNC_ESTABLISHED = 1, /*!< \brief Synchronization of all FIFOs is established */
+ FIFOS_EV_SYNC_FAILED = 2, /*!< \brief The initial synchronization of FIFOs failed */
+ FIFOS_EV_UNSYNC_COMPLETE = 3, /*!< \brief Un-synchronization of all FIFOs has succeeded */
+ FIFOS_EV_UNSYNC_FAILED = 4 /*!< \brief Un-synchronization of all FIFOs has failed */
+
+} Fifos_Event_t;
+
+/*! \brief The class CPmFifos*/
+typedef struct CPmFifos_
+{
+ CBase *base_ptr; /*!< \brief Reference to base object */
+ uint8_t ucs_inst_id; /*!< \brief UNICENS instance ID */
+ CPmChannel *channel_ptr; /*!< \brief UNICENS instance ID */
+
+ CPmFifo *fifos[PMP_MAX_NUM_FIFOS]; /*!< \brief Reference to assigned FIFOs */
+
+ CObserver obs_icm; /*!< \brief Observes ICM synchronization state */
+ CObserver obs_rcm; /*!< \brief Observes ICM synchronization state */
+ CObserver obs_mcm; /*!< \brief Observes MCM synchronization state */
+ Fifos_SyncState_t state; /*!< \brief The Overall synchronization state */
+ uint8_t sync_cnt; /*!< \brief The current count of synchronization command */
+
+ uint8_t cmd_retries; /*!< \brief The number of sync/un-sync retries */
+ uint16_t cmd_timeout; /*!< \brief The the timeout to retry sync/un-sync */
+ bool unsync_initial; /*!< \brief Specifies if un-sync complete shall un-initialize the channel */
+
+ CSubject event_subject; /*!< \brief Subject to report synchronization result */
+ CTimer init_timer; /*!< \brief Timer elapses on synchronization timeout */
+
+} CPmFifos;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Function prototypes */
+/*------------------------------------------------------------------------------------------------*/
+extern void Fifos_Ctor(CPmFifos *self, CBase *base_ptr, CPmChannel *channel_ptr, CPmFifo *icm_fifo_ptr, CPmFifo *mcm_fifo_ptr, CPmFifo *rcm_fifo_ptr);
+extern void Fifos_AddEventObserver(CPmFifos *self, CObserver *obs_ptr);
+extern void Fifos_RemoveEventObserver(CPmFifos *self, CObserver *obs_ptr);
+extern void Fifos_Synchronize(CPmFifos *self, bool reset_cnt, bool force_sync);
+extern void Fifos_Unsynchronize(CPmFifos *self, bool reset_cnt, bool initial);
+extern void Fifos_ForceTermination(CPmFifos *self);
+extern void Fifos_ConfigureSyncParams(CPmFifos *self, uint8_t retries, uint16_t timeout);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* UCS_PMFIFOS_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_pmp.h b/ucs2-lib/inc/ucs_pmp.h
new file mode 100644
index 0000000..75f70b4
--- /dev/null
+++ b/ucs2-lib/inc/ucs_pmp.h
@@ -0,0 +1,209 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Internal header file of Port Message Protocol
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_PMH
+ * @{
+ */
+
+#ifndef UCS_PMP_H
+#define UCS_PMP_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_rules.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Macros */
+/*------------------------------------------------------------------------------------------------*/
+#define PMP_PM_MAX_SIZE_HEADER 8U /*!< \brief Maximum size of a port message header */
+#define PMP_PM_MIN_SIZE_HEADER 6U /*!< \brief Minimum size of a port message header */
+#define PMP_MAX_NUM_FIFOS 7U /*!< \brief Maximum number if FIFOs an an array
+ * \details Means "3" if FIFO "0" and "2" is used
+ */
+#define PMP_CREDITS_MASK 0x3FU /*!< \brief Valid bits for credits: 5..0 */
+#define PMP_CREDITS_MIN 1U /*!< \brief Minimum value for credits: 1 */
+#define PMP_CREDITS_MAX 63U /*!< \brief Maximum value for credits: 63 */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Types */
+/*------------------------------------------------------------------------------------------------*/
+
+/*! \brief Specifies the FIFO */
+typedef enum Pmp_FifoId_
+{
+ PMP_FIFO_ID_MCM = 0U, /*!< \brief FIFO dedicated to MOST Control Messages (MCM) */
+ /* PMP_FIFO_ID_MDP = 1U, < (reserved identifier) */
+ PMP_FIFO_ID_ICM = 2U, /*!< \brief FIFO dedicated to INIC Control Messages (ICM) */
+ PMP_FIFO_ID_ALL = 3U, /*!< \brief All FIFOs (ICM, MCM) */
+ /* PMP_FIFO_ID_MEP = 4U < (reserved identifier) */
+ /* PMP_FIFO_ID_IOCM = 5U < (reserved identifier) */
+ PMP_FIFO_ID_RCM = 6U /*!< \brief FIFO dedicated to Remote Control Messages (RCM) */
+ /* PMP_FIFO_ID_RSVD = 7U < (reserved identifier) */
+
+} Pmp_FifoId_t;
+
+/*! \brief Specifies the messages type */
+typedef enum Pmp_MsgType_
+{
+ PMP_MSG_TYPE_CMD = 0U, /*!< \brief FIFO command message */
+ PMP_MSG_TYPE_STATUS = 1U, /*!< \brief FIFO status message */
+ PMP_MSG_TYPE_DATA = 2U /*!< \brief FIFO data message */
+
+} Pmp_MsgType_t;
+
+/*! \brief Specifies the direction of the Port Message */
+typedef enum Pmp_Direction_
+{
+ PMP_DIR_TX = 0, /*!< \brief Direction Tx (EHC -> INIC) */
+ PMP_DIR_RX = 1 /*!< \brief Direction Rx (INIC -> EHC) */
+
+} Pmp_Direction_t;
+
+/*! \brief Specifies FIFO status types */
+typedef enum Pmp_StatusType_
+{
+ PMP_STATUS_TYPE_FAILURE = 0U, /*!< \brief PMP status type "failure" */
+ PMP_STATUS_TYPE_FLOW = 1U, /*!< \brief PMP status type "flow" */
+ PMP_STATUS_TYPE_SYNCED = 4U, /*!< \brief PMP status type "synced" */
+ PMP_STATUS_TYPE_UNSYNCED_BSY = 5U, /*!< \brief PMP status type "unsynced_busy" */
+ PMP_STATUS_TYPE_UNSYNCED_RDY = 6U /*!< \brief PMP status type "unsynced_ready" */
+
+} Pmp_StatusType_t;
+
+/*! \brief Specifies FIFO status codes */
+typedef enum Pmp_StatusCode_
+{
+ PMP_STATUS_CODE_BUSY = 0U, /*!< \brief PMP status code "busy" */
+ PMP_STATUS_CODE_SUCCESS = 1U, /*!< \brief PMP status code "success" */
+ PMP_STATUS_CODE_CANCELED = 3U, /*!< \brief PMP status code "canceled" */
+ PMP_STATUS_CODE_NACK = 8U /*!< \brief PMP status code "not_acknowledge" */
+
+} Pmp_StatusCode_t;
+
+/*! \brief Specifies FIFO status codes */
+typedef enum Pmp_UnsyncReason_
+{
+ PMP_UNSYNC_R_STARTUP = 1U, /*!< \brief PMP status code, UnsyncReason "INIC Startup" */
+ PMP_UNSYNC_R_REINIT = 2U, /*!< \brief PMP status code, UnsyncReason "Re-init of another FIFO" */
+ PMP_UNSYNC_R_COMMAND = 3U, /*!< \brief PMP status code, UnsyncReason "By sync or un-sync command" */
+ PMP_UNSYNC_R_ACK_TIMEOUT = 4U, /*!< \brief PMP status code, UnsyncReason "Missing EHC Rx acknowledge" */
+ PMP_UNSYNC_R_WD_TIMEOUT = 5U, /*!< \brief PMP status code, UnsyncReason "Missing EHC status request" */
+ PMP_UNSYNC_R_TX_TIMEOUT = 6U /*!< \brief PMP status code, UnsyncReason "Missing EHC read, or blocked communication" */
+
+} Pmp_UnsyncReason_t;
+
+/*! \brief Specifies FIFO command types */
+typedef enum Pmp_CommandType_
+{
+ PMP_CMD_TYPE_REQ_STATUS = 0U, /*!< \brief PMP command type "request_status" */
+ PMP_CMD_TYPE_MSG_ACTION = 1U, /*!< \brief PMP command type "message_action" */
+ /* PMP_CMD_TYPE_TRIGGER_NAOMDP = 2U, < (reserved identifier) */
+ PMP_CMD_TYPE_SYNCHRONIZATION = 4U /*!< \brief PMP command type "synchronization" */
+
+} Pmp_CommandType_t;
+
+/*! \brief Specifies FIFO command codes */
+typedef enum Pmp_CommandCode_
+{
+ PMP_CMD_CODE_REQ_STATUS = 0U, /*!< \brief PMP command code "request_status" */
+ /* PMP_CMD_CODE_TRIGGER_NAOMDP = 0U, < (reserved identifier)*/
+ PMP_CMD_CODE_ACTION_RETRY = 1U, /*!< \brief PMP command type "request_status" */
+ PMP_CMD_CODE_ACTION_CANCEL = 2U, /*!< \brief PMP command type "request_status" */
+ PMP_CMD_CODE_ACTION_CANCEL_ALL = 3U, /*!< \brief PMP command type "request_status" */
+ PMP_CMD_CODE_UNSYNC = 10U, /*!< \brief PMP command type "request_status" */
+ PMP_CMD_CODE_SYNC = 21U /*!< \brief PMP command type "request_status" */
+
+} Pmp_CommandCode_t;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Header buffer operations */
+/*------------------------------------------------------------------------------------------------*/
+extern void Pmp_SetPml(uint8_t header[], uint8_t length);
+extern void Pmp_SetPmhl(uint8_t header[], uint8_t length);
+extern void Pmp_SetFph(uint8_t header[], Pmp_FifoId_t id, Pmp_MsgType_t type);
+extern void Pmp_SetExtType(uint8_t header[], uint8_t type, uint8_t code);
+extern void Pmp_SetSid(uint8_t header[], uint8_t sid);
+
+extern uint8_t Pmp_GetPml(uint8_t header[]);
+extern uint8_t Pmp_GetPmhl(uint8_t header[]);
+extern Pmp_FifoId_t Pmp_GetFifoId(uint8_t header[]);
+extern Pmp_MsgType_t Pmp_GetMsgType(uint8_t header[]);
+extern uint8_t Pmp_GetSid(uint8_t header[]);
+extern uint8_t Pmp_GetDataSize(uint8_t header[]);
+extern uint8_t Pmp_GetData(uint8_t header[], uint8_t index);
+extern bool Pmp_VerifyHeader(uint8_t header[], uint8_t buf_len);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Class CPmh */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Defines the content of a Port Message Header
+ * \details The current structure does not support "direction" and "retransmitted" flag.
+ */
+typedef struct CPmh_
+{
+ uint8_t pml; /*!< \brief Port Message length */
+ uint8_t pmhl; /*!< \brief Port Message Header length */
+ Pmp_MsgType_t msg_type; /*!< \brief Port Message type */
+ Pmp_FifoId_t fifo_id; /*!< \brief FIFO identifier */
+ uint8_t sid; /*!< \brief The SequenceId */
+ uint8_t ext_type; /*!< \brief status or content type */
+
+} CPmh;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Function Prototypes */
+/*------------------------------------------------------------------------------------------------*/
+extern void Pmh_Ctor(CPmh *self);
+extern void Pmh_BuildHeader(CPmh *self, uint8_t data[]);
+extern void Pmh_DecodeHeader(CPmh *self, uint8_t data[]);
+extern void Pmh_SetFph(CPmh *self, Pmp_FifoId_t fifo_id, Pmp_MsgType_t msg_type);
+extern Pmp_StatusType_t Pmh_GetExtStatusType(CPmh *self);
+extern Pmp_StatusCode_t Pmh_GetExtStatusCode(CPmh *self);
+extern Pmp_CommandCode_t Pmh_GetExtCommandCode(CPmh *self);
+extern Pmp_CommandType_t Pmh_GetExtCommandType(CPmh *self);
+extern void Pmh_SetExtType(CPmh *self, uint8_t type, uint8_t code);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* UCS_PMP_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_pool.h b/ucs2-lib/inc/ucs_pool.h
new file mode 100644
index 0000000..ac9166a
--- /dev/null
+++ b/ucs2-lib/inc/ucs_pool.h
@@ -0,0 +1,80 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Declaration of message pool class
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_POOL
+ * @{
+ */
+#ifndef UCS_POOL_H
+#define UCS_POOL_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_message.h"
+#include "ucs_dl.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/*------------------------------------------------------------------------------------------------*/
+/* Class CPool */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Class CMessage
+ * \details Common internal message class which embeds a list of MOST telegrams
+ */
+typedef struct CPool_
+{
+ uint16_t initial_size; /*! \brief The size of a provided message array */
+ CMessage *messages; /*! \brief Reference to a message array provided by another module */
+ CDlList message_list; /*! \brief Doubly linked list required providing available messages */
+ void *ucs_user_ptr; /*!< \brief User reference that needs to be passed in every callback function */
+
+} CPool;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Methods */
+/*------------------------------------------------------------------------------------------------*/
+extern void Pool_Ctor(CPool *self, CMessage messages[], uint16_t size, void *ucs_user_ptr);
+extern CMessage* Pool_GetMsg(CPool *self);
+extern void Pool_ReturnMsg(CMessage *msg_ptr);
+extern uint16_t Pool_GetCurrentSize(CPool *self);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_POOL_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_prog.h b/ucs2-lib/inc/ucs_prog.h
new file mode 100644
index 0000000..ec181c4
--- /dev/null
+++ b/ucs2-lib/inc/ucs_prog.h
@@ -0,0 +1,114 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+#ifndef UCS_PROG_H
+#define UCS_PROG_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_exc.h"
+
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+
+#define PRG_MAX_LEN_ERROR 3U
+
+typedef struct Prg_Error_t_
+{
+ Ucs_Prg_ResCode_t code;
+ Ucs_Prg_Func_t function;
+ uint8_t ret_len;
+ uint8_t parm[PRG_MAX_LEN_ERROR];
+} Prg_Error_t;
+
+
+
+
+/*! \brief Structure of class CProgramming. */
+typedef struct CProgramming_
+{
+ CInic *inic; /*!< \brief Reference to CInic object */
+ CExc *exc; /*!< \brief Reference to CExc object */
+ CBase *base; /*!< \brief Reference to CBase object */
+
+ CSingleObserver prg_welcome; /*!< \brief Observes the Welcome result */
+ CSingleObserver prg_memopen; /*!< \brief Observes the MemSessionOpen result */
+ CSingleObserver prg_memwrite; /*!< \brief Observes the MemoryWrite result */
+ CSingleObserver prg_memclose; /*!< \brief Observes the MemSessionClose result */
+
+ CMaskedObserver prg_terminate; /*!< \brief Observes events leading to termination */
+ CObserver prg_nwstatus; /*!< \brief Observes the MOST Network status */
+
+ CFsm fsm; /*!< \brief Node Discovery state machine */
+ CService service; /*!< \brief Service instance for the scheduler */
+ CTimer timer; /*!< \brief timer for monitoring messages */
+ bool neton; /*!< \brief indicates Network availability */
+
+ uint16_t node_id; /*!< \brief Position address of the node to be programmed. */
+ uint16_t target_address; /*!< \brief Actual target address */
+ Ucs_Signature_t signature; /*!< \brief Signature of the node to be programmed. */
+ Ucs_Prg_SessionType_t session_type; /*!< \brief Defines the memory access type. */
+ Ucs_Prg_Command_t* command_list; /*!< \brief Refers to array of programming tasks. */
+ uint8_t command_index; /*!< \brief index for command_list */
+ uint16_t admin_node_address; /*!< \brief Admin Node Address */
+ Ucs_Prg_ReportCb_t report_fptr; /*!< \brief Report callback function */
+ uint16_t session_handle; /*!< \brief Unique number used to authorize memory access. */
+ Ucs_Prg_Func_t current_function; /*!< \brief last used function. */
+ Prg_Error_t error; /*!< \brief stores the current error information */
+}CProgramming;
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Prototypes */
+/*------------------------------------------------------------------------------------------------*/
+void Prg_Ctor(CProgramming *self,
+ CInic *inic,
+ CBase *base,
+ CExc *exc);
+
+extern void Prg_Start(CProgramming *self,
+ uint16_t node_id,
+ Ucs_Signature_t *signature,
+ Ucs_Prg_SessionType_t session_type,
+ Ucs_Prg_Command_t* command_list,
+ Ucs_Prg_ReportCb_t report_fptr);
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* UCS_PROG_H */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_ret_pb.h b/ucs2-lib/inc/ucs_ret_pb.h
new file mode 100644
index 0000000..779d80a
--- /dev/null
+++ b/ucs2-lib/inc/ucs_ret_pb.h
@@ -0,0 +1,141 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief This header file contains standard return values used by UNICENS functions
+ * and methods.
+ * \addtogroup G_UCS_INIT_AND_SRV_TYPES
+ * @{
+ */
+
+#ifndef UCS_RET_H
+#define UCS_RET_H
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Enumerations */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Standard return codes used for synchronous response */
+typedef enum Ucs_Return_
+{
+ UCS_RET_SUCCESS = 0x00, /*!< \brief Operation successfully completed */
+ UCS_RET_ERR_PARAM = 0x01, /*!< \brief At least one parameter exceeds its
+ admissible range */
+ UCS_RET_ERR_BUFFER_OVERFLOW = 0x02, /*!< \brief Buffer overflow or service busy */
+ UCS_RET_ERR_NOT_AVAILABLE = 0x03, /*!< \brief Functionality not available */
+ UCS_RET_ERR_NOT_SUPPORTED = 0x04, /*!< \brief This function is not supported by this
+ derivative of INIC / physical layer / MOST
+ speed */
+ UCS_RET_ERR_INVALID_SHADOW = 0x05, /*!< \brief The requested information is not yet
+ available */
+ UCS_RET_ERR_ALREADY_SET = 0x06, /*!< \brief The value to be set is already set. The
+ application can therefore be aware that no
+ message will be send to INIC and no
+ callback will be called */
+ UCS_RET_ERR_API_LOCKED = 0x07, /*!< \brief INIC performs already requested function. */
+ UCS_RET_ERR_NOT_INITIALIZED = 0x08 /*!< \brief UNICENS is not initialized */
+
+} Ucs_Return_t;
+
+/*! \brief Result codes used for asynchronous response */
+typedef enum Ucs_Result_
+{
+ UCS_RES_SUCCESS = 0x00, /*!< \brief Operation successfully completed */
+ UCS_RES_ERR_MOST_STANDARD = 0x01, /*!< \brief MOST standard error occurred */
+ UCS_RES_ERR_BUSY = 0x02, /*!< \brief Function currently busy */
+ UCS_RES_ERR_PROCESSING = 0x03, /*!< \brief Processing error occurred */
+ UCS_RES_ERR_CONFIGURATION = 0x04, /*!< \brief Configuration error occurred */
+ UCS_RES_ERR_SYSTEM = 0x05, /*!< \brief System error occurred */
+ UCS_RES_ERR_TIMEOUT = 0x06, /*!< \brief Timeout occurred */
+ UCS_RES_ERR_TRANSMISSION = 0x07 /*!< \brief Transmission error occurred */
+
+} Ucs_Result_t;
+
+/*! \brief Result values of initialization result callback function */
+typedef enum Ucs_InitResult_
+{
+ UCS_INIT_RES_SUCCESS = 0x00U, /*!< \brief Initialization succeeded */
+ UCS_INIT_RES_ERR_BUF_OVERFLOW = 0x01U, /*!< \brief No message buffer available */
+ UCS_INIT_RES_ERR_INIC_SYNC = 0x02U, /*!< \brief INIC synchronization failed */
+ UCS_INIT_RES_ERR_INIC_VERSION = 0x03U, /*!< \brief INIC device version check failed */
+ UCS_INIT_RES_ERR_INIC_SYSTEM = 0x04U, /*!< \brief Device attach failed due to an INIC
+ * system error
+ */
+ UCS_INIT_RES_ERR_DEV_ATT_CFG = 0x05U, /*!< \brief INIC device attach failed due to an
+ * configuration error
+ */
+ UCS_INIT_RES_ERR_DEV_ATT_PROC = 0x06U, /*!< \brief Device attach failed due to a
+ * processing error
+ */
+ UCS_INIT_RES_ERR_NET_CFG = 0x07U, /*!< \brief Network Configuration request failed */
+ UCS_INIT_RES_ERR_INTERNAL = 0x0AU, /*!< \brief Internal error occurred */
+ UCS_INIT_RES_ERR_TIMEOUT = 0x0BU /*!< \brief Initialization timeout occurred */
+
+} Ucs_InitResult_t;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Standard result structure which provides fields for detailed status and
+ * error information
+ */
+typedef struct Ucs_StdResult_
+{
+ Ucs_Result_t code; /*!< \brief Result/Error code */
+ uint8_t *info_ptr; /*!< \brief INIC error data */
+ uint8_t info_size; /*!< \brief Size of the INIC error data in bytes */
+
+} Ucs_StdResult_t;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Types */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Function signature used for UNICENS standard result callbacks
+ * \param result Result of the callback
+ * \param user_ptr User reference provided in \ref Ucs_InitData_t "Ucs_InitData_t::user_ptr"
+ */
+typedef void (*Ucs_StdResultCb_t)(Ucs_StdResult_t result, void *user_ptr);
+
+/*! \brief Function signature used for UNICENS standard result callbacks
+ * \param result Result of the callback
+ * \param user_ptr User reference provided in \ref Ucs_InitData_t "Ucs_InitData_t::user_ptr"
+ */
+typedef void (*Ucs_InitResultCb_t)(Ucs_InitResult_t result, void *user_ptr);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_RET_H */
+
+/*!
+ * @}
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_rm_pb.h b/ucs2-lib/inc/ucs_rm_pb.h
new file mode 100644
index 0000000..80d7d70
--- /dev/null
+++ b/ucs2-lib/inc/ucs_rm_pb.h
@@ -0,0 +1,112 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Public header file of the Routing Management.
+ * \addtogroup G_UCS_ROUTING_TYPES
+ * @{
+ */
+
+#ifndef UCS_RM_PB_H
+#define UCS_RM_PB_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_rm_pv.h"
+#include "ucs_nsm_pb.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Definitions */
+/*------------------------------------------------------------------------------------------------*/
+
+/*------------------------------------------------------------------------------------------------*/
+/* Enumerators */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief This enumerator specifies the type of an EndPoint object. */
+typedef enum Ucs_Rm_EndPointType_
+{
+ UCS_RM_EP_SOURCE = 0x00U, /*!< \brief Specifies the source endpoint. */
+ UCS_RM_EP_SINK = 0x01U /*!< \brief Specifies the sink endpoint. */
+
+} Ucs_Rm_EndPointType_t;
+
+/*! \brief This enumerator specifies the possible route information returned via User callback function of \ref Ucs_Rm_Start(). */
+typedef enum Ucs_Rm_RouteInfos_
+{
+ UCS_RM_ROUTE_INFOS_BUILT = 0x00U, /*!< \brief Specifies that the route has been built. */
+ UCS_RM_ROUTE_INFOS_DESTROYED = 0x01U, /*!< \brief Specifies that the route has been destroyed. */
+ UCS_RM_ROUTE_INFOS_SUSPENDED = 0x02U, /*!< \brief Specifies that the route has been suspended. */
+ UCS_RM_ROUTE_INFOS_PROCESS_STOP = 0x03U /*!< \brief Specifies that the route cannot be processed anymore because of UNICENS Termination. */
+
+} Ucs_Rm_RouteInfos_t;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Configuration structure of a Connection EndPoint. */
+typedef struct Ucs_Rm_EndPoint_
+{
+ /*! \brief Type of the endpoint object. */
+ Ucs_Rm_EndPointType_t endpoint_type;
+ /*! \brief Reference to a job list. */
+ Ucs_Xrm_ResObject_t ** jobs_list_ptr;
+ /*! \brief Reference to a node object. */
+ Ucs_Rm_Node_t * node_obj_ptr;
+ /*! \brief Internal information of this endpoint object. */
+ Ucs_Rm_EndPointInt_t internal_infos;
+
+} Ucs_Rm_EndPoint_t;
+
+/*! \brief Configuration structure of a Route. */
+typedef struct Ucs_Rm_Route_
+{
+ /*! \brief Reference to a Source Endpoint object. */
+ Ucs_Rm_EndPoint_t * source_endpoint_ptr;
+ /*! \brief Reference to a Sink Endpoint object. */
+ Ucs_Rm_EndPoint_t * sink_endpoint_ptr;
+ /*! \brief Route activity. Specifies whether the route is active yet or not. */
+ uint8_t active;
+ /*! \brief User-defined route identifier. */
+ uint16_t route_id;
+ /*! \brief Internal information of the route object. */
+ Ucs_Rm_RouteInt_t internal_infos;
+
+} Ucs_Rm_Route_t;
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_RM_PB_H */
+
+/*! @} */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_rm_pv.h b/ucs2-lib/inc/ucs_rm_pv.h
new file mode 100644
index 0000000..09fc85e
--- /dev/null
+++ b/ucs2-lib/inc/ucs_rm_pv.h
@@ -0,0 +1,69 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Private header file of the Routing Management.
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_RTM
+ * @{
+ */
+
+#ifndef UCS_RM_PV_H
+#define UCS_RM_PV_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_rtm_pv.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Internal configuration structure of a Connection Node. */
+typedef struct Ucs_Rm_NodeInt_
+{
+ uint8_t available; /*!< \brief Availability flag */
+ uint8_t mgr_joined; /*!< \brief Indicates whether the node was made available by manager */
+
+} Ucs_Rm_NodeInt_t;
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_RM_PV_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_rsm.h b/ucs2-lib/inc/ucs_rsm.h
new file mode 100644
index 0000000..261542a
--- /dev/null
+++ b/ucs2-lib/inc/ucs_rsm.h
@@ -0,0 +1,161 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+
+/*!
+ * \file
+ * \brief Internal header file of the Remote Sync Manager.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_RSM
+ * @{
+ */
+
+
+#ifndef UCS_RSM_H
+#define UCS_RSM_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_net.h"
+#include "ucs_base.h"
+#include "ucs_inic.h"
+#include "ucs_ret_pb.h"
+#include "ucs_obs.h"
+#include "ucs_rsm_pv.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Enumerations */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief RSM internal state transitions */
+typedef enum Rsm_StateTransition_
+{
+ RSM_ST_IDLE, /*!< \brief Transition to "Idle" state */
+ RSM_ST_SYNC_REQ, /*!< \brief Transition to "Sync Request" state */
+ RSM_ST_NTF_REQ, /*!< \brief Transition to "Notification Request" state */
+ RSM_ST_NTF_CLEAR, /*!< \brief Transition to "Notification Clear" state */
+ RSM_ST_NTF_ALL, /*!< \brief Transition to "All Notification" state */
+ RSM_ST_NTF_GPIO, /*!< \brief Transition to "Gpio Notification" state */
+ RSM_ST_SYNC_SUCC, /*!< \brief Transition to "Sync Success" state */
+ RSM_ST_SYNC_ERR /*!< \brief Transition to "Sync Error" state */
+
+} Rsm_StateTransition_t;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Stores data required by RSM during initialization. */
+typedef struct Rsm_InitData_
+{
+ CBase *base_ptr; /*!< \brief Reference to base instance */
+ CInic *inic_ptr; /*!< \brief Reference to INIC instance */
+ CNetworkManagement *net_ptr; /*!< \brief Reference to Network instance */
+
+} Rsm_InitData_t;
+
+/*! \brief Stores information required for a RSM device. */
+typedef struct Rsm_DeviceInfos_
+{
+ /*! \brief State of the device */
+ Rsm_DevSyncState_t sync_state;
+ /*! \brief next state transition */
+ Rsm_StateTransition_t next_st;
+ /*! \brief stores the current result */
+ Rsm_Result_t curr_result;
+ /*! \brief stores the current user data that'll be passes to curr_res_cb_fptr */
+ void * curr_user_data;
+ /*! \brief current result callback function ptr */
+ Rsm_ResultCb_t curr_res_cb_fptr;
+
+} Rsm_DeviceInfos_t;
+
+/*! \brief Stores parameter used for signaling RSM event. */
+typedef struct Rsm_EventParam_
+{
+ /*! \brief own current device address */
+ uint16_t own_device_address;
+ /*! \brief max node position */
+ uint8_t max_node_pos;
+ /*! \brief Result observer used for sockets, ports and connections */
+ CSingleObserver stdresult_observer;
+ /*! \brief Observer used to monitor ICM or MCM Tx Message objects availability */
+ CObserver txavailability_observer;
+ /*! \brief Observer used to monitor MNS initialization result */
+ CMaskedObserver ucsinit_observer;
+ /*! \brief Observe MOST Network status in Net module */
+ CMaskedObserver nwstatus_observer;
+ /*! \brief Own subject to notify the SyncLost event */
+ CSubject subject;
+
+} Rsm_EventParam_t;
+
+/*! \brief Class structure of the Remote Sync Management. */
+typedef struct CRemoteSyncManagement_
+{
+ /*! \brief Reference to an INIC instance */
+ CInic *inic_ptr;
+ /*! \brief Reference to a base instance */
+ CBase *base_ptr;
+ /*! \brief Reference to a network instance */
+ CNetworkManagement *net_ptr;
+ /*! \brief RSM DeviceInfos list */
+ Rsm_DeviceInfos_t dev_infos;
+ /*! \brief stores the last synclost cause */
+ Rsm_SyncLostCause_t last_synclost_cause;
+ /*! \brief Parameter object for the RSM Event */
+ Rsm_EventParam_t event_param;
+ /*! \brief Service instance for the scheduler */
+ CService rsm_srv;
+
+} CRemoteSyncManagement;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Prototypes of class CRemoteSyncManagement */
+/*------------------------------------------------------------------------------------------------*/
+extern void Rsm_Ctor(CRemoteSyncManagement * self, Rsm_InitData_t * init_ptr);
+extern void Rsm_AddObserver(CRemoteSyncManagement * self, CObserver * obs);
+extern void Rsm_DelObserver(CRemoteSyncManagement * self, CObserver * obs_ptr);
+extern Ucs_Return_t Rsm_SyncDev(CRemoteSyncManagement * self, void* user_data, Rsm_ResultCb_t sync_complete_fptr);
+extern Rsm_DevSyncState_t Rsm_GetDevState(CRemoteSyncManagement * self);
+extern void Rsm_ReportSyncLost (CRemoteSyncManagement * self);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_RSM_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_rsm_pv.h b/ucs2-lib/inc/ucs_rsm_pv.h
new file mode 100644
index 0000000..5d70aa5
--- /dev/null
+++ b/ucs2-lib/inc/ucs_rsm_pv.h
@@ -0,0 +1,145 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Public header file of the Extended Resource Manager.
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_RSM
+ * @{
+ */
+
+#ifndef UCS_RSM_PB_H
+#define UCS_RSM_PB_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_message_pb.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Enumerators */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief SyncLost Causes
+ * \ingroup G_UCS_RSM_TYPES
+ */
+typedef enum Rsm_SyncLostCause_
+{
+ RSM_SLC_NWSHUTDOWN, /*!< \brief "Network Shutdown" causes the SyncLost */
+ RSM_SLC_CFGNOTOK, /*!< \brief "Config Not Ok" causes the SyncLost */
+ RSM_SLC_SYSMODIF /*!< \brief "System Changes like own node address or MPR changes" cause the SyncLost */
+
+} Rsm_SyncLostCause_t;
+
+/*! \brief RSM Sync states
+ * \ingroup G_UCS_RSM_TYPES
+ */
+typedef enum Rsm_DevSyncState_
+{
+ RSM_DEV_UNSYNCED, /*!< \brief RSM device is "Unsynced", i.e. not in remote control mode */
+ RSM_DEV_SYNCING, /*!< \brief RSM device is "Synching" */
+ RSM_DEV_SYNCED /*!< \brief RSM device is "Synced", i.e. in remote control mode */
+
+} Rsm_DevSyncState_t;
+
+/*! \brief Result codes of the Extended Resource Manager.
+ * \ingroup G_UCS_RSM_TYPES
+ */
+typedef enum Rsm_ResultCode_
+{
+ RSM_RES_SUCCESS, /*!< \brief Device Sync succeeded */
+ RSM_RES_ERR_SYNC /*!< \brief Device Sync failed because of not Remote Control Mode */
+
+} Rsm_ResultCode_t;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Detailed information used for Extended Resource Manager results. */
+typedef struct Rsm_ResultDetails_
+{
+ /*! \brief Holds the status of the transmission. */
+ Ucs_MsgTxStatus_t tx_result;
+ /*! \brief Holds the results of the target device. */
+ Ucs_StdResult_t inic_result;
+
+} Rsm_ResultDetails_t;
+
+/*! \brief Result structure of the Extended Resource Manager. */
+typedef struct Rsm_Result_
+{
+ /*! \brief Result code. */
+ Rsm_ResultCode_t code;
+ /*! \brief Detailed information on the returned result. */
+ Rsm_ResultDetails_t details;
+
+} Rsm_Result_t;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Type definitions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Callback function type to retrieve a RSM result
+ * \param self The instance (optional)
+ * \param result The result message object
+ * \ingroup G_UCS_RSM_TYPES
+ */
+typedef void (*Rsm_ResultCb_t)(void * self, Rsm_Result_t result);
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*!
+ * \def UCS_NUM_REMOTE_DEVICES
+ * \brief Customer assignment for number of remote devices required by Resources Management modules.
+ * \details If the macro is not defined, the UNICENS library will use a default value of 0. The user
+ * can overwrite this default value by defining the macro. Valid values are in the range
+ * from 0 to 63.
+ * \ingroup G_UCS_XRM_CFG
+ */
+#ifndef UCS_NUM_REMOTE_DEVICES
+# define UCS_NUM_REMOTE_DEVICES 0U
+#endif
+
+/*! \def UCS_ADDR_LOCAL_DEV
+ * \brief Defines the address of the local device.
+ * \details This macro is used to define the address of the local device. It should be used by
+ * the application to trigger jobs on the local device.
+ * \ingroup G_UCS_IRM
+ */
+#define UCS_ADDR_LOCAL_DEV 0x0001U
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_RSM_PB_H */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_rtm.h b/ucs2-lib/inc/ucs_rtm.h
new file mode 100644
index 0000000..2fbccfd
--- /dev/null
+++ b/ucs2-lib/inc/ucs_rtm.h
@@ -0,0 +1,127 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Internal header file of the Route Manager.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_RTM
+ * @{
+ */
+
+#ifndef UCS_RTM_H
+#define UCS_RTM_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_base.h"
+#include "ucs_ret_pb.h"
+#include "ucs_obs.h"
+#include "ucs_epm.h"
+#include "ucs_net.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Stores data required by RTM during initialization. */
+typedef struct Rtm_InitData_
+{
+ CBase *base_ptr; /*!< \brief Reference to base instance */
+ CEndpointManagement *epm_ptr; /*!< \brief Reference to the endpoint management instance */
+ CNetworkManagement *net_ptr; /*!< \brief Reference to Network instance */
+ Ucs_Rm_ReportCb_t report_fptr; /*!< \brief Reference to the report callback function */
+
+} Rtm_InitData_t;
+
+/*! \brief Class structure of the Route Management. */
+typedef struct CRouteManagement_
+{
+ /*! \brief Reference to a base instance */
+ CBase *base_ptr;
+ /*! \brief Reference to a network instance */
+ CEndpointManagement * epm_ptr;
+ /*!< \brief Reference to the timer management */
+ CTimerManagement * tm_ptr;
+ /*!< \brief Reference to Network instance */
+ CNetworkManagement *net_ptr;
+ /*!< \brief Timer for checking routes process */
+ CTimer route_check;
+ /*!< \brief Reference to the routes list */
+ Ucs_Rm_Route_t * routes_list_ptr;
+ /*! \brief Points to the current routes to be handled */
+ Ucs_Rm_Route_t * curr_route_ptr;
+ /*! \brief Current route index */
+ uint16_t curr_route_index;
+ /*! \brief Size of the current routes list */
+ uint16_t routes_list_size;
+ /*! \brief Service instance for the scheduler */
+ CService rtm_srv;
+ /*! \brief Report callback of the routes list */
+ Ucs_Rm_ReportCb_t report_fptr;
+ /*! \brief Observe MOST Network status in Net module */
+ CMaskedObserver nwstatus_observer;
+ /*! \brief Observer used to monitor UCS initialization result */
+ CMaskedObserver ucsinit_observer;
+ /*! \brief Observer used to monitor UCS termination event */
+ CMaskedObserver ucstermination_observer;
+ /*! \brief Specifies used to monitor UCS termination event */
+ bool ucs_is_stopping;
+ /*! \brief specifies whether the network status is available or not */
+ bool nw_available;
+ /*! \brief Flag to lock the API */
+ bool lock_api;
+
+} CRouteManagement;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Prototypes of class CRouteManagement */
+/*------------------------------------------------------------------------------------------------*/
+extern void Rtm_Ctor(CRouteManagement * self, Rtm_InitData_t * init_ptr);
+extern Ucs_Return_t Rtm_StartProcess(CRouteManagement * self, Ucs_Rm_Route_t routes_list[], uint16_t size);
+extern Ucs_Return_t Rtm_DeactivateRoute(CRouteManagement * self, Ucs_Rm_Route_t * route_ptr);
+extern Ucs_Return_t Rtm_ActivateRoute(CRouteManagement * self, Ucs_Rm_Route_t * route_ptr);
+extern Ucs_Return_t Rtm_SetNodeAvailable(CRouteManagement * self, Ucs_Rm_Node_t *node_ptr, bool available);
+extern bool Rtm_GetNodeAvailable(CRouteManagement * self, Ucs_Rm_Node_t *node_ptr);
+extern Ucs_Return_t Rtm_GetAttachedRoutes(CRouteManagement * self, Ucs_Rm_EndPoint_t * ep_inst, Ucs_Rm_Route_t * ext_routes_list[], uint16_t size_list);
+extern uint16_t Rtm_GetConnectionLabel(CRouteManagement * self, Ucs_Rm_Route_t * route_ptr);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_RTM_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_rtm_pv.h b/ucs2-lib/inc/ucs_rtm_pv.h
new file mode 100644
index 0000000..82b6210
--- /dev/null
+++ b/ucs2-lib/inc/ucs_rtm_pv.h
@@ -0,0 +1,116 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Public header file of the Extended Resource Manager.
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_RTM
+ * @{
+ */
+
+#ifndef UCS_RTM_PV_H
+#define UCS_RTM_PV_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_epm_pv.h"
+#include "ucs_obs.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Enumerators */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief This enumerator specifies the kind of result - Internal, Target or Transmission. */
+typedef enum Ucs_Rm_RouteState_
+{
+ UCS_RM_ROUTE_IDLE = 0x00U, /*!< \brief Specifies that the Route is in idle state, i.e. not handled yet. */
+ UCS_RM_ROUTE_CONSTRUCTION = 0x01U, /*!< \brief Specifies that the Route is under Construction. */
+ UCS_RM_ROUTE_BUILT = 0x02U, /*!< \brief Specifies that the Route is built. */
+ UCS_RM_ROUTE_DETERIORATED = 0x03U, /*!< \brief Specifies that the Route is Deteriorated. */
+ UCS_RM_ROUTE_DESTRUCTION = 0x04U, /*!< \brief Specifies that the Route is under Destruction. */
+ UCS_RM_ROUTE_SUSPENDED = 0x05U /*!< \brief Specifies that the Route is Suspended. */
+
+} Ucs_Rm_RouteState_t;
+
+/*! \brief This enumerator specifies the kind of result - Internal, Target or Transmission. */
+typedef enum Ucs_Rm_RouteResult_
+{
+ UCS_RM_ROUTE_NOERROR = 0x00U, /*!< \brief Specifies that the result is error free. */
+ UCS_RM_ROUTE_UNCRITICAL = 0x01U, /*!< \brief Specifies that the result is uncritical. A retry is necessary. */
+ UCS_RM_ROUTE_CRITICAL = 0x02U /*!< \brief Specifies that the result is critical. No retry necessary. */
+
+} Ucs_Rm_RouteResult_t;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+/* Rtm_Inst_t requires incomplete forward declaration, to hide internal data type.
+ * The Rtm_Inst_t object is allocated internally, the core library must access only the pointer to Rtm_Inst_t. */
+struct Rtm_Inst_;
+
+/*!\brief RouteManagement instance */
+typedef struct Rtm_Inst_ Rtm_Inst_t;
+
+/*! \brief Internal configuration structure of a Route. */
+typedef struct Ucs_Rm_RouteInt_
+{
+ /*! \brief Specifies the RTM instance that manages this route. */
+ Rtm_Inst_t * rtm_inst;
+ /*! \brief Specifies the route state. */
+ Ucs_Rm_RouteState_t route_state;
+ /*! \brief Specifies the last route result. */
+ Ucs_Rm_RouteResult_t last_route_result;
+ /*! \brief Specifies the observer object for source endpoint. */
+ CObserver source_ep_observer;
+ /*! \brief Specifies whether the sink observer object is initialized or not. */
+ uint8_t sink_obsvr_initialized;
+ /*! \brief Specifies whether the source observer object is initialized or not. */
+ uint8_t src_obsvr_initialized;
+ /*! \brief Specifies whether or not the UCS termination has been notified for this route. */
+ uint8_t notify_termination;
+ /*! \brief Specifies the observer object for sink endpoint. */
+ CObserver sink_ep_observer;
+
+} Ucs_Rm_RouteInt_t;
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_RTM_PV_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_rules.h b/ucs2-lib/inc/ucs_rules.h
new file mode 100644
index 0000000..9a6a5ff
--- /dev/null
+++ b/ucs2-lib/inc/ucs_rules.h
@@ -0,0 +1,59 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief UNICENSV2 API include file
+ */
+
+#ifndef UCS_SHARED_CONFIG_H
+#define UCS_SHARED_CONFIG_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_cfg.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Shared Definitions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \def UCS_FOOTPRINT_TINY
+ * \brief Define this macro to reduce the RAM and ROM size of the UNICENS software by
+ * disabling certain features.
+ * \ingroup G_UCS_INIT_AND_SRV
+ * \details If this macro is defined the following changes apply:
+ * - Reduction of low-level buffers
+ * - AMS does not support segmentation (payload > 45 bytes)
+ * .
+ */
+#ifndef UCS_FOOTPRINT_TINY
+# define UCS_FOOTPRINT_TINY
+#else
+# define AMS_FOOTPRINT_TINY
+# define MNSL_FOOTPRINT_TINY
+# define SMM_FOOTPRINT_TINY
+#endif
+
+#endif /* UCS_SHARED_CONFIG_H */
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_scheduler.h b/ucs2-lib/inc/ucs_scheduler.h
new file mode 100644
index 0000000..6eed99d
--- /dev/null
+++ b/ucs2-lib/inc/ucs_scheduler.h
@@ -0,0 +1,146 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Internal header file of the scheduler module. The module consists of the two classes
+ * CScheduler and CService.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_SCHEDULER
+ * @{
+ */
+
+#ifndef UCS_SCHEDULER_H
+#define UCS_SCHEDULER_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_rules.h"
+#include "ucs_dl.h"
+#include "ucs_obs.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Type definitions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Function signature used for UCS request callback function */
+typedef void (*Scd_UcsServiceRequest_t)(void);
+/*! \brief Function signature used for service callback functions
+ * \param self Instance pointer
+ */
+typedef void (*Srv_Cb_t)(void *self);
+/*! \brief Data type of event masks */
+typedef uint32_t Srv_Event_t;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Definitions */
+/*------------------------------------------------------------------------------------------------*/
+extern const Srv_Event_t SRV_EMPTY_EVENT_MASK; /*!< \brief Empty event mask */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Enumerators */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Standard return values of scheduler module. */
+typedef enum Scd_Ret_
+{
+ SCD_OK, /*!< \brief No error */
+ SCD_UNKNOWN_SRV, /*!< \brief Service is unknown */
+ SCD_SRV_ALREADY_LISTED /*!< \brief Service is already part of the schedulers list */
+
+} Scd_Ret_t;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Initialization structure of the scheduler module. */
+typedef struct Scd_InitData_
+{
+ /*! \brief Observer to request a UCS service call */
+ CSingleObserver *service_request_obs_ptr;
+ /*! \brief UNICENS instance ID */
+ /*uint8_t ucs_inst_id;*/
+
+} Scd_InitData_t;
+
+/*! \brief Class structure of the scheduler. */
+typedef struct CScheduler_
+{
+ /*! \brief Subject to request a UCS service call */
+ CSingleSubject service_request_subject;
+ /*! \brief Service list of the scheduler */
+ CDlList srv_list;
+ /*! \brief Indicates if the scheduler services is running */
+ bool scd_srv_is_running;
+ /*! \brief UNICENS instance ID */
+ void * ucs_user_ptr;
+
+} CScheduler;
+
+/*! \brief Class structure of services used by the scheduler. */
+typedef struct CService_
+{
+ CDlNode list_node; /*!< \brief Administration area for the linked list */
+ CScheduler *scd_ptr; /*!< \brief Back link to scheduler */
+ void *instance_ptr; /*!< \brief Reference of instance passed to service_fptr() */
+ Srv_Cb_t service_fptr; /*!< \brief Reference of the service callback function */
+ Srv_Event_t event_mask; /*!< \brief Event mask of the service */
+ uint8_t priority; /*!< \brief Priority of the service */
+
+} CService;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Prototypes of class CScheduler */
+/*------------------------------------------------------------------------------------------------*/
+extern void Scd_Ctor(CScheduler *self, Scd_InitData_t *init_ptr, void *ucs_user_ptr);
+extern void Scd_Service(CScheduler *self);
+extern Scd_Ret_t Scd_AddService(CScheduler *self, CService *srv_ptr);
+extern Scd_Ret_t Scd_RemoveService(CScheduler *self, CService *srv_ptr);
+extern bool Scd_AreEventsPending(CScheduler *self);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Prototypes of class CService */
+/*------------------------------------------------------------------------------------------------*/
+extern void Srv_Ctor(CService *self, uint8_t priority, void *instance_ptr, Srv_Cb_t service_fptr);
+extern void Srv_SetEvent(CService *self, Srv_Event_t event_mask);
+extern void Srv_GetEvent(CService *self, Srv_Event_t *event_mask_ptr);
+extern void Srv_ClearEvent(CService *self, Srv_Event_t event_mask);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_SCHEDULER_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_segmentation.h b/ucs2-lib/inc/ucs_segmentation.h
new file mode 100644
index 0000000..849517f
--- /dev/null
+++ b/ucs2-lib/inc/ucs_segmentation.h
@@ -0,0 +1,144 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Internal header file of AMS Segmentation Class
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_AMSSEGM
+ * @{
+ */
+
+#ifndef UCS_SEGMENTATION_H
+#define UCS_SEGMENTATION_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_message.h"
+#include "ucs_amsmessage.h"
+#include "ucs_amspool.h"
+#include "ucs_base.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Macros */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Defines the maximum payload size of a single transfer in bytes */
+#define SEGM_MAX_SIZE_TEL 45U
+
+/*------------------------------------------------------------------------------------------------*/
+/* Types */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Collection of possible segmentation errors */
+typedef enum Segm_Error_
+{
+ SEGM_ERR_1 = 1, /*!< \brief The first segment is missing. */
+
+ SEGM_ERR_2 = 2, /*!< \brief The device is not able to receive a message of this size.
+ * MNS specific: The allocation of user provided payload failed.
+ */
+ SEGM_ERR_3 = 3, /*!< \brief Unexpected segment number. */
+
+ SEGM_ERR_4 = 4, /*!< \brief Too many unfinished segmentation messages were pending. */
+
+ SEGM_ERR_5 = 5, /*!< \brief A timeout occurred while waiting for the next segment. */
+
+ SEGM_ERR_6 = 6, /*!< \brief The Device is not capable to handle segmented messages.
+ * MNS specific: The application did not assign the payload allocation
+ * function in Ucs_Ams_InitData_t prior calling Ucs_Init().
+ */
+ SEGM_ERR_7 = 7 /*!< \brief Segmented message has not been finished before the arrival of
+ * another message with the identical FBlockID, InstID, FktID, and
+ * OPType sent by the same node.
+ */
+} Segm_Error_t;
+
+/*! \brief Segmentation result */
+typedef enum Segm_Result_
+{
+ SEGM_RES_OK, /*!< \brief Telegram was processed */
+ SEGM_RES_RETRY /*!< \brief Telegram shall be processed again as soon as messages are freed to the Rx pool */
+
+} Segm_Result_t;
+
+/*! \brief Callback function to notify that a segmentation error has occurred
+ * \param self The instance
+ * \param tel_ptr The affected telegram
+ * \param error The segmentation error code (1..7)
+ */
+typedef void (*Segm_OnError_t)(void *self, Msg_MostTel_t *tel_ptr, Segm_Error_t error);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Class */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief AMS Segmentation Class
+ * \details Performs Tx and Rx Segmentation
+ */
+typedef struct CSegmentation_
+{
+ CBase *base_ptr; /*!< \brief Reference to base services */
+ CAmsMsgPool *pool_ptr; /*!< \brief Reference to object/payload pool */
+
+ Segm_OnError_t error_fptr; /*!< \brief Callback function to notify segmentation errors */
+ void *error_inst; /*!< \brief Instance which is notified on segmentation errors */
+
+ CDlList processing_list; /*!< \brief Segmented and un-finished Rx messages */
+ CTimer gc_timer; /*!< \brief Timer to trigger the garbage collector */
+ uint16_t rx_default_payload_sz; /*!< \brief Payload size that shall be allocated if size-prefixes
+ * segmentation message is missing */
+
+} CSegmentation;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Initialization Methods */
+/*------------------------------------------------------------------------------------------------*/
+extern void Segm_Ctor(CSegmentation *self, CBase *base_ptr, CAmsMsgPool *pool_ptr, uint16_t rx_def_payload_sz);
+extern void Segm_AssignRxErrorHandler(CSegmentation *self, Segm_OnError_t error_fptr, void *error_inst);
+extern void Segm_Cleanup(CSegmentation *self);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Public method prototypes */
+/*------------------------------------------------------------------------------------------------*/
+extern bool Segm_TxBuildSegment(CSegmentation *self, Ucs_AmsTx_Msg_t *msg_ptr, Msg_MostTel_t *tel_ptr);
+extern Ucs_AmsRx_Msg_t* Segm_RxExecuteSegmentation(CSegmentation *self, Msg_MostTel_t *tel_ptr, Segm_Result_t *result_ptr);
+extern void Segm_RxGcScanProcessingHandles(void *self);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* UCS_SEGMENTATION_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_smm.h b/ucs2-lib/inc/ucs_smm.h
new file mode 100644
index 0000000..e129ff3
--- /dev/null
+++ b/ucs2-lib/inc/ucs_smm.h
@@ -0,0 +1,149 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Header file of the class CStaticMemoryManager.
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_UCS_SMM_CLASS
+ * @{
+ */
+
+#ifndef UCS_SMM_H
+#define UCS_SMM_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_smm_pb.h"
+#include "ucs_ret_pb.h"
+#include "ucs_dl.h"
+#include "ucs_amsmessage.h"
+#include "ucs_amsallocator.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Macros */
+/*------------------------------------------------------------------------------------------------*/
+#define SMM_NUM_TX_MSGS ((uint16_t)UCS_AMS_NUM_TX_MSGS)
+#define SMM_NUM_RX_MSGS ((uint16_t)UCS_AMS_NUM_RX_MSGS)
+#define SMM_SIZE_TX_MSG ((uint16_t)UCS_AMS_SIZE_TX_MSG)
+#define SMM_SIZE_RX_MSG ((uint16_t)UCS_AMS_SIZE_RX_MSG)
+
+/*------------------------------------------------------------------------------------------------*/
+/* Type definitions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Tx object allocation info */
+typedef struct Smm_TxObject_
+{
+ Amsg_IntMsgTx_t object; /*!< \brief Tx object memory */
+ CDlNode node; /*!< \brief Node that enables listing */
+
+} Smm_TxObject_t;
+
+/*! \brief Rx object allocation info */
+typedef struct Smm_RxObject_
+{
+ Amsg_IntMsgRx_t object; /*!< \brief Rx object memory */
+ CDlNode node; /*!< \brief Node that enables listing */
+
+} Smm_RxObject_t;
+
+/*! \brief Tx payload allocation info */
+typedef struct Smm_TxPayload_
+{
+ uint8_t data[SMM_SIZE_TX_MSG]; /*!< \brief Tx payload memory */
+ CDlNode node; /*!< \brief Node that enables listing */
+
+} Smm_TxPayload_t;
+
+/*! \brief Rx payload allocation info */
+typedef struct Smm_RxPayload_
+{
+ uint8_t data[SMM_SIZE_RX_MSG]; /*!< \brief Rx payload memory */
+ CDlNode node; /*!< \brief Node that enables listing */
+
+} Smm_RxPayload_t;
+
+/*! \brief Static memory allocation of objects and payload */
+typedef struct Smm_Resources_
+{
+ Smm_TxObject_t tx_objects[SMM_NUM_TX_MSGS]; /*!< \brief Statically allocated Tx objects */
+ Smm_RxObject_t rx_objects[SMM_NUM_RX_MSGS]; /*!< \brief Statically allocated Rx objects */
+
+ Smm_TxPayload_t tx_payload[SMM_NUM_TX_MSGS]; /*!< \brief Statically allocated Tx payload */
+ Smm_RxPayload_t rx_payload[SMM_NUM_RX_MSGS]; /*!< \brief Statically allocated Rx payload */
+
+} Smm_Resources_t;
+
+/*! \brief Descriptor which simplifies access to different memory types */
+typedef struct Smm_Descriptor_
+{
+ CDlList list; /*!< \brief The list of available memory chunks */
+ uint16_t max_mem_size; /*!< \brief The maximum size of one memory chunk */
+
+} Smm_Descriptor_t;
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Class definitions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Structure of the class CStaticMemoryManager. */
+typedef struct CStaticMemoryManager_
+{
+ Smm_Resources_t resources; /*!< \brief Static allocation of memory */
+
+ Smm_Descriptor_t null_descr; /*!< \brief Descriptor for unknown memory type. Performance measure. */
+ Smm_Descriptor_t tx_object_descr; /*!< \brief Descriptor of Tx object type */
+ Smm_Descriptor_t tx_payload_descr; /*!< \brief Descriptor of Tx payload type */
+ Smm_Descriptor_t rx_object_descr; /*!< \brief Descriptor of Rx object type */
+ Smm_Descriptor_t rx_payload_descr; /*!< \brief Descriptor of Rx payload type */
+
+ void *ucs_user_ptr; /*!< \brief User reference that needs to be passed in every callback function */
+
+} CStaticMemoryManager;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Prototypes of class CStaticMemoryManager */
+/*------------------------------------------------------------------------------------------------*/
+extern void Smm_Ctor(CStaticMemoryManager *self, void *ucs_user_ptr);
+extern Ucs_Return_t Smm_LoadPlugin(CStaticMemoryManager *self, Ams_MemAllocator_t *allocator_ptr, uint16_t rx_def_payload_size);
+extern Ucs_Return_t Smm_GetFreeBufferCnt(CStaticMemoryManager *self, uint16_t *rx_cnt_ptr, uint16_t *tx_cnt_ptr);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_SMM_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_smm_pb.h b/ucs2-lib/inc/ucs_smm_pb.h
new file mode 100644
index 0000000..ff5042e
--- /dev/null
+++ b/ucs2-lib/inc/ucs_smm_pb.h
@@ -0,0 +1,114 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Header file of the static memory manager plug-in.
+ * \addtogroup G_UCS_AMS
+ * @{
+ */
+
+#ifndef UCS_SMM_API_H
+#define UCS_SMM_API_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_rules.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Default configuration */
+/*------------------------------------------------------------------------------------------------*/
+/*! \def UCS_AMS_NUM_RX_MSGS
+ * \brief Defines the number of reserved Rx message objects.
+ * Valid values: 5..255. Default value: 20.
+ */
+#ifndef UCS_AMS_NUM_RX_MSGS
+# define UCS_AMS_NUM_RX_MSGS 20
+#else
+# if (UCS_AMS_NUM_RX_MSGS < 5) || (UCS_AMS_NUM_RX_MSGS > 255)
+# error "UCS_AMS_NUM_RX_MSGS is not properly defined. Choose a value between: 10 and 255."
+# endif
+#endif
+
+/*! \def UCS_AMS_SIZE_RX_MSG
+ * \brief Defines the payload size in bytes which is available for every Rx message object.
+ * Valid values: 45..65535. Default value: 45.
+ */
+#ifndef UCS_AMS_SIZE_RX_MSG
+# define UCS_AMS_SIZE_RX_MSG 45
+#else
+# if (UCS_AMS_SIZE_RX_MSG >= 45) && (UCS_AMS_SIZE_RX_MSG <= 65535)
+# if defined(SMM_FOOTPRINT_TINY) && (UCS_AMS_SIZE_RX_MSG != 45)
+# error Do not define UCS_AMS_SIZE_RX_MSG together with SMM_FOOTPRINT_TINY.
+# endif
+# else
+# error UCS_AMS_SIZE_RX_MSG is not properly defined. Choose a value between: 45 and 65535.
+# endif
+#endif
+
+/*! \def UCS_AMS_NUM_TX_MSGS
+ * \brief Defines the number of reserved Tx message objects.
+ * Valid values: 5..255. Default value: 20.
+ */
+#ifndef UCS_AMS_NUM_TX_MSGS
+# define UCS_AMS_NUM_TX_MSGS 20
+#else
+# if (UCS_AMS_NUM_TX_MSGS < 5) || (UCS_AMS_NUM_TX_MSGS > 255)
+# error "UCS_AMS_NUM_TX_MSGS is not properly defined. Choose a value between: 10 and 255."
+# endif
+#endif
+
+/*! \def UCS_AMS_SIZE_TX_MSG
+ * \brief Defines the payload size in bytes which is available for every Tx message object.
+ * Valid values: 45..65535. Default value: 45.
+ */
+#ifndef UCS_AMS_SIZE_TX_MSG
+# define UCS_AMS_SIZE_TX_MSG 45
+#else
+# if (UCS_AMS_SIZE_TX_MSG >= 45) && (UCS_AMS_SIZE_TX_MSG <= 65535)
+# if defined(SMM_FOOTPRINT_TINY) && (UCS_AMS_SIZE_TX_MSG != 45)
+# error "Do not define UCS_AMS_SIZE_TX_MSG together with SMM_FOOTPRINT_TINY."
+# endif
+# else
+# error "UCS_AMS_SIZE_TX_MSG is not properly defined. Choose a value between: 45 and 65535."
+# endif
+#endif
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_SMM_API_H */
+
+/*!
+ * @}
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_sys_diag.h b/ucs2-lib/inc/ucs_sys_diag.h
new file mode 100644
index 0000000..83f034a
--- /dev/null
+++ b/ucs2-lib/inc/ucs_sys_diag.h
@@ -0,0 +1,143 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Internal header file of class CSysDiag.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_SYS_DIAG
+ * @{
+ */
+
+#ifndef UCS_SYS_DIAG_H
+#define UCS_SYS_DIAG_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_obs.h"
+#include "ucs_fsm.h"
+#include "ucs_inic.h"
+#include "ucs_exc.h"
+
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Enumerations */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Result codes of a tested segment. */
+typedef enum Sd_ResultCode_
+{
+ SD_INIT = 0x01U, /*!< \brief initialized */
+ SD_SEGMENT = 0x02U, /*!< \brief segment explored */
+ SD_CABLE_LINK = 0x03U /*!< \brief cable link diagnosis executed */
+
+} Sd_ResultCode_t;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+
+/*! \brief Structure decribing a node of the segment to be tested. */
+typedef struct Sd_Node_
+{
+ bool available; /*!< \brief node available? *//*! i todo RWI: */
+ uint16_t node_address; /*!< \brief node address used for welcome command */
+ uint8_t result; /*!< \brief result parameter of Welcome.Result message */
+ uint8_t version; /*!< \brief version parameter of Hello and Welcome messages */
+ Ucs_Signature_t signature; /*!< \brief signature of the node */
+
+} Sd_Node;
+
+
+
+/*! \brief Structure of class CSysDiag. */
+typedef struct CSysDiag_
+{
+ CInic *inic; /*!< \brief Reference to CInic object */
+ CExc *exc; /*!< \brief Reference to CExc object */
+ CBase *base; /*!< \brief Reference to CBase object */
+
+ bool startup_locked; /*!< \brief Locking of NetworkStartup without timeout */
+ CSingleSubject sysdiag; /*!< \brief Subject for the System Diagnosis reports */
+
+ CSingleObserver sys_diag_start; /*!< \brief Observes the Inic_NwSysDiagnosis() command */
+ CSingleObserver sys_diag_stop; /*!< \brief Observes the Inic_NwSysDiagEnd() command */
+ CSingleObserver sys_hello; /*!< \brief Observes the Hello result */
+ CSingleObserver sys_welcome; /*!< \brief Observes the Welcome result */
+ CSingleObserver sys_enable_port; /*!< \brief Observes enabling a port */
+ CSingleObserver sys_disable_port; /*!< \brief Observes disabling a port */
+ CSingleObserver sys_cable_link_diagnosis; /*!< \brief Observes the CableLinkDiagnosis result */
+ CMaskedObserver sys_terminate; /*!< \brief Observes events leading to termination */
+
+ CFsm fsm; /*!< \brief System Diagnosis state machine */
+ CService sd_srv; /*!< \brief Service instance for the scheduler */
+
+ uint8_t segment_nr; /*!< \brief segment number which is currently checked*/
+ uint8_t num_ports; /*!< \brief number of ports of master node */
+ uint8_t curr_branch; /*!< \brief branch which is currently examined */
+ uint16_t admin_node_address; /*!< \brief node address used during system diagnosis */
+ Sd_ResultCode_t last_result; /*!< \brief result of last segment
+ */
+ Sd_Node master; /*!< \brief Timing Master node */
+ Sd_Node source; /*!< \brief Source node of segment to be tested */
+ Sd_Node target; /*!< \brief Target node of segment to be tested */
+ uint16_t hello_retry; /*!< \brief retry counter for hello message */
+ CTimer timer; /*!< \brief timer for monitoring messages */
+
+ Ucs_Sd_Report_t report; /*!< \brief reports segment results */
+
+} CSysDiag;
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Prototypes */
+/*------------------------------------------------------------------------------------------------*/
+extern void SysDiag_Ctor(CSysDiag *self, CInic *inic, CBase *base, CExc *exc);
+extern Ucs_Return_t SysDiag_Run(CSysDiag *self, CSingleObserver *obs_ptr);
+extern Ucs_Return_t SysDiag_Abort(CSysDiag *self);
+
+
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_SYS_DIAG_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_telqueue.h b/ucs2-lib/inc/ucs_telqueue.h
new file mode 100644
index 0000000..555ee8b
--- /dev/null
+++ b/ucs2-lib/inc/ucs_telqueue.h
@@ -0,0 +1,91 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Declaration of class CTelQueue
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_MSG_QUEUE
+ * @{
+ */
+
+#ifndef UCS_MSGQUEUE_H
+#define UCS_MSGQUEUE_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_message.h"
+#include "ucs_dl.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Types */
+/*------------------------------------------------------------------------------------------------*/
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Macros */
+/*------------------------------------------------------------------------------------------------*/
+
+/*------------------------------------------------------------------------------------------------*/
+/* Class CTelQueue */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Class CTelQueue
+ * \details Internal class to queue MOST telegrams
+ */
+typedef struct CTelQueue_
+{
+ CDlList list; /*! \brief Doubly linked list */
+ void *ucs_user_ptr; /*!< \brief User reference that needs to be passed in every callback function */
+
+} CTelQueue;
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Methods */
+/*------------------------------------------------------------------------------------------------*/
+extern void Telq_Ctor(CTelQueue *self, void *ucs_user_ptr);
+extern Msg_MostTel_t* Telq_Dequeue(CTelQueue *self);
+extern Msg_MostTel_t* Telq_Peek(CTelQueue *self);
+extern void Telq_Enqueue(CTelQueue *self, Msg_MostTel_t *tel_ptr);
+extern uint8_t Telq_GetSize(CTelQueue *self);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_MSGQUEUE_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_timer.h b/ucs2-lib/inc/ucs_timer.h
new file mode 100644
index 0000000..5321988
--- /dev/null
+++ b/ucs2-lib/inc/ucs_timer.h
@@ -0,0 +1,144 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Internal header file of the timer management module.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_TIMER
+ * @{
+ */
+
+#ifndef UCS_TIMER_H
+#define UCS_TIMER_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_rules.h"
+#include "ucs_dl.h"
+#include "ucs_scheduler.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Types */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Function signature used for timer handler
+ * \param args Void pointer to optional data
+ */
+typedef void (*Tm_Handler_t)(void *args);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Initialization structure of the timer management module. */
+typedef struct Tm_InitData_
+{
+ /*! \brief Observer used to request current tick count value */
+ CSingleObserver *get_tick_count_obs_ptr;
+ /*! \brief Observer used to start application timer for delayed TM service calls */
+ CSingleObserver *set_application_timer_obs_ptr;
+ /*! \brief UNICENS instance ID */
+ /*uint8_t ucs_inst_id;*/
+
+} Tm_InitData_t;
+
+/*! \brief Class structure of the a timer object. */
+typedef struct CTimer_
+{
+ /*! \brief Node of the doubly linked (timer-) list */
+ CDlNode node;
+ /*! \brief Handler function which is invoked when the timer expires */
+ Tm_Handler_t handler_fptr;
+ /*! \brief Reference to optional parameter */
+ void *args_ptr;
+ /*! \brief The Timeout value before the timer expires for the first time, in milliseconds */
+ uint16_t elapse;
+ /*! \brief The period of the timer, in milliseconds */
+ uint16_t period;
+ /*! \brief Delta time related to next timer in list */
+ uint16_t delta;
+ /*! \brief Flag which signals that the timer is in use */
+ bool in_use;
+ /*! \brief Flag to check if timer object has changed within timer handler callback function */
+ bool changed;
+
+} CTimer;
+
+/*! \brief Class structure of the timer management */
+typedef struct CTimerManagement_
+{
+ /*! \brief Doubly linked list to manage the active timers */
+ CDlList timer_list;
+ /*! \brief Subject to request current tick count */
+ CSingleSubject get_tick_count_subject;
+ /*! \brief Subject to start the application timer which triggers a UCS service call */
+ CSingleSubject set_application_timer_subject;
+ /*! \brief Service instance to add the timer management to the scheduler */
+ CService tm_srv;
+ /*! \brief Last tick count value (saved at TM service) */
+ uint16_t last_tick_count;
+ /*! \brief Signals that the application timer callbacks are used */
+ bool delayed_tm_service_enabled;
+ /*! \brief Indicates that the application timer must be started */
+ bool set_service_timer;
+ /*! \brief UNICENS instance ID */
+ void * ucs_user_ptr;
+
+} CTimerManagement;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Prototypes of class CTimerManagement */
+/*------------------------------------------------------------------------------------------------*/
+extern void Tm_Ctor(CTimerManagement *self, CScheduler *scd, const Tm_InitData_t *init_ptr, void * ucs_user_ptr);
+extern void Tm_SetTimer(CTimerManagement *self, CTimer *timer_ptr, Tm_Handler_t handler_fptr,
+ void *args_ptr, uint16_t elapse, uint16_t period);
+extern void Tm_ClearTimer(CTimerManagement *self, CTimer *timer_ptr);
+extern void Tm_CheckForNextService(CTimerManagement *self);
+extern void Tm_TriggerService(CTimerManagement *self);
+extern void Tm_StopService(CTimerManagement *self);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Prototypes of class CTimer */
+/*------------------------------------------------------------------------------------------------*/
+extern void T_Ctor(CTimer *self);
+extern bool T_IsTimerInUse(CTimer *self);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_TIMER_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_trace.h b/ucs2-lib/inc/ucs_trace.h
new file mode 100644
index 0000000..3137932
--- /dev/null
+++ b/ucs2-lib/inc/ucs_trace.h
@@ -0,0 +1,237 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Internal header file of the trace interface
+ */
+
+#ifndef UCS_TRACE_H
+#define UCS_TRACE_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_trace_pb.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Unit and entry ids */
+/*------------------------------------------------------------------------------------------------*/
+#define TR_UCS_ASSERT "ASSERT failed in line %d"
+#define TR_UCS_INIC_RESULT_ID_1 "INIC error data:"
+#define TR_UCS_INIC_RESULT_ID_2 "--> Data[%u]: 0x%02X"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal macros */
+/*------------------------------------------------------------------------------------------------*/
+
+/*! \def UCS_TR_INFO
+ * \brief Trace macro to capture trace info events
+ * \details This macro is used to enable the capturing of trace info events. The macro must be
+ * mapped onto a user-defined function. To disable the trace info events, the macro must
+ * not be defined. The mapped user-defined function must adhere to the following function
+ * signature.
+ *
+ * void (*Ucs_TraceCb_t)(void * ucs_user_ptr, const char module_str[], const char entry_str[], uint16_t vargs_cnt, ...);
+ * - <b>ucs_user_ptr</b><br>Reference to the User argument
+ * - <b>module_str</b><br>The name of the software module that has posted the trace
+ * - <b>entry_str</b><br>The trace entry as formatted string
+ * - <b>vargs_cnt</b><br>Number of trace arguments which will be passed within the variable
+ * argument list
+ * - <b>[...]</b><br>Variable argument list to pass trace arguments
+ *
+ * \warning Do not assign UCS_TR_INFO in a production system. This has major effects on the CPU load and runtime.
+ * UCS_TR_INFO is intended for debugging software during development phase. Microchip Support might
+ * request you to assign of this macro to spy on internal events. Disable this macro definition after
+ * your support case is closed.
+ *
+ * <b>Example:</b>
+ * \code
+ * extern void App_UcsTraceInfo(void * ucs_user_ptr,
+ * const char module_str[],
+ * const char entry_str[],
+ * uint16_t vargs_cnt,
+ * ...);
+ *
+ * #define UCS_TR_INFO App_UcsTraceInfo
+ * \endcode
+ *
+ * \ingroup G_UCS_TRACE
+ */
+
+/*! \def UCS_TR_ERROR
+ * \brief Trace macro to capture trace error events
+ * \details This macro is used to enable the capturing of trace error events. The macro must be
+ * mapped onto a user-defined function. To disable the trace error events, the macro must
+ * not be defined. The mapped user-defined function must adhere to the following function
+ * signature.
+ *
+ * void (*Ucs_TraceCb_t)(void * ucs_user_ptr, const char module_str[], const char entry_str[], uint16_t vargs_cnt, ...);
+ * - <b>ucs_user_ptr</b><br>Reference to the User argument
+ * - <b>module_str</b><br>The name of the software module that has posted the trace
+ * - <b>entry_str</b><br>The trace entry as formatted string
+ * - <b>vargs_cnt</b><br>Number of trace arguments which will be passed within the variable
+ * argument list
+ * - <b>[...]</b><br>Variable argument list to pass trace arguments
+ *
+ * \note The captured error events can be used for logging and as a first step for debugging
+ * unexpected behavior. However, the application must not derive any action when an error
+ * is indicated by the trace interface. An application must handle rely on result callback
+ * functions and handle "general.error_fptr()".
+ *
+ * <b>Example:</b>
+ * \code
+ * extern void App_UcsTraceError(void * ucs_user_ptr,
+ * const char module_str[],
+ * const char entry_str[],
+ * uint16_t vargs_cnt,
+ * ...);
+ *
+ * #define UCS_TR_ERROR App_UcsTraceError
+ * \endcode
+ *
+ * \ingroup G_UCS_TRACE
+ */
+
+
+/*! \addtogroup G_UCS_TRACE
+ * \details The UCS Trace Interface is intended for debugging and logging purpose.
+ * There are 2 different trace options:
+ * - The definition of trace macros to print out internal states, messages
+ * and errors. This option provides two trace classes: \c info and \c error. Each trace
+ * class can be activated by defining the respective macro UCS_TR_INFO
+ * UCS_TR_ERROR in the configuration header file \c ucs_cfg.h.
+ * While the \c info class is intended only for debugging purpose during
+ * development, the \c error class can also be active for logging purpose
+ * in a production system.
+ * - Implementation of the callback function Ucs_DebugErrorMsgCb_t which is assigned
+ * during initialization. The callback function is fired on every received Error
+ * message from a local or remote INIC.
+ */
+
+/*!
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_TRACE
+ * @{
+ */
+
+/*! \def TR_INFO
+ * \brief Trace macro to capture trace info events
+ * \details The macro is referenced to a public trace macro which must be defined in ucs_cfg.h. The
+ * public macros refers to a trace function which must be implemented by the application.
+ * The given arguments can be stored or immediately converted into a trace output by
+ * invoking the function Ucs_Tr_DecodeTrace().
+ * \param args Container of arguments. The following arguments are of the container.
+ * - ucs_user_ptr Reference to the User argument
+ * - unit Id of the UNICENS unit that has posted the trace
+ * - entry Id of the trace entry
+ * - vargs_cnt Number of trace arguments which will be passed within the variable
+ * argument list
+ * - [...] Variable argument list to pass trace arguments
+ */
+
+/*! \def TR_ERROR
+ * \brief Trace macro to capture trace error events
+ * \details The macro is referenced to a public trace macro which must be defined in ucs_cfg.h. The
+ * public macros refers to a trace function which must be implemented by the application.
+ * The given arguments can be stored or immediately converted into a trace output by
+ * invoking the function Ucs_Tr_DecodeTrace().
+ * \param args Container of arguments. The following arguments are of the container.
+ * - ucs_user_ptr Reference to the User argument
+ * - unit Id of the UNICENS unit that has posted the trace
+ * - entry Id of the trace entry
+ * - vargs_cnt Number of trace arguments which will be passed within the variable
+ * argument list
+ * - [...] Variable argument list to pass trace arguments
+ */
+
+/*! \def TR_FAILED_ASSERT
+ * \brief Failed Assert statement which will add error entry into the trace output.
+ * \param ucs_user_ptr Reference to the User argument
+ * \param unit Identifier for the respective software unit.
+ */
+
+/*! \def TR_ASSERT
+ * \brief Assert statement which evaluates an expression to true. If the expression
+ * evaluates to false a failed assert will be printed into the trace output.
+ * \param ucs_user_ptr Reference to the User argument
+ * \param unit Identifier for the respective software unit.
+ * \param expr Expression which shall evaluate to \c true (expectation applies)
+ */
+
+/*! \def TR_ERROR_INIC_RESULT
+ * \brief Trace macro to capture INIC error data
+ * \param ucs_user_ptr Reference to the User argument
+ * \param unit Identifier for the respective software unit.
+ * \param info_ptr Byte stream which contains the raw INIC error data
+ * \param info_size Size of the INIC error data in bytes
+ */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/* parasoft suppress MISRA2004-19_7 MISRA2004-19_4 reason "function-like macros are allowed for tracing" */
+#ifdef UCS_TR_ERROR
+# define TR_ERROR(args) UCS_TR_ERROR args;
+# define TR_FAILED_ASSERT(ucs_user_ptr, unit) TR_ERROR(((ucs_user_ptr), (unit), TR_UCS_ASSERT, 1U, __LINE__))
+# define TR_ASSERT(ucs_user_ptr, unit, expr) if (!(expr)) {TR_FAILED_ASSERT((ucs_user_ptr), (unit));}
+# define TR_ERROR_INIC_RESULT(ucs_user_ptr, unit, info_ptr, info_size) \
+ { \
+ uint8_t i; \
+ TR_ERROR(((ucs_user_ptr), (unit), TR_UCS_INIC_RESULT_ID_1, 0U)); \
+ for(i=0U; i<info_size; i++) \
+ { \
+ TR_ERROR(((ucs_user_ptr), (unit), TR_UCS_INIC_RESULT_ID_2, 2U, i, info_ptr[i])) \
+ } \
+ }
+#else
+# define UCS_TR_ERROR
+# define TR_ERROR(args)
+# define TR_FAILED_ASSERT(ucs_user_ptr, unit)
+# define TR_ASSERT(ucs_user_ptr, unit, expr)
+# define TR_ERROR_INIC_RESULT(ucs_user_ptr, unit, info_ptr, info_size)
+#endif
+
+#ifdef UCS_TR_INFO
+# define TR_INFO(args) UCS_TR_INFO args;
+#else
+# define UCS_TR_INFO
+# define TR_INFO(args)
+#endif
+/* parasoft unsuppress item MISRA2004-19_7 item MISRA2004-19_4 reason "function-like macros are allowed for tracing" */
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_TRACE_H */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_trace_pb.h b/ucs2-lib/inc/ucs_trace_pb.h
new file mode 100644
index 0000000..6a972aa
--- /dev/null
+++ b/ucs2-lib/inc/ucs_trace_pb.h
@@ -0,0 +1,52 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Public header file of the trace interface
+ */
+
+#ifndef UCS_TRACE_PB_H
+#define UCS_TRACE_PB_H
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Macros */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Defines the needed buffer size to decode a trace entry.
+ * \ingroup G_UCS_TRACE
+ */
+#define UCS_TR_SIZE_BUFFER 256
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_TRACE_PB_H */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_transceiver.h b/ucs2-lib/inc/ucs_transceiver.h
new file mode 100644
index 0000000..ca5cf68
--- /dev/null
+++ b/ucs2-lib/inc/ucs_transceiver.h
@@ -0,0 +1,133 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Declaration of class CTransceiver
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_TRCV
+ * @{
+ */
+
+#ifndef UCS_TRANSCEIVER_H
+#define UCS_TRANSCEIVER_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_message.h"
+#include "ucs_pool.h"
+#include "ucs_pmfifo.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Types */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Assignable callback function which is invoked for message reception
+ * \param self The instance
+ * \param tel_ptr Reference to the message object
+ */
+typedef void (*Trcv_RxCompleteCb_t)(void *self, Msg_MostTel_t *tel_ptr);
+
+/*! \brief Assignable callback function which is invoked to filter Rx messages
+ * \details Filtering is a synchronous operation. Hence, it is not possible to keep a message
+ * object for delayed processing. The invoked function has to decide whether a
+ * message shall be discarded and freed to the Rx pool. Therefore, it has to return
+ * \c true. By returning \ false, the message will be received in the usual way.
+ * \param self The instance
+ * \param tel_ptr Reference to the message object
+ * \return Returns \c true to discard the message and free it to the pool (no-pass). Otherwise, returns
+ * \c false (pass).
+ */
+typedef bool (*Trcv_RxFilterCb_t)(void *self, Msg_MostTel_t *tel_ptr);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Macros */
+/*------------------------------------------------------------------------------------------------*/
+#define TRCV_SIZE_TX_POOL 10U /*!< \brief Number of messages in the message pool */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Class CTransceiver */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Class CTransceiver
+ * \details Provides MOST message objects and communication methods to further classes
+ */
+typedef struct CTransceiver_
+{
+ CMessage tx_msgs[TRCV_SIZE_TX_POOL];/*!< \brief Messages in message pool */
+ CPool tx_msg_pool; /*!< \brief The message pool */
+ uint16_t tx_def_src; /*!< \brief Default source address for Tx message object */
+ void *ucs_user_ptr; /*!< \brief User reference that needs to be passed in every callback function */
+ uint8_t own_id; /*!< \brief ID of the transceiver required for tracing */
+ CPmFifo *fifo_ptr; /*!< \brief Reference to dedicated port message FIFO */
+
+ Trcv_RxCompleteCb_t rx_complete_fptr; /*!< \brief Callback function which is invoked on
+ * message reception
+ */
+ void *rx_complete_inst; /*!< \brief Instance which is notified on
+ * message reception
+ */
+ Trcv_RxFilterCb_t rx_filter_fptr; /*!< \brief Callback function which is invoked
+ * to filter Rx messages
+ */
+ void *rx_filter_inst; /*!< \brief Instance which is notified to
+ * filter Rx messages
+ */
+} CTransceiver;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Methods */
+/*------------------------------------------------------------------------------------------------*/
+/* Constructor */
+extern void Trcv_Ctor(CTransceiver *self, CPmFifo *fifo_ptr, uint16_t def_src_addr, void *ucs_user_ptr, uint8_t trace_id);
+/* Tx */
+extern Msg_MostTel_t* Trcv_TxAllocateMsg(CTransceiver *self, uint8_t size);
+extern void Trcv_TxSendMsg(CTransceiver *self, Msg_MostTel_t *tel_ptr);
+extern void Trcv_TxSendMsgExt(CTransceiver *self, Msg_MostTel_t *tel_ptr, Msg_TxStatusCb_t callback_fptr, void *inst_ptr);
+extern void Trcv_TxSendMsgBypass(CTransceiver *self, Msg_MostTel_t *tel_ptr, Msg_TxStatusCb_t callback_fptr, void *inst_ptr);
+extern void Trcv_TxReleaseMsg(Msg_MostTel_t *tel_ptr);
+extern void Trcv_TxReuseMsg(Msg_MostTel_t *tel_ptr);
+/* Rx */
+extern void Trcv_RxAssignReceiver(CTransceiver *self, Trcv_RxCompleteCb_t callback_fptr, void *inst_ptr);
+extern void Trcv_RxAssignFilter(CTransceiver *self, Trcv_RxFilterCb_t callback_fptr, void *inst_ptr);
+extern void Trcv_RxReleaseMsg(CTransceiver *self, Msg_MostTel_t *tel_ptr);
+extern void Trcv_RxOnMsgComplete(void *self, CMessage *tel_ptr);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_TRANSCEIVER_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_xrm.h b/ucs2-lib/inc/ucs_xrm.h
new file mode 100644
index 0000000..6746c18
--- /dev/null
+++ b/ucs2-lib/inc/ucs_xrm.h
@@ -0,0 +1,219 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Include file of the Extended Resource Manager.
+ *
+ * \defgroup G_UCS_XRM_STREAM Additional Streaming Port Functions
+ * \brief Additional Streaming Port functions of the Extended Resource Manager.
+ * \ingroup G_UCS_IRM
+ *
+ */
+
+#ifndef UCS_XRM_H
+#define UCS_XRM_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_net.h"
+#include "ucs_rsm.h"
+#include "ucs_inic.h"
+#include "ucs_ret_pb.h"
+#include "ucs_obs.h"
+#include "ucs_xrmpool.h"
+#include "ucs_class_pb.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*!
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_UCS_XRM_INT
+ * @{
+ */
+
+/*! \def XRM_NUM_RES_HDL_PER_ICM
+ * \brief Maximum number of resource handles per ICM. Depends on the maximum payload of ICMs.
+ */
+#define XRM_NUM_RES_HDL_PER_ICM 22U
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Stores data required by XRM during initialization. */
+typedef struct Xrm_InitData_
+{
+ CBase *base_ptr; /*!< \brief Reference to base instance */
+ CInic *inic_ptr; /*!< \brief Reference to INIC instance */
+ CNetworkManagement *net_ptr; /*!< \brief Reference to Network instance */
+ CRemoteSyncManagement *rsm_ptr; /*!< \brief Reference to a RSM instance */
+ CXrmPool *xrmp_ptr; /*!< \brief Reference to a xrm pool instance */
+ Ucs_Xrm_ResourceDebugCb_t res_debugging_fptr; /*!< \brief Callback function pointer to monitor XRM resources from application */
+ Ucs_Xrm_CheckUnmuteCb_t check_unmute_fptr; /*!< \brief Callback function pointer to signal unmute of devices */
+
+} Xrm_InitData_t;
+
+/*! \brief Structure that defines a XRM StreamPort configuration */
+typedef struct Xrm_StreamPort_Config_
+{
+ uint8_t index; /*!< \brief Streaming Port instance */
+ Ucs_Stream_PortOpMode_t op_mode; /*!< \brief Streaming Port Operation mode */
+ Ucs_Stream_PortOption_t port_option; /*!< \brief Streaming Port Options */
+ Ucs_Stream_PortClockMode_t clock_mode; /*!< \brief Stream Port Clock Mode */
+ Ucs_Stream_PortClockDataDelay_t clock_data_delay; /*!< \brief Stream Port Clock Data Delay */
+ Ucs_Xrm_Stream_PortCfgResCb_t result_fptr; /*!< \brief Result callback */
+
+} Xrm_StreamPort_Config_t;
+
+/*! \brief Result observers used by FBlock INIC Resource Management functions */
+typedef struct Xrm_Observers_
+{
+ /*! \brief Observer used to monitor internal errors (e.g., INIC BIST Error) */
+ CMaskedObserver internal_error_obs;
+ /*! \brief Observer used to monitor network status infos */
+ CMaskedObserver nw_status_obs;
+ /*! \brief Observer used to monitor ICM tx message object availability */
+ CObserver tx_msg_obj_obs;
+ /*! \brief Observer used for the INIC resource monitor */
+ CObserver resource_monitor_obs;
+ /*! \brief Result observer used for destruction of INIC resources */
+ CSingleObserver resource_destroy_obs;
+ /*! \brief Result observer used for requests of invalid resource handles */
+ CSingleObserver resource_invalid_list_obs;
+ /*! \brief Result observer used for sockets, ports and connections */
+ CSingleObserver std_result_obs;
+ /*! \brief Application callback to signal unmute of devices */
+ Ucs_Xrm_CheckUnmuteCb_t check_unmute_fptr;
+ /*! \brief Callback function pointer used for streaming port configurations */
+ Ucs_Xrm_Stream_PortCfgResCb_t stream_port_config_fptr;
+ /*! \brief Observer to proxy callback stream_port_config_fptr() */
+ CSingleObserver stream_port_config_obs;
+ /*! \brief Callback function pointer used by operation that enables a MOST Port */
+ Ucs_StdResultCb_t most_port_enable_fptr;
+ /*! \brief Observer to proxy callback most_port_enable_port_fptr() */
+ CSingleObserver most_port_enable_obs;
+ /*! \brief Callback function pointer by operation that enables full streaming for a MOST Port*/
+ Ucs_StdResultCb_t most_port_en_full_str_fptr;
+ /*! \brief Observer to proxy callback most_port_en_full_str_fptr() */
+ CSingleObserver most_port_en_full_str_obs;
+ /*! \brief Observer to the SyncLost event in RSM */
+ CObserver rsm_sync_lost_obs;
+
+} Xrm_Observers_t;
+
+/*! \brief Structure of the Extended Resource Manager class. */
+typedef struct CExtendedResourceManager_
+{
+ /*!< \brief Jobs list queue */
+ CDlList job_list;
+ /*! \brief List to temporarily store invalid resource handles */
+ uint16_t inv_resource_handle_list[XRM_NUM_RES_HDL_PER_ICM];
+ /*! \brief Reference to an INIC instance */
+ CInic *inic_ptr;
+ /*! \brief Reference to a network instance */
+ CNetworkManagement *net_ptr;
+ /*! \brief Reference to a rsm instance */
+ CRemoteSyncManagement *rsm_ptr;
+ /*!< \brief Reference to base instance */
+ CBase *base_ptr;
+ /*!< \brief Reference to the xrm pool instance */
+ CXrmPool *xrmp_ptr;
+ /*! \brief Reference to the currently processed job */
+ Xrm_Job_t *current_job_ptr;
+ /*! \brief Reference to the currently processed resource object */
+ UCS_XRM_CONST Ucs_Xrm_ResObject_t **current_obj_pptr;
+ /*! \brief Number of invalid handles in list inv_resource_handle_list[] */
+ uint8_t inv_resource_handle_list_size;
+ /*! \brief Current number of destroyed handles in list inv_resource_handle_list[] */
+ uint8_t curr_dest_resource_handle_size;
+ /*! \brief Start index for the current invalid handles index in list inv_resource_handle_list[] */
+ uint8_t inv_resource_handle_index;
+ /*! \brief Service instance to add the Extended Resource Manager to the MNS scheduler */
+ CService xrm_srv;
+ /*! \brief Report result of the Extended Resource Manager. Used to reported status and error
+ * information to the application.
+ */
+ Ucs_Xrm_Result_t report_result;
+ /*! \brief Required result observers */
+ Xrm_Observers_t obs;
+ /*! \brief Mask that stores queued event */
+ Srv_Event_t queued_event_mask;
+ /*! \brief stores the currently stream port configuration (in process) */
+ Xrm_StreamPort_Config_t current_streamport_config;
+ /*!< \brief Callback function pointer to monitor XRM resources */
+ Ucs_Xrm_ResourceDebugCb_t res_debugging_fptr;
+ /*! \brief Flag to lock the API */
+ bool lock_api;
+ /*!< \brief Signal whether this instance is in Remote Control Mode */
+ bool IsInRemoteControlMode;
+
+} CExtendedResourceManager;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Prototypes of class CExtendedResourceManager */
+/*------------------------------------------------------------------------------------------------*/
+extern void Xrm_Ctor(CExtendedResourceManager *self, Xrm_InitData_t * data_ptr);
+extern Ucs_Return_t Xrm_Process(CExtendedResourceManager *self,
+ UCS_XRM_CONST Ucs_Xrm_ResObject_t *resource_object_list[],
+ uint16_t most_network_connection_label,
+ void * user_arg,
+ Ucs_Xrm_ReportCb_t report_fptr);
+extern Ucs_Return_t Xrm_Destroy(CExtendedResourceManager *self,
+ UCS_XRM_CONST Ucs_Xrm_ResObject_t *resource_object_list[]);
+extern Ucs_Return_t Xrm_Stream_SetPortConfig(CExtendedResourceManager *self,
+ uint8_t index,
+ Ucs_Stream_PortOpMode_t op_mode,
+ Ucs_Stream_PortOption_t port_option,
+ Ucs_Stream_PortClockMode_t clock_mode,
+ Ucs_Stream_PortClockDataDelay_t clock_data_delay,
+ Ucs_Xrm_Stream_PortCfgResCb_t result_fptr);
+extern Ucs_Return_t Xrm_Stream_GetPortConfig(CExtendedResourceManager *self,
+ uint8_t index,
+ Ucs_Xrm_Stream_PortCfgResCb_t result_fptr);
+extern Ucs_Return_t Xrm_Most_EnablePort(CExtendedResourceManager *self,
+ uint16_t most_port_handle,
+ bool enabled,
+ Ucs_StdResultCb_t result_fptr);
+extern Ucs_Return_t Xrm_Most_PortEnFullStr(CExtendedResourceManager *self,
+ uint16_t most_port_handle,
+ bool enabled,
+ Ucs_StdResultCb_t result_fptr);
+extern void Xrm_SetResourceDebugCbFn(CExtendedResourceManager *self, Ucs_Xrm_ResourceDebugCb_t dbg_cb_fn);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_XRM_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_xrm_pb.h b/ucs2-lib/inc/ucs_xrm_pb.h
new file mode 100644
index 0000000..99c618f
--- /dev/null
+++ b/ucs2-lib/inc/ucs_xrm_pb.h
@@ -0,0 +1,578 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Public header file of the Extended Resource Manager.
+ */
+
+#ifndef UCS_XRM_PB_H
+#define UCS_XRM_PB_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_rules.h"
+#include "ucs_xrm_cfg.h"
+#include "ucs_ret_pb.h"
+#include "ucs_inic_pb.h"
+#include "ucs_rsm_pv.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Definitions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \def UCS_XRM_CONST
+ * \brief Defines a ROM data qualifier for XRM data objects.
+ * \details This macro is used to define a XRM ROM data qualifier. It is used for XRM
+ * configuration structures and XRM resource object lists. The definition of this
+ * macro must be part of the XRM configuration file ucs_xrm_cfg.h.
+ */
+#ifdef UCS_XRM_CONST
+# error UCS_XRM_CONST macro is not supported on UNICENS anymore. Please remove It from your config file.
+#endif
+
+#define UCS_XRM_CONST
+
+/*! \def UCS_XRM_NUM_JOBS
+ * \brief Defines the size of the internal job list.
+ * \details The number of XRM jobs to execute. The value is used to specify the size of the
+ * internal job list. The definition of this macro must be part of the XRM
+ * configuration file ucs_xrm_cfg.h.
+ * Valid range: 1..254. Default value: 1.
+ * \ingroup G_UCS_XRM_CFG
+ */
+#ifndef UCS_XRM_NUM_JOBS
+# define UCS_XRM_NUM_JOBS
+# define XRM_NUM_JOBS 1U
+#else
+# define XRM_NUM_JOBS ((uint8_t)UCS_XRM_NUM_JOBS)
+#endif
+
+/*! \def UCS_XRM_NUM_RESOURCES
+ * \brief Defines the number of provided resources.
+ * \details The number of required resources depends on the defined XRM jobs. The
+ * definition of the public macro UCS_XRM_NUM_RESOURCES must be part of the
+ * XRM configuration file ucs_xrm_cfg.h.
+ * Valid range: 1..254. Default value: 8.
+ * \ingroup G_UCS_XRM_CFG
+ */
+#ifndef UCS_XRM_NUM_RESOURCES
+# define UCS_XRM_NUM_RESOURCES
+# define XRM_NUM_RESOURCE_HANDLES 8U
+#else
+# define XRM_NUM_RESOURCE_HANDLES ((uint8_t)UCS_XRM_NUM_RESOURCES)
+#endif
+
+/*!
+ * \addtogroup G_UCS_XRM_TYPES
+ * @{
+ */
+/*------------------------------------------------------------------------------------------------*/
+/* Enumerators */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Result codes of the Extended Resource Manager. */
+typedef enum Ucs_Xrm_ResultCode_
+{
+ UCS_XRM_RES_SUCCESS_BUILD = 0x00U, /*!< \brief Build of connection succeeded. */
+ UCS_XRM_RES_SUCCESS_DESTROY = 0x01U, /*!< \brief Destruction of connection succeeded. */
+ UCS_XRM_RES_RC_AUTO_DESTROYED = 0x02U, /*!< \brief Invalid resources have been successfully destroyed. */
+ UCS_XRM_RES_ERR_CONFIG = 0x03U, /*!< \brief Invalid user settings in the XRM configuration file.
+ * \details The number of jobs or resources exceeds the maximum allowed in your XRM configuration file. */
+ UCS_XRM_RES_ERR_BUILD = 0x04U, /*!< \brief Build of connection failed due to a function-specific error found on target device or a transmission error on the MOST network.
+ * \details The \em result_type section in Ucs_Xrm_ResultDetails_t will provide you with more detailed information concerning the error type.
+ */
+ UCS_XRM_RES_ERR_DESTROY = 0x05U, /*!< \brief Destruction of connection failed due to a function-specific error found on target device or a transmission error on the MOST network.
+ * \details The \em result_type section in Ucs_Xrm_ResultDetails_t will provide you with more detailed information concerning the error type.
+ */
+ UCS_XRM_RES_ERR_INV_LIST = 0x06U, /*!< \brief Request of invalid resources failed due to a function-specific error found on target device or a transmission error on the MOST network.
+ * \details The \em result_type section in Ucs_Xrm_ResultDetails_t will provide you with more detailed information concerning the error type.
+ */
+ UCS_XRM_RES_ERR_SYNC = 0x07U, /*!< \brief The remote synchronization of target device failed due to a function-specific error a transmission error on the MOST network.
+ * \details The \em result_type section in Ucs_Xrm_ResultDetails_t will provide you with more detailed information concerning the error type.
+ */
+ UCS_XRM_RES_UNKNOWN = 0xFFU /*!< \brief Result is unknown. */
+} Ucs_Xrm_ResultCode_t;
+
+/*! \brief INIC resource types used by the Extended Resource Manager. */
+typedef enum Ucs_Xrm_ResourceType_
+{
+ UCS_XRM_RC_TYPE_DC_PORT = 0x00U, /*!< \brief Default created port */
+ UCS_XRM_RC_TYPE_MOST_SOCKET = 0x01U, /*!< \brief MOST socket */
+ UCS_XRM_RC_TYPE_MLB_PORT = 0x02U, /*!< \brief MediaLB port */
+ UCS_XRM_RC_TYPE_MLB_SOCKET = 0x03U, /*!< \brief MediaLB socket */
+ UCS_XRM_RC_TYPE_USB_PORT = 0x04U, /*!< \brief USB port */
+ UCS_XRM_RC_TYPE_USB_SOCKET = 0x05U, /*!< \brief USB socket */
+ UCS_XRM_RC_TYPE_RMCK_PORT = 0x06U, /*!< \brief RMCK port */
+ UCS_XRM_RC_TYPE_STRM_PORT = 0x07U, /*!< \brief Streaming port */
+ UCS_XRM_RC_TYPE_STRM_SOCKET = 0x08U, /*!< \brief Streaming socket */
+ UCS_XRM_RC_TYPE_SYNC_CON = 0x09U, /*!< \brief Synchronous data connection */
+ UCS_XRM_RC_TYPE_DFIPHASE_CON = 0x0AU, /*!< \brief DiscreteFrame Isochronous streaming
+ * phase connection
+ */
+ UCS_XRM_RC_TYPE_COMBINER = 0x0BU, /*!< \brief Combiner */
+ UCS_XRM_RC_TYPE_SPLITTER = 0x0CU, /*!< \brief Splitter */
+ UCS_XRM_RC_TYPE_AVP_CON = 0x0DU, /*!< \brief A/V packetized isochronous streaming
+ * data connection
+ */
+ UCS_XRM_RC_TYPE_QOS_CON = 0x0EU /*!< \brief Quality of Service IP streaming data
+ * connection
+ */
+
+} Ucs_Xrm_ResourceType_t;
+
+/*! \brief Port types use for default created ports. */
+typedef enum Ucs_Xrm_PortType_
+{
+ UCS_XRM_PORT_TYPE_MLB = 0x0AU, /*!< \brief MediaLB Port */
+ UCS_XRM_PORT_TYPE_USB = 0x12U, /*!< \brief USB Port */
+ UCS_XRM_PORT_TYPE_STRM = 0x16U /*!< \brief Streaming Port */
+
+} Ucs_Xrm_PortType_t;
+
+/*! \brief This enumerator specifies the kind of result - Internal, Target or Transmission. */
+typedef enum Ucs_Xrm_ResultType_
+{
+ UCS_XRM_RESULT_TYPE_INT = 0x00U, /*!< \brief Specifies the internal results, typically standard return codes of MNS used for synchronous response. */
+ UCS_XRM_RESULT_TYPE_TGT = 0x01U, /*!< \brief Specifies the target results, typically INIC function-specific error from target device. */
+ UCS_XRM_RESULT_TYPE_TX = 0x02U /*!< \brief Specifies the transmission error information on the MOST network. */
+
+} Ucs_Xrm_ResultType_t;
+
+/*! \brief This enumerator specifies the type of resources information */
+typedef enum Ucs_Xrm_ResourceInfos_
+{
+ UCS_XRM_INFOS_BUILT = 0x00U, /*!< \brief Signals that the resource is built */
+ UCS_XRM_INFOS_DESTROYED = 0x01U, /*!< \brief Signals that the resource is destroyed */
+ UCS_XRM_INFOS_ERR_BUILT = 0x02U, /*!< \brief Signals that XRM fails to build the resource */
+ UCS_XRM_INFOS_ERR_DESTROYED = 0x03U /*!< \brief Signals that XRM fails to destroy the resource */
+
+} Ucs_Xrm_ResourceInfos_t;
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Type definitions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief INIC Resource Object used for Extended Resource Manager jobs.
+ * \attention This resource object must be \b terminated with a \b NULL \b pointer to mark the end of the list.
+ */
+typedef void Ucs_Xrm_ResObject_t;
+
+/*! \brief Function signature of result callback used by Ucs_Xrm_Stream_SetPortConfig() and
+ * Ucs_Xrm_Stream_GetPortConfig().
+ * \mns_res_inic{StreamPortConfiguration,MNSH3-StreamPortConfiguration680}
+ * \param node_address The node address from which the results come
+ * \param index Streaming Port instance. \mns_name_inic{Index}
+ * \param op_mode Operation mode of the Streaming Port. \mns_name_inic{OperationMode}
+ * \param port_option Direction of the physical pins of the indexed Streaming Port. \mns_name_inic{PortOption}
+ * \param clock_mode Configuration of the FSY/SCK signals. \mns_name_inic{ClockMode}
+ * \param clock_data_delay Configuration of the FSY/SCK signals for Generic Streaming. \mns_name_inic{ClockDataDelay}
+ * \param result Returned result of the operation
+ * \param user_ptr User reference provided in \ref Ucs_InitData_t "Ucs_InitData_t::user_ptr"
+ */
+typedef void (*Ucs_Xrm_Stream_PortCfgResCb_t)(uint16_t node_address,
+ uint8_t index,
+ Ucs_Stream_PortOpMode_t op_mode,
+ Ucs_Stream_PortOption_t port_option,
+ Ucs_Stream_PortClockMode_t clock_mode,
+ Ucs_Stream_PortClockDataDelay_t clock_data_delay,
+ Ucs_StdResult_t result,
+ void *user_ptr);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Detailed information used for Extended Resource Manager results. */
+typedef struct Ucs_Xrm_ResultDetails_
+{
+ /*! \brief Specifies the INIC resource type for which the result has been returned. */
+ Ucs_Xrm_ResourceType_t resource_type;
+ /*! \brief Specifies the table index of the resource object for which the result has been returned. */
+ uint8_t resource_index;
+ /*! \brief Specifies the type of the current asynchronous result.
+ * \details The following briefly describes the different types of results available:
+ * - \b UCS_XRM_RESULT_TYPE_INT: internal results, typically standard return codes of MNS used for synchronous response. \n Refer to \em int_result to get the results.
+ * - \b UCS_XRM_RESULT_TYPE_TGT: target results, typically INIC function-specific error from target device. \n Refer to \em inic_result to get the results.
+ * - \b UCS_XRM_RESULT_TYPE_TX: transmission results, typically transmission error on the MOST network. \n Refer to \em tx_result to get the results.
+ */
+ Ucs_Xrm_ResultType_t result_type;
+ /*! \brief Holds the internal MNS results. */
+ Ucs_Return_t int_result;
+ /*! \brief Holds the INIC results. */
+ Ucs_StdResult_t inic_result;
+ /*! \brief Holds the transmission error information. */
+ Ucs_MsgTxStatus_t tx_result;
+
+} Ucs_Xrm_ResultDetails_t;
+
+/*! \brief Result structure of the Extended Resource Manager. */
+typedef struct Ucs_Xrm_Result_
+{
+ /*! \brief Result code. */
+ Ucs_Xrm_ResultCode_t code;
+ /*! \brief Detailed information on the returned result. */
+ Ucs_Xrm_ResultDetails_t details;
+
+} Ucs_Xrm_Result_t;
+
+/*! \brief Resources Identity from user point of view. */
+typedef struct Ucs_Xrm_ResIdentity_
+{
+ /*! \brief Result code. */
+ Ucs_Xrm_ResObject_t * resource_store;
+ /*! \brief Result code. */
+ uint8_t resource_id;
+
+} Ucs_Xrm_ResIdentity_t;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures used for INIC resource objects */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Configuration structure of a default created port. This structure is used for ports that
+ * are configured via the INIC's Configuration String and are automatically created at
+ * startup.
+ */
+typedef struct Ucs_Xrm_DefaultCreatedPort_
+{
+ /*! \brief Type of the INIC resource object. */
+ Ucs_Xrm_ResourceType_t resource_type;
+ /*! \brief Type of the hardware port */
+ Ucs_Xrm_PortType_t port_type;
+ /*! \brief Port instance identifier */
+ uint8_t index;
+
+} Ucs_Xrm_DefaultCreatedPort_t;
+
+/*! \brief Configuration structure of a MOST socket. */
+typedef struct Ucs_Xrm_MostSocket_
+{
+ /*! \brief Type of the INIC resource object. */
+ Ucs_Xrm_ResourceType_t resource_type;
+ /*! \brief Port resource handle. \mns_param_inic{MOSTPortHandle,MOSTSocketCreate,MNSH3-MOSTSocketCreate611}
+ */
+ uint16_t most_port_handle;
+ /*! \brief Direction of data stream. \mns_param_inic{Direction,MOSTSocketCreate,MNSH3-MOSTSocketCreate611}
+ */
+ Ucs_SocketDirection_t direction;
+ /*! \brief Data type. \mns_param_inic{DataType,MOSTSocketCreate,MNSH3-MOSTSocketCreate611}
+ */
+ Ucs_Most_SocketDataType_t data_type;
+ /*! \brief Required socket bandwidth. \mns_param_inic{Bandwidth,MOSTSocketCreate,MNSH3-MOSTSocketCreate611}
+ */
+ uint16_t bandwidth;
+
+} Ucs_Xrm_MostSocket_t;
+
+/*! \brief Configuration structure of a MediaLB port. */
+typedef struct Ucs_Xrm_MlbPort_
+{
+ /*! \brief Type of the INIC resource object. */
+ Ucs_Xrm_ResourceType_t resource_type;
+ /*! \brief MLB port instance. \mns_param_inic{Index,MediaLBPortCreate,MNSH3-MediaLBPortCreate621}
+ */
+ uint8_t index;
+ /*! \brief Clock speed configuration. \mns_param_inic{ClockConfig,MediaLBPortCreate,MNSH3-MediaLBPortCreate621}
+ */
+ Ucs_Mlb_ClockConfig_t clock_config;
+
+} Ucs_Xrm_MlbPort_t;
+
+/*! \brief Configuration structure of a MediaLB socket. */
+typedef struct Ucs_Xrm_MlbSocket_
+{
+ /*! \brief Type of the INIC resource object. */
+ Ucs_Xrm_ResourceType_t resource_type;
+ /*! \brief Reference to the INIC resource object the socket is attached to. */
+ UCS_XRM_CONST Ucs_Xrm_ResObject_t *mlb_port_obj_ptr;
+ /*! \brief Direction of data stream. \mns_param_inic{Direction,MediaLBSocketCreate,MNSH3-MediaLBSocketCreate631}
+ */
+ Ucs_SocketDirection_t direction;
+ /*! \brief Data type. \mns_param_inic{DataType,MediaLBSocketCreate,MNSH3-MediaLBSocketCreate631}
+ */
+ Ucs_Mlb_SocketDataType_t data_type;
+ /*! \brief Required socket bandwidth. \mns_param_inic{Bandwidth,MediaLBSocketCreate,MNSH3-MediaLBSocketCreate631}
+ */
+ uint16_t bandwidth;
+ /*! \brief MLB channel address. \mns_param_inic{ChannelAddress,MediaLBSocketCreate,MNSH3-MediaLBSocketCreate631}
+ */
+ uint16_t channel_address;
+
+} Ucs_Xrm_MlbSocket_t;
+
+/*! \brief Configuration structure of a USB port. */
+typedef struct Ucs_Xrm_UsbPort_
+{
+ /*! \brief Type of the INIC resource object. */
+ Ucs_Xrm_ResourceType_t resource_type;
+ /*! \brief USB port instance. \mns_param_inic{Index,USBPortCreate,MNSH3-USBPortCreate661}
+ */
+ uint8_t index;
+ /*! \brief interface of the USB Port’s physical layer. \mns_param_inic{PhysicalLayer,USBPortCreate,MNSH3-USBPortCreate661}
+ */
+ Ucs_Usb_PhysicalLayer_t physical_layer;
+ /*! \brief USB devices interfaces mask. \mns_param_inic{DeviceInterfaces,USBPortCreate,MNSH3-USBPortCreate661}
+ */
+ uint16_t devices_interfaces;
+ /*! \brief OUT Endpoints inside the streaming interface. \mns_param_inic{StreamingIfEpOutCount,USBPortCreate,MNSH3-USBPortCreate661}
+ */
+ uint8_t streaming_if_ep_out_count;
+ /*! \brief IN Endpoints inside the streaming interface. \mns_param_inic{StreamingIfEpInCount,USBPortCreate,MNSH3-USBPortCreate661}
+ */
+ uint8_t streaming_if_ep_in_count;
+
+} Ucs_Xrm_UsbPort_t;
+
+/*! \brief Configuration structure of a USB socket. */
+typedef struct Ucs_Xrm_UsbSocket_
+{
+ /*! \brief Type of the INIC resource object. */
+ Ucs_Xrm_ResourceType_t resource_type;
+ /*! \brief Reference to the INIC resource object the socket is attached to. */
+ UCS_XRM_CONST Ucs_Xrm_ResObject_t *usb_port_obj_ptr;
+ /*! \brief Direction of the data stream. \mns_param_inic{Direction,USBSocketCreate,MNSH3-USBSocketCreate671}
+ */
+ Ucs_SocketDirection_t direction;
+ /*! \brief Data type. \mns_param_inic{DataType,USBSocketCreate,MNSH3-USBSocketCreate671}
+ */
+ Ucs_Usb_SocketDataType_t data_type;
+ /*! \brief Address of a USB Endpoint. \mns_param_inic{EndpointAddress,USBSocketCreate,MNSH3-USBSocketCreate671}
+ */
+ uint8_t end_point_addr;
+ /*! \brief Number of MOST network frames/packets per one USB transaction. \mns_param_inic{FramesPerTransfer,USBSocketCreate,MNSH3-USBSocketCreate671}
+ */
+ uint16_t frames_per_transfer;
+
+} Ucs_Xrm_UsbSocket_t;
+
+/*! \brief Configuration structure of a RMCK port. */
+typedef struct Ucs_Xrm_RmckPort_
+{
+ /*! \brief Type of the INIC resource object. */
+ Ucs_Xrm_ResourceType_t resource_type;
+ /*! \brief RMCK Port instance. \mns_param_inic{Index,RMCKPortCreate,MNSH3-RMCKPortCreate6A1}
+ */
+ uint8_t index;
+ /*! \brief Source of the RMCK clock. \mns_param_inic{ClockSource,RMCKPortCreate,MNSH3-RMCKPortCreate6A1}
+ */
+ Ucs_Rmck_PortClockSource_t clock_source;
+ /*! \brief Divisor of the clock source. \mns_param_inic{Divisor,RMCKPortCreate,MNSH3-RMCKPortCreate6A1}
+ */
+ uint16_t divisor;
+
+} Ucs_Xrm_RmckPort_t;
+
+/*! \brief Configuration structure of a streaming port. */
+typedef struct Ucs_Xrm_StrmPort_
+{
+ /*! \brief Type of the INIC resource object. */
+ Ucs_Xrm_ResourceType_t resource_type;
+ /*! \brief Streaming Port instance. \mns_param_inic{Index,StreamPortCreate,MNSH3-StreamPortCreate681}
+ */
+ uint8_t index;
+ /*! \brief Clock speed configuration. \mns_param_inic{ClockConfig,StreamPortCreate,MNSH3-StreamPortCreate681}
+ */
+ Ucs_Stream_PortClockConfig_t clock_config;
+ /*! \brief Alignment of the data bytes. \mns_param_inic{DataAlignment,StreamPortCreate,MNSH3-StreamPortCreate681}
+ */
+ Ucs_Stream_PortDataAlign_t data_alignment;
+
+} Ucs_Xrm_StrmPort_t;
+
+/*! \brief Configuration structure of a streaming data socket. */
+typedef struct Ucs_Xrm_StrmSocket_
+{
+ /*! \brief Type of the INIC resource object. */
+ Ucs_Xrm_ResourceType_t resource_type;
+ /*! \brief Reference to the INIC resource object the socket is attached to. */
+ UCS_XRM_CONST Ucs_Xrm_ResObject_t *stream_port_obj_ptr;
+ /*! \brief Direction of the data stream. \mns_param_inic{Direction,StreamSocketCreate,MNSH3-StreamSocketCreate691}
+ */
+ Ucs_SocketDirection_t direction;
+ /*! \brief Data type. \mns_param_inic{DataType,StreamSocketCreate,MNSH3-StreamSocketCreate691}
+ */
+ Ucs_Stream_SocketDataType_t data_type;
+ /*! \brief Required socket bandwidth in bytes. \mns_param_inic{Bandwidth,StreamSocketCreate,MNSH3-StreamSocketCreate691}
+ */
+ uint16_t bandwidth;
+ /*! \brief ID of the serial interface pin. \mns_param_inic{StreamPinID,StreamSocketCreate,MNSH3-StreamSocketCreate691}
+ */
+ Ucs_Stream_PortPinId_t stream_pin_id;
+
+} Ucs_Xrm_StrmSocket_t;
+
+/*! \brief Configuration structure of a synchronous data connection. */
+typedef struct Ucs_Xrm_SyncCon_
+{
+ /*! \brief Type of the INIC resource object. */
+ Ucs_Xrm_ResourceType_t resource_type;
+ /*! \brief Reference to the INIC resource object that specifies the socket that is the
+ * starting point of the link. Must be a socket of type \c Input.
+ */
+ UCS_XRM_CONST Ucs_Xrm_ResObject_t *socket_in_obj_ptr;
+ /*! \brief Reference to the INIC resource object that specifies the socket that is the
+ * ending point of the link. Must be a socket of type \c Output.
+ */
+ UCS_XRM_CONST Ucs_Xrm_ResObject_t *socket_out_obj_ptr;
+ /*! \brief Mode of operation of mute. \mns_param_inic{MuteMode,SyncCreate,MNSH3-SyncCreate871}
+ */
+ Ucs_Sync_MuteMode_t mute_mode;
+ /*! \brief Offset from where the socket data should be routed from a splitter. \mns_param_inic{Offset,SyncCreate,MNSH3-SyncCreate871}
+ */
+ uint16_t offset;
+
+} Ucs_Xrm_SyncCon_t;
+
+/*! \brief Configuration structure of a DiscreteFrame Isochronous streaming phase connection. */
+typedef struct Ucs_Xrm_DfiPhaseCon_
+{
+ /*! \brief Type of the INIC resource object. */
+ Ucs_Xrm_ResourceType_t resource_type;
+ /*! \brief Reference to the INIC resource object that specifies the socket that is the
+ * starting point of the link. Must be a socket of type \c Input.
+ */
+ UCS_XRM_CONST Ucs_Xrm_ResObject_t *socket_in_obj_ptr;
+ /*! \brief Reference to the INIC resource object that specifies the socket that is the
+ * ending point of the link. Must be a socket of type \c Output.
+ */
+ UCS_XRM_CONST Ucs_Xrm_ResObject_t *socket_out_obj_ptr;
+
+} Ucs_Xrm_DfiPhaseCon_t;
+
+/*! \brief Configuration structure of a combiner resource. */
+typedef struct Ucs_Xrm_Combiner_
+{
+ /*! \brief Type of the INIC resource object. */
+ Ucs_Xrm_ResourceType_t resource_type;
+ /*! \brief Reference to the INIC resource object that specifies the synchronous socket. */
+ UCS_XRM_CONST Ucs_Xrm_ResObject_t *port_socket_obj_ptr;
+ /*! \brief Port resource handle. \mns_param_inic{MOSTPortHandle,CombinerCreate,MNSH3-CombinerCreate901}
+ */
+ uint16_t most_port_handle;
+ /*! \brief Total number of data bytes to be transferred each MOST network frame. \mns_param_inic{BytesPerFrame,CombinerCreate,MNSH3-CombinerCreate901}
+ */
+ uint16_t bytes_per_frame;
+
+} Ucs_Xrm_Combiner_t;
+
+/*! \brief Configuration structure of a splitter resource. */
+typedef struct Ucs_Xrm_Splitter_
+{
+ /*! \brief Type of the INIC resource object. */
+ Ucs_Xrm_ResourceType_t resource_type;
+ /*! \brief Reference to the INIC resource object that specifies the synchronous socket. */
+ UCS_XRM_CONST Ucs_Xrm_ResObject_t *socket_in_obj_ptr;
+ /*! \brief Port resource handle. \mns_param_inic{MOSTPortHandle,SplitterCreate,MNSH3-SplitterCreate911}
+ */
+ uint16_t most_port_handle;
+ /*! \brief Total number of data bytes to be transferred each MOST network frame. \mns_param_inic{BytesPerFrame,SplitterCreate,MNSH3-SplitterCreate911}
+ */
+ uint16_t bytes_per_frame;
+
+} Ucs_Xrm_Splitter_t;
+
+/*! \brief Configuration structure for a A/V Packetized isochronous streaming data connection. */
+typedef struct Ucs_Xrm_AvpCon_
+{
+ /*! \brief Type of the INIC resource object. */
+ Ucs_Xrm_ResourceType_t resource_type;
+ /*! \brief Reference to the INIC resource object that specifies the socket that is the
+ * starting point of the link. Must be a socket of type \c Input.
+ */
+ UCS_XRM_CONST Ucs_Xrm_ResObject_t *socket_in_obj_ptr;
+ /*! \brief Reference to the INIC resource object that specifies the socket that is the
+ * ending point of the link. Must be a socket of type \c Output.
+ */
+ UCS_XRM_CONST Ucs_Xrm_ResObject_t *socket_out_obj_ptr;
+ /*! \brief Size of data packets. \mns_param_inic{IsocPacketSize,AVPacketizedCreate,MNSH3-AVPacketizedCreate861}
+ */
+ Ucs_Avp_IsocPacketSize_t isoc_packet_size;
+
+} Ucs_Xrm_AvpCon_t;
+
+/*! \brief Configuration structure for a Quality of Service IP streaming data connection. */
+typedef struct Ucs_Xrm_QoSCon_
+{
+ /*! \brief Type of the INIC resource object. */
+ Ucs_Xrm_ResourceType_t resource_type;
+ /*! \brief Reference to the INIC resource object that specifies the socket that is the
+ * starting point of the link. Must be a socket of type \c Input.
+ */
+ UCS_XRM_CONST Ucs_Xrm_ResObject_t *socket_in_obj_ptr;
+ /*! \brief Reference to the INIC resource object that specifies the socket that is the
+ * ending point of the link. Must be a socket of type \c Output.
+ */
+ UCS_XRM_CONST Ucs_Xrm_ResObject_t *socket_out_obj_ptr;
+
+} Ucs_Xrm_QoSCon_t;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Type definitions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Function signature used for the MOST Port status.
+ *
+ * This callback function is called to report streaming-related information for a MOST Port.
+ * \param most_port_handle Port resource handle.
+ * \param availability State of the MOST port related to streaming connections.
+ * \param avail_info Sub state to parameter \c availability.
+ * \param free_streaming_bw Free streaming bandwidth for the dedicated MOST Port.
+ * \param user_ptr User reference provided in \ref Ucs_InitData_t "Ucs_InitData_t::user_ptr".
+ * \ingroup G_UCS_IRM
+ */
+typedef void (*Ucs_Xrm_Most_PortStatusCb_t)(uint16_t most_port_handle,
+ Ucs_Most_PortAvail_t availability,
+ Ucs_Most_PortAvailInfo_t avail_info,
+ uint16_t free_streaming_bw,
+ void* user_ptr);
+
+/*! \brief Function signature used for monitoring the XRM resources.
+ * \param resource_type The XRM resource type to be looked for
+ * \param resource_ptr Reference to the resource to be looked for
+ * \param resource_infos Resource information
+ * \param endpoint_inst_ptr Reference to the endpoint object that encapsulates the given resource.
+ * \param user_ptr User reference provided in \ref Ucs_InitData_t "Ucs_InitData_t::user_ptr"
+ */
+typedef void (*Ucs_Xrm_ResourceDebugCb_t)(Ucs_Xrm_ResourceType_t resource_type, Ucs_Xrm_ResObject_t *resource_ptr, Ucs_Xrm_ResourceInfos_t resource_infos, void *endpoint_inst_ptr, void *user_ptr);
+
+/*! \brief Function signature used for the check unmute callback.
+ *
+ * Whenever this callback function is called and the EHC has sink connections muted by the mute pin, the application has to ensure that this mute pin is not asserted before attempting unmute.
+ * \param node_address The node address of the device to be looked for.
+ * \ingroup G_UCS_IRM
+ */
+typedef void (*Ucs_Xrm_CheckUnmuteCb_t)(uint16_t node_address, void *user_ptr);
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_XRM_PB_H */
+
+/*! @} */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_xrm_pv.h b/ucs2-lib/inc/ucs_xrm_pv.h
new file mode 100644
index 0000000..b3bae38
--- /dev/null
+++ b/ucs2-lib/inc/ucs_xrm_pv.h
@@ -0,0 +1,210 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Private header file of the Extended Resource Manager.
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_UCS_XRM_INT
+ * @{
+ */
+
+#ifndef UCS_XRM_PV_H
+#define UCS_XRM_PV_H
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_rules.h"
+#include "ucs_xrm_cfg.h"
+#include "ucs_xrm.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Enumerations */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Result codes of function Xrm_PrepareJobDestruction(). */
+typedef enum Xrm_PreJobDestrResult_
+{
+ XRM_PRE_JOB_DEST_TASKS_EXIST = 0x00U, /*!< \brief There are resources to destroy */
+ XRM_PRE_JOB_DEST_NO_TASKS_EXIST = 0x01U, /*!< \brief All resources already destroyed */
+ XRM_PRE_JOB_DEST_DONE = 0x02U, /*!< \brief Only shared resources affected. Invoke
+ * result callback immediately.
+ */
+ XRM_PRE_JOB_DEST_BUSY = 0x03U /*!< \brief Preparation of JobDestruction is
+ * currently not possible. Other resources
+ * are currently being destroyed.
+ */
+} Xrm_PreJobDestrResult_t;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Structure used to count the number of entries of a given resource handle. */
+typedef struct Xrm_CntEntriesResHandle_
+{
+ /*! \brief Reference to the XRM instance to be looked for. */
+ CExtendedResourceManager *xrm_inst;
+ /*! \brief Reference the resource object to be looked for. */
+ UCS_XRM_CONST Ucs_Xrm_ResObject_t *resource_object_ptr;
+ /*! \brief Storage for the count result. */
+ uint8_t * cnt_res;
+
+} Xrm_CntEntriesResHandle_t;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal constants (extern declarations only) */
+/*------------------------------------------------------------------------------------------------*/
+extern const uint8_t XRM_SRV_PRIO;
+extern const Srv_Event_t XRM_EVENT_PROCESS;
+extern const Srv_Event_t XRM_EVENT_ERROR;
+extern const Srv_Event_t XRM_EVENT_REQ_INV_RES_LST;
+extern const Srv_Event_t XRM_EVENT_DESTROY_INV_RES;
+extern const Srv_Event_t XRM_EVENT_NOTIFY_AUTO_DEST_RES;
+extern const Srv_Event_t XRM_EVENT_NOTIFY_AUTO_DEST_RESR;
+extern const Srv_Event_t XRM_EVENT_SYNC_NEXT_DEV;
+extern const Srv_Event_t XRM_EVENT_NOTIFY_DESTROYED_JOB;
+extern const Srv_Event_t XRM_EVENT_RESUME_JOB_DESTRUCT;
+extern const Srv_Event_t XRM_EVENT_RESET_RES_MONITOR;
+extern const Srv_Event_t XRM_EVENT_STREAMPORT_CONFIG_SET;
+extern const Srv_Event_t XRM_EVENT_STREAMPORT_CONFIG_GET;
+extern const uint16_t XRM_INVALID_RESOURCE_HANDLE;
+extern const uint16_t XRM_INVALID_CONNECTION_LABEL;
+extern const uint16_t XRM_DEFAULT_SENDER_HANDLE;
+extern const uint16_t XRM_INVALID_NODE_ADDRESS;
+extern const uint16_t XRM_MASK_NETWORK_AVAILABILITY;
+extern const uint16_t XRM_MASK_NETWORK_NODE_ADDRESS;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal Prototypes class CExtendedResourceManager */
+/*------------------------------------------------------------------------------------------------*/
+/* Basic functions */
+extern void Xrm_Service(void *self);
+extern bool Xrm_IsApiFree(CExtendedResourceManager *self);
+extern bool Xrm_IsInMyJobList(CExtendedResourceManager *self, UCS_XRM_CONST Ucs_Xrm_ResObject_t *resource_object_list[]);
+extern void Xrm_ApiLocking(CExtendedResourceManager *self, bool status);
+extern void Xrm_WaitForTxMsgObj(CExtendedResourceManager *self, Srv_Event_t event_mask);
+extern void Xrm_UninitializeService(void *self, void *error_code_ptr);
+extern void Xrm_MnsNwStatusInfosCb(void *self, void *result_ptr);
+extern void Xrm_MsgObjAvailCb(void *self, void *result_ptr);
+extern void Xrm_RmtDevSyncLostCb(void *self, void *result_ptr);
+extern Xrm_PreJobDestrResult_t Xrm_PrepareJobDestruction(CExtendedResourceManager *self);
+extern Xrm_PreJobDestrResult_t Xrm_UnsafePrepareJobDestruction(CExtendedResourceManager *self);
+extern void Xrm_ResumeJobDestruction(CExtendedResourceManager *self);
+extern uint8_t Xrm_CountResourceObjects(CExtendedResourceManager *self, Xrm_Job_t *job_ptr);
+extern Xrm_Job_t * Xrm_GetJob(CExtendedResourceManager *self,
+ UCS_XRM_CONST Ucs_Xrm_ResObject_t *resource_object_list[]);
+extern void * Xrm_GetNextDevInUnnotifiedState(CExtendedResourceManager *self);
+extern uint8_t Xrm_GetResourceObjectIndex(CExtendedResourceManager *self,
+ Xrm_Job_t *job_ptr,
+ UCS_XRM_CONST Ucs_Xrm_ResObject_t **obj_pptr);
+extern bool Xrm_SearchNextResourceObject(CExtendedResourceManager *self);
+extern bool Xrm_IsCurrDeviceAlreadyAttached(CExtendedResourceManager *self);
+extern void Xrm_ProcessJob(CExtendedResourceManager *self);
+extern bool Xrm_IsPartOfJobList (void * job_ptr, void * resrc_obj_ptr);
+extern bool Xrm_IsDefaultCreatedPort(CExtendedResourceManager *self,
+ UCS_XRM_CONST Ucs_Xrm_ResObject_t *resource_object_ptr);
+extern bool Xrm_StoreResourceHandle(CExtendedResourceManager *self,
+ uint16_t resource_handle,
+ Xrm_Job_t *job_ptr,
+ UCS_XRM_CONST Ucs_Xrm_ResObject_t *resource_object_ptr);
+extern bool Xrm_SetJobAsInvalid(void * job_ptr, void * xrm_inst);
+extern bool Xrm_MarkThisResrcAsInvalid (void *resrc_ptr, void * xrm_inst, void *ud_ptr2, void *ud_ptr3);
+extern bool Xrm_FreeResrcHandleAndNtf(void *resrc_ptr, void *resrc_handle, void *job_ptr, void * user_arg);
+extern bool Xrm_SetCurrJobPtr(void *resrc_ptr, void *resrc_handle, void *job_ptr, void * user_arg);
+extern bool Xrm_ReleaseResrcHandle(void *resrc_ptr, void *job_ptr, void *resrc_obj_pptr, void * user_arg);
+extern bool Xrm_CntResHandleEntries(void * job_ptr, void * param_ptr);
+extern bool Xrm_IncrResHandleEntryCnt (void *resrc_ptr, void *job_ptr, void *param_ptr, void * user_arg);
+extern bool Xrm_SetNtfForThisJob(void * job_ptr, void * ud_ptr);
+extern bool Xrm_IsInMyJobsList (void * self, void * job_ptr);
+extern uint16_t Xrm_GetResourceHandle(CExtendedResourceManager *self,
+ Xrm_Job_t *job_ptr,
+ UCS_XRM_CONST Ucs_Xrm_ResObject_t *resource_object_ptr,
+ Xrmp_CheckJobListFunc_t func_ptr);
+extern uint8_t Xrm_CountResourceHandleEntries(CExtendedResourceManager *self,
+ UCS_XRM_CONST Ucs_Xrm_ResObject_t *resource_object_ptr);
+extern void Xrm_ReleaseResourceHandle(CExtendedResourceManager *self,
+ Xrm_Job_t *job_ptr,
+ UCS_XRM_CONST Ucs_Xrm_ResObject_t *resource_object_ptr);
+extern uint8_t Xrm_ReleaseResourceHandles(CExtendedResourceManager *self,
+ Xrm_Job_t *job_ptr,
+ uint16_t resource_handle_list[],
+ uint8_t resource_handle_list_size,
+ uint16_t failed_resource_handle);
+extern void Xrm_ReleaseResrcHandles(CExtendedResourceManager *self);
+extern void Xrm_HandleError(CExtendedResourceManager *self);
+extern void Xrm_ReportAutoDestructionResult(CExtendedResourceManager *self);
+extern void Xrm_MarkResrcAndJobsAsInvalid (CExtendedResourceManager *self);
+extern void Xrm_MarkRemoteDevicesAsUnsync(CExtendedResourceManager *self);
+extern void Xrm_ReportJobDestructionResult(CExtendedResourceManager *self);
+extern void Xrm_FinishJob(CExtendedResourceManager *self);
+extern void Xrm_NotifyInvalidJobs(CExtendedResourceManager *self);
+
+/* INIC Resource Management API */
+extern void Xrm_CreateMostSocket(CExtendedResourceManager *self);
+extern void Xrm_CreateMlbPort(CExtendedResourceManager *self);
+extern void Xrm_CreateMlbSocket(CExtendedResourceManager *self);
+extern void Xrm_CreateUsbPort(CExtendedResourceManager *self);
+extern void Xrm_CreateUsbSocket(CExtendedResourceManager *self);
+extern void Xrm_CreateRmckPort(CExtendedResourceManager *self);
+extern void Xrm_CreateStreamPort(CExtendedResourceManager *self);
+extern void Xrm_CreateStreamSocket(CExtendedResourceManager *self);
+extern void Xrm_CreateSyncCon(CExtendedResourceManager *self);
+extern void Xrm_CreateDfiPhaseCon(CExtendedResourceManager *self);
+extern void Xrm_CreateCombiner(CExtendedResourceManager *self);
+extern void Xrm_CreateSplitter(CExtendedResourceManager *self);
+extern void Xrm_CreateAvpCon(CExtendedResourceManager *self);
+extern void Xrm_CreateQoSCon(CExtendedResourceManager *self);
+extern void Xrm_ResourceMonitorCb(void *self, void *result_ptr);
+extern void Xrm_RequestResourceList(CExtendedResourceManager *self);
+extern void Xrm_RequestResourceListResultCb(void *self, void *result_ptr);
+extern void Xrm_DestroyResources(CExtendedResourceManager *self, Sobs_UpdateCb_t result_fptr);
+extern void Xrm_ResetResourceMonitor(CExtendedResourceManager *self);
+extern void Xrm_DestroyResourcesResultCb(void *self, void *result_ptr);
+extern void Xrm_DestroyJobResourcesResultCb(void *self, void *result_ptr);
+extern void Xrm_StdResultCb(void *self, void *result_ptr);
+extern void Xrm_Stream_PortConfigResult(void *self, void *result_ptr);
+extern void Xrm_Most_PortEnableResult(void *self, void *result_ptr);
+extern void Xrm_Most_PortEnFullStrResult(void *self, void *result_ptr);
+extern Ucs_Return_t Xrm_RemoteDeviceAttach (CExtendedResourceManager *self, Srv_Event_t next_set_event);
+extern void Xrm_RmtDevAttachResultCb(void *self, Rsm_Result_t result);
+extern Ucs_Return_t Xrm_SetStreamPortConfiguration (CExtendedResourceManager *self);
+extern Ucs_Return_t Xrm_GetStreamPortConfiguration (CExtendedResourceManager *self);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_XRM_PV_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/inc/ucs_xrmpool.h b/ucs2-lib/inc/ucs_xrmpool.h
new file mode 100644
index 0000000..2cea2f6
--- /dev/null
+++ b/ucs2-lib/inc/ucs_xrmpool.h
@@ -0,0 +1,154 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Internal header file of the Connection Storage Pool.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_UCS_XRM_INT
+ * @{
+ */
+
+
+#ifndef UCS_XRMPOOL_H
+#define UCS_XRMPOOL_H
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_xrm_pb.h"
+#include "ucs_dl.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Type definitions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Callback signature used by foreach-function for the resources list
+ * \param rc_ptr Reference to a resource object in the list
+ * \param ud_ptr1 Reference to the user data 1
+ * \param ud_ptr2 Reference to the user data 2
+ * \param ud_ptr3 Reference to the user data 3
+ * \return true: Stop the for-each-loop
+ * \return false: Continue the for-each-loop
+ */
+typedef bool (*Xrmp_ForeachFunc_t)(void *rc_ptr, void *ud_ptr1, void *ud_ptr2, void *ud_ptr3);
+
+/*! \brief Callback signature used by _GetResourceHandle-function to check whether found resources belongs to provided jobs list
+ * \param xrm_inst Reference to the XRM instance to be looked for
+ * \param job_ptr Reference to the job list to be checked
+ * \return true: Stop the for-each-loop since given job matches, otherwise
+ * \return false: Continue the for-each-loop in order to catch new jobs.
+ */
+typedef bool (*Xrmp_CheckJobListFunc_t)(void * xrm_inst, void * job_ptr);
+
+/*! \brief Function signature used for the results and reports of the Extended Resource Manager.
+ * \param node_address The node address from which the results come
+ * \param connection_label Returned MOST network connection label
+ * \param result Result of the job
+ * \param user_arg Reference to the user argument
+ * \ingroup G_UCS_IRM
+ */
+typedef void (*Ucs_Xrm_ReportCb_t)(uint16_t node_address, uint16_t connection_label, Ucs_Xrm_Result_t result, void * user_arg);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Structures */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Structure that defines a job of the Extended Resource Manager. */
+typedef struct Xrm_Job_
+{
+ /*! \brief Reference to resource object list */
+ UCS_XRM_CONST Ucs_Xrm_ResObject_t **resource_object_list_ptr;
+ /*! \brief Report callback of the job */
+ Ucs_Xrm_ReportCb_t report_fptr;
+ /*! \brief User defined MOST connection label */
+ uint16_t most_network_connection_label;
+ /*! \brief MOST connection label, returned during MOST socket creation */
+ uint16_t connection_label;
+ /*!< \brief Node required for jobs pool */
+ CDlNode node;
+ /*! \brief address of the device in which the job is built */
+ bool sync_lost;
+ /*! \brief State of the job (valid/invalid) */
+ bool valid;
+ /*! \brief Notification flag */
+ bool notify;
+ /*!< \brief user argument */
+ void * user_arg;
+
+} Xrm_Job_t;
+
+/*! \brief Structure that defines an item of the resource handle list. */
+typedef struct Xrm_ResourceHandleListItem_
+{
+ /*! \brief Reference to the job */
+ Xrm_Job_t *job_ptr;
+ /*! \brief Reference to the resource object */
+ UCS_XRM_CONST Ucs_Xrm_ResObject_t *resource_object_ptr;
+ /*! \brief INIC Resource handle */
+ uint16_t resource_handle;
+
+} Xrm_ResourceHandleListItem_t;
+
+/*! \brief Class structure of the Storage Pool of XRM Jobs and Resources. */
+typedef struct CXrmPool_
+{
+ /*! \brief Job list */
+ Xrm_Job_t job_list[XRM_NUM_JOBS];
+ /*! \brief List of resource handles */
+ Xrm_ResourceHandleListItem_t resource_handle_list[XRM_NUM_RESOURCE_HANDLES];
+ /*!< \brief Reference to the resource identification table */
+ Ucs_Xrm_ResIdentity_t * res_id_ptr;
+ /*! \brief Size of the resources Id table.
+ */
+ uint16_t res_id_size;
+
+} CXrmPool;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Prototypes of class CXrmPool */
+/*------------------------------------------------------------------------------------------------*/
+extern void Xrmp_Ctor(CXrmPool * self);
+extern bool Xrmp_StoreResourceHandle(CXrmPool * self_ptr, uint16_t resource_handle, Xrm_Job_t * job_ptr, UCS_XRM_CONST Ucs_Xrm_ResObject_t * resource_object_ptr);
+extern uint16_t Xrmp_GetResourceHandle(CXrmPool * self, Xrm_Job_t * job_ptr, UCS_XRM_CONST Ucs_Xrm_ResObject_t * resource_object_ptr, Xrmp_CheckJobListFunc_t func_ptr, void * usr_ptr);
+extern uint8_t Xrmp_GetResourceHandleIdx(CXrmPool *self, Xrm_Job_t *job_ptr, UCS_XRM_CONST Ucs_Xrm_ResObject_t **obj_pptr);
+extern Xrm_Job_t * Xrmp_GetJob(CXrmPool * self, UCS_XRM_CONST Ucs_Xrm_ResObject_t * resource_object_list[]);
+extern void Xrmp_Foreach(CXrmPool *self, Xrmp_ForeachFunc_t func_ptr, void *user_data_ptr1, void *user_data_ptr2, void *user_data_ptr3);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef UCS_XRMPOOL_H */
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/CMakeLists.txt b/ucs2-lib/src/CMakeLists.txt
new file mode 100644
index 0000000..1aedb22
--- /dev/null
+++ b/ucs2-lib/src/CMakeLists.txt
@@ -0,0 +1,38 @@
+###########################################################################
+# Copyright 2015, 2016, 2017 IoT.bzh
+#
+# author: Fulup Ar Foll <fulup@iot.bzh>
+#
+# 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.
+###########################################################################
+
+# Add target to project dependency list
+PROJECT_TARGET_ADD(ucs2-lib)
+
+# Define targets source files
+ADD_LIBRARY(ucs2-lib STATIC ucs_alm.c ucs_amd.c ucs_ams.c ucs_amsmessage.c ucs_amspool.c ucs_amtp.c ucs_attach.c ucs_base.c ucs_bc_diag.c ucs_class.c ucs_cmd.c ucs_dec.c ucs_dl.c ucs_eh.c ucs_encoder.c ucs_epm.c ucs_exc.c ucs_factory.c ucs_fsm.c ucs_gpio.c ucs_i2c.c ucs_inic.c ucs_inic_res.c ucs_jobs.c ucs_lldpool.c ucs_message.c ucs_mgr.c ucs_misc.c ucs_net.c ucs_nodedis.c ucs_nodeobserver.c ucs_nsm.c ucs_obs.c ucs_pmchannel.c ucs_pmcmd.c ucs_pmevent.c ucs_pmfifo.c ucs_pmfifos.c ucs_pmp.c ucs_pool.c ucs_prog.c ucs_rsm.c ucs_rtm.c ucs_scheduler.c ucs_segmentation.c ucs_smm.c ucs_sys_diag.c ucs_telqueue.c ucs_timer.c ucs_transceiver.c ucs_xrm.c ucs_xrmpool.c ucs_xrm_res.c)
+
+ # Expose Library Properties
+ SET_TARGET_PROPERTIES(ucs2-lib PROPERTIES OUTPUT_NAME ucs2net)
+
+ # Library dependencies from PKG_REQUIRED_LIST
+ TARGET_LINK_LIBRARIES(ucs2-lib ${link_libraries})
+
+ # Define properties to expose when others use this target
+ TARGET_INCLUDE_DIRECTORIES(ucs2-lib
+ PUBLIC
+ ${CMAKE_CURRENT_SOURCE_DIR}/../inc
+ ${CMAKE_CURRENT_SOURCE_DIR}/../cfg
+ ${CMAKE_CURRENT_SOURCE_DIR}/ucs-xml
+ )
+
diff --git a/ucs2-lib/src/ucs_alm.c b/ucs2-lib/src/ucs_alm.c
new file mode 100644
index 0000000..972402d
--- /dev/null
+++ b/ucs2-lib/src/ucs_alm.c
@@ -0,0 +1,275 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of the API locking manager.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_ALM
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_alm.h"
+#include "ucs_misc.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal constant */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Interval for garbage collection */
+static const uint16_t ALM_GARBAGE_COLLECTOR_INTERVAL = 2600U; /* parasoft-suppress MISRA2004-8_7 "Value shall be part of the module, not part of a function." */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal prototypes */
+/*------------------------------------------------------------------------------------------------*/
+static void Alm_HandleInternalErrors(void *self, void *error_code_ptr);
+static void Alm_GarbageCollector(void *self);
+static bool Alm_CheckRegisteredApi(void *current_alm_ptr, void *alm_inst_ptr);
+static void Alm_StartTimeout(CApiLockingManager *self);
+static void Alm_ClearTimeout(CApiLockingManager *self);
+static bool Alm_SearchLockedApi(void *current_alm_ptr, void *alm_inst_ptr);
+static void Alm_ResetRegisteredApis(CApiLockingManager *self);
+static bool Alm_ResetApi(void *current_alm_ptr, void *alm_inst_ptr);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation of class CApiLockingManager */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Constructor of the API locking manager class.
+ * \param self Instance pointer
+ * \param tm_ptr Reference to timer management instance
+ * \param eh_ptr Reference to event handler instance
+ * \param ucs_user_ptr User reference that needs to be passed in every callback function
+ */
+void Alm_Ctor(CApiLockingManager *self,
+ CTimerManagement *tm_ptr,
+ CEventHandler *eh_ptr,
+ void * ucs_user_ptr)
+{
+ MISC_MEM_SET(self, 0, sizeof(*self));
+ T_Ctor(&self->garbage_collector);
+ self->tm_ptr = tm_ptr;
+ self->eh_ptr = eh_ptr;
+ self->ucs_user_ptr = ucs_user_ptr;
+
+ /* Observe internal errors and events */
+ Mobs_Ctor(&self->internal_error_obs, self, EH_M_TERMINATION_EVENTS, &Alm_HandleInternalErrors);
+ Eh_AddObsrvInternalEvent(self->eh_ptr, &self->internal_error_obs);
+}
+
+/*! \brief Handles internal errors and events
+ * \param self Instance pointer
+ * \param error_code_ptr Reference to reported error code
+ */
+static void Alm_HandleInternalErrors(void *self, void *error_code_ptr)
+{
+ CApiLockingManager *self_ = (CApiLockingManager *)self;
+ MISC_UNUSED(error_code_ptr);
+
+ Tm_ClearTimer(self_->tm_ptr, &self_->garbage_collector); /* Clear timeout */
+ Alm_ResetRegisteredApis(self_); /* Reset all registered APIs */
+}
+
+/*! \brief Checks for API locking timeouts. This method is the callback function of timer
+ * \c garbage_collector.
+ * \param self Instance pointer
+ */
+static void Alm_GarbageCollector(void *self)
+{
+ CApiLockingManager *self_ = (CApiLockingManager *)self;
+ (void)Dl_Foreach(&self_->api_list, &Alm_CheckRegisteredApi, self_);
+}
+
+/*! \brief This method is used by Alm_GarbageCollector() to process each registered API.
+ * \param current_alm_ptr Reference to the current API
+ * \param alm_inst_ptr Instance of the API locking manager
+ * \return \c false to process all registered APIs
+ */
+static bool Alm_CheckRegisteredApi(void *current_alm_ptr, void *alm_inst_ptr)
+{
+ CApiLockingManager *self = (CApiLockingManager *)alm_inst_ptr;
+ CApiLocking *alm_ptr_ = (CApiLocking *)current_alm_ptr;
+ MISC_UNUSED(self);
+
+ if(alm_ptr_->timeout_mask != 0U)
+ {
+ Alm_ModuleMask_t tmp_mask = 1U;
+ while(alm_ptr_->timeout_mask != 0U)
+ {
+ if(tmp_mask == (tmp_mask & alm_ptr_->timeout_mask))
+ {
+ Ssub_Notify(&alm_ptr_->subject, &tmp_mask, false);
+ alm_ptr_->method_mask &= ~tmp_mask;
+ alm_ptr_->timeout_mask &= ~tmp_mask;
+ }
+ tmp_mask <<= 1;
+ }
+ Alm_ClearTimeout(self);
+ }
+ if(alm_ptr_->method_mask != 0U)
+ {
+ alm_ptr_->timeout_mask = alm_ptr_->method_mask;
+ }
+ return false;
+}
+
+/*! \brief Registers a new API locking object.
+ * \param self Instance pointer
+ * \param al_ptr Reference to the API to register
+ */
+void Alm_RegisterApi(CApiLockingManager *self, CApiLocking *al_ptr)
+{
+ Dl_InsertTail(&self->api_list, &al_ptr->node);
+ Dln_SetData(&al_ptr->node, al_ptr);
+ al_ptr->alm_ptr = self;
+}
+
+/*! \brief Starts the garbage collecting timer.
+ * \param self Instance pointer
+ */
+static void Alm_StartTimeout(CApiLockingManager *self)
+{
+ if(T_IsTimerInUse(&self->garbage_collector) == false)
+ {
+ Tm_SetTimer(self->tm_ptr,
+ &self->garbage_collector,
+ &Alm_GarbageCollector,
+ self,
+ ALM_GARBAGE_COLLECTOR_INTERVAL,
+ ALM_GARBAGE_COLLECTOR_INTERVAL);
+ }
+}
+
+/*! \brief Clears the garbage collecting timer. The timer is clear if no API locking flag is
+ * currently pending.
+ * \param self Instance pointer
+ */
+static void Alm_ClearTimeout(CApiLockingManager *self)
+{
+ if(Dl_Foreach(&self->api_list, &Alm_SearchLockedApi, self) == NULL)
+ {
+ Tm_ClearTimer(self->tm_ptr, &self->garbage_collector);
+ }
+}
+
+/*! \brief Used by Alm_ClearTimeout() to check if at least one registered API is locked.
+ * \param current_alm_ptr Reference to the current API locking object
+ * \param alm_inst_ptr Instance of the API locking manager
+ * \return \c true if a locked API was found, otherwise \c false
+ */
+static bool Alm_SearchLockedApi(void *current_alm_ptr, void *alm_inst_ptr)
+{
+ CApiLocking *alm_ptr_ = (CApiLocking *)current_alm_ptr;
+ bool ret_val = false;
+ MISC_UNUSED(alm_inst_ptr);
+
+ if(alm_ptr_->method_mask != 0U)
+ {
+ ret_val = true;
+ }
+ return ret_val;
+}
+
+/*! \brief Resets all registered APIs. Called if an internal error has been occurred.
+ * \param self Instance pointer
+ */
+static void Alm_ResetRegisteredApis(CApiLockingManager *self)
+{
+ (void)Dl_Foreach(&self->api_list, &Alm_ResetApi, self);
+}
+
+/*! \brief Used by Alm_ResetRegisteredApis() to reset all registered APIs.
+ * \param current_alm_ptr Reference to the current API locking object
+ * \param alm_inst_ptr Instance of the API locking manager
+ * \return \c false (process all registered APIs)
+ */
+static bool Alm_ResetApi(void *current_alm_ptr, void *alm_inst_ptr)
+{
+ CApiLocking *alm_ptr_ = (CApiLocking *)current_alm_ptr;
+ MISC_UNUSED(alm_inst_ptr);
+
+ alm_ptr_->method_mask = 0U;
+ alm_ptr_->timeout_mask = 0U;
+
+ return false;
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation of class CApiLocking */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Constructor of the API locking class.
+ * \param self Instance pointer
+ * \param obs_ptr Observer to signal locked API methods
+ * \param ucs_user_ptr User reference that needs to be passed in every callback function
+ */
+void Al_Ctor(CApiLocking *self, CSingleObserver *obs_ptr, void * ucs_user_ptr)
+{
+ MISC_MEM_SET(self, 0, sizeof(*self));
+ self->ucs_user_ptr = ucs_user_ptr;
+ Dln_Ctor(&self->node, NULL);
+ if(obs_ptr != NULL)
+ {
+ Ssub_Ctor(&self->subject, self->ucs_user_ptr);
+ (void)Ssub_AddObserver(&self->subject, obs_ptr);
+ }
+}
+
+/*! \brief Locks the given API method.
+ * \param self Instance pointer
+ * \param method Bitmask of method to lock
+ * \return \c true if the API has been locked successfully
+ * \return \c false if the API was already locked
+ */
+bool Al_Lock(CApiLocking *self, Alm_ModuleMask_t method)
+{
+ bool ret_val = false;
+ if((self->method_mask & method) == 0U)
+ {
+ ret_val = true;
+ self->method_mask |= method;
+ self->timeout_mask &= ~method;
+ Alm_StartTimeout(self->alm_ptr);
+ }
+ return ret_val;
+}
+
+/*! \brief Releases the lock of the given API method.
+ * \param self Instance pointer
+ * \param method Bitmask of method to lock
+ */
+void Al_Release(CApiLocking *self, Alm_ModuleMask_t method)
+{
+ self->method_mask &= ~method;
+ self->timeout_mask &= ~method;
+ Alm_ClearTimeout(self->alm_ptr);
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_amd.c b/ucs2-lib/src/ucs_amd.c
new file mode 100644
index 0000000..c4d3456
--- /dev/null
+++ b/ucs2-lib/src/ucs_amd.c
@@ -0,0 +1,570 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of Application Message Distributor
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_AMD
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_amd.h"
+#include "ucs_misc.h"
+
+/*! \brief Priority of the Application Message Distribution */
+static const uint8_t AMD_SRV_PRIO = 248U; /* parasoft-suppress MISRA2004-8_7 "configuration property" */
+/*! \brief Event which starts the Rx message distribution */
+static const Srv_Event_t AMD_EV_NOTIFY_RX = 1U;
+/*! \brief Event triggers notification of messages in tx_notify_queue */
+static const Srv_Event_t AMD_EV_NOTIFY_TX = 2U;
+/*! \brief FBlockID of FBlock NetBlock */
+static const uint8_t AMD_FB_NETBLOCK = 1U;
+/*! \brief FBlockID of FBlock NetworkMaster */
+static const uint8_t AMD_FB_NETWORKMASTER = 2U;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal prototypes */
+/*------------------------------------------------------------------------------------------------*/
+static void Amd_Service(void *self);
+static void Amd_OnAmsComplete(void* self, Ucs_AmsRx_Msg_t* msg_ptr);
+static void Amd_OnEvent(void *self, void *error_code_ptr);
+static void Amd_OnTerminateEvent(void *self, void *error_code_ptr);
+static void Amd_RxFlush(CAmd *self, CDlList *list_ptr);
+#ifdef AMD_TX_DISTRIB
+static bool Amd_TxIsRcmMsg(Ucs_AmsTx_Msg_t *msg_ptr);
+static bool Amd_TxReceiveInternal(CAmd *self, Ucs_AmsTx_Msg_t *msg_ptr);
+static void Amd_TxProcessNotifyQueue(CAmd *self);
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Initialization */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Constructor of class CAmd
+ * \param self The instance
+ * \param base_ptr Reference to base services
+ * \param ams_ptr Reference to the AMS
+ */
+void Amd_Ctor(CAmd *self, CBase *base_ptr, CAms *ams_ptr)
+{
+ MISC_MEM_SET((void *)self, 0, sizeof(*self)); /* reset members to "0" */
+
+ self->base_ptr = base_ptr;
+ self->ams_ptr = ams_ptr;
+
+ self->started = false;
+ Srv_Ctor(&self->service, AMD_SRV_PRIO, self, &Amd_Service); /* register service */
+ (void)Scd_AddService(&self->base_ptr->scd, &self->service);
+
+ Dl_Ctor(&self->pre_queue, self->base_ptr->ucs_user_ptr); /* init preprocessor queue */
+ Dl_Ctor(&self->rx_queue, self->base_ptr->ucs_user_ptr); /* init Rx queue */
+ /* register event observer */
+ Mobs_Ctor(&self->event_observer, self, EH_E_INIT_SUCCEEDED, &Amd_OnEvent);
+ Eh_AddObsrvInternalEvent(&self->base_ptr->eh, &self->event_observer);
+ /* register termination events */
+ Mobs_Ctor(&self->terminate_observer, self, EH_M_TERMINATION_EVENTS, &Amd_OnTerminateEvent);
+ Eh_AddObsrvInternalEvent(&self->base_ptr->eh, &self->terminate_observer);
+
+ Ams_RxAssignReceiver(self->ams_ptr, &Amd_OnAmsComplete, self);
+}
+
+
+#ifdef AMD_TX_DISTRIB
+/*! \brief Constructor of class CAmd
+ * \param self The instance
+ * \param base_ptr Reference to base services
+ * \param ams_ptr Reference to the AMS
+ * \param pool_ptr Reference to the AMS message pool
+ * \param inic_ptr Reference to the INIC
+ * \param net_ptr Reference to the network management
+ */
+void Amd_Ctor(CAmd *self, CBase *base_ptr, CAms *ams_ptr, CAmsMsgPool *pool_ptr, CInic *inic_ptr, CNetworkManagement *net_ptr)
+{
+ MISC_MEM_SET((void *)self, 0, sizeof(*self)); /* reset members to "0" */
+
+ self->base_ptr = base_ptr;
+ self->ams_ptr = ams_ptr;
+ self->pool_ptr = pool_ptr;
+ self->inic_ptr = inic_ptr;
+ self->net_ptr = net_ptr;
+
+ self->started = false;
+ Srv_Ctor(&self->service, AMD_SRV_PRIO, self, &Amd_Service); /* register service */
+ (void)Scd_AddService(&self->base_ptr->scd, &self->service);
+
+ Dl_Ctor(&self->tx_notify_queue, self->base_ptr->ucs_inst_id); /* init queues */
+ Dl_Ctor(&self->pre_queue, self->base_ptr->ucs_inst_id); /* init preprocessor queue */
+ Dl_Ctor(&self->rx_queue, self->base_ptr->ucs_inst_id); /* init Rx queue */
+ /* register event observer */
+ Mobs_Ctor(&self->event_observer, self, EH_E_INIT_SUCCEEDED, &Amd_OnEvent);
+ Eh_AddObsrvInternalEvent(&self->base_ptr->eh, &self->event_observer);
+ /* register termination events */
+ Mobs_Ctor(&self->terminate_observer, self, EH_M_TERMINATION_EVENTS, &Amd_OnTerminateEvent);
+ Eh_AddObsrvInternalEvent(&self->base_ptr->eh, &self->terminate_observer);
+
+ Ams_RxAssignReceiver(self->ams_ptr, &Amd_OnAmsComplete, self);
+ Ams_TxAssignTrcvSelector(self->ams_ptr, &Amd_TxIsRcmMsg);
+}
+#endif
+
+/*! \brief Assigns a pre-processor callback function for Rx messages
+ * \details This function must be called during initialization time.
+ * The AMS shall not already run.
+ * \param self The instance
+ * \param callback_fptr Reference to the callback function
+ * \param inst_ptr Reference to the pre-processor
+ */
+void Amd_AssignPreprocessor(CAmd *self, Amd_RxMsgCompleteCb_t callback_fptr, void *inst_ptr)
+{
+ if (callback_fptr != NULL)
+ {
+ self->preprocess_fptr = callback_fptr;
+ self->preprocess_inst_ptr = inst_ptr;
+
+ self->first_receive_fptr = callback_fptr;
+ self->first_receive_inst_ptr = inst_ptr;
+ self->first_q_ptr = &self->pre_queue;
+ }
+}
+
+/*! \brief Assigns a receiver callback function for Rx messages
+ * \details This function must be called during initialization time.
+ * The AMS shall not already run.
+ * \param self The instance
+ * \param callback_fptr Reference to the callback function
+ * \param inst_ptr Reference to the receiver
+ */
+void Amd_AssignReceiver(CAmd *self, Amd_RxMsgCompleteCb_t callback_fptr, void *inst_ptr)
+{
+ if (callback_fptr != NULL)
+ {
+ self->receive_fptr = callback_fptr;
+ self->receive_inst_ptr = inst_ptr;
+
+ if (self->first_receive_fptr == NULL)
+ {
+ self->first_receive_fptr = callback_fptr;
+ self->first_receive_inst_ptr = inst_ptr;
+ self->first_q_ptr = &self->rx_queue;
+ }
+ }
+}
+
+/*! \brief Assigns as callback function which is able to read and modify the Rx message
+ * \param self The instance
+ * \param callback_fptr Reference to the callback function
+ * \param inst_ptr Reference to the instance (owner of the callback function)
+ */
+void Amd_RxAssignModificator(CAmd *self, Amd_RxModificationCb_t callback_fptr, void *inst_ptr)
+{
+ if (callback_fptr != NULL)
+ {
+ self->rx_modification_fptr = callback_fptr;
+ self->rx_modification_inst_ptr = inst_ptr;
+ }
+}
+
+/*! \brief Service function of CAmd
+ * \details The processing of the Rx queues shall be started asynchronously
+ * after the initialization has succeeded.
+ * \param self The instance
+ */
+static void Amd_Service(void *self)
+{
+ CAmd *self_ = (CAmd*)self;
+ Srv_Event_t event_mask;
+ Srv_GetEvent(&self_->service, &event_mask);
+
+ if((event_mask & AMD_EV_NOTIFY_RX) == AMD_EV_NOTIFY_RX) /* triggered on internal transmission */
+ {
+ Srv_ClearEvent(&self_->service, AMD_EV_NOTIFY_RX);
+ if ((self_->started != false) && (self_->first_receive_fptr != NULL))
+ {
+ uint16_t size = Dl_GetSize(self_->first_q_ptr);
+ if (size > 0U)
+ {
+ self_->first_receive_fptr(self_->first_receive_inst_ptr);
+ }
+ }
+ }
+
+#ifdef AMD_TX_DISTRIB
+ if((event_mask & AMD_EV_NOTIFY_TX) == AMD_EV_NOTIFY_TX) /* notify Tx distribution failure asynchronously */
+ {
+ Srv_ClearEvent(&self_->service, AMD_EV_NOTIFY_TX);
+ Amd_TxProcessNotifyQueue(self_);
+ }
+#endif
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Events */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Callback function which is invoked on completed application message reception
+ * \param self The instance
+ * \param msg_ptr Reference to the completed application message
+ */
+static void Amd_OnAmsComplete(void *self, Ucs_AmsRx_Msg_t *msg_ptr)
+{
+ CAmd *self_ = (CAmd*)self;
+
+ if (self_->rx_modification_fptr != NULL)
+ {
+ self_->rx_modification_fptr(self_->rx_modification_inst_ptr, msg_ptr);
+ }
+
+ if (self_->first_receive_fptr != NULL)
+ {
+ Amsg_RxEnqueue(msg_ptr, self_->first_q_ptr);
+
+ if (self_->started != false)
+ {
+ self_->first_receive_fptr(self_->first_receive_inst_ptr);
+ }
+ }
+ else
+ {
+ Ams_RxFreeMsg(self_->ams_ptr, msg_ptr);
+ }
+}
+
+/*! \brief Callback function if an events leads to the termination of the MNS
+ * \param self The instance
+ * \param error_code_ptr Reference to the error code
+ */
+static void Amd_OnTerminateEvent(void *self, void *error_code_ptr)
+{
+ CAmd *self_ = (CAmd*)self;
+ MISC_UNUSED(error_code_ptr);
+
+ TR_INFO((self_->base_ptr->ucs_user_ptr, "[AMD]", "Starting AMD Cleanup", 0U));
+ Amd_RxFlush(self_, &self_->pre_queue);
+ Amd_RxFlush(self_, &self_->rx_queue);
+#ifdef AMD_TX_DISTRIB
+ Amd_TxProcessNotifyQueue(self_);
+#endif
+ TR_INFO((self_->base_ptr->ucs_user_ptr, "[AMD]", "Finished AMD Cleanup", 0U));
+}
+
+/*! \brief Callback function which is invoked if the initialization is complete
+ * \param self The instance
+ * \param error_code_ptr Reference to the error code
+ */
+static void Amd_OnEvent(void *self, void *error_code_ptr)
+{
+ CAmd *self_ = (CAmd*)self;
+ MISC_UNUSED(error_code_ptr);
+
+ TR_INFO((self_->base_ptr->ucs_user_ptr, "[AMD]", "Received init complete event", 0U));
+ self_->started = true;
+ Srv_SetEvent(&self_->service, AMD_EV_NOTIFY_RX);
+}
+
+/*! \brief Flushes a given application Rx message queue
+ * \param self The instance
+ * \param list_ptr Reference to a list containing application Rx message objects
+ */
+static void Amd_RxFlush(CAmd *self, CDlList *list_ptr)
+{
+ Ucs_AmsRx_Msg_t *msg_ptr;
+
+ for (msg_ptr = Amsg_RxDequeue(list_ptr); msg_ptr != NULL; msg_ptr = Amsg_RxDequeue(list_ptr))
+ {
+ Ams_RxFreeMsg(self->ams_ptr, msg_ptr);
+ }
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Pre-processor methods */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Peeks the front-most application message from the preprocessing queue
+ * \param self The instance
+ * \return Returns a reference to the front-most application message or \c NULL if the queue
+ * is empty.
+ */
+Ucs_AmsRx_Msg_t* Amd_PrePeekMsg(CAmd *self)
+{
+ return (Ucs_AmsRx_Msg_t*)(void*)Amsg_RxPeek(&self->pre_queue);
+}
+
+/*! \brief Removes the front-most application message from the preprocessing queue and frees it
+ * \param self The instance
+ */
+void Amd_PreReleaseMsg(CAmd *self)
+{
+ Ucs_AmsRx_Msg_t *msg_ptr = Amsg_RxDequeue(&self->pre_queue);
+
+ if (msg_ptr != NULL)
+ {
+ Ams_RxFreeMsg(self->ams_ptr, msg_ptr);
+ }
+}
+
+/*! \brief Forwards the front-most application message from the preprocessing queue to the Rx queue
+ * \param self The instance
+ */
+void Amd_PreForwardMsg(CAmd *self)
+{
+ Ucs_AmsRx_Msg_t *msg_ptr = Amsg_RxDequeue(&self->pre_queue);
+
+ if (msg_ptr != NULL)
+ {
+ if (self->receive_fptr != NULL)
+ {
+ Amsg_RxEnqueue(msg_ptr, &self->rx_queue);
+ self->receive_fptr(self->receive_inst_ptr);
+ }
+ else
+ {
+ Ams_RxFreeMsg(self->ams_ptr, msg_ptr);
+ }
+ }
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Receiver methods */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Peeks the front-most application message from the Rx queue
+ * \param self The instance
+ * \return Returns a reference to the front-most application message or \c NULL if the queue
+ * is empty.
+ */
+Ucs_AmsRx_Msg_t* Amd_RxPeekMsg(CAmd *self)
+{
+ return (Ucs_AmsRx_Msg_t*)(void*)Amsg_RxPeek(&self->rx_queue);
+}
+
+/*! \brief Removes the front-most application message from the Rx queue and frees it
+ * \param self The instance
+ */
+void Amd_RxReleaseMsg(CAmd *self)
+{
+ Ucs_AmsRx_Msg_t *msg_ptr = Amsg_RxDequeue(&self->rx_queue);
+
+ if (msg_ptr != NULL)
+ {
+ Ams_RxFreeMsg(self->ams_ptr, msg_ptr);
+ }
+}
+
+/*! \brief Retrieves the number of messages which are appended to the Rx queue
+ * \param self The instance
+ * \return Returns the number of messages.
+ */
+uint16_t Amd_RxGetMsgCnt(CAmd *self)
+{
+ return Dl_GetSize(&self->rx_queue);
+}
+
+#ifdef AMD_TX_DISTRIB
+/*------------------------------------------------------------------------------------------------*/
+/* Transmitter methods */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Distributes a Tx message internally as Rx message
+ * \param self The instance
+ * \param msg_ptr The Tx message
+ * \param tx_complete_sia_fptr Single instance API callback function which is invoked as soon as
+ * the transmission was finished.
+ * \param tx_complete_fptr Multi instance callback function which is invoked as soon as
+ * the transmission was finished.
+ * \param tx_complete_inst_ptr Instance pointer which is referred when tx_complete_fptr is invoked.
+ * \return Returns \c UCS_RET_SUCCESS if the message accepted for transmission.
+ * Returns \c UCS_RET_ERR_PARAM if the message is refused due to invalid message attributes.
+ */
+Ucs_Return_t Amd_TxSendMsg(CAmd *self, Ucs_AmsTx_Msg_t *msg_ptr, Amsg_TxCompleteSiaCb_t tx_complete_sia_fptr,
+ Amsg_TxCompleteCb_t tx_complete_fptr, void* tx_complete_inst_ptr)
+{
+ Ucs_Return_t ret = UCS_RET_SUCCESS;
+ bool tx_internal = false;
+ bool tx_network = false;
+ bool tx_ignore_nw_failure = false;
+ bool tx_check_ni = true; /* if false, transmit to INIC even during NET_OFF */
+
+ if (Ams_TxIsValidMessage(msg_ptr) != false)
+ {
+ Net_IsOwnAddrResult_t addr_type = Net_IsOwnAddress(self->net_ptr, msg_ptr->destination_address);
+
+ TR_ASSERT(self->base_ptr->ucs_user_ptr, "[AMS]", (((tx_complete_sia_fptr != NULL) && (tx_complete_fptr != NULL)) == false));
+ Amsg_TxSetCompleteCallback(msg_ptr, tx_complete_sia_fptr, tx_complete_fptr, tx_complete_inst_ptr);
+
+ if (msg_ptr->destination_address == UCS_ADDR_INTERNAL)
+ {
+ tx_internal = true; /* do not forward internal messages to INIC */
+ }
+ else if ((msg_ptr->fblock_id == AMD_FB_NETBLOCK) || (msg_ptr->fblock_id == AMD_FB_NETWORKMASTER))
+ {
+ if (addr_type == NET_IS_OWN_ADDR_NODE) /* replace own node address by "1" to force INIC internal routing */
+ { /* do not replace multicast addresses (these are static and handled by INIC) */
+ Amsg_TxReplaceDestinationAddr(msg_ptr, MSG_ADDR_INIC);
+ }
+ else if ((addr_type == NET_IS_OWN_ADDR_GROUP) ||
+ (msg_ptr->destination_address == UCS_ADDR_BROADCAST_BLOCKING) ||
+ (msg_ptr->destination_address == UCS_ADDR_BROADCAST_UNBLOCKING))
+ {
+ tx_ignore_nw_failure = true;
+ }
+
+ tx_network = true; /* route FBlocks NB and NWM to INIC */
+ tx_check_ni = false; /* INIC performs checks independent from NI state */
+ }
+ else if ((msg_ptr->destination_address == UCS_ADDR_BROADCAST_BLOCKING) ||
+ (msg_ptr->destination_address == UCS_ADDR_BROADCAST_UNBLOCKING))
+ {
+ tx_internal = true; /* forward broadcast messages to INIC and distribute internally */
+ tx_network = true;
+ }
+ else
+ {
+ switch (addr_type)
+ {
+ case NET_IS_OWN_ADDR_NODE:
+ tx_internal = true;
+ break;
+ case NET_IS_OWN_ADDR_GROUP:
+ tx_internal = true;
+ tx_network = true;
+ break;
+ case NET_IS_OWN_ADDR_NONE:
+ default:
+ tx_network = true;
+ break;
+ }
+ }
+
+ if ((Inic_GetAvailability(self->inic_ptr) == UCS_NW_NOT_AVAILABLE) && (tx_check_ni == true))
+ {
+ tx_network = false; /* abort network transmission */
+ Amsg_TxUpdateResult(msg_ptr, UCS_MSG_STAT_ERROR_NA_OFF);
+ }
+
+ if (tx_internal != false)
+ {
+ if (Amd_TxReceiveInternal(self, msg_ptr) == false)
+ { /* internal transmission failed */
+ Amsg_TxUpdateInternalResult(msg_ptr, AMSG_TX_INTRES_ERRBUF);
+ }
+ else
+ { /* internal transmission succeeded */
+ Amsg_TxUpdateInternalResult(msg_ptr, AMSG_TX_INTRES_SUCCESS);
+ }
+ }
+ else if (tx_ignore_nw_failure != false)
+ { /* INIC routing will succeed while NW transmission fails */
+ Amsg_TxUpdateInternalResult(msg_ptr, AMSG_TX_INTRES_SUCCESS);
+ }
+
+ if (tx_network == false)
+ { /* enqueue message to notification queue and set event */
+ Amsg_TxEnqueue(msg_ptr, &self->tx_notify_queue);
+ Srv_SetEvent(&self->service, AMD_EV_NOTIFY_TX);
+ }
+ else
+ {
+ Ams_TxSendMsgDirect(self->ams_ptr, msg_ptr);
+ }
+ }
+ else
+ {
+ ret = UCS_RET_ERR_PARAM; /* invalid message parameters */
+ }
+
+ return ret;
+}
+
+/*! \brief Decides whether to root a message to MCM or RCM FIFO
+ * \param msg_ptr The Tx message object
+ * \return Returns \c true if a Tx message shall be routed to RCM FIFO, otherwise returns \c false.
+ */
+static bool Amd_TxIsRcmMsg(Ucs_AmsTx_Msg_t *msg_ptr)
+{
+ bool ret = false;
+ if (((msg_ptr->fblock_id == AMD_FB_NETBLOCK) && (msg_ptr->op_type <= UCS_OP_STARTACK)) /* is NB.Command */
+ || ((msg_ptr->fblock_id == AMD_FB_NETWORKMASTER) && (msg_ptr->op_type > UCS_OP_STARTACK))) /* or NWM.Report?*/
+ {
+ ret = true;
+ }
+
+ return ret;
+}
+
+/*! \brief Distributes a Tx message internally as Rx message
+ * \param self The instance
+ * \param msg_ptr The Tx message
+ * \return Returns \c true if the message distributed successfully.
+ * Returns \c false if the allocation of the Rx message has failed.
+ */
+static bool Amd_TxReceiveInternal(CAmd *self, Ucs_AmsTx_Msg_t *msg_ptr)
+{
+ bool ret = false;
+ Ucs_AmsRx_Msg_t *rx_ptr = Amsp_AllocRxObj(self->pool_ptr, msg_ptr->data_size);
+
+ if (rx_ptr != NULL)
+ {
+ uint16_t src_addr = UCS_ADDR_INTERNAL;
+ if (msg_ptr->destination_address != UCS_ADDR_INTERNAL)
+ {
+ src_addr = Inic_GetNodeAddress(self->inic_ptr);
+ }
+ Amsg_RxBuildFromTx(rx_ptr, msg_ptr, src_addr);
+ if (self->first_q_ptr != NULL)
+ {
+ Amsg_RxEnqueue(rx_ptr, self->first_q_ptr);
+ Srv_SetEvent(&self->service, AMD_EV_NOTIFY_RX);
+ ret = true;
+ }
+ else
+ {
+ Amsp_FreeRxObj(self->pool_ptr, rx_ptr);
+ TR_FAILED_ASSERT(self->base_ptr->ucs_user_ptr, "[AMD]");
+ }
+ }
+
+ return ret;
+}
+
+/*! \brief Notifies the transmission result for all messages in the tx_notify_queue
+ * \param self The instance
+ */
+static void Amd_TxProcessNotifyQueue(CAmd *self)
+{
+ Ucs_AmsTx_Msg_t *tx_ptr = NULL;
+
+ for (tx_ptr = Amsg_TxDequeue(&self->tx_notify_queue); tx_ptr != NULL; tx_ptr = Amsg_TxDequeue(&self->tx_notify_queue))
+ {
+ /* just just notify completion, the object is automatically freed to the pool */
+ Amsg_TxNotifyComplete(tx_ptr, Amsg_TxGetResultCode(tx_ptr), Amsg_TxGetResultInfo(tx_ptr));
+ }
+}
+#endif
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_ams.c b/ucs2-lib/src/ucs_ams.c
new file mode 100644
index 0000000..2df7129
--- /dev/null
+++ b/ucs2-lib/src/ucs_ams.c
@@ -0,0 +1,669 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of Application Message Service
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_AMSC
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_ams.h"
+#include "ucs_amsmessage.h"
+#include "ucs_dl.h"
+#include "ucs_misc.h"
+#include "ucs_pmp.h"
+#include "ucs_encoder.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal constants */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Priority of the Application Message Service */
+static const uint8_t AMS_SRV_PRIO = 253U; /* parasoft-suppress MISRA2004-8_7 "configuration property" */
+/*! \brief Event which triggers the Rx service */
+static const Srv_Event_t AMS_EV_RX_SERVICE = 1U;
+/*! \brief Event which triggers the Tx service */
+static const Srv_Event_t AMS_EV_TX_SERVICE = 2U;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal prototypes */
+/*------------------------------------------------------------------------------------------------*/
+static void Ams_Cleanup(CAms *self);
+static void Ams_Service(void *self);
+static void Ams_OnEhEvent(void *self, void *error_code_ptr);
+
+static void Ams_TxService(CAms *self);
+static void Ams_TxOnStatus(void *self, Msg_MostTel_t *tel_ptr, Ucs_MsgTxStatus_t status);
+static uint8_t Ams_TxGetNextFollowerId(CAms *self);
+
+static void Ams_RxOnTelComplete(CAms *self, Msg_MostTel_t *tel_ptr);
+static void Ams_RxReleaseTel(CAms *self, Msg_MostTel_t *tel_ptr);
+static void Ams_RxProcessWaitingQ(CAms *self);
+static void Ams_RxOnSegError(void *self, Msg_MostTel_t *tel_ptr, Segm_Error_t error);
+static void Ams_RxOnFreedMsg(void *self, void *data_ptr);
+static void Ams_RxFlush(CAms *self);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Initialization Methods */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Constructor of class CAms
+ * \param self The instance
+ * \param base_ptr Reference to base services
+ * \param mcm_trcv_ptr Reference to the MCM transceiver
+ * \param rcm_trcv_ptr Reference to the RCM transceiver
+ * \param pool_ptr Reference to the pool for application message handles
+ * \param rx_def_payload_sz Default memory size that is allocated when receiving segmented messages
+ * without size prefix
+ */
+void Ams_Ctor(CAms *self, CBase *base_ptr, CTransceiver *mcm_trcv_ptr, CTransceiver *rcm_trcv_ptr,
+ CAmsMsgPool *pool_ptr, uint16_t rx_def_payload_sz)
+{
+ MISC_UNUSED(rcm_trcv_ptr);
+ MISC_MEM_SET((void *)self, 0, sizeof(*self)); /* reset members to "0" */
+ self->trcv_mcm_ptr = mcm_trcv_ptr;
+ self->trcv_rcm_ptr = rcm_trcv_ptr;
+ self->base_ptr = base_ptr;
+ self->pool_ptr = pool_ptr;
+
+ self->tx.default_llrbc = AMS_LLRBC_DEFAULT; /* set initial retries */
+ self->tx.next_follower_id = 1U; /* set initial follower id */
+ /* init pools */
+ Obs_Ctor(&self->rx.message_freed_observer, self, &Ams_RxOnFreedMsg);
+ Amsp_AssignRxFreedObs(self->pool_ptr, &self->rx.message_freed_observer);
+ Telq_Ctor(&self->rx.waiting_queue, self->base_ptr->ucs_user_ptr); /* init Rx waiting queue */
+
+ Dl_Ctor(&self->tx.queue, self->base_ptr->ucs_user_ptr);
+
+ Srv_Ctor(&self->service, AMS_SRV_PRIO, self, &Ams_Service); /* register service */
+ (void)Scd_AddService(&self->base_ptr->scd, &self->service);
+
+ Segm_Ctor(&self->segmentation, self->base_ptr, self->pool_ptr, rx_def_payload_sz);
+ Segm_AssignRxErrorHandler(&self->segmentation, &Ams_RxOnSegError, self);
+
+ if (self->trcv_mcm_ptr != NULL)
+ {
+ Trcv_RxAssignReceiver(self->trcv_mcm_ptr, &Ams_RxOnMcmTelComplete, self);
+ }
+ if (self->trcv_rcm_ptr != NULL)
+ {
+ Trcv_RxAssignReceiver(self->trcv_rcm_ptr, &Ams_RxOnRcmTelComplete, self);
+ }
+
+ Mobs_Ctor(&self->unsync_result_observer, self, EH_M_TERMINATION_EVENTS, &Ams_OnEhEvent); /* register error observer */
+ Eh_AddObsrvInternalEvent(&self->base_ptr->eh, &self->unsync_result_observer);
+}
+
+/*! \brief Sets the default retry values used for Application Messages
+ * \param self The instance
+ * \param llrbc The default low level retry block count
+ */
+void Ams_TxSetDefaultRetries(CAms* self, uint8_t llrbc)
+{
+ self->tx.default_llrbc = llrbc;
+}
+
+/*! \brief Assigns a function of another class to receive application messages
+ * \param self The instance
+ * \param cb_fptr Callback function
+ * \param inst_ptr The instance of the receiver class
+ */
+void Ams_RxAssignReceiver(CAms *self, Amsg_RxCompleteCb_t cb_fptr, void *inst_ptr)
+{
+ self->rx.complete_fptr = cb_fptr;
+ self->rx.complete_inst_ptr = inst_ptr;
+}
+
+/*! \brief Assigns an observer which is invoked if a Tx application message is freed.
+ * \details The observer is only notified a previous allocation of a Tx object has failed.
+ * The data_ptr of the update callback function is not used (always \c NULL).
+ * See \ref Obs_UpdateCb_t.
+ * \param self The instance
+ * \param observer_ptr The observer
+ */
+void Ams_TxAssignMsgFreedObs(CAms *self, CObserver *observer_ptr)
+{
+ Amsp_AssignTxFreedObs(self->pool_ptr, observer_ptr);
+}
+
+/*! \brief Assigns a callback function that selects FIFO routing for a Tx message.
+ * \details If no callback function is assigned, then all Tx messages are routed to RCM FIFO.
+ * \param self The instance
+ * \param cb_fptr The callback function
+ */
+void Ams_TxAssignTrcvSelector(CAms *self, Ams_TxIsRcmMsgCb_t cb_fptr)
+{
+ self->tx.is_rcm_fptr = cb_fptr;
+}
+
+/*! \brief Performs a cleanup of the Tx message queue and notifies
+ * the transmission error UCS_AMSTX_RES_NOT_AVAILABLE.
+ * \param self The instance
+ */
+static void Ams_Cleanup(CAms *self)
+{
+ Ucs_AmsTx_Msg_t *tx_ptr = NULL;
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[AMS]", "Starting AMS Cleanup", 0U));
+ /* cleanup Tx queue */
+ for (tx_ptr = Amsg_TxDequeue(&self->tx.queue); tx_ptr != NULL; tx_ptr = Amsg_TxDequeue(&self->tx.queue))
+ {
+ /* just just notify completion, the object is automatically freed to the pool */
+ Amsg_TxNotifyComplete(tx_ptr, UCS_AMSTX_RES_ERR_NOT_AVAILABLE, UCS_AMSTX_I_ERR_UNSYNCED);
+ }
+
+ Segm_Cleanup(&self->segmentation); /* cleanup Rx */
+ Ams_RxFlush(self);
+ Amsp_Cleanup(self->pool_ptr); /* final cleanup of pool */
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[AMS]", "Finished AMS Cleanup", 0U));
+}
+
+/*! \brief Callback function which is invoked by the event handler
+ * on any termination event.
+ * \param self The instance
+ * \param error_code_ptr Reference to the error code
+ */
+static void Ams_OnEhEvent(void *self, void *error_code_ptr)
+{
+ CAms *self_ = (CAms*)self;
+ MISC_UNUSED(error_code_ptr);
+ Ams_Cleanup(self_);
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Service */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief The AMS service function
+ * \param self The instance
+ */
+static void Ams_Service(void *self)
+{
+ CAms *self_ = (CAms*)self;
+ Srv_Event_t event_mask;
+ Srv_GetEvent(&self_->service, &event_mask);
+
+ if ((event_mask & AMS_EV_TX_SERVICE) == AMS_EV_TX_SERVICE) /* Is event pending? */
+ {
+ Srv_ClearEvent(&self_->service, AMS_EV_TX_SERVICE);
+ Ams_TxService(self_);
+ }
+
+ if ((event_mask & AMS_EV_RX_SERVICE) == AMS_EV_RX_SERVICE) /* Is event pending? */
+ {
+ Srv_ClearEvent(&self_->service, AMS_EV_RX_SERVICE);
+ Ams_RxProcessWaitingQ(self_);
+ }
+}
+
+/*! \brief Allocates and transmits MCMs for the dedicated Application Messages
+ * \param self The instance
+ */
+static void Ams_TxService(CAms *self)
+{
+ CDlNode *node1_ptr;
+ /* run as long as messages are available in Tx queue */
+ for (node1_ptr = Dl_PeekHead(&self->tx.queue); node1_ptr != NULL; node1_ptr = Dl_PeekHead(&self->tx.queue))
+ {
+ Msg_MostTel_t *tel_ptr = NULL;
+ CTransceiver *trcv_ptr = self->trcv_mcm_ptr;
+ Ucs_AmsTx_Msg_t *tx_ptr = (Ucs_AmsTx_Msg_t*)Dln_GetData(node1_ptr);
+
+ if (self->tx.is_rcm_fptr != NULL)
+ {
+ if (self->tx.is_rcm_fptr(tx_ptr) != false)
+ {
+ trcv_ptr = self->trcv_rcm_ptr;
+ }
+ }
+ /* allocate telegram object with 2 bytes for TelId 4 */
+ tel_ptr = Trcv_TxAllocateMsg(trcv_ptr, 2U); /* remaining message payload is attached as external memory */
+
+ if (tel_ptr != NULL) /* transmit message if telegram object is available */
+ {
+ CDlNode *node2_ptr = Dl_PopHead(&self->tx.queue); /* now retrieve application message from queue, previously checked by peek operation */
+
+ if (node2_ptr != NULL)
+ {
+ bool done;
+ TR_ASSERT(self->base_ptr->ucs_user_ptr, "[AMS]", (node1_ptr == node2_ptr));
+ tx_ptr = (Ucs_AmsTx_Msg_t*)Dln_GetData(node2_ptr);
+ done = Segm_TxBuildSegment(&self->segmentation, tx_ptr, tel_ptr); /* run segmentation */
+ Trcv_TxSendMsgExt(trcv_ptr, tel_ptr, &Ams_TxOnStatus, self); /* transmit telegram */
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[AMS]", "Ams_TxService(tel_ptr=0x%p)", 1U, tel_ptr));
+
+ if (done == false)
+ {
+ Dl_InsertHead(&self->tx.queue, node2_ptr);
+ }
+ }
+ else
+ {
+ TR_FAILED_ASSERT(self->base_ptr->ucs_user_ptr, "[AMS]"); /* inconsistency between peek and pop operation */
+ }
+ }
+ else
+ {
+ break;
+ }
+ }
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* AMS Tx handles */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Retrieves a message Tx handle
+ * \details The payload provided is limited the supported size of the memory management.
+ * The application may also attach own payload to a message object. Therefore,
+ * Ams_TxGetMsg() shall be called with size "0".
+ * \param self The instance
+ * \param size Payload size in bytes or "0" to use application provided payload.
+ * The payload provided by MNS is limited to a size of 45 bytes.
+ * Valid values: 0..45.
+ * \return A Tx message object or \c NULL if no message object is available.
+ */
+Ucs_AmsTx_Msg_t * Ams_TxGetMsg(CAms *self, uint16_t size)
+{
+ Ucs_AmsTx_Msg_t * msg_ptr = Amsp_AllocTxObj(self->pool_ptr, size);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_address = AMS_ADDR_RSVD_RANGE; /* set invalid address to prevent internal transmission*/
+ msg_ptr->llrbc = self->tx.default_llrbc;
+ }
+
+ return msg_ptr;
+}
+
+/*! \brief Frees an unused or completed Tx message to the pool
+ * \param self The instance
+ * \param msg_ptr Reference to the related message object
+ */
+void Ams_TxFreeUnusedMsg(CAms *self, Ucs_AmsTx_Msg_t *msg_ptr)
+{
+ MISC_UNUSED(self);
+ Amsg_TxFreeUnused(msg_ptr); /* the object is automatically freed to the pool */
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* AMS Transmission */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Transmits a MOST Application Message
+ * \details After the transmission completed the function will call one callback function. Therefore
+ * the caller is able to assign one of two different callback function. The difference between
+ * the callback function is that tx_complete_sia_fptr does no provide a self pointer whether
+ * tx_complete_fptr and tx_complete_inst_ptr allow to invoke a class method.
+ * \param self The instance
+ * \param msg_ptr Reference to the related message object
+ * \param tx_complete_sia_fptr Single instance API callback function which is invoked as soon as
+ * the transmission was finished.
+ * \param tx_complete_fptr Multi instance callback function which is invoked as soon as
+ * the transmission was finished.
+ * \param tx_complete_inst_ptr Instance pointer which is referred when tx_complete_fptr is invoked.
+ * \return Possible return values are
+ * - \c UCS_RET_SUCCESS if the transmission was started successfully
+ * - \c UCS_RET_ERR_PARAM if the transmission was refused due to an invalid parameter
+ */
+Ucs_Return_t Ams_TxSendMsg(CAms *self, Ucs_AmsTx_Msg_t *msg_ptr, Amsg_TxCompleteSiaCb_t tx_complete_sia_fptr,
+ Amsg_TxCompleteCb_t tx_complete_fptr, void* tx_complete_inst_ptr)
+{
+ Ucs_Return_t ret_val = UCS_RET_ERR_PARAM;
+
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[AMS]", "Called Ams_TxSendMsg(0x%p)", 1U, msg_ptr));
+
+ if (Ams_TxIsValidMessage(msg_ptr)) /* prevent application messages to loc. INIC */
+ { /* do not set both callback pointers */
+ TR_ASSERT(self->base_ptr->ucs_user_ptr, "[AMS]", (((tx_complete_sia_fptr != NULL) && (tx_complete_fptr != NULL)) == false))
+ Amsg_TxSetCompleteCallback(msg_ptr, tx_complete_sia_fptr, tx_complete_fptr, tx_complete_inst_ptr);
+ Ams_TxSendMsgDirect(self, msg_ptr);
+ ret_val = UCS_RET_SUCCESS;
+ }
+
+ TR_ASSERT(self->base_ptr->ucs_user_ptr, "[AMS]", (ret_val == UCS_RET_SUCCESS));
+
+ return ret_val;
+}
+
+/*! \brief Transmits a MOST Application Message without attributes check
+ * \details This method shall be only be used by AMD and AMS internally
+ * \param self The instance
+ * \param msg_ptr Reference to the related message object
+ */
+void Ams_TxSendMsgDirect(CAms *self, Ucs_AmsTx_Msg_t *msg_ptr)
+{
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[AMS]", "Called Ams_TxSendMsg(0x%p)", 1U, msg_ptr));
+
+ if (msg_ptr->data_size > SEGM_MAX_SIZE_TEL) /* set follower id to be used for all segments */
+ {
+ Amsg_TxSetFollowerId(msg_ptr, Ams_TxGetNextFollowerId(self));
+ }
+
+ Amsg_TxEnqueue(msg_ptr, &self->tx.queue); /* schedule transmission */
+ Srv_SetEvent(&self->service, AMS_EV_TX_SERVICE);
+}
+
+/*! \brief Callback function which is invoked as soon as MCM transmission
+ * was finished in PMS.
+ * \param self The instance
+ * \param tel_ptr Reference to the telegram
+ * \param status Transmission status
+ */
+static void Ams_TxOnStatus(void *self, Msg_MostTel_t *tel_ptr, Ucs_MsgTxStatus_t status)
+{
+ CAms *self_ = (CAms*)self;
+ Ucs_AmsTx_Msg_t* msg_ptr = (Ucs_AmsTx_Msg_t*)tel_ptr->info_ptr;
+
+ TR_INFO((self_->base_ptr->ucs_user_ptr, "[AMS]", "Ams_TxOnStatus(tel_ptr=0x%p, %d)", 2U, tel_ptr, status));
+
+ if (msg_ptr != NULL) /* MOST Telegram has AMS parent? */
+ {
+ Amsg_TxUpdateResult(msg_ptr, status);
+
+ if ((tel_ptr->tel.tel_id == 0U) || (tel_ptr->tel.tel_id == 3U)) /* is finished? */
+ { /* just just notify completion, the object is */
+ Amsg_TxNotifyComplete(msg_ptr, Amsg_TxGetResultCode(msg_ptr), Amsg_TxGetResultInfo(msg_ptr)); /* automatically freed to the pool */
+ }
+ else if (status != UCS_MSG_STAT_OK) /* check transmission needs termination before transmission end */
+ {
+ TR_ASSERT(self_->base_ptr->ucs_user_ptr, "[AMS]", (Amsg_TxGetFollowerId(msg_ptr) != 0U));
+
+ if (((uint8_t)Amsg_TxGetNextSegmCnt(msg_ptr) == (uint8_t)(tel_ptr->tel.tel_cnt + 1U)) /* is last transmitted segment */
+ || ((Amsg_TxGetNextSegmCnt(msg_ptr) == 0U) && (tel_ptr->tel.tel_id == 4U))) /* or TelId 4 and the first segment is pending */
+ {
+ Amsg_TxRemoveFromQueue(msg_ptr, &self_->tx.queue);
+ Amsg_TxNotifyComplete(msg_ptr, Amsg_TxGetResultCode(msg_ptr), Amsg_TxGetResultInfo(msg_ptr)); /* just just notify completion, the object is */
+ } /* automatically freed to the pool */
+ }
+ }
+ Trcv_TxReleaseMsg(tel_ptr); /* release message object to pool */
+
+ if ((Dl_GetSize(&self_->tx.queue) > 0U) && (status != UCS_MSG_STAT_ERROR_SYNC)) /* Application Messages are available for Tx */
+ {
+ Srv_SetEvent(&self_->service, AMS_EV_TX_SERVICE);
+ }
+}
+
+/*! \brief Checks if the destination address of the Tx message is valid and payload is consistent
+ * \param msg_ptr Reference to the Tx message object
+ * \return Returns \c true if the destination is correct, otherwise \c false.
+ */
+bool Ams_TxIsValidMessage(Ucs_AmsTx_Msg_t *msg_ptr)
+{
+ bool ret = false;
+
+ if (msg_ptr != NULL)
+ {
+ if (msg_ptr->destination_address > AMS_ADDR_RSVD_RANGE) /* is not reserved address? */
+ {
+ if (((msg_ptr->destination_address & 0xFF00U) != 0x0300U)/* is single-cast? */
+ || (msg_ptr->data_size <= SEGM_MAX_SIZE_TEL)) /* or not segmented */
+ {
+ if (!((msg_ptr->data_size > 0U) && (msg_ptr->data_ptr == NULL)))
+ {
+ ret = true;
+ }
+ }
+ }
+ }
+
+ return ret;
+}
+
+/*! \brief Retrieves the next follower id to use for segmented transfer
+ * \param self The instance
+ * \return The follower id
+ */
+static uint8_t Ams_TxGetNextFollowerId(CAms *self)
+{
+ uint8_t ret;
+ ret = self->tx.next_follower_id;
+ self->tx.next_follower_id++;
+
+ if (self->tx.next_follower_id == 0U) /* skip zero since it means */
+ { /* "no follower" */
+ self->tx.next_follower_id = 1U;
+ }
+
+ return ret;
+}
+
+/*! \brief Retrieves the number of messages that are queued for transmission
+ * \param self The instance
+ * \return The number of messages in the Tx queue
+ */
+uint16_t Ams_TxGetMsgCnt(CAms *self)
+{
+ return Dl_GetSize(&self->tx.queue);
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* AMS Reception */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Rx callback function that can be assigned to the MCM transceiver
+ * \details The associated transceiver reference will be stored in the telegrams \c info_ptr.
+ * Later on the telegram must be released via Ams_RxReleaseTel().
+ * \param self The instance
+ * \param tel_ptr Reference to the Rx telegram object
+ */
+void Ams_RxOnMcmTelComplete(void *self, Msg_MostTel_t *tel_ptr)
+{
+ CAms *self_ = (CAms*)self;
+ TR_ASSERT(self_->base_ptr->ucs_user_ptr, "[AMS]", (tel_ptr->info_ptr == NULL));
+ tel_ptr->info_ptr = self_->trcv_mcm_ptr;
+ Ams_RxOnTelComplete(self_, tel_ptr);
+}
+
+/*! \brief Rx callback function that can be assigned to the RCM transceiver
+ * \details The associated transceiver reference will be stored in the telegrams \c info_ptr.
+ * Later on the telegram must be released via Ams_RxReleaseTel().
+ * \param self The instance
+ * \param tel_ptr Reference to the Rx telegram object
+ */
+void Ams_RxOnRcmTelComplete(void *self, Msg_MostTel_t *tel_ptr)
+{
+ CAms *self_ = (CAms*)self;
+ TR_ASSERT(self_->base_ptr->ucs_user_ptr, "[AMS]", (tel_ptr->info_ptr == NULL));
+ tel_ptr->info_ptr = self_->trcv_rcm_ptr;
+ Ams_RxOnTelComplete(self_, tel_ptr);
+}
+
+/*! \brief Releases an Rx telegram to the associated transceiver
+ * \details The associated transceiver reference is stored in the telegrams \c info_ptr
+ * \param self The instance
+ * \param tel_ptr Reference to the Rx telegram object
+ */
+static void Ams_RxReleaseTel(CAms *self, Msg_MostTel_t *tel_ptr)
+{
+ TR_ASSERT(self->base_ptr->ucs_user_ptr, "[AMS]", ((tel_ptr != NULL) && (tel_ptr->info_ptr != NULL)));
+ TR_ASSERT(self->base_ptr->ucs_user_ptr, "[AMS]", ((tel_ptr->info_ptr == self->trcv_mcm_ptr)||(tel_ptr->info_ptr == self->trcv_rcm_ptr)));
+
+ if (tel_ptr->info_ptr != NULL)
+ {
+ Trcv_RxReleaseMsg((CTransceiver*)tel_ptr->info_ptr, tel_ptr);
+ }
+
+ MISC_UNUSED(self);
+}
+
+/*! \brief Internal callback function which is invoked as soon as the transceiver
+ * reference is stored to the telegrams info_ptr.
+ * \param self The instance
+ * \param tel_ptr Reference to the Rx telegram object
+ */
+static void Ams_RxOnTelComplete(CAms *self, Msg_MostTel_t *tel_ptr)
+{
+ Ucs_AmsRx_Msg_t *msg_ptr = NULL;
+
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[AMS]", "Ams_RxOnComplete(0x%p)", 1U, tel_ptr));
+
+ if (self->rx.complete_fptr == NULL)
+ {
+ /* no processing required, tel_ptr shall be freed */
+ msg_ptr = NULL;
+ }
+ else if (Telq_GetSize(&self->rx.waiting_queue) > 0U) /* asynchronous Rx is running */
+ { /* queue Rx telegram for later processing */
+ Telq_Enqueue(&self->rx.waiting_queue, tel_ptr);
+ tel_ptr = NULL; /* do not free Rx telegram */
+ msg_ptr = NULL;
+ }
+ else
+ {
+ Segm_Result_t result; /* synchronous processing is possible now */
+ msg_ptr = Segm_RxExecuteSegmentation(&self->segmentation, tel_ptr, &result);
+
+ if (result == SEGM_RES_RETRY)
+ {
+ TR_ASSERT(self->base_ptr->ucs_user_ptr, "[AMS]", (msg_ptr == NULL));
+ Telq_Enqueue(&self->rx.waiting_queue, tel_ptr);
+ tel_ptr = NULL; /* do not free Rx telegram */
+ }
+ }
+
+ if (msg_ptr != NULL)
+ {
+ self->rx.complete_fptr(self->rx.complete_inst_ptr, (Ucs_AmsRx_Msg_t*)(void*)msg_ptr);
+ }
+
+ if (tel_ptr != NULL)
+ {
+ Ams_RxReleaseTel(self, tel_ptr); /* free Rx telegram */
+ }
+}
+
+/*! \brief Processes all telegrams in waiting queue
+ * \details Stops if allocation of Rx messages fails
+ * \param self The instance
+ */
+static void Ams_RxProcessWaitingQ(CAms *self)
+{
+ Msg_MostTel_t *tel_ptr;
+ Ucs_AmsRx_Msg_t *msg_ptr = NULL;
+
+ for (tel_ptr = Telq_Peek(&self->rx.waiting_queue); tel_ptr != NULL; tel_ptr = Telq_Peek(&self->rx.waiting_queue))
+ {
+ Segm_Result_t result;
+ msg_ptr = Segm_RxExecuteSegmentation(&self->segmentation, tel_ptr, &result);
+
+ if (result == SEGM_RES_OK) /* segmentation process succeeded */
+ {
+ (void)Telq_Dequeue(&self->rx.waiting_queue); /* remove telegram from waitingQ */
+ Ams_RxReleaseTel(self, tel_ptr); /* free telegram */
+ tel_ptr = NULL; /* parasoft-suppress MISRA2004-13_6 "variable is not used as a counter" */
+
+ if (msg_ptr != NULL)
+ {
+ self->rx.complete_fptr(self->rx.complete_inst_ptr, (Ucs_AmsRx_Msg_t*)(void*)msg_ptr);
+ }
+ }
+ else
+ {
+ TR_ASSERT(self->base_ptr->ucs_user_ptr, "[AMS]", (msg_ptr == NULL));
+ break; /* wait until further Rx messages can be allocated - abort loop */
+ }
+ }
+}
+
+/*! \brief Callback function which is invoked by segmentation process to notify a segmentation error
+ * \param self The instance
+ * \param tel_ptr The related Rx telegram which caused the segmentation error
+ * \param error The segmentation error number
+ */
+static void Ams_RxOnSegError(void *self, Msg_MostTel_t *tel_ptr, Segm_Error_t error)
+{
+ const uint8_t ERR_SZ = 2U;
+ CAms *self_ = (CAms*)self;
+ Msg_MostTel_t* error_tel_ptr = NULL;
+
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[AMS]", "Ams_RxOnComplete(0x%p, %d)", 2U, tel_ptr, error));
+
+ if (tel_ptr->source_addr != MSG_ADDR_INIC)
+ { /* only generate segmentation errors */
+ error_tel_ptr = Trcv_TxAllocateMsg(self_->trcv_mcm_ptr, ERR_SZ); /* for messages which are NOT locally routed by the INIC */
+ }
+
+ if (error_tel_ptr != NULL)
+ {
+ error_tel_ptr->destination_addr = tel_ptr->source_addr;
+ error_tel_ptr->id = tel_ptr->id;
+ error_tel_ptr->id.op_type = UCS_OP_ERROR;
+ error_tel_ptr->tel.tel_data_ptr[0] = 0x0CU;
+ error_tel_ptr->tel.tel_data_ptr[1] = (uint8_t)error;
+ error_tel_ptr->opts.llrbc = 0U;
+
+ Trcv_TxSendMsg(self_->trcv_mcm_ptr, error_tel_ptr); /* just fire the message */
+ }
+}
+
+/*! \brief Callback function that is invoked if application Rx messages are available again
+ * \param self The instance
+ * \param data_ptr Unused parameter of observer callback
+ */
+static void Ams_RxOnFreedMsg(void *self, void *data_ptr)
+{
+ CAms *self_ = (CAms*) self;
+ Srv_SetEvent(&self_->service, AMS_EV_RX_SERVICE);
+ MISC_UNUSED(data_ptr);
+}
+
+/*! \brief Removes and frees a message from the Rx queue
+ * \details The application must not access the passed
+ * message any more.
+ * \param self The instance
+ * \param msg_ptr Reference to the message, or \c NULL for the front-most
+ * message in the Rx queue.
+ */
+void Ams_RxFreeMsg(CAms *self, Ucs_AmsRx_Msg_t *msg_ptr)
+{
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[AMS]", "Ams_RxFreeMsg(msg_ptr=0x%p)", 1U, msg_ptr));
+ TR_ASSERT(self->base_ptr->ucs_user_ptr, "[AMS]", (msg_ptr != NULL));
+
+ if (msg_ptr != NULL)
+ {
+ Amsp_FreeRxPayload(self->pool_ptr, msg_ptr); /* free external payload */
+ Amsp_FreeRxObj(self->pool_ptr, msg_ptr); /* return message to Rx pool */
+ }
+}
+
+/*! \brief Removes all messages located in Rx queues
+ * \param self The instance
+ */
+static void Ams_RxFlush(CAms *self)
+{
+ Msg_MostTel_t *tel_ptr;
+
+ for (tel_ptr = Telq_Dequeue(&self->rx.waiting_queue); tel_ptr != NULL; tel_ptr = Telq_Dequeue(&self->rx.waiting_queue))
+ {
+ Ams_RxReleaseTel(self, tel_ptr);
+ }
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_amsmessage.c b/ucs2-lib/src/ucs_amsmessage.c
new file mode 100644
index 0000000..c3d4757
--- /dev/null
+++ b/ucs2-lib/src/ucs_amsmessage.c
@@ -0,0 +1,639 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of Application Message Classes
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_AMSMSG
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_amsmessage.h"
+#include "ucs_dl.h"
+#include "ucs_misc.h"
+#include "ucs_trace.h"
+
+#define SELF_RX ((Amsg_IntMsgRx_t*)(void*)(self))
+#define SELF_TX ((Amsg_IntMsgTx_t*)(void*)(self))
+
+#define AMSG_TX_BACKUP_ADDR_NONE 0U
+
+/*------------------------------------------------------------------------------------------------*/
+/* Prototypes */
+/*------------------------------------------------------------------------------------------------*/
+static Ucs_AmsRx_ReceiveType_t Amsg_RxGetReceiveType(uint16_t destination_address);
+static void Amsg_TxRestoreDestinationAddr(Ucs_AmsTx_Msg_t *self);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Tx Message */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Initializes aggregated objects
+ * \details Needs to be called once before first usage. Call Amsg_TxHandleSetup() before
+ * repeated usage.
+ * \param self Reference to an internal Application Message Tx handle
+ * \param info_ptr Memory information required to free the object
+ * \param free_fptr Callback function which is invoked when the object is freed
+ * \param free_inst_ptr The instance which is passed to free_fptr
+ */
+void Amsg_TxCtor(Ucs_AmsTx_Msg_t *self, void *info_ptr, Amsg_TxFreedCb_t free_fptr, void *free_inst_ptr)
+{
+ /* cleanup complete object */
+ MISC_MEM_SET((void*)self, 0, sizeof(Amsg_IntMsgTx_t));
+
+ /* reset default references
+ SELF_TX->memory_ptr = NULL;
+ SELF_TX->memory_sz = NULL;
+ SELF_TX->memory_info_ptr = NULL;
+
+ SELF_TX->complete_fptr = NULL;
+ SELF_TX->complete_inst_ptr = NULL;
+ SELF_TX->complete_sia_fptr = NULL;
+
+ SELF_TX->backup_dest_address = AMSG_TX_BACKUP_ADDR_NONE;*/
+
+ SELF_TX->info_ptr = info_ptr;
+ SELF_TX->free_fptr = free_fptr;
+ SELF_TX->free_inst_ptr = free_inst_ptr;
+ SELF_TX->next_segment_cnt = 0xFFFFU; /* start with TelId "4" */
+ SELF_TX->temp_result = UCS_MSG_STAT_OK;
+ SELF_TX->internal_status = AMSG_TX_INTRES_NONE;
+ SELF_TX->ignore_wrong_target = false;
+
+ Dln_Ctor(&SELF_TX->node, self); /* initialize node */
+}
+
+/*! \brief Sets payload memory provided by memory management and updates data pointer and size
+ * \param self The instance
+ * \param mem_ptr Reference to the provided memory chunk
+ * \param mem_size Size of the provided memory chunk
+ * \param mem_info_ptr Optional reference for memory management
+ */
+void Amsg_TxSetInternalPayload(Ucs_AmsTx_Msg_t *self, uint8_t *mem_ptr, uint16_t mem_size, void *mem_info_ptr)
+{
+ SELF_TX->memory_ptr = mem_ptr;
+ SELF_TX->memory_sz = mem_size;
+ SELF_TX->memory_info_ptr = mem_info_ptr;
+
+ SELF_TX->pb_msg.data_ptr = mem_ptr;
+ SELF_TX->pb_msg.data_size = mem_size;
+}
+
+/*! \brief Prepares the message object for re-usage
+ * \details The public message structure is re-initialized. The internal payload
+ * is assigned to the public data reference.
+ * \param self The instance
+ */
+void Amsg_TxReuse(Ucs_AmsTx_Msg_t *self)
+{
+ MISC_MEM_SET((void *)&SELF_TX->pb_msg, 0, sizeof(SELF_TX->pb_msg)); /* cleanup public object */
+ /* SELF_TX->backup_dest_address = AMSG_TX_BACKUP_ADDR_NONE; */
+
+ SELF_TX->pb_msg.data_ptr = SELF_TX->memory_ptr; /* reset public payload */
+ SELF_TX->pb_msg.data_size = SELF_TX->memory_sz;
+
+ SELF_TX->next_segment_cnt = 0xFFFFU; /* start with TelId "4" */
+ SELF_TX->temp_result = UCS_MSG_STAT_OK;
+ SELF_TX->internal_status = AMSG_TX_INTRES_NONE;
+}
+
+/*! \brief Assigns a Tx complete callback function
+ * \details It is not possible to assign the single and multiple instance callback
+ * at the same time. This function shall be called before message transmission.
+ * \param self The instance
+ * \param compl_sia_fptr Reference to the single instance callback function
+ * \param compl_fptr Reference to a multiple instance callback function
+ * \param compl_inst_ptr Instance which is invoked by compl_fptr()
+ */
+void Amsg_TxSetCompleteCallback(Ucs_AmsTx_Msg_t *self, Amsg_TxCompleteSiaCb_t compl_sia_fptr,
+ Amsg_TxCompleteCb_t compl_fptr, void* compl_inst_ptr)
+{
+ SELF_TX->complete_sia_fptr = compl_sia_fptr;
+ SELF_TX->complete_fptr = compl_fptr;
+ SELF_TX->complete_inst_ptr = compl_inst_ptr;
+}
+
+/*! \brief Invokes the correct callback function to notify the transmission result
+ * and frees the memory
+ * \param self Reference to the related message object
+ * \param result The transmission result
+ * \param info The INIC transmission result
+ */
+void Amsg_TxNotifyComplete(Ucs_AmsTx_Msg_t *self, Ucs_AmsTx_Result_t result, Ucs_AmsTx_Info_t info)
+{
+ Amsg_TxRestoreDestinationAddr(self);
+
+ if (SELF_TX->complete_sia_fptr != NULL) /* invoke single instance API callback */
+ {
+ SELF_TX->complete_sia_fptr(self, result, info);
+ }
+ else if (SELF_TX->complete_fptr != NULL)
+ {
+ SELF_TX->complete_fptr(self, result, info, SELF_TX->complete_inst_ptr);
+ }
+
+ TR_ASSERT(NULL, "[AMSG_TX]", (SELF_TX->free_fptr != NULL));
+ if (SELF_TX->free_fptr != NULL)
+ {
+ SELF_TX->free_fptr(SELF_TX->free_inst_ptr, self);
+ }
+}
+
+/*! \brief Frees an unused message object to the owning pool
+ * \param self Reference to the message object
+ */
+void Amsg_TxFreeUnused(Ucs_AmsTx_Msg_t *self)
+{
+ TR_ASSERT(NULL, "[AMSG_TX]", (SELF_TX->free_fptr != NULL));
+ if (SELF_TX->free_fptr != NULL)
+ {
+ SELF_TX->free_fptr(SELF_TX->free_inst_ptr, self);
+ }
+}
+
+/*! \brief Updates the transmission result
+ * \param self Reference to the related message object
+ * \param result The latest MCM transmission result
+ * \details Since the transmission result of an application message may
+ * consist of multiple telegram transmission results, it is
+ * important to store the final transmission error. An error cannot
+ * be overwritten by a success.
+ */
+void Amsg_TxUpdateResult(Ucs_AmsTx_Msg_t *self, Ucs_MsgTxStatus_t result)
+{
+ if (result != UCS_MSG_STAT_OK) /* store the latest error and do not overwrite with success */
+ {
+ SELF_TX->temp_result = result;
+ }
+}
+
+/*! \brief Updates the internal transmission result
+ * \param self Reference to the related message object
+ * \param result The internal transmission result
+ * \details The internal transmission result must be updated if the
+ * the message is transmitted to the internal Rx queue.
+ */
+void Amsg_TxUpdateInternalResult(Ucs_AmsTx_Msg_t *self, Amsg_TxIntStatus_t result)
+{
+ SELF_TX->internal_status = result;
+}
+
+/*! \brief Returns the latest AMS transmission result code
+ * \param self Reference to the related message object
+ * \return Returns the transmission result which shall be notified to the application
+ */
+Ucs_AmsTx_Result_t Amsg_TxGetResultCode(Ucs_AmsTx_Msg_t *self)
+{
+ Ucs_AmsTx_Result_t res = UCS_AMSTX_RES_SUCCESS; /* success is the expected result */
+
+ switch (SELF_TX->temp_result)
+ {
+ case UCS_MSG_STAT_OK:
+ if (SELF_TX->internal_status == AMSG_TX_INTRES_ERRBUF)
+ {
+ res = UCS_AMSTX_RES_ERR_BUF_INTERNAL; /* internal transmission error overrules network success */
+ }
+ break;
+ case UCS_MSG_STAT_ERROR_BF:
+ case UCS_MSG_STAT_ERROR_CRC:
+ case UCS_MSG_STAT_ERROR_ID:
+ case UCS_MSG_STAT_ERROR_ACK:
+ case UCS_MSG_STAT_ERROR_TIMEOUT:
+ res = UCS_AMSTX_RES_ERR_RETRIES_EXP; /* transmission failed, retries are possible */
+ break;
+ case UCS_MSG_STAT_ERROR_FATAL_WT:
+ case UCS_MSG_STAT_ERROR_FATAL_OA:
+ if (SELF_TX->internal_status == AMSG_TX_INTRES_ERRBUF)
+ {
+ res = UCS_AMSTX_RES_ERR_BUF_INTERNAL; /* internal transmission error and network node not found */
+ }
+ else if (SELF_TX->internal_status == AMSG_TX_INTRES_NONE)
+ {
+ res = UCS_AMSTX_RES_ERR_INVALID_TGT; /* not transmitted internally and no network node found */
+ }
+ /* else -> internal success -> target node was found locally */
+ break;
+ case UCS_MSG_STAT_ERROR_NA_TRANS:
+ case UCS_MSG_STAT_ERROR_NA_OFF:
+ if (SELF_TX->internal_status != AMSG_TX_INTRES_SUCCESS)
+ {
+ res = UCS_AMSTX_RES_ERR_NOT_AVAILABLE; /* successful if internal transmission succeeded, otherwise "not available" */
+ }
+ break;
+ case UCS_MSG_STAT_ERROR_SYNC:
+ res = UCS_AMSTX_RES_ERR_NOT_AVAILABLE;
+ break;
+ default:
+ res = UCS_AMSTX_RES_ERR_UNEXPECTED; /* unexpected network transmission state */
+ break;
+ }
+
+ return res;
+}
+
+/*! \brief Returns the latest MCM transmission error
+ * \param self Reference to the related message object
+ * \return Returns the INIC transmission result which is provided as additional info
+ */
+Ucs_AmsTx_Info_t Amsg_TxGetResultInfo(Ucs_AmsTx_Msg_t *self)
+{
+ Ucs_AmsTx_Info_t res = (Ucs_AmsTx_Info_t)SELF_TX->temp_result;
+
+ if ((SELF_TX->temp_result == UCS_MSG_STAT_ERROR_FATAL_WT) && (SELF_TX->ignore_wrong_target != false))
+ {
+ res = UCS_AMSTX_I_SUCCESS;
+ }
+
+ return res;
+}
+
+/*! \brief Queues a Tx message at the tail of a list
+ * \param self The instance
+ * \param list_ptr Reference to the list
+ */
+void Amsg_TxEnqueue(Ucs_AmsTx_Msg_t* self, CDlList* list_ptr)
+{
+ Dl_InsertTail(list_ptr, &SELF_TX->node);
+}
+
+/*! \brief Retrieves the next segment count
+ * \param self The instance
+ * \return The next segment count as uint16_t
+ */
+uint16_t Amsg_TxGetNextSegmCnt(Ucs_AmsTx_Msg_t *self)
+{
+ return SELF_TX->next_segment_cnt;
+}
+
+/*! \brief Increments the next segment count
+ * \param self The instance
+ */
+void Amsg_TxIncrementNextSegmCnt(Ucs_AmsTx_Msg_t *self)
+{
+ SELF_TX->next_segment_cnt++;
+}
+
+/*! \brief Retrieves the follower id which labels all telegrams of a segmented message
+ * \param self The instance
+ * \return The follower id
+ */
+uint8_t Amsg_TxGetFollowerId(Ucs_AmsTx_Msg_t *self)
+{
+ return SELF_TX->follower_id;
+}
+
+/*! \brief Sets the follower id which labels all telegrams of a segmented message
+ * \param self The instance
+ * \param id The follower id
+ */
+void Amsg_TxSetFollowerId(Ucs_AmsTx_Msg_t *self, uint8_t id)
+{
+ SELF_TX->follower_id = id;
+}
+
+/*! \brief Replaces the current destination address by a new one.
+ * \details The current destination address can be restore by Amsg_TxRestoreDestinationAddr().
+ * \param self The instance
+ * \param new_destination The new destination address
+ */
+void Amsg_TxReplaceDestinationAddr(Ucs_AmsTx_Msg_t *self, uint16_t new_destination)
+{
+ SELF_TX->backup_dest_address = self->destination_address; /* internal backup of current destination address */
+ self->destination_address = new_destination; /* replace public destination address */
+}
+
+/*! \brief Restores the destination address which was saved by calling Amsg_TxReplaceDestinationAddr().
+ * \param self The instance
+ */
+static void Amsg_TxRestoreDestinationAddr(Ucs_AmsTx_Msg_t *self)
+{
+ if (SELF_TX->backup_dest_address != AMSG_TX_BACKUP_ADDR_NONE)
+ {
+ self->destination_address = SELF_TX->backup_dest_address;/* restore public destination address */
+ }
+}
+
+/*! \brief Removes a message from a given queue
+ * \param self The instance
+ * \param list_ptr The queue that contains the message
+ */
+void Amsg_TxRemoveFromQueue(Ucs_AmsTx_Msg_t *self, CDlList *list_ptr)
+{
+ (void)Dl_Remove(list_ptr, &SELF_TX->node);
+}
+
+/*! \brief Peeks a Tx message from the head of a list
+ * \param list_ptr Reference to the list
+ * \return Reference to the Tx message
+ */
+Ucs_AmsTx_Msg_t* Amsg_TxPeek(CDlList* list_ptr)
+{
+ Ucs_AmsTx_Msg_t *msg_ptr = NULL;
+ CDlNode *node_ptr = Dl_PeekHead(list_ptr);
+
+ if (node_ptr != NULL)
+ {
+ msg_ptr = (Ucs_AmsTx_Msg_t*)Dln_GetData(node_ptr);
+ }
+
+ return msg_ptr;
+}
+
+/*! \brief Removes a Tx message from the head of a list
+ * \param list_ptr Reference to the list
+ * \return Reference to the Tx message
+ */
+Ucs_AmsTx_Msg_t* Amsg_TxDequeue(CDlList* list_ptr)
+{
+ Ucs_AmsTx_Msg_t *msg_ptr = NULL;
+ CDlNode *node_ptr = Dl_PopHead(list_ptr);
+
+ if (node_ptr != NULL)
+ {
+ msg_ptr = (Ucs_AmsTx_Msg_t*)Dln_GetData(node_ptr);
+ }
+
+ return msg_ptr;
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Rx Message */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Initializes aggregated objects
+ * \details Needs to be called once before first usage. Call Amsg_RxHandleSetup() before
+ * repeated usage.
+ * \param self Reference to an internal Application Message Rx handle
+ * \param info_ptr Memory information required to free the object
+ */
+void Amsg_RxCtor(Ucs_AmsRx_Msg_t *self, void *info_ptr)
+{
+ Dln_Ctor(&SELF_RX->node, SELF_RX);
+ SELF_RX->info_ptr = info_ptr; /* reset memory information */
+ SELF_RX->memory_sz = 0U;
+ SELF_RX->memory_ptr = NULL;
+ SELF_RX->memory_info_ptr = NULL;
+}
+
+/*! \brief Copies all attributes and payload from a Tx message to the Rx message
+ * \details The caller has to ensure that the payload size of the Rx message is equal
+ * or greater than the payload size of the Tx message.
+ * \param self Reference to an Rx message object
+ * \param tx_ptr Reference to an Tx message object
+ * \param source_address The source address that shall be set in the Rx message
+ */
+void Amsg_RxBuildFromTx(Ucs_AmsRx_Msg_t *self, Ucs_AmsTx_Msg_t *tx_ptr, uint16_t source_address)
+{
+ TR_ASSERT(NULL,"[AMSG]", (SELF_RX->memory_sz >= tx_ptr->data_size));
+
+ self->receive_type = Amsg_RxGetReceiveType(tx_ptr->destination_address);
+ self->source_address = source_address;
+ self->msg_id = tx_ptr->msg_id;
+ self->data_size = tx_ptr->data_size;
+
+ Misc_MemCpy(self->data_ptr, tx_ptr->data_ptr, (size_t)self->data_size);
+}
+
+/*! \brief Sets all attributes of an internal Rx message to valid values
+ * \param self Reference to an internal Rx message object
+ * \details Assigned payload memory has to be freed before calling this function
+ */
+void Amsg_RxHandleSetup(Ucs_AmsRx_Msg_t *self)
+{
+ MISC_MEM_SET((void *)&SELF_RX->pb_msg, 0, sizeof(SELF_RX->pb_msg)); /* cleanup public message object */
+ SELF_RX->pb_msg.data_ptr = SELF_RX->memory_ptr; /* set data to valid memory */
+ SELF_RX->gc_marker = false; /* reset garbage collector flag */
+ SELF_RX->exp_tel_cnt = 0U; /* reset TelCnt */
+}
+
+/*! \brief Evaluates if an Application Message has the same functional address
+ * as a MOST telegram
+ * \param self Reference to an internal Application Message Rx handle
+ * \param tel_ptr Reference to a MOST message object
+ * \return Returns \c true if both message objects have the same functional address,
+ * otherwise \c false.
+ */
+bool Amsg_RxHandleIsIdentical(Ucs_AmsRx_Msg_t *self, Msg_MostTel_t *tel_ptr)
+{
+ bool result = false;
+ uint16_t msg_id = Msg_GetAltMsgId((CMessage*)(void*)tel_ptr);
+
+ if ((self->source_address == tel_ptr->source_addr)
+ && (self->msg_id == msg_id))
+ {
+ result = true;
+ }
+
+ return result;
+}
+
+/*! \brief Copies the Rx message signature from a MOST message object to an
+ * internal Application message object
+ * \param self Reference to an internal Application Message Rx handle
+ * \param src_ptr Reference to a MOST message object
+ */
+void Amsg_RxCopySignatureFromTel(Ucs_AmsRx_Msg_t *self, Msg_MostTel_t* src_ptr)
+{
+ self->source_address = src_ptr->source_addr;
+ self->receive_type = Amsg_RxGetReceiveType(src_ptr->destination_addr);
+ self->msg_id = Msg_GetAltMsgId((CMessage*)(void*)src_ptr);
+}
+
+/*! \brief Copies the Rx message signature from an internal Application
+ * message object to a MOST message object
+ * \param self Reference to an internal Application Message Rx handle
+ * \param target_ptr Reference to a MOST message object
+ */
+void Amsg_RxCopySignatureToTel(Ucs_AmsRx_Msg_t *self, Msg_MostTel_t* target_ptr)
+{
+ target_ptr->source_addr = self->source_address;
+ target_ptr->destination_addr = UCS_ADDR_DEBUG;
+ Msg_SetAltMsgId((CMessage*)(void*)target_ptr, self->msg_id);
+}
+
+/*! \brief Retrieves the addressing type related to a destination_address of an Rx message
+ * \param destination_address The destination address of an Rx message
+ * \return The receive type related to the destination address
+ */
+static Ucs_AmsRx_ReceiveType_t Amsg_RxGetReceiveType(uint16_t destination_address)
+{
+ Ucs_AmsRx_ReceiveType_t ret = UCS_AMSRX_RCT_SINGLECAST;
+
+ if ((destination_address == UCS_ADDR_BROADCAST_BLOCKING) ||
+ (destination_address == UCS_ADDR_BROADCAST_UNBLOCKING))
+ {
+ ret = UCS_AMSRX_RCT_BROADCAST;
+ }
+ else if ((destination_address >= 0x0300U) && /* 0x300..0x3FF is reserved for group cast */
+ (destination_address < 0x0400U))
+ {
+ ret = UCS_AMSRX_RCT_GROUPCAST;
+ }
+
+ return ret;
+}
+
+/*! \brief Appends payload of an Rx MOST message object to internal Application
+ * message object
+ * \param self Reference to an internal Application Message Rx handle
+ * \param src_ptr Reference to a MOST message object
+ * \return Returns \c true if the payload was appended successfully,
+ * otherwise \c false.
+ */
+bool Amsg_RxAppendPayload(Ucs_AmsRx_Msg_t *self, Msg_MostTel_t* src_ptr)
+{
+ uint8_t cnt;
+ bool ret = false;
+ const uint16_t curr_size = SELF_RX->pb_msg.data_size; /* get current message size */
+
+ if ((SELF_RX->memory_sz - src_ptr->tel.tel_len) >= SELF_RX->pb_msg.data_size) /* is size sufficient */
+ {
+ for (cnt = 0U; cnt < src_ptr->tel.tel_len; cnt++)
+ {
+ SELF_RX->pb_msg.data_ptr[curr_size + (uint16_t)cnt] = src_ptr->tel.tel_data_ptr[cnt];
+ }
+
+ SELF_RX->pb_msg.data_size = curr_size + src_ptr->tel.tel_len; /* update message size */
+ SELF_RX->exp_tel_cnt++;
+ ret = true;
+ }
+
+ return ret;
+}
+
+/*! \brief Copies data to allocated payload buffer
+ * \param self The instance
+ * \param data Reference to external payload data
+ * \param data_sz Size of external payload data
+ */
+void Amsg_RxCopyToPayload(Ucs_AmsRx_Msg_t *self, uint8_t data[], uint8_t data_sz)
+{
+ MISC_MEM_CPY(&self->data_ptr[0], &data[0], (size_t)data_sz); /* parasoft-suppress MISRA2004-20_3 "data_sz is limited and checked via Msg_VerifyContent()" */
+ self->data_size = data_sz; /* remember payload size */
+}
+
+/*! \brief Checks if the message has externally allocated payload memory
+ * \param self The instance
+ * \return Returns \c true if external payload is assigned to the message, otherwise \c false.
+ */
+bool Amsg_RxHasExternalPayload(Ucs_AmsRx_Msg_t *self)
+{
+ return (SELF_RX->memory_sz > 0U);
+}
+
+/*! \brief Sets payload memory provided by memory management and updates data pointer and size
+ * \param self The instance
+ * \param mem_ptr Reference to the provided memory chunk
+ * \param mem_size Size of the provided memory chunk
+ * \param info_ptr Optional reference for memory management
+ */
+void Amsg_RxHandleSetMemory(Ucs_AmsRx_Msg_t *self, uint8_t *mem_ptr, uint16_t mem_size, void *info_ptr)
+{
+ SELF_RX->memory_ptr = mem_ptr;
+ SELF_RX->memory_info_ptr = info_ptr;
+ SELF_RX->memory_sz = mem_size;
+
+ SELF_RX->pb_msg.data_ptr = mem_ptr;
+ SELF_RX->pb_msg.data_size = 0U;
+}
+
+/*! \brief Queues an Rx message at the tail of a list
+ * \param self The instance
+ * \param list_ptr Reference to the list
+ */
+void Amsg_RxEnqueue(Ucs_AmsRx_Msg_t* self, CDlList* list_ptr)
+{
+ Dl_InsertTail(list_ptr, &SELF_RX->node);
+}
+
+/*! \brief Sets or resets the garbage collector flag
+ * \param self The instance
+ * \param value New value of the flag
+ */
+void Amsg_RxSetGcMarker(Ucs_AmsRx_Msg_t* self, bool value)
+{
+ SELF_RX->gc_marker = value;
+}
+
+/*! \brief Retrieves the value of the garbage collector flag
+ * \param self The instance
+ * \return The current value of the flag
+ */
+bool Amsg_RxGetGcMarker(Ucs_AmsRx_Msg_t* self)
+{
+ return SELF_RX->gc_marker;
+}
+
+/*! \brief Retrieves the next expected telegram count
+ * \param self The instance
+ * \return The next expected telegram count as uint8_t
+ */
+uint8_t Amsg_RxGetExpTelCnt(Ucs_AmsRx_Msg_t* self)
+{
+ return SELF_RX->exp_tel_cnt;
+}
+
+/*! \brief Peeks an Rx message from the head of a list
+ * \param list_ptr Reference to the list
+ * \return Reference to the Rx message
+ */
+Ucs_AmsRx_Msg_t* Amsg_RxPeek(CDlList* list_ptr)
+{
+ Ucs_AmsRx_Msg_t *msg_ptr = NULL;
+ CDlNode *node_ptr = Dl_PeekHead(list_ptr);
+
+ if (node_ptr != NULL)
+ {
+ msg_ptr = (Ucs_AmsRx_Msg_t*)Dln_GetData(node_ptr);
+ }
+
+ return msg_ptr;
+}
+
+/*! \brief Removes an Rx message from the head of a list
+ * \param list_ptr Reference to the list
+ * \return Reference to the Rx message
+ */
+Ucs_AmsRx_Msg_t* Amsg_RxDequeue(CDlList* list_ptr)
+{
+ Ucs_AmsRx_Msg_t *msg_ptr = NULL;
+ CDlNode *node_ptr = Dl_PopHead(list_ptr);
+
+ if (node_ptr != NULL)
+ {
+ msg_ptr = (Ucs_AmsRx_Msg_t*)Dln_GetData(node_ptr);
+ }
+
+ return msg_ptr;
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_amspool.c b/ucs2-lib/src/ucs_amspool.c
new file mode 100644
index 0000000..5c20d22
--- /dev/null
+++ b/ucs2-lib/src/ucs_amspool.c
@@ -0,0 +1,335 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of Application Message Pool
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_AMSPOOL
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_amspool.h"
+#include "ucs_amsmessage.h"
+#include "ucs_misc.h"
+#include "ucs_trace.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal macros */
+/*------------------------------------------------------------------------------------------------*/
+#define INT_RX(ptr) ((Amsg_IntMsgRx_t*)(void*)(ptr)) /* parasoft-suppress MISRA2004-19_7 "common definition of type cast improves code" */
+#define INT_TX(ptr) ((Amsg_IntMsgTx_t*)(void*)(ptr)) /* parasoft-suppress MISRA2004-19_7 "common definition of type cast improves code" */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal prototypes */
+/*------------------------------------------------------------------------------------------------*/
+static void Amsp_FreeTxObj(void *self, Ucs_AmsTx_Msg_t* msg_ptr);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Initialization */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Constructor of application message pool class
+ * \param self The instance
+ * \param mem_allocator_ptr Reference to memory allocator
+ * \param ucs_user_ptr User reference that needs to be passed in every callback function
+ */
+void Amsp_Ctor(CAmsMsgPool *self, Ams_MemAllocator_t *mem_allocator_ptr, void *ucs_user_ptr)
+{
+ self->ucs_user_ptr = ucs_user_ptr;
+ self->allocator_ptr = mem_allocator_ptr;
+ self->rx_rsvd_msg_ptr = Amsp_AllocRxObj(self, 45U);
+ self->rx_rsvd_msg_ref = self->rx_rsvd_msg_ptr;
+ self->terminated = false;
+ self->tx_notify_freed = false;
+ self->rx_notify_freed = false;
+ Sub_Ctor(&self->tx_freed_subject, self->ucs_user_ptr);
+ Sub_Ctor(&self->rx_freed_subject, self->ucs_user_ptr);
+
+ TR_ASSERT(self->ucs_user_ptr, "[AMSP]", (self->rx_rsvd_msg_ptr != NULL));
+}
+
+/*! \brief Frees pre-allocated message memory
+ * \param self The instance
+ */
+void Amsp_Cleanup(CAmsMsgPool *self)
+{
+ Amsg_IntMsgRx_t *msg_ptr = INT_RX(self->rx_rsvd_msg_ptr);
+ TR_INFO((self->ucs_user_ptr, "[AMSP]", "Amsp_Cleanup: rx_rsvd_msg_ptr=0x%p", 1U, self->rx_rsvd_msg_ptr));
+
+ self->terminated = true;
+ self->tx_notify_freed = false;
+ self->rx_notify_freed = false;
+
+ if (msg_ptr != NULL)
+ {
+ self->allocator_ptr->free_fptr(self->allocator_ptr->inst_ptr, msg_ptr->memory_ptr, AMS_MU_RX_PAYLOAD, msg_ptr->memory_info_ptr);
+ self->allocator_ptr->free_fptr(self->allocator_ptr->inst_ptr, msg_ptr, AMS_MU_RX_OBJECT, msg_ptr->info_ptr);
+ self->rx_rsvd_msg_ref = NULL;
+ self->rx_rsvd_msg_ptr = NULL;
+ }
+}
+
+/*! \brief Assigns an observer which is invoked as soon as memory dedicated to a Tx message is
+ * freed.The data_ptr of the update callback function is not used (always \c NULL).
+ * See \ref Obs_UpdateCb_t.
+ * \param self The instance
+ * \param observer_ptr The observer
+ */
+void Amsp_AssignTxFreedObs(CAmsMsgPool *self, CObserver *observer_ptr)
+{
+ (void)Sub_AddObserver(&self->tx_freed_subject, observer_ptr);
+}
+
+/*! \brief Assigns an observer which is invoked as soon as memory dedicated to a Tx message is
+ * freed.The data_ptr of the update callback function is not used (always \c NULL).
+ * See \ref Obs_UpdateCb_t.
+ * \param self The instance
+ * \param observer_ptr The observer
+ */
+void Amsp_AssignRxFreedObs(CAmsMsgPool *self, CObserver *observer_ptr)
+{
+ (void)Sub_AddObserver(&self->rx_freed_subject, observer_ptr);
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Tx allocations */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Allocates an internal Tx message object (without payload)
+ * \param self The instance
+ * \param payload_sz The required payload size in bytes
+ * \return Reference to the Tx message object if the allocation succeeds. Otherwise \c NULL.
+ */
+Ucs_AmsTx_Msg_t* Amsp_AllocTxObj(CAmsMsgPool *self, uint16_t payload_sz)
+{
+ void *payload_info_ptr = NULL;
+ void *payload_ptr = NULL;
+ void *obj_info_ptr = NULL;
+ Ucs_AmsTx_Msg_t *msg_ptr = (Ucs_AmsTx_Msg_t*)self->allocator_ptr->alloc_fptr(self->allocator_ptr->inst_ptr, AMSG_TX_OBJECT_SZ, AMS_MU_TX_OBJECT, &obj_info_ptr);
+ TR_INFO((self->ucs_user_ptr, "[AMSP]", "Allocating TxObject: msg_ptr=0x%p, size=%d, info_ptr=0x%p", 3U, msg_ptr, AMSG_TX_OBJECT_SZ, obj_info_ptr));
+
+ if (msg_ptr != NULL)
+ {
+ if (payload_sz > 0U)
+ {
+ payload_ptr = self->allocator_ptr->alloc_fptr(self->allocator_ptr->inst_ptr, payload_sz, AMS_MU_TX_PAYLOAD, &payload_info_ptr);
+ TR_INFO((self->ucs_user_ptr, "[AMSP]", "Allocating TxPayload: msg_ptr=0x%p, mem_ptr=0x%p, size=%d, info_ptr=0x%p", 4U, msg_ptr, payload_ptr, payload_sz, payload_info_ptr));
+
+ if (payload_ptr == NULL)
+ {
+ TR_INFO((self->ucs_user_ptr, "[AMSP]", "Freeing TxObject: msg_ptr=0x%p, info_ptr=0x%p", 2U, msg_ptr, obj_info_ptr));
+ self->allocator_ptr->free_fptr(self->allocator_ptr->inst_ptr, msg_ptr, AMS_MU_TX_OBJECT, obj_info_ptr);
+ msg_ptr = NULL;
+ }
+ }
+ }
+
+ if (msg_ptr != NULL)
+ {
+ Amsg_TxCtor(msg_ptr, obj_info_ptr, &Amsp_FreeTxObj, self);
+
+ if (payload_ptr != NULL)
+ {
+ Amsg_TxSetInternalPayload(msg_ptr, (uint8_t*)payload_ptr, payload_sz, payload_info_ptr);
+ }
+ }
+ else
+ {
+ self->tx_notify_freed = true;
+ }
+
+ return msg_ptr;
+}
+
+/*! \brief Frees an internal Tx message object including its payload
+ * \param self The instance
+ * \param msg_ptr Reference to the internal Tx message object
+ */
+static void Amsp_FreeTxObj(void *self, Ucs_AmsTx_Msg_t* msg_ptr)
+{
+ CAmsMsgPool *self_ = (CAmsMsgPool*)self;
+ Amsg_IntMsgTx_t *obj_ptr = INT_TX(msg_ptr);
+
+ if (obj_ptr->memory_ptr != NULL)
+ {
+ TR_INFO((self_->ucs_user_ptr, "[AMSP]", "Freeing TxPayload: msg_ptr=0x%p, mem_ptr=0x%p, info_ptr=0x%p", 3U, msg_ptr, obj_ptr->memory_ptr, obj_ptr->memory_info_ptr));
+ self_->allocator_ptr->free_fptr(self_->allocator_ptr->inst_ptr, obj_ptr->memory_ptr, AMS_MU_TX_PAYLOAD, obj_ptr->memory_info_ptr);
+ Amsg_TxSetInternalPayload(msg_ptr, NULL, 0U, NULL);
+ }
+
+ TR_INFO((self_->ucs_user_ptr, "[AMSP]", "Freeing TxObject: msg_ptr=0x%p, info_ptr=0x%p", 2U, msg_ptr, obj_ptr->info_ptr));
+ self_->allocator_ptr->free_fptr(self_->allocator_ptr->inst_ptr, msg_ptr, AMS_MU_TX_OBJECT, obj_ptr->info_ptr);
+
+ if (self_->tx_notify_freed)
+ {
+ Sub_Notify(&self_->tx_freed_subject, NULL);
+ self_->tx_notify_freed = false;
+ }
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Rx allocations */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Allocates an internal Rx message object (optionally with payload)
+ * \param self The instance
+ * \param payload_sz The required payload size that shall be allocated and assigned to the object.
+ * Value "0" means that no payload memory shall be allocated in the same turn.
+ * \return Reference to the Rx message object if the allocation succeeds. Otherwise \c NULL.
+ */
+Ucs_AmsRx_Msg_t* Amsp_AllocRxObj(CAmsMsgPool *self, uint16_t payload_sz)
+{
+ void *info_ptr = NULL;
+ Ucs_AmsRx_Msg_t *msg_ptr = (Ucs_AmsRx_Msg_t*)self->allocator_ptr->alloc_fptr(self->allocator_ptr->inst_ptr, AMSG_RX_OBJECT_SZ, AMS_MU_RX_OBJECT, &info_ptr);
+
+ TR_INFO((self->ucs_user_ptr, "[AMSP]", "Allocating RxObject: msg_ptr=0x%p, size=%d, info_ptr=0x%p", 3U, msg_ptr, AMSG_RX_OBJECT_SZ, info_ptr));
+
+ if (msg_ptr != NULL)
+ {
+ Amsg_RxCtor(msg_ptr, info_ptr);
+ Amsg_RxHandleSetup(msg_ptr);
+
+ if (payload_sz != 0U)
+ {
+ if (!Amsp_AllocRxPayload(self, payload_sz, msg_ptr))
+ {
+ Amsp_FreeRxObj(self, msg_ptr); /* payload allocation has failed - release message object */
+ msg_ptr = NULL;
+ }
+ }
+ }
+
+ return msg_ptr;
+}
+
+/*! \brief Allocates a reserved Rx message object with payload up to 45 bytes payload
+ * \param self The instance
+ * \return Reference to the Rx message object if the allocation succeeds. Otherwise \c NULL.
+ */
+Ucs_AmsRx_Msg_t* Amsp_AllocRxRsvd(CAmsMsgPool *self)
+{
+ Ucs_AmsRx_Msg_t *msg_ptr = NULL;
+
+ if (self->rx_rsvd_msg_ptr != NULL)
+ {
+ msg_ptr = self->rx_rsvd_msg_ptr;
+ self->rx_rsvd_msg_ptr = NULL;
+ Amsg_RxHandleSetup(msg_ptr);
+ TR_INFO((self->ucs_user_ptr, "[AMSP]", "Retrieving reserved RxObject: msg_ptr=0x%p", 1U, msg_ptr));
+ }
+ else
+ {
+ self->rx_notify_freed = true;
+ }
+
+ return msg_ptr;
+}
+
+/*! \brief Allocates payload for an internal Rx message object
+ * \param self The instance
+ * \param payload_sz Payload size in bytes
+ * \param msg_ptr Reference to the internal Rx message object
+ * \return Returns \c true if the allocation succeeds. Otherwise \c NULL.
+ */
+bool Amsp_AllocRxPayload(CAmsMsgPool *self, uint16_t payload_sz, Ucs_AmsRx_Msg_t* msg_ptr)
+{
+ bool success = false;
+ void *info_ptr = NULL;
+ void *mem_ptr = self->allocator_ptr->alloc_fptr(self->allocator_ptr->inst_ptr, payload_sz, AMS_MU_RX_PAYLOAD, &info_ptr);
+
+ TR_INFO((self->ucs_user_ptr, "[AMSP]", "Allocating RxPayload: msg_ptr=0x%p, mem_ptr=0x%p, size=%d, info_ptr=0x%p", 4U, msg_ptr, mem_ptr, payload_sz, info_ptr));
+ TR_ASSERT(self->ucs_user_ptr, "[AMSP]", (msg_ptr != NULL)); /* message reference is required */
+ TR_ASSERT(self->ucs_user_ptr, "[AMSP]", (msg_ptr != self->rx_rsvd_msg_ref)); /* forbidden overwrite of pre-allocated message payload */
+
+ if (mem_ptr != NULL)
+ {
+ Amsg_RxHandleSetMemory(msg_ptr, (uint8_t*)mem_ptr, payload_sz, info_ptr);
+ success = true;
+ }
+
+ return success;
+}
+
+/*! \brief Frees an internal Rx message object
+ * \param self The instance
+ * \param msg_ptr Reference to the internal Rx message object
+ * \details Payload that is assigned to the message object has to be freed
+ * separately by using Amsp_FreeRxPayload().
+ */
+void Amsp_FreeRxObj(CAmsMsgPool *self, Ucs_AmsRx_Msg_t* msg_ptr)
+{
+ if (msg_ptr == self->rx_rsvd_msg_ref)
+ {
+ TR_ASSERT(self->ucs_user_ptr, "[AMSP]", (self->rx_rsvd_msg_ptr == NULL)); /* before freeing, message shall be reserved */
+ TR_INFO((self->ucs_user_ptr, "[AMSP]", "Restoring reserved RxObject: msg_ptr=0x%p", 1U, msg_ptr));
+ self->rx_rsvd_msg_ptr = self->rx_rsvd_msg_ref; /* restore reserved message */
+
+ if (self->terminated != false)
+ { /* also free reserved message if it is freed */
+ Amsp_Cleanup(self); /* from any queue after Amsp_Cleanup() */
+ }
+ }
+ else
+ {
+ Amsg_IntMsgRx_t *obj_ptr = INT_RX(msg_ptr);
+ TR_INFO((self->ucs_user_ptr, "[AMSP]", "Freeing RxObject: msg_ptr=0x%p, info_ptr=0x%p", 2U, msg_ptr, obj_ptr->info_ptr));
+ self->allocator_ptr->free_fptr(self->allocator_ptr->inst_ptr, msg_ptr, AMS_MU_RX_OBJECT, obj_ptr->info_ptr);
+ }
+
+ if (self->rx_notify_freed)
+ {
+ Sub_Notify(&self->rx_freed_subject, NULL);
+ self->rx_notify_freed = false;
+ }
+}
+
+/*! \brief Frees payload that is associated with an internal Rx message object
+ * \param self The instance
+ * \param msg_ptr Reference to the internal Rx message object
+ */
+void Amsp_FreeRxPayload(CAmsMsgPool *self, Ucs_AmsRx_Msg_t* msg_ptr)
+{
+ Amsg_IntMsgRx_t *obj_ptr = INT_RX(msg_ptr);
+
+ if (msg_ptr == self->rx_rsvd_msg_ref)
+ {
+ TR_ASSERT(self->ucs_user_ptr, "[AMSP]", (self->rx_rsvd_msg_ptr == NULL)); /* release payload before object */
+ TR_INFO((self->ucs_user_ptr, "[AMSP]", "Restoring reserved RxPayload: msg_ptr=0x%p", 1U, msg_ptr));
+ }
+ else if (obj_ptr->memory_ptr != NULL)
+ {
+ TR_INFO((self->ucs_user_ptr, "[AMSP]", "Freeing RxPayload: msg_ptr=0x%p, mem_ptr=0x%p, info_ptr=0x%p", 3U, msg_ptr, obj_ptr->memory_ptr, obj_ptr->memory_info_ptr));
+ self->allocator_ptr->free_fptr(self->allocator_ptr->inst_ptr, obj_ptr->memory_ptr, AMS_MU_RX_PAYLOAD, obj_ptr->memory_info_ptr);
+ Amsg_RxHandleSetMemory(msg_ptr, NULL, 0U, NULL);
+ }
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_amtp.c b/ucs2-lib/src/ucs_amtp.c
new file mode 100644
index 0000000..e4550d6
--- /dev/null
+++ b/ucs2-lib/src/ucs_amtp.c
@@ -0,0 +1,114 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of Application Message Tx Pool
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_AMTP
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_amtp.h"
+#include "ucs_misc.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal prototypes */
+/*------------------------------------------------------------------------------------------------*/
+static void Amtp_OnMsgFreed(void *self, Ucs_AmsTx_Msg_t* msg_ptr);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Initialization */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Constructor of class CAmtp
+ * \param self The instance
+ * \param msg_ptr Reference to an array of Amsg_IntMsgTx_t objects
+ * \param data_ptr Reference to payload data which is required for the payload of all messages.
+ * The data size must be the product of message_cnt and payload_cnt.
+ * \param msg_cnt The number of message objects in the array
+ * \param payload_sz The payload size for each message. The size must be a multiple of "4".
+ * \param ucs_user_ptr User reference that needs to be passed in every callback function
+ */
+void Amtp_Ctor(CAmtp *self, Amsg_IntMsgTx_t msg_ptr[], uint8_t data_ptr[], uint8_t msg_cnt, uint16_t payload_sz, void *ucs_user_ptr)
+{
+ uint8_t i = 0U;
+ uint32_t mem_idx = 0U;
+ Ucs_AmsTx_Msg_t *tx_ptr;
+
+ self->ucs_user_ptr = ucs_user_ptr;
+ TR_ASSERT(self->ucs_user_ptr, "[AMTP]", ((payload_sz % 4U) == 0U)); /* payload_sz shall be rounded to full quadlet */
+ TR_ASSERT(self->ucs_user_ptr, "[AMTP]", ((payload_sz * msg_cnt) <= 65535U)); /* total data shall be referenced by uint32_t index */
+
+ Dl_Ctor(&self->msg_queue, self->ucs_user_ptr);
+
+ for (i = 0U; i < msg_cnt; i++)
+ {
+ tx_ptr = (Ucs_AmsTx_Msg_t*)(void*)&(msg_ptr[i]);
+ Amsg_TxCtor(tx_ptr, NULL, &Amtp_OnMsgFreed, self);
+
+ if (payload_sz > 0U)
+ {
+ Amsg_TxSetInternalPayload(tx_ptr, &data_ptr[mem_idx], payload_sz, NULL);
+ mem_idx += payload_sz;
+ }
+
+ Amsg_TxEnqueue(tx_ptr, &self->msg_queue);
+ }
+
+}
+
+/*! \brief Retrieves a Tx application message object
+ * \param self The instance
+ * \return Retrieves the reference to a Tx application message object if the allocation
+ * succeeded, otherwise \c NULL.
+ */
+Ucs_AmsTx_Msg_t* Amtp_AllocMsg(CAmtp *self)
+{
+ return Amsg_TxDequeue(&self->msg_queue);
+}
+
+/*! \brief Callback function which is invoked if the message object is freed
+ * by the AMS
+ * \param self The instance
+ * \param msg_ptr Reference to the freed application Tx message object
+ */
+static void Amtp_OnMsgFreed(void *self, Ucs_AmsTx_Msg_t* msg_ptr)
+{
+ CAmtp *self_ = (CAmtp*)self;
+
+ Amsg_TxReuse(msg_ptr);
+ Amsg_TxEnqueue(msg_ptr, &self_->msg_queue);
+}
+
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_attach.c b/ucs2-lib/src/ucs_attach.c
new file mode 100644
index 0000000..33604ef
--- /dev/null
+++ b/ucs2-lib/src/ucs_attach.c
@@ -0,0 +1,607 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of CAttachService class
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_ATS
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_attach.h"
+#include "ucs_pmevent.h"
+#include "ucs_misc.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Service parameters */
+/*------------------------------------------------------------------------------------------------*/
+/*! Priority of the ATS service used by scheduler */
+static const uint8_t ATS_SRV_PRIO = 254U; /* parasoft-suppress MISRA2004-8_7 "Value shall be part of the module, not part of a function." */
+/*! Main event for the ATS service */
+static const Srv_Event_t ATS_EVENT_SERVICE = 1U;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal constants */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Initialization timeout in milliseconds (t = 3s) */
+static const uint16_t ATS_INIT_TIMEOUT = 3000U; /* parasoft-suppress MISRA2004-8_7 "Value shall be part of the module, not part of a function." */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal definitions */
+/*------------------------------------------------------------------------------------------------*/
+#define ATS_NUM_STATES 11U /*!< \brief Number of state machine states */
+#define ATS_NUM_EVENTS 5U /*!< \brief Number of state machine events */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal enumerators */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Possible events of the attach state machine */
+typedef enum Ats_Events_
+{
+ ATS_E_NIL = 0, /*!< \brief NIL Event */
+ ATS_E_NEXT = 1, /*!< \brief Go to next state */
+ ATS_E_RETRY = 2, /*!< \brief Retry current action */
+ ATS_E_ERROR = 3, /*!< \brief An error has been occurred */
+ ATS_E_TIMEOUT = 4 /*!< \brief An timeout has been occurred */
+
+} Ats_Events_t;
+
+/*! \brief States of the attach state machine */
+typedef enum Ats_State_
+{
+ ATS_S_START = 0, /*!< \brief Start state */
+ ATS_S_PMS_UNSYNC = 1, /*!< \brief Initially un-synchronizes all FIFOs */
+ ATS_S_PMS_INIT = 2, /*!< \brief PMS initialization state */
+ ATS_S_VERS_CHK = 3, /*!< \brief Version check state */
+ ATS_S_INIC_OVHL = 4, /*!< \brief INIC overhaul state */
+ ATS_S_DEV_ATT_STAGE_1 = 5, /*!< \brief Device attach state 1 (wait for first condition) */
+ ATS_S_DEV_ATT_STAGE_2 = 6, /*!< \brief Device attach state 2 (wait for second condition) */
+ ATS_S_DEV_ATT_STAGE_3 = 7, /*!< \brief Device attach state 3 (wait for third condition) */
+ ATS_S_NW_CONFIG = 8, /*!< \brief Retrieve network configuration */
+ ATS_S_INIT_CPL = 9, /*!< \brief Initialization complete state */
+ ATS_S_ERROR = 10 /*!< \brief Error state */
+
+} Ats_State_t;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal prototypes */
+/*------------------------------------------------------------------------------------------------*/
+static void Ats_TimeoutCb(void *self);
+static void Ats_Service(void *self);
+static void Ats_ResetObservers(CAttachService *self);
+static void Ats_StartPmsUnsync(void *self);
+static void Ats_StartPmsInit(void *self);
+static void Ats_StartVersChk(void *self);
+static void Ats_StartInicOvhl(void *self);
+static void Ats_StartDevAtt(void *self);
+static void Ats_StartNwConfig(void *self);
+static void Ats_InitCpl(void *self);
+static void Ats_HandleInternalErrors(void *self, void *error_code_ptr);
+static void Ats_HandleError(void *self);
+static void Ats_HandleTimeout(void *self);
+static void Ats_InvalidTransition(void *self);
+static void Ats_CheckPmsUnsyncResult(void *self, void *result_ptr);
+static void Ats_CheckPmsInitResult(void *self, void *result_ptr);
+static void Ats_CheckVersChkResult(void *self, void *result_ptr);
+static void Ats_CheckNetworkStatusReceived(void *self, void *result_ptr);
+static void Ats_CheckDeviceStatusReceived(void *self, void *data_ptr);
+static void Ats_CheckDevAttResult(void *self, void *result_ptr);
+static void Ats_CheckNwConfigStatus(void *self, void *result_ptr);
+
+/*------------------------------------------------------------------------------------------------*/
+/* State transition table (used by finite state machine) */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief State transition table */
+static const Fsm_StateElem_t ats_trans_tab[ATS_NUM_STATES][ATS_NUM_EVENTS] = /* parasoft-suppress MISRA2004-8_7 "Value shall be part of the module, not part of a function." */
+{
+/* |--------------------------------|------------------------------------------------|------------------------------------------------|--------------------------------------|----------------------------------------|
+ * | ATS_E_NIL | ATS_E_NEXT | ATS_E_RETRY | ATS_E_ERROR | ATS_E_TIMEOUT |
+ * |--------------------------------|------------------------------------------------|------------------------------------------------|--------------------------------------|----------------------------------------|
+ */
+ { {NULL, ATS_S_START }, {&Ats_StartPmsUnsync, ATS_S_PMS_UNSYNC }, {&Ats_InvalidTransition, ATS_S_ERROR }, {&Ats_InvalidTransition, ATS_S_ERROR}, {&Ats_HandleTimeout, ATS_S_ERROR} },
+ { {NULL, ATS_S_PMS_UNSYNC }, {&Ats_StartPmsInit, ATS_S_PMS_INIT }, {&Ats_InvalidTransition, ATS_S_ERROR }, {&Ats_HandleError, ATS_S_ERROR}, {&Ats_HandleTimeout, ATS_S_ERROR} },
+ { {NULL, ATS_S_PMS_INIT }, {&Ats_StartVersChk, ATS_S_VERS_CHK }, {&Ats_InvalidTransition, ATS_S_ERROR }, {&Ats_HandleError, ATS_S_ERROR}, {&Ats_HandleTimeout, ATS_S_ERROR} },
+ { {NULL, ATS_S_VERS_CHK }, {&Ats_StartInicOvhl, ATS_S_INIC_OVHL }, {&Ats_InvalidTransition, ATS_S_ERROR }, {&Ats_HandleError, ATS_S_ERROR}, {&Ats_HandleTimeout, ATS_S_ERROR} },
+ { {NULL, ATS_S_INIC_OVHL }, {&Ats_StartDevAtt, ATS_S_DEV_ATT_STAGE_1}, {&Ats_InvalidTransition, ATS_S_ERROR }, {&Ats_HandleError, ATS_S_ERROR}, {&Ats_HandleTimeout, ATS_S_ERROR} },
+ { {NULL, ATS_S_DEV_ATT_STAGE_1}, {NULL, ATS_S_DEV_ATT_STAGE_2}, {&Ats_InvalidTransition, ATS_S_ERROR }, {&Ats_HandleError, ATS_S_ERROR}, {&Ats_HandleTimeout, ATS_S_ERROR} },
+ { {NULL, ATS_S_DEV_ATT_STAGE_2}, {NULL, ATS_S_DEV_ATT_STAGE_3}, {&Ats_InvalidTransition, ATS_S_ERROR }, {&Ats_HandleError, ATS_S_ERROR}, {&Ats_HandleTimeout, ATS_S_ERROR} },
+ { {NULL, ATS_S_DEV_ATT_STAGE_3}, {&Ats_StartNwConfig, ATS_S_NW_CONFIG }, {&Ats_InvalidTransition, ATS_S_ERROR }, {&Ats_HandleError, ATS_S_ERROR}, {&Ats_HandleTimeout, ATS_S_ERROR} },
+ { {NULL, ATS_S_NW_CONFIG }, {&Ats_InitCpl, ATS_S_INIT_CPL }, {&Ats_InvalidTransition, ATS_S_ERROR }, {&Ats_HandleError, ATS_S_ERROR}, {&Ats_HandleTimeout, ATS_S_ERROR} },
+ { {NULL, ATS_S_INIT_CPL }, {&Ats_InvalidTransition, ATS_S_ERROR }, {&Ats_InvalidTransition, ATS_S_ERROR }, {&Ats_InvalidTransition, ATS_S_ERROR}, {&Ats_InvalidTransition, ATS_S_ERROR} },
+ { {NULL, ATS_S_ERROR }, {&Ats_InvalidTransition, ATS_S_ERROR }, {&Ats_InvalidTransition, ATS_S_ERROR }, {&Ats_InvalidTransition, ATS_S_ERROR}, {&Ats_InvalidTransition, ATS_S_ERROR} }
+};
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation of class CAttachService */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Constructor of the attach service class
+ * \param self Instance pointer
+ * \param init_ptr Reference to the initialization data
+ */
+void Ats_Ctor(CAttachService *self, Ats_InitData_t *init_ptr)
+{
+ MISC_MEM_SET(self, 0, sizeof(*self));
+ T_Ctor(&self->timer);
+ self->report_result = UCS_INIT_RES_SUCCESS;
+ self->init_data = *init_ptr;
+ Ssub_Ctor(&self->ats_result_subject, self->init_data.base_ptr->ucs_user_ptr);
+ Fsm_Ctor(&self->fsm, self, &(ats_trans_tab[0][0]), ATS_NUM_EVENTS, ATS_S_START);
+ /* Initialize ATS service */
+ Srv_Ctor(&self->ats_srv, ATS_SRV_PRIO, self, &Ats_Service);
+ /* Add ATS service to scheduler */
+ (void)Scd_AddService(&self->init_data.base_ptr->scd, &self->ats_srv);
+}
+
+/*! \brief Starts the attach process and the initialization timeout.
+ * \param self Instance pointer
+ * \param obs_ptr Reference to result observer
+ */
+void Ats_Start(void *self, CSingleObserver *obs_ptr)
+{
+ CAttachService *self_ = (CAttachService *)self;
+ /* Observe internal errors during the attach process */
+ Mobs_Ctor(&self_->internal_error_obs, self_, (EH_E_BIST_FAILED | EH_E_SYNC_LOST), &Ats_HandleInternalErrors);
+ Eh_AddObsrvInternalEvent(&self_->init_data.base_ptr->eh, &self_->internal_error_obs);
+ /* Set first event of attach state machine */
+ Fsm_SetEvent(&self_->fsm, ATS_E_NEXT);
+ Srv_SetEvent(&self_->ats_srv, ATS_EVENT_SERVICE);
+ /* Start timeout timer used for attach process */
+ Tm_SetTimer(&self_->init_data.base_ptr->tm,
+ &self_->timer,
+ &Ats_TimeoutCb,
+ self_,
+ ATS_INIT_TIMEOUT,
+ 0U);
+ (void)Ssub_AddObserver(&self_->ats_result_subject, obs_ptr);
+}
+
+/*! \brief Timer callback used for initialization timeout.
+ * \param self Instance pointer
+ */
+static void Ats_TimeoutCb(void *self)
+{
+ CAttachService *self_ = (CAttachService *)self;
+ Fsm_SetEvent(&self_->fsm, ATS_E_TIMEOUT);
+ Srv_SetEvent(&self_->ats_srv, ATS_EVENT_SERVICE);
+}
+
+/*! \brief Service function of the attach service.
+ * \param self Instance pointer
+ */
+static void Ats_Service(void *self)
+{
+ CAttachService *self_ = (CAttachService *)self;
+ Srv_Event_t event_mask;
+ Srv_GetEvent(&self_->ats_srv, &event_mask);
+ if (ATS_EVENT_SERVICE == (event_mask & ATS_EVENT_SERVICE)) /* Is event pending? */
+ {
+ Fsm_State_t result;
+ Srv_ClearEvent(&self_->ats_srv, ATS_EVENT_SERVICE);
+ result = Fsm_Service(&self_->fsm);
+ TR_ASSERT(self_->init_data.base_ptr->ucs_user_ptr, "[ATS]", (result != FSM_STATE_ERROR));
+ MISC_UNUSED(result);
+ }
+}
+
+/*! \brief Resets all module internal observers.
+ * \param self Instance pointer
+ */
+static void Ats_ResetObservers(CAttachService *self)
+{
+ Eh_DelObsrvInternalEvent(&self->init_data.base_ptr->eh, &self->internal_error_obs);
+ Sobs_Ctor(&self->sobs, NULL, NULL);
+ Obs_Ctor(&self->obs, NULL, NULL);
+ Obs_Ctor(&self->obs2, NULL, NULL);
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* State machine actions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief un-synchronizes PMS and observes PM events
+ * \param self Instance pointer
+ */
+static void Ats_StartPmsUnsync(void *self)
+{
+ CAttachService *self_ = (CAttachService *)self;
+ Obs_Ctor(&self_->obs, self_, &Ats_CheckPmsUnsyncResult);
+ Fifos_ConfigureSyncParams(self_->init_data.fifos_ptr, FIFOS_SYNC_RETRIES, FIFOS_SYNC_TIMEOUT);
+ Fifos_Unsynchronize(self_->init_data.fifos_ptr, true, true);
+ Fifos_AddEventObserver(self_->init_data.fifos_ptr, &self_->obs);
+}
+
+/*! \brief Synchronizes PMS and observes PM events
+ * \param self Instance pointer
+ */
+static void Ats_StartPmsInit(void *self)
+{
+ CAttachService *self_ = (CAttachService *)self;
+ Obs_Ctor(&self_->obs, self_, &Ats_CheckPmsInitResult);
+ Pmev_Start(self_->init_data.pme_ptr); /* enables failure reporting to all modules */
+ Fifos_Synchronize(self_->init_data.fifos_ptr, false, true); /* now synchronizes, counter is not reset to "0" */
+ Fifos_AddEventObserver(self_->init_data.fifos_ptr, &self_->obs);
+}
+
+/*! \brief Starts the request of the INIC firmware and hardware revisions.
+ * \param self Instance pointer
+ */
+static void Ats_StartVersChk(void *self)
+{
+ CAttachService *self_ = (CAttachService *)self;
+ Sobs_Ctor(&self_->sobs, self_, &Ats_CheckVersChkResult);
+ if (Inic_DeviceVersion_Get(self_->init_data.inic_ptr,
+ &self_->sobs) != UCS_RET_SUCCESS)
+ {
+ TR_ERROR((self_->init_data.base_ptr->ucs_user_ptr, "[ATS]", "INIC device version check failed!", 0U));
+ self_->report_result = UCS_INIT_RES_ERR_BUF_OVERFLOW;
+ Fsm_SetEvent(&self_->fsm, ATS_E_ERROR);
+ }
+}
+
+/*! \brief Starts the overhaul process of the INIC.
+ * \param self Instance pointer
+ */
+static void Ats_StartInicOvhl(void *self)
+{
+ CAttachService *self_ = (CAttachService *)self;
+
+ Fsm_SetEvent(&self_->fsm, ATS_E_NEXT);
+}
+
+/*! \brief Starts the attach process between EHC and INIC.
+ * \param self Instance pointer
+ */
+static void Ats_StartDevAtt(void *self)
+{
+ CAttachService *self_ = (CAttachService *)self;
+
+ TR_INFO((self_->init_data.base_ptr->ucs_user_ptr, "[ATS]", "Ats_StartDevAtt() called", 0U));
+ /* Assign observer to monitor the initial receipt of INIC message INIC.MOSTNetworkStatus */
+ Obs_Ctor(&self_->obs, self_, &Ats_CheckNetworkStatusReceived);
+ Inic_AddObsrvNwStatus(self_->init_data.inic_ptr, &self_->obs);
+ /* Assign observer to monitor the initial receipt of INIC message INIC.DeviceStatus */
+ Obs_Ctor(&self_->obs2, self_, &Ats_CheckDeviceStatusReceived);
+ Inic_AddObsvrDeviceStatus(self_->init_data.inic_ptr, &self_->obs2);
+
+ /* Start device attach process */
+ Sobs_Ctor(&self_->sobs, self_, &Ats_CheckDevAttResult);
+ if (Inic_DeviceAttach(self_->init_data.inic_ptr, &self_->sobs) != UCS_RET_SUCCESS)
+ {
+ TR_ERROR((self_->init_data.base_ptr->ucs_user_ptr, "[ATS]", "INIC device attach failed!", 0U));
+ self_->report_result = UCS_INIT_RES_ERR_BUF_OVERFLOW;
+ Fsm_SetEvent(&self_->fsm, ATS_E_ERROR);
+ }
+}
+
+/*! \brief Starts request of network configuration property required
+ * to retrieve the own group address.
+ * \param self Instance pointer
+ */
+static void Ats_StartNwConfig(void *self)
+{
+ CAttachService *self_ = (CAttachService *)self;
+
+ /* Assign observer to monitor the initial receipt of INIC message INIC.MOSTNetworkConfigurarion */
+ Sobs_Ctor(&self_->sobs, self_, &Ats_CheckNwConfigStatus);
+
+ if (Inic_NwConfig_Get(self_->init_data.inic_ptr, &self_->sobs) != UCS_RET_SUCCESS)
+ {
+ TR_ERROR((self_->init_data.base_ptr->ucs_user_ptr, "[ATS]", "INIC network configuration failed!", 0U));
+ self_->report_result = UCS_INIT_RES_ERR_BUF_OVERFLOW;
+ Fsm_SetEvent(&self_->fsm, ATS_E_ERROR);
+ }
+}
+
+/*! \brief This method is called when the initialization has been completed.
+ * \param self Instance pointer
+ */
+static void Ats_InitCpl(void *self)
+{
+ CAttachService *self_ = (CAttachService *)self;
+ self_->report_result = UCS_INIT_RES_SUCCESS;
+ /* Attach process finished -> Reset observers and terminate state machine */
+ Ats_ResetObservers(self_);
+ Tm_ClearTimer(&self_->init_data.base_ptr->tm, &self_->timer);
+ Fsm_End(&self_->fsm);
+ Eh_ReportEvent(&self_->init_data.base_ptr->eh, EH_E_INIT_SUCCEEDED);
+ Ssub_Notify(&self_->ats_result_subject, &self_->report_result, true);
+ TR_INFO((self_->init_data.base_ptr->ucs_user_ptr, "[ATS]", "Ats_InitCpl() called", 0U));
+}
+
+/*! \brief Handles internal errors during the attach process.
+ * \param self Instance pointer
+ * \param error_code_ptr Reference to reported error code
+ */
+static void Ats_HandleInternalErrors(void *self, void *error_code_ptr)
+{
+ CAttachService *self_ = (CAttachService *)self;
+ uint32_t error_code = *((uint32_t *)error_code_ptr);
+ switch (error_code)
+ {
+ case EH_E_SYNC_LOST:
+ self_->report_result = UCS_INIT_RES_ERR_INIC_SYNC;
+ TR_ERROR((self_->init_data.base_ptr->ucs_user_ptr, "[ATS]", "A control FiFo synchronization lost!", 0U));
+ break;
+ case EH_E_BIST_FAILED:
+ self_->report_result = UCS_INIT_RES_ERR_INIC_SYSTEM;
+ TR_ERROR((self_->init_data.base_ptr->ucs_user_ptr, "[ATS]", "INIC Build-In-Self-Test failed!", 0U));
+ break;
+ default:
+ self_->report_result = UCS_INIT_RES_ERR_INTERNAL;
+ TR_ERROR((self_->init_data.base_ptr->ucs_user_ptr, "[ATS]", "Unknown internal error occurred! Error code: 0x%04X", 1U, error_code));
+ break;
+ }
+ /* Error occurred -> Reset observers and terminate state machine */
+ Ats_ResetObservers(self_);
+ Tm_ClearTimer(&self_->init_data.base_ptr->tm, &self_->timer);
+ Fsm_End(&self_->fsm);
+ Eh_ReportEvent(&self_->init_data.base_ptr->eh, EH_E_INIT_FAILED);
+ Ssub_Notify(&self_->ats_result_subject, &self_->report_result, true);
+}
+
+/*! \brief Handles general errors during the attach process.
+ * \param self Instance pointer
+ */
+static void Ats_HandleError(void *self)
+{
+ CAttachService *self_ = (CAttachService *)self;
+ /* Error occurred -> Reset observers and terminate state machine */
+ Ats_ResetObservers(self_);
+ Tm_ClearTimer(&self_->init_data.base_ptr->tm, &self_->timer);
+ Fsm_End(&self_->fsm);
+ Eh_ReportEvent(&self_->init_data.base_ptr->eh, EH_E_INIT_FAILED);
+ Ssub_Notify(&self_->ats_result_subject, &self_->report_result, true);
+ TR_ERROR((self_->init_data.base_ptr->ucs_user_ptr, "[ATS]", "Error occurred during initialization!", 0U));
+}
+
+/*! \brief Handles timeouts during the attach process.
+ * \param self Instance pointer
+ */
+static void Ats_HandleTimeout(void *self)
+{
+ CAttachService *self_ = (CAttachService *)self;
+ self_->report_result = UCS_INIT_RES_ERR_TIMEOUT;
+ /* Error occurred -> Reset observers and terminate state machine */
+ Ats_ResetObservers(self_);
+ Fsm_End(&self_->fsm);
+ Eh_ReportEvent(&self_->init_data.base_ptr->eh, EH_E_INIT_FAILED);
+ Ssub_Notify(&self_->ats_result_subject, &self_->report_result, true);
+ TR_ERROR((self_->init_data.base_ptr->ucs_user_ptr, "[ATS]", "Initialization timeout occurred!", 0U));
+}
+
+/*! \brief This method is invoked if an invalid state machine transition is executed.
+ * \param self Instance pointer
+ */
+static void Ats_InvalidTransition(void *self)
+{
+ CAttachService *self_ = (CAttachService *)self;
+ self_->report_result = UCS_INIT_RES_ERR_INTERNAL;
+ /* Invalid Transition -> Reset observers and terminate state machine */
+ Ats_ResetObservers(self_);
+ Tm_ClearTimer(&self_->init_data.base_ptr->tm, &self_->timer);
+ Fsm_End(&self_->fsm);
+ Eh_ReportEvent(&self_->init_data.base_ptr->eh, EH_E_INIT_FAILED);
+ Ssub_Notify(&self_->ats_result_subject, &self_->report_result, true);
+ TR_ERROR((self_->init_data.base_ptr->ucs_user_ptr, "[ATS]", "Invalid transition within ATS state machine!", 0U));
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation of the observer results */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Result callback for action "PMS Initialization". This function is part of an
+ * observer object and is invoked by Sub_Notify().
+ * \param self Instance pointer
+ * \param result_ptr Reference to the received PMS event. The pointer must be casted into
+ * data type Fifos_Event_t.
+ */
+static void Ats_CheckPmsUnsyncResult(void *self, void *result_ptr)
+{
+ CAttachService *self_ = (CAttachService *)self;
+ Fifos_Event_t pms_event = *((Fifos_Event_t *)result_ptr);
+
+ TR_INFO((self_->init_data.base_ptr->ucs_user_ptr, "[ATS]", "Ats_CheckPmsUnsyncResult() called", 0U));
+
+ if (pms_event == FIFOS_EV_UNSYNC_COMPLETE)
+ {
+ Fsm_SetEvent(&self_->fsm, ATS_E_NEXT);
+ Srv_SetEvent(&self_->ats_srv, ATS_EVENT_SERVICE);
+ }
+ else
+ {
+ self_->report_result = UCS_INIT_RES_ERR_INIC_SYNC;
+ Fsm_SetEvent(&self_->fsm, ATS_E_ERROR);
+ Srv_SetEvent(&self_->ats_srv, ATS_EVENT_SERVICE);
+ TR_ERROR((self_->init_data.base_ptr->ucs_user_ptr, "[ATS]", "Ats_CheckPmsUnsyncResult(): un-sync failed, event=0x%02X", 1U, pms_event));
+ }
+ Fifos_RemoveEventObserver(self_->init_data.fifos_ptr, &self_->obs);
+}
+
+/*! \brief Result callback for action "PMS Initialization". This function is part of an
+ * observer object and is invoked by Sub_Notify().
+ * \param self Instance pointer
+ * \param result_ptr Reference to the received PMS event. The pointer must be casted into
+ * data type Fifos_Event_t.
+ */
+static void Ats_CheckPmsInitResult(void *self, void *result_ptr)
+{
+ CAttachService *self_ = (CAttachService *)self;
+ Fifos_Event_t pms_event = *((Fifos_Event_t *)result_ptr);
+
+ TR_INFO((self_->init_data.base_ptr->ucs_user_ptr, "[ATS]", "Ats_CheckPmsInitResult() called", 0U));
+
+ if (pms_event == FIFOS_EV_SYNC_ESTABLISHED)
+ {
+ Fsm_SetEvent(&self_->fsm, ATS_E_NEXT);
+ Srv_SetEvent(&self_->ats_srv, ATS_EVENT_SERVICE);
+ }
+ else
+ {
+ self_->report_result = UCS_INIT_RES_ERR_INIC_SYNC;
+ Fsm_SetEvent(&self_->fsm, ATS_E_ERROR);
+ Srv_SetEvent(&self_->ats_srv, ATS_EVENT_SERVICE);
+ TR_ERROR((self_->init_data.base_ptr->ucs_user_ptr, "[ATS]", "Ats_CheckPmsInitResult(): sync failed, event=0x%02X", 1U, pms_event));
+ }
+ Fifos_RemoveEventObserver(self_->init_data.fifos_ptr, &self_->obs);
+}
+
+/*! \brief Result callback for action "Version Check". This function is part of a single
+ * observer object and is invoked by Ssub_Notify().
+ * \param self Instance pointer
+ * \param result_ptr Reference to the received version check result. The pointer must be casted
+ * into data type Inic_StdResult_t.
+ */
+static void Ats_CheckVersChkResult(void *self, void *result_ptr)
+{
+ CAttachService *self_ = (CAttachService *)self;
+ Inic_StdResult_t *result_ptr_ = (Inic_StdResult_t *)result_ptr;
+ if (result_ptr_->result.code == UCS_RES_SUCCESS)
+ {
+ Fsm_SetEvent(&self_->fsm, ATS_E_NEXT);
+ Srv_SetEvent(&self_->ats_srv, ATS_EVENT_SERVICE);
+ }
+ else
+ {
+ self_->report_result = UCS_INIT_RES_ERR_INIC_VERSION;
+ Fsm_SetEvent(&self_->fsm, ATS_E_ERROR);
+ Srv_SetEvent(&self_->ats_srv, ATS_EVENT_SERVICE);
+ TR_ERROR((self_->init_data.base_ptr->ucs_user_ptr, "[ATS]", "INIC version check failed!", 0U));
+ }
+ TR_INFO((self_->init_data.base_ptr->ucs_user_ptr, "[ATS]", "Ats_CheckVersChkResult() called", 0U));
+}
+
+/*! \brief Result callback which handles one of three conditions for action "Device Attach". The
+ * function is called if INIC message INIC.MOSTNetworkStatus was received. The function is
+ * part of an observer object and is invoked by Sub_Notify(). The property
+ * INIC.MOSTNetworkStatus.Status() is notified. Thus, there is no error condition available.
+ * \param self Instance pointer
+ * \param result_ptr Reference to the MOST Network Status. The pointer must be casted into data
+ * type Inic_StdResult_t.
+ */
+static void Ats_CheckNetworkStatusReceived(void *self, void *result_ptr)
+{
+ CAttachService *self_ = (CAttachService *)self;
+ Inic_DelObsrvNwStatus(self_->init_data.inic_ptr, &self_->obs);
+ Fsm_SetEvent(&self_->fsm, ATS_E_NEXT);
+ Srv_SetEvent(&self_->ats_srv, ATS_EVENT_SERVICE);
+ MISC_UNUSED(result_ptr);
+ TR_INFO((self_->init_data.base_ptr->ucs_user_ptr, "[ATS]", "Ats_CheckNetworkStatusReceived() called", 0U));
+}
+
+/*! \brief Observer callback that is notified on received INIC.DeviceStatus
+ * \param self Instance pointer
+ * \param data_ptr The pointer to the current INIC.DeviceStatus structure
+ */
+static void Ats_CheckDeviceStatusReceived(void *self, void *data_ptr)
+{
+ CAttachService *self_ = (CAttachService *)self;
+ Inic_DelObsvrDeviceStatus(self_->init_data.inic_ptr, &self_->obs2);
+ Fsm_SetEvent(&self_->fsm, ATS_E_NEXT);
+ Srv_SetEvent(&self_->ats_srv, ATS_EVENT_SERVICE);
+ MISC_UNUSED(data_ptr);
+ TR_INFO((self_->init_data.base_ptr->ucs_user_ptr, "[ATS]", "Ats_CheckDeviceStatusReceived() called", 0U));
+}
+
+/*! \brief Result callback which handles one of two conditions for action "Device Attach". The
+ * function handles the result of the INIC method INIC.DeviceAttach. This function is part
+ * of a single-observer object and is invoked by Ssub_Notify().
+ * \param self Instance pointer
+ * \param result_ptr Reference to the received device attach result. The pointer must be casted
+ * into data type Inic_StdResult_t.
+ */
+static void Ats_CheckDevAttResult(void *self, void *result_ptr)
+{
+ CAttachService *self_ = (CAttachService *)self;
+ Inic_StdResult_t error_data = *((Inic_StdResult_t *)result_ptr);
+ switch (error_data.result.code)
+ {
+ case UCS_RES_SUCCESS:
+ /* Operation succeeded */
+ Fsm_SetEvent(&self_->fsm, ATS_E_NEXT);
+ Srv_SetEvent(&self_->ats_srv, ATS_EVENT_SERVICE);
+ break;
+ case UCS_RES_ERR_CONFIGURATION:
+ /* Configuration error occurred -> attach process failed! */
+ self_->report_result = UCS_INIT_RES_ERR_DEV_ATT_CFG;
+ Fsm_SetEvent(&self_->fsm, ATS_E_ERROR);
+ Srv_SetEvent(&self_->ats_srv, ATS_EVENT_SERVICE);
+ TR_ERROR((self_->init_data.base_ptr->ucs_user_ptr, "[ATS]", "Device attach failed due to an configuration error!", 0U));
+ TR_ERROR_INIC_RESULT(self_->init_data.base_ptr->ucs_user_ptr, "[ATS]", error_data.result.info_ptr, error_data.result.info_size);
+ break;
+ case UCS_RES_ERR_SYSTEM:
+ /* INIC is still attached -> attach process failed! */
+ self_->report_result = UCS_INIT_RES_ERR_DEV_ATT_PROC;
+ Fsm_SetEvent(&self_->fsm, ATS_E_ERROR);
+ Srv_SetEvent(&self_->ats_srv, ATS_EVENT_SERVICE);
+ TR_ERROR((self_->init_data.base_ptr->ucs_user_ptr, "[ATS]", "EHC is already attached to the INIC!", 0U));
+ break;
+ default:
+ /* INIC reports an unexpected error -> attach process failed! */
+ self_->report_result = UCS_INIT_RES_ERR_DEV_ATT_PROC;
+ Fsm_SetEvent(&self_->fsm, ATS_E_ERROR);
+ Srv_SetEvent(&self_->ats_srv, ATS_EVENT_SERVICE);
+ TR_ERROR((self_->init_data.base_ptr->ucs_user_ptr, "[ATS]", "Device attach failed! Unexpected error code = 0x%02X", 1U, error_data.result.code));
+ TR_ERROR_INIC_RESULT(self_->init_data.base_ptr->ucs_user_ptr, "[ATS]", error_data.result.info_ptr, error_data.result.info_size);
+ break;
+ }
+ TR_INFO((self_->init_data.base_ptr->ucs_user_ptr, "[ATS]", "Ats_CheckDevAttResult() called", 0U));
+}
+
+/*! \brief Result callback for INIC network configuration
+ * \param self Instance pointer
+ * \param result_ptr Reference to the received network configuration status event.
+ * The pointer must be casted into data type Inic_StdResult_t.
+ */
+static void Ats_CheckNwConfigStatus(void *self, void *result_ptr)
+{
+ CAttachService *self_ = (CAttachService *)self;
+ Inic_StdResult_t error_data = *((Inic_StdResult_t *)result_ptr);
+
+ if (error_data.result.code == UCS_RES_SUCCESS)
+ {
+ /* Operation succeeded */
+ Fsm_SetEvent(&self_->fsm, ATS_E_NEXT);
+ Srv_SetEvent(&self_->ats_srv, ATS_EVENT_SERVICE);
+ }
+ else
+ {
+ /* INIC reports an unexpected error -> attach process failed! */
+ self_->report_result = UCS_INIT_RES_ERR_NET_CFG;
+ Fsm_SetEvent(&self_->fsm, ATS_E_ERROR);
+ Srv_SetEvent(&self_->ats_srv, ATS_EVENT_SERVICE);
+ TR_ERROR((self_->init_data.base_ptr->ucs_user_ptr, "[ATS]", "Network configuration failed! Unexpected error code = 0x%02X", 1U, error_data.result.code));
+ TR_ERROR_INIC_RESULT(self_->init_data.base_ptr->ucs_user_ptr, "[ATS]", error_data.result.info_ptr, error_data.result.info_size);
+ }
+ TR_INFO((self_->init_data.base_ptr->ucs_user_ptr, "[ATS]", "Ats_CheckNwConfigStatus() called", 0U));
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_base.c b/ucs2-lib/src/ucs_base.c
new file mode 100644
index 0000000..583dd80
--- /dev/null
+++ b/ucs2-lib/src/ucs_base.c
@@ -0,0 +1,69 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of the Base class.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_BASE
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_base.h"
+#include "ucs_misc.h"
+#include "ucs_message.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation of class CBase */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Constructor of the Base class.
+ * \param self Instance pointer
+ * \param init_ptr Reference to the initialization data
+ */
+void Base_Ctor(CBase *self, Base_InitData_t *init_ptr)
+{
+ MISC_MEM_SET(self, 0, sizeof(*self));
+ /* Save instance ID and user pointer */
+ self->ucs_inst_id = init_ptr->ucs_inst_id;
+ self->ucs_user_ptr = init_ptr->ucs_user_ptr;
+ /* Create the scheduler instance */
+ Scd_Ctor(&self->scd, &init_ptr->scd, init_ptr->ucs_user_ptr);
+ /* Create the timer management instance */
+ Tm_Ctor(&self->tm, &self->scd, &init_ptr->tm, init_ptr->ucs_user_ptr);
+ /* Create the event handler instance */
+ Eh_Ctor(&self->eh, init_ptr->ucs_user_ptr);
+ /* Create the API locking manager instance */
+ Alm_Ctor(&self->alm, &self->tm, &self->eh, init_ptr->ucs_user_ptr);
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_bc_diag.c b/ucs2-lib/src/ucs_bc_diag.c
new file mode 100644
index 0000000..c932c90
--- /dev/null
+++ b/ucs2-lib/src/ucs_bc_diag.c
@@ -0,0 +1,784 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of the BackChannel Diagnosis.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_BACKCHANNEL_DIAG
+ * @{
+
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_inic_pb.h"
+#include "ucs_bc_diag.h"
+#include "ucs_misc.h"
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal constants */
+/*------------------------------------------------------------------------------------------------*/
+#define BCD_NUM_STATES 7U /*!< \brief Number of state machine states */
+#define BCD_NUM_EVENTS 12U /*!< \brief Number of state machine events */
+
+#define BCD_TIMEOUT_COMMAND 100U /*!< \brief supervise EXC commands */
+
+#define BCD_SIGNATURE_VERSION 1U /*!< \brief signature version used for BackChannel Diagnosis */
+
+#define BCD_T_SEND 0x0100U
+#define BCD_T_WAIT4DUT 0x1000U
+#define BCD_T_SWITCH 0x0100U
+#define BCD_T_BACK 0x2000U
+#define BCD_TIMEOUT2 0x3000U
+#define BCD_T_SIGNAL_ON 100U
+#define BCD_T_LOCK 100U
+#define BCD_T_LIGHT_PROGRESS 20U
+#define BCD_AUTOBACK (true)
+#define ADMIN_BASE_ADDR 0x0F00U
+
+/*------------------------------------------------------------------------------------------------*/
+/* Service parameters */
+/*------------------------------------------------------------------------------------------------*/
+/*! Priority of the BackChannel Diagnosis used by scheduler */
+static const uint8_t BCD_SRV_PRIO = 248U; /* parasoft-suppress MISRA2004-8_7 "Value shall be part of the module, not part of a function." */
+/*! Main event for the BackChannel Diagnosis */
+static const Srv_Event_t BCD_EVENT_SERVICE = 1U;
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal enumerators */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Possible events of the BackChannel Diagnosis state machine */
+typedef enum Bcd_Events_
+{
+ BCD_E_NIL = 0U, /*!< \brief NIL Event */
+ BCD_E_START = 1U, /*!< \brief API start command was called. */
+ BCD_E_DIAGMODE_END = 2U, /*!< \brief INIC.BCDiagEnd.Result successful. */
+ BCD_E_DIAG_MODE_STARTED = 3U, /*!< \brief INIC.BCDiag.Result successful. */
+ BCD_E_DIAG_MODE_FAILED = 4U, /*!< \brief INIC.BCDiag.Error received. */
+ BCD_E_TX_ENABLE_SUCCESS = 5U, /*!< \brief EXC.BCEnableTx successful */
+ BCD_E_TX_ENABLE_FAILED = 6U, /*!< \brief EXC.BCEnableTx failed. */
+ BCD_E_DIAG_RESULT_OK = 7U, /*!< \brief EXC.BCDIAG.Result Ok received. */
+ BCD_E_DIAG_RESULT_NOTOK = 8U, /*!< \brief EXC.BCDIAG.Result NotOk received. */
+ BCD_E_NET_OFF = 9U, /*!< \brief NetOff occurred. */
+ BCD_E_TIMEOUT = 10U, /*!< \brief Timeout occurred. */
+ BCD_E_ERROR = 11U /*!< \brief An unexpected error occurred. */
+
+} Bcd_Events_t;
+
+
+/*! \brief States of the BackChannel Diagnosis state machine */
+typedef enum Bcd_State_
+{
+ BCD_S_IDLE = 0U, /*!< \brief Idle state */
+ BCD_S_STARTED = 1U, /*!< \brief BackChannel Diagnosis started */
+ BCD_S_WAIT_ENABLED = 2U, /*!< \brief Wait for BCEnableTx.Result */
+ BCD_S_WAIT_SIG_PROP = 3U, /*!< \brief Wait for signal propagating through the following nodes */
+ BCD_S_WAIT_SIGNAL_ON = 4U, /*!< \brief Wait for t_SignalOn to expire. */
+ BCD_S_WAIT_RESULT = 5U, /*!< \brief Wait for ENC.BCDiag.Result */
+ BCD_S_END = 6U /*!< \brief BackChannel Diagnosis ends. */
+} Bcd_State_t;
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal prototypes */
+/*------------------------------------------------------------------------------------------------*/
+static void Bcd_Service(void *self);
+
+static void Bcd_InicBcdStartCb(void *self, void *result_ptr);
+static void Bcd_EnableTxResultCb(void *self, void *result_ptr);
+static void Bcd_DiagnosisResultCb(void *self, void *result_ptr);
+static void Bcd_InicBcdEndCb(void *self, void *result_ptr);
+
+static void Bcd_OnTerminateEventCb(void *self, void *result_ptr);
+static void Bcd_NetworkStatusCb(void *self, void *result_ptr);
+
+static void Bcd_A_Start(void *self);
+static void Bcd_A_EnableTx(void *self);
+static void Bcd_A_DiagStart(void *self);
+static void Bcd_A_NextSeg(void *self);
+static void Bcd_A_StopDiag(void *self);
+static void Bcd_A_Error(void *self);
+static void Bcd_A_EndDiag(void *self);
+static void Bcd_A_Timeout2(void *self);
+static void Bcd_A_WaitLight(void *self);
+
+
+static Ucs_Return_t Bcd_EnableTx(void *self, uint8_t port);
+
+static void Bcd_TimerCb(void *self);
+
+/*------------------------------------------------------------------------------------------------*/
+/* State transition table (used by finite state machine) */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief State transition table */
+static const Fsm_StateElem_t bcd_trans_tab[BCD_NUM_STATES][BCD_NUM_EVENTS] = /* parasoft-suppress MISRA2004-8_7 "Value shall be part of the module, not part of a function." */
+{
+ { /* State BCD_S_IDLE */
+ /* BCD_E_NIL */ {NULL, BCD_S_IDLE },
+ /* BCD_E_START */ {Bcd_A_Start, BCD_S_STARTED },
+ /* BCD_E_DIAGMODE_END */ {NULL, BCD_S_IDLE },
+ /* BCD_E_DIAG_MODE_STARTED */ {NULL, BCD_S_IDLE },
+ /* BCD_E_DIAG_MODE_FAILED */ {NULL, BCD_S_IDLE },
+ /* BCD_E_TX_ENABLE_SUCCESS */ {NULL, BCD_S_IDLE },
+ /* BCD_E_TX_ENABLE_FAILED */ {NULL, BCD_S_IDLE },
+ /* BCD_E_DIAG_RESULT_OK */ {NULL, BCD_S_IDLE },
+ /* BCD_E_DIAG_RESULT_NOTOK */ {NULL, BCD_S_IDLE },
+ /* BCD_E_NET_OFF */ {NULL, BCD_S_IDLE },
+ /* BCD_E_TIMEOUT */ {NULL, BCD_S_IDLE },
+ /* BCD_E_ERROR */ {NULL, BCD_S_IDLE }
+ },
+ { /* State BCD_S_STARTED */
+ /* BCD_E_NIL */ {NULL, BCD_S_STARTED },
+ /* BCD_E_START */ {NULL, BCD_S_STARTED },
+ /* BCD_E_DIAGMODE_END */ {NULL, BCD_S_STARTED },
+ /* BCD_E_DIAG_MODE_STARTED */ {Bcd_A_EnableTx, BCD_S_WAIT_ENABLED },
+ /* BCD_E_DIAG_MODE_FAILED */ {NULL, BCD_S_STARTED },
+ /* BCD_E_TX_ENABLE_SUCCESS */ {NULL, BCD_S_STARTED },
+ /* BCD_E_TX_ENABLE_FAILED */ {NULL, BCD_S_STARTED },
+ /* BCD_E_DIAG_RESULT_OK */ {NULL, BCD_S_STARTED },
+ /* BCD_E_DIAG_RESULT_NOTOK */ {NULL, BCD_S_STARTED },
+ /* BCD_E_NET_OFF */ {NULL, BCD_S_STARTED },
+ /* BCD_E_TIMEOUT */ {Bcd_A_Timeout2, BCD_S_IDLE },
+ /* BCD_E_ERROR */ {Bcd_A_Error, BCD_S_IDLE }
+ },
+ { /* State BCD_S_WAIT_ENABLED */
+ /* BCD_E_NIL */ {NULL, BCD_S_WAIT_ENABLED },
+ /* BCD_E_START */ {NULL, BCD_S_WAIT_ENABLED },
+ /* BCD_E_DIAGMODE_END */ {NULL, BCD_S_WAIT_ENABLED },
+ /* BCD_E_DIAG_MODE_STARTED */ {NULL, BCD_S_WAIT_ENABLED },
+ /* BCD_E_DIAG_MODE_FAILED */ {NULL, BCD_S_WAIT_ENABLED },
+ /* BCD_E_TX_ENABLE_SUCCESS */ {Bcd_A_WaitLight, BCD_S_WAIT_SIG_PROP },
+ /* BCD_E_TX_ENABLE_FAILED */ {Bcd_A_Error, BCD_S_IDLE },
+ /* BCD_E_DIAG_RESULT_OK */ {NULL, BCD_S_WAIT_ENABLED },
+ /* BCD_E_DIAG_RESULT_NOTOK */ {NULL, BCD_S_WAIT_ENABLED },
+ /* BCD_E_NET_OFF */ {NULL, BCD_S_WAIT_ENABLED },
+ /* BCD_E_TIMEOUT */ {Bcd_A_Timeout2, BCD_S_IDLE },
+ /* BCD_E_ERROR */ {Bcd_A_Error, BCD_S_IDLE }
+ },
+ { /* State BCD_S_WAIT_SIG_PROP */
+ /* BCD_E_NIL */ {NULL, BCD_S_WAIT_SIG_PROP },
+ /* BCD_E_START */ {NULL, BCD_S_WAIT_SIG_PROP },
+ /* BCD_E_DIAGMODE_END */ {NULL, BCD_S_WAIT_SIG_PROP },
+ /* BCD_E_DIAG_MODE_STARTED */ {NULL, BCD_S_WAIT_SIG_PROP },
+ /* BCD_E_DIAG_MODE_FAILED */ {NULL, BCD_S_WAIT_SIG_PROP },
+ /* BCD_E_TX_ENABLE_SUCCESS */ {NULL, BCD_S_WAIT_SIG_PROP },
+ /* BCD_E_TX_ENABLE_FAILED */ {NULL, BCD_S_WAIT_SIG_PROP },
+ /* BCD_E_DIAG_RESULT_OK */ {NULL, BCD_S_WAIT_SIG_PROP },
+ /* BCD_E_DIAG_RESULT_NOTOK */ {NULL, BCD_S_WAIT_SIG_PROP },
+ /* BCD_E_NET_OFF */ {NULL, BCD_S_WAIT_SIG_PROP },
+ /* BCD_E_TIMEOUT */ {Bcd_A_DiagStart, BCD_S_WAIT_RESULT },
+ /* BCD_E_ERROR */ {Bcd_A_Error, BCD_S_IDLE }
+ },
+ { /* State BCD_S_WAIT_SIGNAL_ON */
+ /* BCD_E_NIL */ {NULL, BCD_S_WAIT_SIGNAL_ON },
+ /* BCD_E_START */ {NULL, BCD_S_WAIT_SIGNAL_ON },
+ /* BCD_E_DIAGMODE_END */ {NULL, BCD_S_WAIT_SIGNAL_ON },
+ /* BCD_E_DIAG_MODE_STARTED */ {NULL, BCD_S_WAIT_SIGNAL_ON },
+ /* BCD_E_DIAG_MODE_FAILED */ {NULL, BCD_S_WAIT_SIGNAL_ON },
+ /* BCD_E_TX_ENABLE_SUCCESS */ {NULL, BCD_S_WAIT_SIGNAL_ON },
+ /* BCD_E_TX_ENABLE_FAILED */ {NULL, BCD_S_WAIT_SIGNAL_ON },
+ /* BCD_E_DIAG_RESULT_OK */ {NULL, BCD_S_WAIT_SIGNAL_ON },
+ /* BCD_E_DIAG_RESULT_NOTOK */ {NULL, BCD_S_WAIT_SIGNAL_ON },
+ /* BCD_E_NET_OFF */ {NULL, BCD_S_WAIT_SIGNAL_ON },
+ /* BCD_E_TIMEOUT */ {Bcd_A_EnableTx, BCD_S_WAIT_ENABLED },
+ /* BCD_E_ERROR */ {Bcd_A_Error, BCD_S_IDLE }
+ },
+ { /* State BCD_S_WAIT_RESULT */
+ /* BCD_E_NIL */ {NULL, BCD_S_WAIT_RESULT },
+ /* BCD_E_START */ {NULL, BCD_S_WAIT_RESULT },
+ /* BCD_E_DIAGMODE_END */ {NULL, BCD_S_WAIT_RESULT },
+ /* BCD_E_DIAG_MODE_STARTED */ {NULL, BCD_S_WAIT_RESULT },
+ /* BCD_E_DIAG_MODE_FAILED */ {NULL, BCD_S_WAIT_RESULT },
+ /* BCD_E_TX_ENABLE_SUCCESS */ {NULL, BCD_S_WAIT_RESULT },
+ /* BCD_E_TX_ENABLE_FAILED */ {NULL, BCD_S_WAIT_RESULT },
+ /* BCD_E_DIAG_RESULT_OK */ {Bcd_A_NextSeg, BCD_S_WAIT_SIGNAL_ON },
+ /* BCD_E_DIAG_RESULT_NOTOK */ {Bcd_A_StopDiag, BCD_S_END },
+ /* BCD_E_NET_OFF */ {NULL, BCD_S_WAIT_RESULT },
+ /* BCD_E_TIMEOUT */ {Bcd_A_Timeout2, BCD_S_IDLE },
+ /* BCD_E_ERROR */ {Bcd_A_Error, BCD_S_IDLE }
+ },
+ { /* State BCD_S_END */
+ /* BCD_E_NIL */ {NULL, BCD_S_END },
+ /* BCD_E_START */ {NULL, BCD_S_END },
+ /* BCD_E_DIAGMODE_END */ {Bcd_A_EndDiag, BCD_S_IDLE },
+ /* BCD_E_DIAG_MODE_STARTED */ {NULL, BCD_S_END },
+ /* BCD_E_DIAG_MODE_FAILED */ {NULL, BCD_S_END },
+ /* BCD_E_TX_ENABLE_SUCCESS */ {NULL, BCD_S_END },
+ /* BCD_E_TX_ENABLE_FAILED */ {NULL, BCD_S_END },
+ /* BCD_E_DIAG_RESULT_OK */ {NULL, BCD_S_END },
+ /* BCD_E_DIAG_RESULT_NOTOK */ {NULL, BCD_S_END },
+ /* BCD_E_NET_OFF */ {NULL, BCD_S_END },
+ /* BCD_E_TIMEOUT */ {Bcd_A_Timeout2, BCD_S_IDLE },
+ /* BCD_E_ERROR */ {Bcd_A_Error, BCD_S_IDLE }
+ }
+};
+
+
+/*! \brief Constructor of class CBackChannelDiag.
+ * \param self Reference to CBackChannelDiag instance
+ * \param inic Reference to CInic instance
+ * \param base Reference to CBase instance
+ * \param exc Reference to CExc instance
+ */
+ /* \param init_ptr Report callback function*/
+void Bcd_Ctor(CBackChannelDiag *self, CInic *inic, CBase *base, CExc *exc)
+{
+ MISC_MEM_SET((void *)self, 0, sizeof(*self));
+
+ self->inic = inic;
+ self->exc = exc;
+ self->base = base;
+
+ Fsm_Ctor(&self->fsm, self, &(bcd_trans_tab[0][0]), BCD_NUM_EVENTS, BCD_E_NIL);
+
+
+ Sobs_Ctor(&self->bcd_inic_bcd_start, self, &Bcd_InicBcdStartCb);
+ Sobs_Ctor(&self->bcd_inic_bcd_end, self, &Bcd_InicBcdEndCb);
+ Sobs_Ctor(&self->bcd_enabletx, self, &Bcd_EnableTxResultCb);
+ Sobs_Ctor(&self->bcd_diagnosis, self, &Bcd_DiagnosisResultCb);
+
+
+ /* register termination events */
+ Mobs_Ctor(&self->bcd_terminate, self, EH_M_TERMINATION_EVENTS, &Bcd_OnTerminateEventCb);
+ Eh_AddObsrvInternalEvent(&self->base->eh, &self->bcd_terminate);
+
+ /* Register NetOn and MPR events */
+ Obs_Ctor(&self->bcd_nwstatus, self, &Bcd_NetworkStatusCb);
+ Inic_AddObsrvNwStatus(self->inic, &self->bcd_nwstatus);
+ self->neton = false;
+
+ /* Initialize Node Discovery service */
+ Srv_Ctor(&self->service, BCD_SRV_PRIO, self, &Bcd_Service);
+ /* Add Node Discovery service to scheduler */
+ (void)Scd_AddService(&self->base->scd, &self->service);
+
+}
+
+
+/*! \brief Service function of the Node Discovery service.
+ * \param self Reference to Node Discovery object
+ */
+static void Bcd_Service(void *self)
+{
+ CBackChannelDiag *self_ = (CBackChannelDiag *)self;
+ Srv_Event_t event_mask;
+ Srv_GetEvent(&self_->service, &event_mask);
+ if(BCD_EVENT_SERVICE == (event_mask & BCD_EVENT_SERVICE)) /* Is event pending? */
+ {
+ Fsm_State_t result;
+ Srv_ClearEvent(&self_->service, BCD_EVENT_SERVICE);
+ TR_INFO((self_->base->ucs_user_ptr, "[BCD]", "FSM __ %d %d", 2U, self_->fsm.current_state, self_->fsm.event_occured));
+ result = Fsm_Service(&self_->fsm);
+ TR_ASSERT(self_->base->ucs_user_ptr, "[BCD]", (result != FSM_STATE_ERROR));
+ TR_INFO((self_->base->ucs_user_ptr, "[BCD]", "FSM -> %d", 1U, self_->fsm.current_state));
+ MISC_UNUSED(result);
+ }
+}
+
+
+/**************************************************************************************************/
+/* API functions */
+/**************************************************************************************************/
+/*! \brief Program a node
+ *
+ * \param *self Reference to BackChannel Diagnosis object
+ * \param *report_fptr Reference to result callback used by BackChannel Diagnosis
+*/
+void Bcd_Start(CBackChannelDiag *self, Ucs_Bcd_ReportCb_t report_fptr)
+{
+ self->report_fptr = report_fptr;
+
+ Fsm_SetEvent(&self->fsm, BCD_E_START);
+ Srv_SetEvent(&self->service, BCD_EVENT_SERVICE);
+
+ TR_INFO((self->base->ucs_user_ptr, "[BCD]", "Bcd_Start", 0U));
+
+}
+
+
+
+/**************************************************************************************************/
+/* FSM Actions */
+/**************************************************************************************************/
+static void Bcd_A_Start(void *self)
+{
+ Ucs_Return_t ret_val;
+ CBackChannelDiag *self_ = (CBackChannelDiag *)self;
+
+ /* send INIC.BCDiag.StartResult */
+ ret_val = Inic_BCDiagnosis(self_->inic, &self_->bcd_inic_bcd_start);
+
+ if (ret_val == UCS_RET_SUCCESS)
+ {
+ Tm_SetTimer(&self_->base->tm,
+ &self_->timer,
+ &Bcd_TimerCb,
+ self_,
+ BCD_TIMEOUT_COMMAND,
+ 0U);
+ }
+ else
+ {
+ Fsm_SetEvent(&self_->fsm, BCD_E_ERROR);
+ Srv_SetEvent(&self_->service, BCD_EVENT_SERVICE);
+ }
+
+ self_->current_segment = 0U;
+
+ TR_ASSERT(self_->base->ucs_user_ptr, "[BCD]", ret_val == UCS_RET_SUCCESS);
+ MISC_UNUSED(ret_val);
+}
+
+static void Bcd_A_EnableTx(void *self)
+{
+ Ucs_Return_t ret_val;
+ CBackChannelDiag *self_ = (CBackChannelDiag *)self;
+
+ /* send ENC.EnableTx */
+ ret_val = Bcd_EnableTx(self, 0U);
+
+ if (ret_val == UCS_RET_SUCCESS)
+ {
+ Tm_SetTimer(&self_->base->tm,
+ &self_->timer,
+ &Bcd_TimerCb,
+ self_,
+ BCD_TIMEOUT_COMMAND,
+ 0U);
+ }
+ else
+ {
+ Fsm_SetEvent(&self_->fsm, BCD_E_ERROR);
+ Srv_SetEvent(&self_->service, BCD_EVENT_SERVICE);
+ }
+
+ TR_ASSERT(self_->base->ucs_user_ptr, "[BCD]", ret_val == UCS_RET_SUCCESS);
+ MISC_UNUSED(ret_val);
+}
+
+/*! Starts the diagnosis command for one certain segment.
+ *
+ * \param *self The instance
+ */
+static void Bcd_A_DiagStart(void *self)
+{
+ Ucs_Return_t ret_val;
+ uint16_t t_send = BCD_T_SEND;
+ uint16_t t_wait4dut = BCD_T_WAIT4DUT;
+ uint16_t t_switch = BCD_T_SWITCH;
+ uint16_t t_back = BCD_T_BACK;
+ bool autoback = BCD_AUTOBACK;
+
+ CBackChannelDiag *self_ = (CBackChannelDiag *)self;
+
+ ret_val = Exc_BCDiag_Start(self_->exc,
+ self_->current_segment,
+ ADMIN_BASE_ADDR + self_->current_segment,
+ t_send,
+ t_wait4dut,
+ t_switch,
+ t_back,
+ autoback,
+ &self_->bcd_diagnosis);
+
+ if (ret_val == UCS_RET_SUCCESS)
+ {
+ Tm_SetTimer(&self_->base->tm,
+ &self_->timer,
+ &Bcd_TimerCb,
+ self_,
+ BCD_TIMEOUT2,
+ 0U);
+
+ }
+ else
+ {
+ Fsm_SetEvent(&self_->fsm, BCD_E_ERROR);
+ Srv_SetEvent(&self_->service, BCD_EVENT_SERVICE);
+ }
+
+
+ MISC_UNUSED(ret_val);
+}
+
+
+static void Bcd_A_NextSeg(void *self)
+{
+ CBackChannelDiag *self_ = (CBackChannelDiag *)self;
+
+ self_->report_fptr(UCS_BCD_RES_SUCCESS,
+ (uint8_t)(self_->bcd_result.admin_addr - ADMIN_BASE_ADDR),
+ self_->base->ucs_user_ptr);
+ self_->current_segment += 1U; /* switch to next segment. */
+
+ Tm_SetTimer(&self_->base->tm,
+ &self_->timer,
+ &Bcd_TimerCb,
+ self_,
+ BCD_T_SIGNAL_ON,
+ 0U);
+}
+
+static void Bcd_A_StopDiag(void *self)
+{
+ Ucs_Return_t ret_val;
+ CBackChannelDiag *self_ = (CBackChannelDiag *)self;
+
+ switch(self_->bcd_result.diag_result)
+ {
+ case DUT_MASTER:
+ self_->report_fptr(UCS_BCD_RES_NO_RING_BREAK,
+ (uint8_t)(self_->bcd_result.admin_addr - ADMIN_BASE_ADDR),
+ self_->base->ucs_user_ptr);
+ break;
+
+ case DUT_NO_ANSWER:
+ self_->report_fptr(UCS_BCD_RES_RING_BREAK,
+ (uint8_t)(self_->bcd_result.admin_addr - ADMIN_BASE_ADDR),
+ self_->base->ucs_user_ptr);
+ break;
+
+ case DUT_TIMEOUT:
+ self_->report_fptr(UCS_BCD_RES_TIMEOUT1,
+ (uint8_t)(self_->bcd_result.admin_addr - ADMIN_BASE_ADDR),
+ self_->base->ucs_user_ptr);
+ break;
+
+ default:
+ break;
+ }
+
+ /* finish Back Channel Diagnosis Mode: send INIC.BCDiagEnd.StartResult */
+ ret_val = Inic_BCDiagEnd(self_->inic, &self_->bcd_inic_bcd_end);
+
+ if (ret_val == UCS_RET_SUCCESS)
+ {
+ Tm_SetTimer(&self_->base->tm,
+ &self_->timer,
+ &Bcd_TimerCb,
+ self_,
+ BCD_TIMEOUT_COMMAND,
+ 0U);
+ }
+ else
+ {
+ Fsm_SetEvent(&self_->fsm, BCD_E_ERROR);
+ Srv_SetEvent(&self_->service, BCD_EVENT_SERVICE);
+ }
+
+ MISC_UNUSED(ret_val);
+}
+
+
+static void Bcd_A_EndDiag(void *self)
+{
+ CBackChannelDiag *self_ = (CBackChannelDiag *)self;
+
+ if (self_->report_fptr != NULL)
+ {
+ self_->report_fptr(UCS_BCD_RES_END, UCS_BCD_DUMMY_SEGMENT, self_->base->ucs_user_ptr);
+ }
+}
+
+static void Bcd_A_Timeout2(void *self)
+{
+ CBackChannelDiag *self_ = (CBackChannelDiag *)self;
+
+ if (self_->report_fptr != NULL)
+ {
+ self_->report_fptr(UCS_BCD_RES_TIMEOUT2, UCS_BCD_DUMMY_SEGMENT, self_->base->ucs_user_ptr);
+ }
+}
+
+static void Bcd_A_WaitLight(void *self)
+{
+ CBackChannelDiag *self_ = (CBackChannelDiag *)self;
+
+ Tm_SetTimer(&self_->base->tm,
+ &self_->timer,
+ &Bcd_TimerCb,
+ self_,
+ BCD_T_LOCK + (BCD_T_LIGHT_PROGRESS * (self_->current_segment + 1U)),
+ 0U);
+}
+
+
+
+
+/*! \brief An unecpected error occurred
+ *
+ * \param *self Reference to BackChannelDiagnosis object
+ */
+static void Bcd_A_Error(void *self)
+{
+ CBackChannelDiag *self_ = (CBackChannelDiag *)self;
+
+ if (self_->report_fptr != NULL)
+ {
+ self_->report_fptr(UCS_BCD_RES_ERROR, UCS_BCD_DUMMY_SEGMENT, self_->base->ucs_user_ptr);
+ }
+
+}
+
+
+/**************************************************************************************************/
+/* Callback functions */
+/**************************************************************************************************/
+
+/*! \brief Function is called on reception of the Welcome.Result messsage
+ * \param self Reference to BackChannelDiagnosis object
+ * \param result_ptr Pointer to the result of the Welcome message
+ */
+static void Bcd_InicBcdStartCb(void *self, void *result_ptr)
+{
+ CBackChannelDiag *self_ = (CBackChannelDiag *)self;
+ Exc_StdResult_t *result_ptr_ = (Exc_StdResult_t *)result_ptr;
+
+ Tm_ClearTimer(&self_->base->tm, &self_->timer);
+
+ if (result_ptr_->result.code == UCS_RES_SUCCESS)
+ {
+ Fsm_SetEvent(&self_->fsm, BCD_E_DIAG_MODE_STARTED);
+ TR_INFO((self_->base->ucs_user_ptr, "[BCD]", "Bcd_InicBcdStartCb BCD_E_DIAG_MODE_STARTED", 0U));
+ }
+ else
+ {
+ uint8_t i;
+
+ Fsm_SetEvent(&self_->fsm, BCD_E_DIAG_MODE_FAILED);
+ TR_INFO((self_->base->ucs_user_ptr, "[BCD]", "Bcd_InicBcdStartCb Error (code) 0x%x", 1U, result_ptr_->result.code));
+ for (i=0U; i< result_ptr_->result.info_size; ++i)
+ {
+ TR_INFO((self_->base->ucs_user_ptr, "[BCD]", "Bcd_InicBcdStartCb Error (info) 0x%x", 1U, result_ptr_->result.info_ptr[i]));
+ }
+ }
+
+ Srv_SetEvent(&self_->service, BCD_EVENT_SERVICE);
+}
+
+
+
+/*! \brief Function is called on reception of the BCEnableTx.Result messsage
+ * \param self Reference to BackChannelDiagnosis object
+ * \param result_ptr Pointer to the result of the BCEnableTx message
+ */
+static void Bcd_EnableTxResultCb(void *self, void *result_ptr)
+{
+ CBackChannelDiag *self_ = (CBackChannelDiag *)self;
+ Exc_StdResult_t *result_ptr_ = (Exc_StdResult_t *)result_ptr;
+
+ Tm_ClearTimer(&self_->base->tm, &self_->timer);
+
+ if (result_ptr_->result.code == UCS_RES_SUCCESS)
+ {
+ /* self_->signature_status = *(Exc_SignatureStatus_t *)(result_ptr_->data_info);*/
+ Fsm_SetEvent(&self_->fsm, BCD_E_TX_ENABLE_SUCCESS);
+ TR_INFO((self_->base->ucs_user_ptr, "[BCD]", "Bcd_EnableTxResultCb BCD_E_TX_ENABLE_SUCCESS", 0U));
+ }
+ else
+ {
+ Fsm_SetEvent(&self_->fsm, BCD_E_TX_ENABLE_FAILED);
+ TR_INFO((self_->base->ucs_user_ptr, "[ND]", "Bcd_EnableTxResultCb Error 0x%x", 1U, result_ptr_->result.code));
+ }
+
+ Srv_SetEvent(&self_->service, BCD_EVENT_SERVICE);
+}
+
+
+/*! \brief Function is called on reception of the ENC.BCDiag.Result messsage
+ * \param self Reference to BackChannelDiagnosis object
+ * \param result_ptr Pointer to the result of the BCDiag message
+ */
+static void Bcd_DiagnosisResultCb(void *self, void *result_ptr)
+{
+ CBackChannelDiag *self_ = (CBackChannelDiag *)self;
+ Exc_StdResult_t *result_ptr_ = (Exc_StdResult_t *)result_ptr;
+
+ Tm_ClearTimer(&self_->base->tm, &self_->timer);
+
+ if (result_ptr_->result.code == UCS_RES_SUCCESS)
+ {
+ self_->bcd_result = *((Exc_BCDiagResult *)(result_ptr_->data_info));
+ switch (self_->bcd_result.diag_result)
+ {
+ case DUT_SLAVE:
+ /* node reported working segment */
+ Fsm_SetEvent(&self_->fsm, BCD_E_DIAG_RESULT_OK);
+ TR_INFO((self_->base->ucs_user_ptr, "[BCD]", "Bcd_DiagnosisResultCb DUT_SLAVE", 0U));
+ break;
+
+ case DUT_MASTER: /* all segments are ok */
+ case DUT_NO_ANSWER: /* ring break found */
+ case DUT_TIMEOUT: /* no communication on back channel */
+ Fsm_SetEvent(&self_->fsm, BCD_E_DIAG_RESULT_NOTOK);
+ TR_INFO((self_->base->ucs_user_ptr, "[BCD]", "Bcd_DiagnosisResultCb others", 0U));
+ break;
+
+ default:
+ /* report error */
+ break;
+ }
+ }
+ else
+ {
+ Fsm_SetEvent(&self_->fsm, BCD_E_ERROR);
+ TR_INFO((self_->base->ucs_user_ptr, "[ND]", "Bcd_DiagnosisResultCb Error 0x%x", 1U, result_ptr_->result.code));
+ }
+
+ Srv_SetEvent(&self_->service, BCD_EVENT_SERVICE);
+}
+
+
+/*! \brief Function is called on reception of the INIC.BCDiagEnd.Result messsage
+ * \param self Reference to BackChannel Diagnosis object
+ * \param result_ptr Pointer to the result of the Welcome message
+ */
+static void Bcd_InicBcdEndCb(void *self, void *result_ptr)
+{
+ CBackChannelDiag *self_ = (CBackChannelDiag *)self;
+ Exc_StdResult_t *result_ptr_ = (Exc_StdResult_t *)result_ptr;
+
+ Tm_ClearTimer(&self_->base->tm, &self_->timer);
+
+ if (result_ptr_->result.code == UCS_RES_SUCCESS)
+ {
+ Fsm_SetEvent(&self_->fsm, BCD_E_DIAGMODE_END);
+ TR_INFO((self_->base->ucs_user_ptr, "[BCD]", "Bcd_InicBcdEndCb BCD_E_DIAGMODE_END", 0U));
+ }
+ else
+ {
+ Fsm_SetEvent(&self_->fsm, BCD_E_ERROR);
+ TR_INFO((self_->base->ucs_user_ptr, "[ND]", "Bcd_InicBcdEndCb Error 0x%x", 1U, result_ptr_->result.code));
+ }
+
+ Srv_SetEvent(&self_->service, BCD_EVENT_SERVICE);
+}
+
+
+/*! Function is called on severe internal errors
+ *
+ * \param *self Reference to Node Discovery object
+ * \param *result_ptr Reference to data
+ */
+static void Bcd_OnTerminateEventCb(void *self, void *result_ptr)
+{
+ CBackChannelDiag *self_ = (CBackChannelDiag *)self;
+
+ MISC_UNUSED(result_ptr);
+
+ if (self_->fsm.current_state != BCD_S_IDLE)
+ {
+ Tm_ClearTimer(&self_->base->tm, &self_->timer);
+ if (self_->report_fptr != NULL)
+ {
+ self_->report_fptr(UCS_BCD_RES_ERROR, UCS_BCD_DUMMY_SEGMENT, self_->base->ucs_user_ptr);
+ }
+ }
+}
+
+
+/*! \brief Callback function for the INIC.NetworkStatus status and error messages
+ *
+ * \param *self Reference to Node Discovery object
+ * \param *result_ptr Pointer to the result of the INIC.NetworkStatus message
+ */
+static void Bcd_NetworkStatusCb(void *self, void *result_ptr)
+{
+ CBackChannelDiag *self_ = (CBackChannelDiag *)self;
+ Inic_StdResult_t *result_ptr_ = (Inic_StdResult_t *)result_ptr;
+
+ if (result_ptr_->result.code == UCS_RES_SUCCESS)
+ {
+ TR_INFO((self_->base->ucs_user_ptr, "[BCD]", "Bcd_NetworkStatusCb 0x%x", 1U, result_ptr_->result.code));
+ /* check for NetOn/NetOff events */
+ if ( (self_->neton == true)
+ && ((((Inic_NetworkStatus_t *)(result_ptr_->data_info))->availability) == UCS_NW_NOT_AVAILABLE) )
+ {
+ self_->neton = false;
+ Fsm_SetEvent(&self_->fsm, BCD_E_NET_OFF);
+ Srv_SetEvent(&self_->service, BCD_EVENT_SERVICE);
+ }
+ /* check for NetOn/NetOff events */
+ else if ( (self_->neton == false)
+ && ((((Inic_NetworkStatus_t *)(result_ptr_->data_info))->availability) == UCS_NW_AVAILABLE) )
+ {
+/* self_->neton = true;
+ self_->hello_neton_request = true;
+ Fsm_SetEvent(&self_->fsm, BCD_E_CHECK);*/
+ }
+ /* check for MPR event */
+ else if ( (((Inic_NetworkStatus_t *)(result_ptr_->data_info))->events & UCS_NETWORK_EVENT_NCE)
+ == UCS_NETWORK_EVENT_NCE)
+ {
+/* self_->hello_mpr_request = true;
+ Fsm_SetEvent(&self_->fsm, BCD_E_CHECK);*/
+ }
+ }
+
+}
+
+
+/*! \brief Timer callback used for supervising INIC command timeouts.
+ * \param self Reference to Node Discovery object
+ */
+static void Bcd_TimerCb(void *self)
+{
+ CBackChannelDiag *self_ = (CBackChannelDiag *)self;
+
+ Fsm_SetEvent(&self_->fsm, BCD_E_TIMEOUT);
+ TR_INFO((self_->base->ucs_user_ptr, "[BCD]", "Bcd_TimerCb BCD_E_TIMEOUT", 0U));
+
+ Srv_SetEvent(&self_->service, BCD_EVENT_SERVICE);
+}
+
+
+/**************************************************************************************************/
+/* Helper functions */
+/**************************************************************************************************/
+static Ucs_Return_t Bcd_EnableTx(void *self, uint8_t port)
+{
+ Ucs_Return_t ret_val;
+ CBackChannelDiag *self_ = (CBackChannelDiag *)self;
+
+ /* send INIC.BCDiag.StartResult */
+ ret_val = Exc_BCEnableTx_StartResult(self_->exc, port, &self_->bcd_enabletx);
+
+ TR_ASSERT(self_->base->ucs_user_ptr, "[BCD]", ret_val == UCS_RET_SUCCESS);
+ return ret_val;
+}
+
+
+
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_class.c b/ucs2-lib/src/ucs_class.c
new file mode 100644
index 0000000..f999d43
--- /dev/null
+++ b/ucs2-lib/src/ucs_class.c
@@ -0,0 +1,1790 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of the UNICENS API.
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_class.h"
+#include "ucs_misc.h"
+#include "ucs_trace.h"
+#include "ucs_ams.h"
+#include "ucs_cmd.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Macros */
+/*------------------------------------------------------------------------------------------------*/
+/*! \def UCS_NUM_INSTANCES
+ * \brief Number of API instances which can be created by function Ucs_CreateInstance().
+ * \details One API instance is used to communicate with one local INIC. In this case the application
+ * is connected to one network.
+ * It is possible access multiple networks by having multiple API instances. Each API instance
+ * requires communication with an exclusive INIC.
+ * Valid values: 1..10. Default Value: 1.
+ * \ingroup G_UCS_INIT_AND_SRV
+ */
+#ifndef UCS_NUM_INSTANCES
+# define UCS_NUM_INSTANCES 1
+# define UCS_API_INSTANCES 1U /* default value */
+#elif (UCS_NUM_INSTANCES > 10)
+# define UCS_API_INSTANCES 10U
+#elif (UCS_NUM_INSTANCES < 1)
+# define UCS_API_INSTANCES 1U
+#else
+# define UCS_API_INSTANCES ((uint8_t)UCS_NUM_INSTANCES)
+#endif
+
+/*! \cond UCS_INTERNAL_DOC
+ * \addtogroup G_UCS_CLASS
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal Prototypes */
+/*------------------------------------------------------------------------------------------------*/
+static bool Ucs_CheckInitData(const Ucs_InitData_t *init_ptr);
+static void Ucs_Ctor(CUcs* self, uint8_t ucs_inst_id, void *api_user_ptr);
+static void Ucs_InitComponents(CUcs* self);
+static void Ucs_InitFactoryComponent(CUcs *self);
+static void Ucs_InitBaseComponent(CUcs *self);
+static void Ucs_InitPmsComponentConfig(CUcs *self);
+static void Ucs_InitNetComponent(CUcs *self);
+static void Ucs_InitLocalInicComponent(CUcs *self);
+static void Ucs_InitRoutingComponent(CUcs *self);
+static void Ucs_InitAtsClass(CUcs *self);
+static void Ucs_InitExcComponent(CUcs *self);
+static void Ucs_InitSysDiagComponent(CUcs *self);
+static void Ucs_InitNodeDiscovery(CUcs *self);
+static void Ucs_InitBackChannelDiagnosis(CUcs *self);
+static void Ucs_InitProgramming(CUcs *self);
+static void Ucs_InitManager(CUcs *self);
+static void Ucs_InitResultCb(void *self, void *result_ptr);
+static void Ucs_UninitResultCb(void *self, void *error_code_ptr);
+static void Ucs_OnRxRcm(void *self, Msg_MostTel_t *tel_ptr);
+static bool Ucs_OnRxMsgFilter(void *self, Msg_MostTel_t *tel_ptr);
+static void Ucs_OnGetTickCount(void *self, void *tick_count_value_ptr);
+static void Ucs_OnSetApplicationTimer(void *self, void *new_time_value_ptr);
+static void Ucs_OnServiceRequest(void *self, void *result_ptr);
+static void Ucs_OnGeneralError(void *self, void *result_ptr);
+static void Ucs_Most_PortStatusCb(void *self, void *result_ptr);
+static void Ucs_StartAppNotification(CUcs *self);
+static void Ucs_StopAppNotification(CUcs *self);
+static void Ucs_Inic_OnDeviceStatus(void *self, void *data_ptr);
+static void Ucs_NetworkStartupResult(void *self, void *result_ptr);
+static void Ucs_NetworkShutdownResult(void *self, void *result_ptr);
+static void Ucs_NetworkForceNAResult(void *self, void *result_ptr);
+static void Ucs_NetworkFrameCounterResult(void *self, void *result_ptr);
+static void Ucs_NetworkStatus(void *self, void *result_ptr);
+static void Ucs_InitPmsComponent(CUcs *self);
+static void Ucs_InitPmsComponentApp(CUcs *self);
+static void Ucs_InitAmsComponent(CUcs *self);
+static void Ucs_AmsRx_Callback(void *self);
+static void Ucs_AmsTx_FreedCallback(void *self, void *data_ptr);
+static bool Ucs_McmRx_FilterCallback(void *self, Msg_MostTel_t *tel_ptr);
+static Ucs_Nd_CheckResult_t Ucs_OnNdEvaluate(void *self, Ucs_Signature_t *signature_ptr);
+static void Ucs_OnNdReport(void *self, Ucs_Nd_ResCode_t code, Ucs_Signature_t *signature_ptr);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Public Methods */
+/*------------------------------------------------------------------------------------------------*/
+extern Ucs_Inst_t* Ucs_CreateInstance(void)
+{
+ static CUcs api_instances[UCS_API_INSTANCES];
+ static uint8_t next_index = 0U;
+ Ucs_Inst_t *inst_ptr = NULL;
+
+ if (next_index < UCS_API_INSTANCES)
+ {
+ CUcs *ucs_ptr = &api_instances[next_index];
+ ucs_ptr->ucs_inst_id = next_index + 1U; /* start with instance id "1" */
+ TR_INFO((ucs_ptr->ucs_user_ptr, "[API]", "Ucs_CreateInstance(): returns 0x%p", 1U, ucs_ptr));
+ inst_ptr = (Ucs_Inst_t*)(void*)ucs_ptr; /* convert API pointer to abstract data type */
+ next_index++;
+ }
+ else
+ {
+ TR_INFO((0U, "[API]", "Ucs_CreateInstance(): failed!", 0U));
+ }
+
+ return inst_ptr;
+}
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Initialization structure */
+/*------------------------------------------------------------------------------------------------*/
+extern Ucs_Return_t Ucs_SetDefaultConfig(Ucs_InitData_t *init_ptr)
+{
+ Ucs_Return_t ret = UCS_RET_ERR_PARAM;
+
+ if (init_ptr != NULL)
+ {
+ MISC_MEM_SET(init_ptr, 0, sizeof(*init_ptr));
+ /* -- add default values here -- */
+ init_ptr->general.inic_watchdog_enabled = true;
+ init_ptr->ams.enabled = true;
+ init_ptr->network.status.notification_mask = 0xFFFFU; /* Initialize notification masks for NET callbacks */
+ init_ptr->mgr.packet_bw = MGR_PACKET_BW_DEFAULT;
+ init_ptr->mgr.enabled = false;
+ ret = UCS_RET_SUCCESS;
+ }
+
+ TR_INFO((0U, "[API]", "Ucs_SetDefaultConfig(init_ptr: 0x%p): called", 1U, init_ptr));
+ return ret;
+}
+
+/*! \brief Checks if the given initialization data is valid
+ * \param init_ptr Reference to initialization data
+ * \return Returns \c true if the given initialization data is valid, otherwise \c false.
+ */
+static bool Ucs_CheckInitData(const Ucs_InitData_t *init_ptr)
+{
+ bool ret_val = true;
+
+ if ((init_ptr == NULL) || /* General NULL pointer checks */
+ (init_ptr->general.get_tick_count_fptr == NULL) ||
+ (init_ptr->lld.start_fptr == NULL) ||
+ (init_ptr->lld.stop_fptr == NULL) ||
+ (init_ptr->lld.tx_transmit_fptr == NULL)
+ )
+ {
+ TR_ERROR((0U, "[API]", "Initialization failed. Required initialization data contains a NULL pointer.", 0U));
+ ret_val = false;
+ }
+ else if (((init_ptr->general.set_application_timer_fptr == NULL) && (init_ptr->general.request_service_fptr != NULL)) ||
+ ((init_ptr->general.set_application_timer_fptr != NULL) && (init_ptr->general.request_service_fptr == NULL)))
+ {
+ TR_ERROR((0U, "[API]", "Initialization failed. To run UCS in event driven service mode, both callback functions must be assigned.", 0U));
+ ret_val = false;
+ }
+ else if ((init_ptr->mgr.enabled != false) && ((init_ptr->nd.eval_fptr != NULL) || (init_ptr->nd.report_fptr != NULL)))
+ {
+ TR_INFO((0U, "[API]", "Ambiguous initialization structure. NodeDiscovery callback functions are not effective if 'mgr.enabled' is 'true'.", 0U));
+ }
+
+ return ret_val;
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Class initialization */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Constructor of API. Values are reset, initialization must be triggered via Ucs_Init().
+ * \param self The instance
+ * \param ucs_inst_id The ID of the instance
+ * \param api_user_ptr The user reference for API callback functions
+ */
+static void Ucs_Ctor(CUcs* self, uint8_t ucs_inst_id, void *api_user_ptr)
+{
+ MISC_MEM_SET(self, 0, sizeof(*self)); /* reset memory and backup/restore instance id */
+ self->ucs_inst_id = ucs_inst_id;
+ self->ucs_user_ptr = api_user_ptr;
+}
+
+extern Ucs_Return_t Ucs_Init(Ucs_Inst_t* self, const Ucs_InitData_t *init_ptr, Ucs_InitResultCb_t init_result_fptr)
+{
+ CUcs *self_ = (CUcs*)(void*)self;
+ Ucs_Return_t ret = UCS_RET_ERR_PARAM;
+
+ /* Note: "self_->ucs_inst_id" is already set to the correct value in Ucs_CreateInstance(), do not overwrite it */
+ TR_INFO((self_->ucs_user_ptr, "[API]", "Ucs_Init(init_ptr: 0x%p): called", 1U, init_ptr));
+
+ if (Ucs_CheckInitData(init_ptr))
+ {
+ Ucs_Ctor(self_, self_->ucs_inst_id, init_ptr->user_ptr);/* initialize object */
+ self_->init_result_fptr = init_result_fptr; /* backup result callback function */
+
+ self_->init_data = *init_ptr; /* backup init data */
+ Ucs_InitComponents(self_); /* call constructors and link all components */
+ /* create init-complete observer */
+ Sobs_Ctor(&self_->init_result_obs, self, &Ucs_InitResultCb);
+ Ats_Start(&self_->inic.attach, &self_->init_result_obs);/* Start attach process */
+ ret = UCS_RET_SUCCESS;
+ }
+ /* register observer related to Ucs_Stop() */
+ Mobs_Ctor(&self_->uninit_result_obs, self, (EH_E_UNSYNC_COMPLETE | EH_E_UNSYNC_FAILED), &Ucs_UninitResultCb);
+ return ret;
+}
+
+extern void Ucs_Service(Ucs_Inst_t* self)
+{
+ CUcs *self_ = (CUcs*)(void*)self;
+ bool pending_events = false;
+
+ TR_INFO((self_->ucs_user_ptr, "[API]", "Ucs_Service(): called", 0U));
+ Scd_Service(&self_->general.base.scd); /* Run the scheduler */
+ pending_events = Scd_AreEventsPending(&self_->general.base.scd); /* Check if events are still pending? */
+
+ if (pending_events != false) /* At least one event is pending? */
+ {
+ if (self_->general.request_service_fptr != NULL)
+ {
+ self_->general.request_service_fptr(self_->ucs_user_ptr); /* Trigger UCS service call immediately */
+ }
+ }
+
+ Tm_CheckForNextService(&self_->general.base.tm); /* If UCS timers are running: What is the next time that
+ * the timer management must be serviced again? */
+}
+
+extern void Ucs_ReportTimeout(Ucs_Inst_t* self)
+{
+ CUcs *self_ = (CUcs*)(void*)self;
+ TR_INFO((self_->ucs_user_ptr, "[API]", "Ucs_ReportTimeout(): called", 0U));
+ Tm_TriggerService(&self_->general.base.tm); /* Trigger TM service call */
+}
+
+extern Ucs_Return_t Ucs_Stop(Ucs_Inst_t* self, Ucs_StdResultCb_t stopped_fptr)
+{
+ CUcs *self_ = (CUcs*)(void*)self;
+ Ucs_Return_t ret_val = UCS_RET_ERR_PARAM;
+
+ TR_INFO((self_->ucs_user_ptr, "[API]", "Ucs_Stop() called", 0U));
+
+ if ((self_->uninit_result_fptr == NULL) && (self_->init_complete != false))
+ {
+ if (stopped_fptr != NULL)
+ {
+ self_->uninit_result_fptr = stopped_fptr;
+ Eh_DelObsrvPublicError(&self_->general.base.eh);
+ Eh_AddObsrvInternalEvent(&self_->general.base.eh, &self_->uninit_result_obs);
+ ret_val = UCS_RET_SUCCESS;
+ Fifos_ConfigureSyncParams(&self_->fifos, FIFOS_UNSYNC_RETRIES, FIFOS_UNSYNC_TIMEOUT);
+ Fifos_Unsynchronize(&self_->fifos, true, false);
+ }
+ }
+ else
+ {
+ ret_val = UCS_RET_ERR_API_LOCKED; /* termination is already running */
+ }
+
+ return ret_val;
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Connection Routing Management */
+/*------------------------------------------------------------------------------------------------*/
+Ucs_Return_t Ucs_Rm_Start(Ucs_Inst_t *self, Ucs_Rm_Route_t *routes_list, uint16_t list_size)
+{
+ CUcs *self_ = (CUcs*)(void*)self;
+
+ Ucs_Return_t ret_val = UCS_RET_ERR_NOT_INITIALIZED;
+
+ if (self_->init_complete != false)
+ {
+ ret_val = Rtm_StartProcess (&self_->rtm, routes_list, list_size);
+ }
+
+ return ret_val;
+}
+
+Ucs_Return_t Ucs_Rm_SetRouteActive (Ucs_Inst_t *self, Ucs_Rm_Route_t *route_ptr, bool active)
+{
+ CUcs *self_ = (CUcs*)(void*)self;
+
+ Ucs_Return_t ret_val = UCS_RET_ERR_PARAM;
+
+ if ((self_ != NULL) && (route_ptr != NULL))
+ {
+ ret_val = UCS_RET_ERR_NOT_INITIALIZED;
+ if (self_->init_complete != false)
+ {
+ if (!active)
+ {
+ ret_val = Rtm_DeactivateRoute(&self_->rtm, route_ptr);
+ }
+ else
+ {
+ ret_val = Rtm_ActivateRoute(&self_->rtm, route_ptr);
+ }
+ }
+ }
+
+ return ret_val;
+}
+
+Ucs_Return_t Ucs_Xrm_Stream_SetPortConfig(Ucs_Inst_t *self,
+ uint16_t destination_address,
+ uint8_t index,
+ Ucs_Stream_PortOpMode_t op_mode,
+ Ucs_Stream_PortOption_t port_option,
+ Ucs_Stream_PortClockMode_t clock_mode,
+ Ucs_Stream_PortClockDataDelay_t clock_data_delay,
+ Ucs_Xrm_Stream_PortCfgResCb_t result_fptr)
+{
+ CUcs *self_ = (CUcs*)(void*)self;
+ Ucs_Return_t ret_val = UCS_RET_ERR_PARAM;
+
+ if (self_ != NULL)
+ {
+ ret_val = UCS_RET_ERR_NOT_INITIALIZED;
+ if (self_->init_complete != false)
+ {
+ ret_val = Xrm_Stream_SetPortConfig(Fac_GetXrmLegacy(&self_->factory, destination_address, self_->init_data.rm.xrm.check_unmute_fptr),
+ index,
+ op_mode,
+ port_option,
+ clock_mode,
+ clock_data_delay,
+ result_fptr);
+ }
+ }
+
+ return ret_val;
+}
+
+Ucs_Return_t Ucs_Xrm_Stream_GetPortConfig(Ucs_Inst_t *self, uint16_t destination_address, uint8_t index,
+ Ucs_Xrm_Stream_PortCfgResCb_t result_fptr)
+{
+ CUcs *self_ = (CUcs*)(void*)self;
+ Ucs_Return_t ret_val = UCS_RET_ERR_PARAM;
+
+ if (self_ != NULL)
+ {
+ ret_val = UCS_RET_ERR_NOT_INITIALIZED;
+ if (self_->init_complete != false)
+ {
+ ret_val = Xrm_Stream_GetPortConfig(Fac_GetXrmLegacy(&self_->factory, destination_address, self_->init_data.rm.xrm.check_unmute_fptr),
+ index, result_fptr);
+ }
+ }
+
+ return ret_val;
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Node Management */
+/*------------------------------------------------------------------------------------------------*/
+Ucs_Return_t Ucs_Rm_SetNodeAvailable(Ucs_Inst_t *self, Ucs_Rm_Node_t *node_ptr, bool available)
+{
+ CUcs *self_ = (CUcs*)(void*)self;
+ Ucs_Return_t ret_val = UCS_RET_ERR_PARAM;
+
+ if ((self_ != NULL) && (node_ptr != NULL))
+ {
+ ret_val = UCS_RET_ERR_NOT_INITIALIZED;
+ if (self_->init_complete != false)
+ {
+ ret_val = Rtm_SetNodeAvailable(&self_->rtm, node_ptr, available);
+ }
+ }
+
+ return ret_val;
+}
+
+bool Ucs_Rm_GetNodeAvailable (Ucs_Inst_t *self, Ucs_Rm_Node_t *node_ptr)
+{
+ CUcs *self_ = (CUcs*)(void*)self;
+ bool ret_val = false;
+
+ if ((self_ != NULL) && (node_ptr != NULL))
+ {
+ ret_val = Rtm_GetNodeAvailable(&self_->rtm, node_ptr);
+ }
+
+ return ret_val;
+}
+
+Ucs_Return_t Ucs_Rm_GetAttachedRoutes (Ucs_Inst_t *self, Ucs_Rm_EndPoint_t * ep_inst,
+ Ucs_Rm_Route_t * ls_found_routes[], uint16_t ls_size)
+{
+ CUcs *self_ = (CUcs*)(void*)self;
+ Ucs_Return_t ret_val = UCS_RET_ERR_PARAM;
+
+ if (self_ != NULL)
+ {
+ ret_val = UCS_RET_ERR_NOT_INITIALIZED;
+ if (self_->init_complete != false)
+ {
+ ret_val = Rtm_GetAttachedRoutes(&self_->rtm, ep_inst, ls_found_routes, ls_size);
+ }
+ }
+
+ return ret_val;
+}
+
+uint16_t Ucs_Rm_GetConnectionLabel(Ucs_Inst_t *self, Ucs_Rm_Route_t *route_ptr)
+{
+ uint16_t ret_value = 0U;
+ CUcs *self_ = (CUcs*)(void*)self;
+
+ if ((self_ != NULL) && (self_->init_complete != false) && (route_ptr != NULL))
+ {
+ ret_value = Rtm_GetConnectionLabel(&self_->rtm, route_ptr);
+ }
+
+ return ret_value;
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Node Scripting Management */
+/*------------------------------------------------------------------------------------------------*/
+Ucs_Return_t Ucs_Ns_Run (Ucs_Inst_t *self, Ucs_Rm_Node_t * node_ptr, Ucs_Ns_ResultCb_t result_fptr)
+{
+ CUcs *self_ = (CUcs*)(void*)self;
+ Ucs_Return_t ret_val = UCS_RET_ERR_PARAM;
+
+ if ((self_ != NULL) && (node_ptr != NULL) && (node_ptr->signature_ptr != NULL))
+ {
+ ret_val = UCS_RET_ERR_NOT_INITIALIZED;
+ if (self_->init_complete != false)
+ {
+ CNodeScriptManagement * nsm_inst = Fac_GetNsm(&self_->factory, node_ptr->signature_ptr->node_address);
+
+ ret_val = UCS_RET_ERR_NOT_AVAILABLE;
+ if (nsm_inst != NULL)
+ {
+ ret_val = Nsm_Run_Pb(nsm_inst, node_ptr, result_fptr);
+ }
+ }
+ }
+
+ return ret_val;
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* GPIO and I2C Peripheral Bus Interfaces */
+/*------------------------------------------------------------------------------------------------*/
+Ucs_Return_t Ucs_Gpio_CreatePort(Ucs_Inst_t *self, uint16_t destination_address, uint8_t index, uint16_t debounce_time, Ucs_Gpio_CreatePortResCb_t result_fptr)
+{
+ CUcs *self_ = (CUcs*)(void*)self;
+ Ucs_Return_t ret_val = UCS_RET_ERR_PARAM;
+
+ if (self_ != NULL)
+ {
+ ret_val = UCS_RET_ERR_NOT_INITIALIZED;
+ if (self_->init_complete != false)
+ {
+ ret_val = Gpio_CreatePort(Fac_GetGpio(&self_->factory, destination_address, self_->init_data.gpio.trigger_event_status_fptr),
+ index,
+ debounce_time,
+ result_fptr);
+ }
+ }
+
+ return ret_val;
+}
+
+Ucs_Return_t Ucs_Gpio_SetPinMode(Ucs_Inst_t *self, uint16_t destination_address, uint16_t gpio_port_handle,
+ uint8_t pin, Ucs_Gpio_PinMode_t mode, Ucs_Gpio_ConfigPinModeResCb_t result_fptr)
+{
+ CUcs *self_ = (CUcs*)(void*)self;
+ Ucs_Return_t ret_val = UCS_RET_ERR_PARAM;
+
+ if (self_ != NULL)
+ {
+ ret_val = UCS_RET_ERR_NOT_INITIALIZED;
+ if (self_->init_complete != false)
+ {
+ ret_val = Gpio_SetPinModeConfig(Fac_GetGpio(&self_->factory, destination_address, self_->init_data.gpio.trigger_event_status_fptr),
+ gpio_port_handle,
+ pin,
+ mode,
+ result_fptr);
+ }
+ }
+
+ return ret_val;
+}
+
+Ucs_Return_t Ucs_Gpio_GetPinMode(Ucs_Inst_t *self, uint16_t destination_address, uint16_t gpio_port_handle, Ucs_Gpio_ConfigPinModeResCb_t result_fptr)
+{
+ CUcs *self_ = (CUcs*)(void*)self;
+ Ucs_Return_t ret_val = UCS_RET_ERR_PARAM;
+
+ if (self_ != NULL)
+ {
+ ret_val = UCS_RET_ERR_NOT_INITIALIZED;
+ if (self_->init_complete != false)
+ {
+ ret_val = Gpio_GetPinModeConfig(Fac_GetGpio(&self_->factory, destination_address, self_->init_data.gpio.trigger_event_status_fptr),
+ gpio_port_handle,
+ result_fptr);
+ }
+ }
+
+ return ret_val;
+}
+
+Ucs_Return_t Ucs_Gpio_WritePort(Ucs_Inst_t *self, uint16_t destination_address, uint16_t gpio_port_handle,
+ uint16_t mask, uint16_t data, Ucs_Gpio_PinStateResCb_t result_fptr)
+{
+ CUcs *self_ = (CUcs*)(void*)self;
+ Ucs_Return_t ret_val = UCS_RET_ERR_PARAM;
+
+ if (self_ != NULL)
+ {
+ ret_val = UCS_RET_ERR_NOT_INITIALIZED;
+ if (self_->init_complete != false)
+ {
+ ret_val = Gpio_SetPinStateConfig(Fac_GetGpio(&self_->factory, destination_address, self_->init_data.gpio.trigger_event_status_fptr),
+ gpio_port_handle,
+ mask,
+ data,
+ result_fptr);
+ }
+ }
+
+ return ret_val;
+}
+
+Ucs_Return_t Ucs_Gpio_ReadPort(Ucs_Inst_t *self, uint16_t destination_address, uint16_t gpio_port_handle, Ucs_Gpio_PinStateResCb_t result_fptr)
+{
+ CUcs *self_ = (CUcs*)(void*)self;
+ Ucs_Return_t ret_val = UCS_RET_ERR_PARAM;
+
+ if (self_ != NULL)
+ {
+ ret_val = UCS_RET_ERR_NOT_INITIALIZED;
+ if (self_->init_complete != false)
+ {
+ ret_val = Gpio_GetPinStateConfig(Fac_GetGpio(&self_->factory, destination_address, self_->init_data.gpio.trigger_event_status_fptr),
+ gpio_port_handle,
+ result_fptr);
+ }
+ }
+
+ return ret_val;
+}
+
+Ucs_Return_t Ucs_I2c_CreatePort(Ucs_Inst_t *self, uint16_t destination_address, uint8_t index, Ucs_I2c_Speed_t speed,
+ uint8_t i2c_int_mask, Ucs_I2c_CreatePortResCb_t result_fptr)
+{
+ CUcs *self_ = (CUcs*)(void*)self;
+ Ucs_Return_t ret_val = UCS_RET_ERR_PARAM;
+
+ if (self_ != NULL)
+ {
+ ret_val = UCS_RET_ERR_NOT_INITIALIZED;
+ if (self_->init_complete != false)
+ {
+ ret_val = I2c_CreatePort(Fac_GetI2c(&self_->factory, destination_address, self_->init_data.i2c.interrupt_status_fptr),
+ index,
+ speed,
+ i2c_int_mask,
+ result_fptr);
+ }
+ }
+
+ return ret_val;
+}
+
+Ucs_Return_t Ucs_I2c_WritePort(Ucs_Inst_t *self, uint16_t destination_address, uint16_t port_handle, Ucs_I2c_TrMode_t mode, uint8_t block_count,
+ uint8_t slave_address, uint16_t timeout, uint8_t data_len, uint8_t * data_ptr,
+ Ucs_I2c_WritePortResCb_t result_fptr)
+{
+ CUcs *self_ = (CUcs*)(void*)self;
+ Ucs_Return_t ret_val = UCS_RET_ERR_PARAM;
+
+ if (self_ != NULL)
+ {
+ ret_val = UCS_RET_ERR_NOT_INITIALIZED;
+ if (self_->init_complete != false)
+ {
+ ret_val = I2c_WritePort(Fac_GetI2c(&self_->factory, destination_address, self_->init_data.i2c.interrupt_status_fptr),
+ port_handle,
+ mode,
+ block_count,
+ slave_address,
+ timeout,
+ data_len,
+ data_ptr,
+ result_fptr);
+ }
+ }
+
+ return ret_val;
+}
+
+Ucs_Return_t Ucs_I2c_ReadPort(Ucs_Inst_t *self, uint16_t destination_address, uint16_t port_handle, uint8_t slave_address, uint8_t data_len,
+ uint16_t timeout, Ucs_I2c_ReadPortResCb_t result_fptr)
+{
+ CUcs *self_ = (CUcs*)(void*)self;
+ Ucs_Return_t ret_val = UCS_RET_ERR_PARAM;
+
+ if (self_ != NULL)
+ {
+ ret_val = UCS_RET_ERR_NOT_INITIALIZED;
+ if (self_->init_complete != false)
+ {
+ ret_val = I2c_ReadPort(Fac_GetI2c(&self_->factory, destination_address, self_->init_data.i2c.interrupt_status_fptr),
+ port_handle,
+ slave_address,
+ data_len,
+ timeout,
+ result_fptr);
+ }
+ }
+
+ return ret_val;
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Components */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Initializes all UCS core components
+ * \param self The instance
+ */
+static void Ucs_InitComponents(CUcs* self)
+{
+ Ucs_InitBaseComponent(self);
+ Ucs_InitFactoryComponent(self);
+ Ucs_InitLocalInicComponent(self);
+ Ucs_InitNetComponent(self);
+ Ucs_InitPmsComponent(self);
+ Ucs_InitAmsComponent(self);
+ Ucs_InitRoutingComponent(self);
+ Ucs_InitAtsClass(self);
+
+ Ucs_InitExcComponent(self);
+ Ucs_InitSysDiagComponent(self);
+ Ucs_InitNodeDiscovery(self);
+ Ucs_InitBackChannelDiagnosis(self);
+ Ucs_InitProgramming(self);
+ Ucs_InitManager(self); /* shall be called as last one due to re-configuration work */
+}
+
+/*! \brief Initializes the factory component
+ * \param self The instance
+ */
+static void Ucs_InitFactoryComponent(CUcs *self)
+{
+ Fac_InitData_t fac_init_data;
+ fac_init_data.base_ptr = &self->general.base;
+ fac_init_data.net_ptr = &self->net.inst;
+ fac_init_data.xrmp_ptr = &self->xrmp;
+ fac_init_data.icm_transceiver = &self->icm_transceiver;
+ fac_init_data.rcm_transceiver = &self->rcm_transceiver;
+ Fac_Ctor(&self->factory, &fac_init_data);
+}
+
+/*! \brief Initializes the the base component
+ * \param self The instance
+ */
+static void Ucs_InitBaseComponent(CUcs *self)
+{
+ Base_InitData_t base_init_data;
+
+ if (self->init_data.general.request_service_fptr != NULL) /* pointer may be NULL for termination */
+ {
+ self->general.request_service_fptr = self->init_data.general.request_service_fptr;
+ Sobs_Ctor(&self->general.service_request_obs, self, &Ucs_OnServiceRequest);
+ base_init_data.scd.service_request_obs_ptr = &self->general.service_request_obs;
+ }
+ else
+ {
+ base_init_data.scd.service_request_obs_ptr = NULL;
+ }
+
+ self->general.get_tick_count_fptr = self->init_data.general.get_tick_count_fptr;
+ Sobs_Ctor(&self->general.get_tick_count_obs, self, &Ucs_OnGetTickCount);
+ base_init_data.tm.get_tick_count_obs_ptr = &self->general.get_tick_count_obs;
+ if (self->init_data.general.set_application_timer_fptr != NULL)
+ {
+ self->general.set_application_timer_fptr = self->init_data.general.set_application_timer_fptr;
+ Sobs_Ctor(&self->general.set_application_timer_obs, self, &Ucs_OnSetApplicationTimer);
+ base_init_data.tm.set_application_timer_obs_ptr = &self->general.set_application_timer_obs;
+ }
+ else
+ {
+ base_init_data.tm.set_application_timer_obs_ptr = NULL;
+ }
+ base_init_data.ucs_inst_id = self->ucs_inst_id;
+ base_init_data.ucs_user_ptr = self->ucs_user_ptr;
+ Base_Ctor(&self->general.base, &base_init_data);
+}
+
+/*! \brief Initializes the port message service
+ * \param self The instance
+ */
+static void Ucs_InitPmsComponent(CUcs *self)
+{
+ CPmFifo * mcm_fifo_ptr = NULL;
+
+ if (self->init_data.ams.enabled == true)
+ {
+ mcm_fifo_ptr = &self->msg.mcm_fifo;
+ }
+
+ Ucs_InitPmsComponentConfig(self);
+ Ucs_InitPmsComponentApp(self);
+
+ Fifos_Ctor(&self->fifos, &self->general.base, &self->pmch, &self->icm_fifo, mcm_fifo_ptr, &self->rcm_fifo);
+ Pmev_Ctor(&self->pme, &self->general.base, &self->fifos); /* initialize event handler */
+}
+
+/*! \brief Initializes the port message service
+ * \param self The instance
+ */
+static void Ucs_InitPmsComponentConfig(CUcs *self)
+{
+ Pmch_InitData_t pmch_init_data;
+ Fifo_InitData_t icm_init;
+ Fifo_Config_t icm_config;
+ Fifo_InitData_t rcm_init;
+ Fifo_Config_t rcm_config;
+
+ /* Initialize port message service */
+ pmch_init_data.ucs_user_ptr = self->ucs_user_ptr;
+ pmch_init_data.tx_release_fptr = &Fifo_TxOnRelease;
+ pmch_init_data.lld_iface = self->init_data.lld;
+ Pmch_Ctor(&self->pmch, &pmch_init_data);
+
+ /* Initialize the ICM channel */
+ icm_init.base_ptr = &self->general.base;
+ icm_init.channel_ptr = &self->pmch;
+ icm_init.rx_cb_fptr = &Trcv_RxOnMsgComplete;
+ icm_init.rx_cb_inst = &self->icm_transceiver;
+ icm_init.tx_encoder_ptr = Enc_GetEncoder(ENC_CONTENT_00);
+ icm_init.rx_encoder_ptr = Enc_GetEncoder(ENC_CONTENT_00);
+ icm_config.fifo_id = PMP_FIFO_ID_ICM;
+ icm_config.tx_wd_timeout = 0U;
+ icm_config.tx_wd_timer_value = 0U;
+ icm_config.rx_ack_timeout = 10U;
+ icm_config.rx_busy_allowed = 0xFU;
+ icm_config.rx_credits = PMCH_FIFO_CREDITS;
+ icm_config.rx_threshold = PMCH_FIFO_THRESHOLD;
+ if (self->init_data.general.inic_watchdog_enabled == false)
+ {
+ icm_config.rx_ack_timeout = 0U;
+ }
+ Fifo_Ctor(&self->icm_fifo, &icm_init, &icm_config);
+
+ /* Initialize the RCM channel */
+ rcm_init.base_ptr = &self->general.base;
+ rcm_init.channel_ptr = &self->pmch;
+ rcm_init.rx_cb_fptr = &Trcv_RxOnMsgComplete;
+ rcm_init.rx_cb_inst = &self->rcm_transceiver;
+ rcm_init.tx_encoder_ptr = Enc_GetEncoder(ENC_CONTENT_00);
+ rcm_init.rx_encoder_ptr = Enc_GetEncoder(ENC_CONTENT_00);
+ rcm_config.fifo_id = PMP_FIFO_ID_RCM;
+ rcm_config.tx_wd_timeout = 10U; /* Watchdog timeout: 1s */
+ rcm_config.tx_wd_timer_value = 600U; /* Watchdog trigger every 600 ms */
+ rcm_config.rx_ack_timeout = 10U; /* Acknowledge timeout: 10 ms */
+ rcm_config.rx_busy_allowed = 0xFU;
+ rcm_config.rx_credits = PMCH_FIFO_CREDITS;
+ rcm_config.rx_threshold = PMCH_FIFO_THRESHOLD;
+ if (self->init_data.general.inic_watchdog_enabled == false)
+ {
+ /* Disable INIC watchdog */
+ rcm_config.tx_wd_timeout = 0U; /* Watchdog timeout: 0 -> infinite */
+ rcm_config.tx_wd_timer_value = 0U; /* Watchdog timer: 0 -> no timer */
+ rcm_config.rx_ack_timeout = 0U; /* Acknowledge timeout: 0 -> infinite */
+ }
+ Fifo_Ctor(&self->rcm_fifo, &rcm_init, &rcm_config);
+#if 0
+ Fifos_Ctor(&self->fifos, &self->general.base, &self->pmch, &self->icm_fifo, NULL/*MCM*/, &self->rcm_fifo);
+ Pmev_Ctor(&self->pme, &self->general.base, &self->fifos); /* initialize event handler */
+#endif
+
+ /* initialize transceivers and set reference to FIFO instance */
+ Trcv_Ctor(&self->icm_transceiver, &self->icm_fifo, MSG_ADDR_EHC_CFG, self->ucs_user_ptr, PMP_FIFO_ID_ICM);
+ Trcv_RxAssignFilter(&self->icm_transceiver, &Ucs_OnRxMsgFilter, self);
+ Trcv_RxAssignReceiver(&self->icm_transceiver, &Inic_OnIcmRx, self->inic.local_inic);
+ Trcv_Ctor(&self->rcm_transceiver, &self->rcm_fifo, MSG_ADDR_EHC_CFG, self->ucs_user_ptr, PMP_FIFO_ID_RCM);
+ /* Assign RX filter and receiver function to the RCM transceiver */
+ Trcv_RxAssignFilter(&self->rcm_transceiver, &Ucs_OnRxMsgFilter, self);
+ Trcv_RxAssignReceiver(&self->rcm_transceiver, &Ucs_OnRxRcm, self);
+}
+
+/*! \brief Initializes the network management component
+ * \param self The instance
+ */
+static void Ucs_InitNetComponent(CUcs *self)
+{
+ Net_InitData_t net_init_data;
+
+ Sobs_Ctor(&self->net.startup_obs, self, &Ucs_NetworkStartupResult);
+ Sobs_Ctor(&self->net.shutdown_obs, self, &Ucs_NetworkShutdownResult);
+ Sobs_Ctor(&self->net.force_na_obs, self, &Ucs_NetworkForceNAResult);
+ Sobs_Ctor(&self->net.frame_counter_obs, self, &Ucs_NetworkFrameCounterResult);
+ net_init_data.base_ptr = &self->general.base;
+ net_init_data.inic_ptr = self->inic.local_inic;
+ Net_Ctor(&self->net.inst, &net_init_data);
+}
+
+/*! \brief Initializes the FBlock INIC
+ * \param self The instance
+ */
+static void Ucs_InitLocalInicComponent(CUcs *self)
+{
+ self->inic.local_inic = Fac_GetInic(&self->factory, UCS_ADDR_LOCAL_INIC);
+ Obs_Ctor(&self->inic.device_status_obs, self, &Ucs_Inic_OnDeviceStatus);
+}
+
+/*! \brief Initializes the Routing components
+ * \param self The instance
+ */
+static void Ucs_InitRoutingComponent(CUcs *self)
+{
+ Epm_InitData_t epm_init;
+ Rtm_InitData_t rtm_init;
+
+ /* Initialize the unique XRM Pool Instance */
+ Xrmp_Ctor(&self->xrmp);
+
+ /* Initialize the EndPoint Management Instance */
+ epm_init.base_ptr = &self->general.base;
+ epm_init.fac_ptr = &self->factory;
+ epm_init.res_debugging_fptr = self->init_data.rm.debug_resource_status_fptr;
+ epm_init.check_unmute_fptr = self->init_data.rm.xrm.check_unmute_fptr;
+ Epm_Ctor (&self->epm, &epm_init);
+
+ /* Initialize the Routes Management Instance */
+ rtm_init.base_ptr = &self->general.base;
+ rtm_init.epm_ptr = &self->epm;
+ rtm_init.net_ptr = &self->net.inst;
+ rtm_init.report_fptr = self->init_data.rm.report_fptr;
+ Rtm_Ctor(&self->rtm, &rtm_init);
+}
+
+/*! \brief Initializes the attach service
+ * \param self The instance
+ */
+static void Ucs_InitAtsClass(CUcs *self)
+{
+ Ats_InitData_t ats_init_data;
+ ats_init_data.base_ptr = &self->general.base;
+ ats_init_data.fifos_ptr = &self->fifos;
+ ats_init_data.inic_ptr = self->inic.local_inic;
+ ats_init_data.pme_ptr = &self->pme;
+ Ats_Ctor(&self->inic.attach, &ats_init_data);
+}
+
+/*! \brief Initializes the FBlock ExtendedNetworkControl API
+ * \param self The instance
+ */
+static void Ucs_InitExcComponent(CUcs *self)
+{
+ /* Create the FBlock ExtendedNetworkControl instance */
+ Exc_Ctor(&self->exc, &self->general.base, &self->rcm_transceiver);
+}
+
+/*! \brief Initializes the SystemDiagnosis component
+ * \param self The instance
+ */
+static void Ucs_InitSysDiagComponent(CUcs *self)
+{
+ /* Create the System Diagnosis instance */
+ SysDiag_Ctor(&self->sys_diag, self->inic.local_inic, &self->general.base, &self->exc);
+}
+
+
+static void Ucs_InitNodeDiscovery(CUcs *self)
+{
+ Nd_InitData_t nd_init_data;
+
+ if (self->init_data.mgr.enabled == false)
+ {
+ nd_init_data.inst_ptr = self;
+ nd_init_data.report_fptr = &Ucs_OnNdReport;
+ nd_init_data.eval_fptr = &Ucs_OnNdEvaluate;
+ }
+ else
+ {
+ nd_init_data.inst_ptr = &self->nobs;
+ nd_init_data.report_fptr = &Nobs_OnNdReport;
+ nd_init_data.eval_fptr = &Nobs_OnNdEvaluate;
+ }
+
+ Nd_Ctor(&self->nd, self->inic.local_inic, &self->general.base, &self->exc, &nd_init_data);
+
+}
+
+static void Ucs_InitBackChannelDiagnosis(CUcs *self)
+{
+ Bcd_Ctor(&self->bcd, self->inic.local_inic, &self->general.base, &self->exc);
+}
+
+static void Ucs_InitProgramming(CUcs *self)
+{
+ Prg_Ctor(&self->prg, self->inic.local_inic, &self->general.base, &self->exc);
+}
+
+
+/*! \brief Initializes the Manager class
+ * \details This function shall be called as the latest initialization function since
+ * it may disable some of the conventional API.
+ * \param self The instance
+ */
+static void Ucs_InitManager(CUcs *self)
+{
+ if (self->init_data.mgr.enabled == true)
+ {
+ Mgr_Ctor(&self->mgr, &self->general.base, self->inic.local_inic, &self->net.inst, &self->nd, self->init_data.mgr.packet_bw);
+ Nobs_Ctor(&self->nobs, &self->general.base, &self->nd, &self->rtm, &self->init_data.mgr);
+ }
+}
+
+
+/*! \brief Callback function which announces the result of the attach process
+ * \param self The instance
+ * \param result_ptr Result of the initialization process. Result must be casted into data type
+ * Ucs_InitResult_t. Possible return values are shown in the table below.
+ * Result Code | Description
+ * ----------------------------- | ----------------------------------------------------
+ * UCS_INIT_RES_SUCCESS | Initialization succeeded
+ * UCS_INIT_RES_ERR_BUF_OVERFLOW | No message buffer available
+ * UCS_INIT_RES_ERR_PMS_INIT | PMS Initialization failed
+ * UCS_INIT_RES_ERR_INIC_VERSION | INIC device version check failed
+ * UCS_INIT_RES_ERR_DEV_ATT_CFG | Device attach failed due to an configuration error
+ * UCS_INIT_RES_ERR_DEV_ATT_PROC | Device attach failed due to a system error
+ * UCS_INIT_RES_ERR_NET_CFG | Network configuration failed
+ * UCS_INIT_RES_ERR_TIMEOUT | Initialization timeout occurred
+ */
+static void Ucs_InitResultCb(void *self, void *result_ptr)
+{
+ CUcs *self_ = (CUcs*)self;
+ Ucs_InitResult_t *result_ptr_ = (Ucs_InitResult_t *)result_ptr;
+
+ TR_INFO((self_->ucs_user_ptr, "[API]", "Ucs_InitResultCb(): Ucs_Init() completed, internal event code: %u", 1U, *result_ptr_));
+ if (*result_ptr_ != UCS_INIT_RES_SUCCESS)
+ {
+ Ucs_StopAppNotification(self_);
+ }
+
+ if (self_->init_result_fptr != NULL)
+ {
+ self_->init_result_fptr(*result_ptr_, self_->ucs_user_ptr);
+ }
+
+ /* Start notification if initialization succeeded */
+ if (*result_ptr_ == UCS_INIT_RES_SUCCESS)
+ {
+ self_->init_complete = true;
+ Ucs_StartAppNotification(self_);
+ }
+}
+
+/*! \brief Callback function which announces the result of Ucs_Stop()
+ * \param self The instance
+ * \param error_code_ptr Reference to the error code
+ */
+static void Ucs_UninitResultCb(void *self, void *error_code_ptr)
+{
+ CUcs *self_ = (CUcs*)self;
+ uint32_t error_code = *((uint32_t *)error_code_ptr);
+ TR_INFO((self_->ucs_user_ptr, "[API]", "Ucs_UninitResultCb(): Ucs_Stop() completed, internal event code: %u", 1U, error_code));
+
+ self_->init_complete = false;
+ Eh_DelObsrvInternalEvent(&self_->general.base.eh, &self_->uninit_result_obs);
+
+ Ucs_StopAppNotification(self_);
+
+ if (self_->uninit_result_fptr != NULL)
+ {
+ Ucs_StdResult_t result;
+
+ result.code = UCS_RES_SUCCESS;
+ result.info_ptr = NULL;
+ result.info_size = 0U;
+
+ if (error_code != EH_E_UNSYNC_COMPLETE)
+ {
+ result.code = UCS_RES_ERR_TIMEOUT;
+ }
+
+ self_->uninit_result_fptr(result, self_->ucs_user_ptr);
+ self_->uninit_result_fptr = NULL;
+ }
+}
+
+/*! \brief Starts the notification after the initialization has succeeded
+ * \param self The instance
+ */
+static void Ucs_StartAppNotification(CUcs *self)
+{
+ self->general.general_error_fptr = self->init_data.general.error_fptr; /* assign general error notification */
+ Sobs_Ctor(&self->general.general_error_obs, self, &Ucs_OnGeneralError);
+ Eh_AddObsrvPublicError(&self->general.base.eh, &self->general.general_error_obs);
+
+ if (self->init_data.network.status.cb_fptr != NULL) /* Start notification of Network Status */
+ {
+ self->net.status_fptr = self->init_data.network.status.cb_fptr;
+ Mobs_Ctor(&self->net.status_obs,
+ self,
+ (uint32_t)self->init_data.network.status.notification_mask,
+ &Ucs_NetworkStatus);
+ Net_AddObserverNetworkStatus(&self->net.inst, &self->net.status_obs);
+ }
+
+ if ((self->init_data.ams.tx.message_freed_fptr != NULL) && (self->msg.ams_tx_alloc_failed != false))
+ {
+ self->msg.ams_tx_alloc_failed = false;
+ self->init_data.ams.tx.message_freed_fptr(self->ucs_user_ptr);
+ }
+
+ if (self->init_data.inic.power_state_fptr != NULL)
+ {
+ self->inic.power_state = Inic_GetDevicePowerState(self->inic.local_inic); /* remember the current value */
+ self->init_data.inic.power_state_fptr(self->inic.power_state, self->ucs_user_ptr);
+ Inic_AddObsvrDeviceStatus(self->inic.local_inic, &self->inic.device_status_obs);
+ }
+
+ if(self->init_data.rm.xrm.most_port_status_fptr != NULL) /* Initialize callback pointer for MOST port status callback */
+ {
+ self->xrm.most_port_status_fptr = self->init_data.rm.xrm.most_port_status_fptr;
+ Obs_Ctor(&self->xrm.most_port_status_obs, self, &Ucs_Most_PortStatusCb);
+ Inic_AddObsrvMostPortStatus(self->inic.local_inic, &self->xrm.most_port_status_obs);
+ }
+}
+
+/*! \brief Stops application events for timer management and event service
+ * \param self The instance
+ */
+static void Ucs_StopAppNotification(CUcs *self)
+{
+ self->general.request_service_fptr = NULL; /* clear service request to avoid any pending events to be called again */
+ Tm_StopService(&self->general.base.tm); /* stop timer service */
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Message Routing */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Callback function to receive RCM Rx messages
+ * \param self The UCS instance
+ * \param tel_ptr The received RCM Rx message object
+ * \return Returns \c true to discard the message and free it to the pool (no-pass).
+ * Otherwise, returns \c false (pass).
+ */
+static void Ucs_OnRxRcm(void *self, Msg_MostTel_t *tel_ptr)
+{
+ CUcs *self_ = (CUcs*)self;
+
+ if (tel_ptr->id.fblock_id == FB_EXC)
+ {
+ Exc_OnRcmRxFilter(&(self_->exc), tel_ptr);
+ }
+ else if (tel_ptr->id.fblock_id == FB_INIC)
+ {
+ if (!Nsm_OnRcmRxFilter(Fac_FindNsm(&self_->factory, tel_ptr->source_addr), tel_ptr))
+ {
+ CInic * inic_ptr = Fac_FindInic(&self_->factory, tel_ptr->source_addr);
+ if (inic_ptr != NULL)
+ {
+ Inic_OnRcmRxFilter(inic_ptr, tel_ptr);
+ }
+ }
+ }
+
+ Trcv_RxReleaseMsg(&self_->rcm_transceiver, tel_ptr); /* free Rx telegram */
+}
+
+/*! \brief Callback function which filters Control Rx messages
+ * \param self The UCS instance
+ * \param tel_ptr The received Rx message object
+ * \return Returns \c true to discard the message and free it to the pool (no-pass).
+ * Otherwise, returns \c false (pass).
+ */
+static bool Ucs_OnRxMsgFilter(void *self, Msg_MostTel_t *tel_ptr)
+{
+ CUcs *self_ = (CUcs*)self;
+ bool ret = false; /* just pass - do not discard message */
+
+ if (self_->rx_filter_fptr != NULL)
+ {
+ ret = self_->rx_filter_fptr(tel_ptr, self_->ucs_user_ptr);
+ }
+
+ if (ret == false)
+ {
+ if ((tel_ptr->id.op_type == UCS_OP_ERROR) || (tel_ptr->id.op_type == UCS_OP_ERRORACK))
+ {
+ if (self_->init_data.general.debug_error_msg_fptr != NULL)
+ {
+ self_->init_data.general.debug_error_msg_fptr(tel_ptr, self_->ucs_user_ptr);
+ }
+ }
+ }
+ else
+ {
+ TR_INFO((self_->ucs_user_ptr, "[API]", "Ucs_OnRxMsgFilter(): message discarded by unit test", 0U));
+ }
+
+ return ret;
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal Observers / Basic API */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Callback function which is invoked to request the current tick count value
+ * \param self The instance
+ * \param tick_count_value_ptr Reference to the requested tick count value. The pointer must
+ * be casted into data type uint16_t.
+ */
+static void Ucs_OnGetTickCount(void *self, void *tick_count_value_ptr)
+{
+ CUcs *self_ = (CUcs*)self;
+ *((uint16_t *)tick_count_value_ptr) = self_->general.get_tick_count_fptr(self_->ucs_user_ptr);
+}
+
+/*! \brief Callback function which is invoked to start the application timer when the UNICENS service
+ * is implemented event driven
+ * \param self The instance
+ * \param new_time_value_ptr Reference to the new timer value. The pointer must be casted into
+ * data type uint16_t.
+ */
+static void Ucs_OnSetApplicationTimer(void *self, void *new_time_value_ptr)
+{
+ CUcs *self_ = (CUcs*)self;
+ TR_INFO((self_->ucs_user_ptr, "[API]", "Ucs_OnSetApplicationTimer(%d)", 1U, *((uint16_t *)new_time_value_ptr)));
+ self_->general.set_application_timer_fptr(*((uint16_t *)new_time_value_ptr), self_->ucs_user_ptr);
+}
+
+/*! \brief Callback function which is invoked to announce a request for service
+ * \param self The instance
+ * \param result_ptr Result pointer (not used)
+ */
+static void Ucs_OnServiceRequest(void *self, void *result_ptr)
+{
+ CUcs *self_ = (CUcs*)self;
+
+ TR_ASSERT(self_->ucs_user_ptr, "[API]", self_->init_data.general.request_service_fptr != NULL);
+ self_->general.request_service_fptr(self_->ucs_user_ptr); /* Call application callback */
+ MISC_UNUSED(result_ptr);
+}
+
+/*! \brief Callback function which announces a general error
+ * \param self The instance
+ * \param result_ptr Reference to the result. Must be casted into Eh_PublicErrorData_t.
+ */
+static void Ucs_OnGeneralError(void *self, void *result_ptr)
+{
+ CUcs *self_ = (CUcs*)self;
+ Ucs_Error_t error_code = *((Ucs_Error_t *)result_ptr);
+
+ self_->init_complete = false; /* General error occurred -> Lock UCS API */
+ Ucs_StopAppNotification(self_);
+
+ if (self_->general.general_error_fptr != NULL) /* callback is not assigned during initialization */
+ {
+ self_->general.general_error_fptr(error_code, self_->ucs_user_ptr);
+ }
+}
+
+/*! \brief Observer callback for Inic_MostPortStatus_Status/Error(). Casts the result and
+ * invokes the application result callback.
+ * \param self Instance pointer
+ * \param result_ptr Reference to result
+ */
+static void Ucs_Most_PortStatusCb(void *self, void *result_ptr)
+{
+ CUcs *self_ = (CUcs*)self;
+ if(self_->xrm.most_port_status_fptr != NULL)
+ {
+ Inic_MostPortStatus_t status = *((Inic_MostPortStatus_t *)result_ptr);
+ self_->xrm.most_port_status_fptr(status.most_port_handle,
+ status.availability,
+ status.avail_info,
+ status.freestreaming_bw,
+ self_->ucs_user_ptr);
+ }
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* INIC */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Observer callback function for INICs device status
+ * \param self The instance
+ * \param data_ptr Pointer to structure Inic_DeviceStatus_t
+ */
+static void Ucs_Inic_OnDeviceStatus(void *self, void *data_ptr)
+{
+ CUcs *self_ = (CUcs*)self;
+ Ucs_Inic_PowerState_t pws = ((Inic_DeviceStatus_t *)data_ptr)->power_state;
+
+ if ((self_->init_data.inic.power_state_fptr != NULL) && (pws != self_->inic.power_state))
+ {
+ self_->init_data.inic.power_state_fptr(pws, self_->ucs_user_ptr);
+ }
+
+ self_->inic.power_state = pws;
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Network Management */
+/*------------------------------------------------------------------------------------------------*/
+Ucs_Return_t Ucs_Network_Startup(Ucs_Inst_t* self, uint16_t packet_bw, uint16_t forced_na_timeout,
+ Ucs_StdResultCb_t result_fptr)
+{
+ CUcs *self_ = (CUcs*)(void*)self;
+
+ Ucs_Return_t ret_val = UCS_RET_ERR_NOT_INITIALIZED;
+ if (self_->init_complete != false)
+ {
+ ret_val = Inic_NwStartup(self_->inic.local_inic, forced_na_timeout,
+ packet_bw, &self_->net.startup_obs);
+ if (ret_val == UCS_RET_SUCCESS)
+ {
+ self_->net.startup_fptr = result_fptr;
+ }
+ }
+ return ret_val;
+}
+
+/*! \brief Callback function which announces the result of Ucs_Network_Startup()
+ * \param self The instance
+ * \param result_ptr Reference to result. Must be casted into Inic_StdResult_t.
+ */
+static void Ucs_NetworkStartupResult(void *self, void *result_ptr)
+{
+ CUcs *self_ = (CUcs*)self;
+ Inic_StdResult_t *result_ptr_ = (Inic_StdResult_t *)result_ptr;
+
+ if (self_->net.startup_fptr != NULL)
+ {
+ self_->net.startup_fptr(result_ptr_->result, self_->ucs_user_ptr);
+ }
+}
+
+Ucs_Return_t Ucs_Network_Shutdown(Ucs_Inst_t *self, Ucs_StdResultCb_t result_fptr)
+{
+ CUcs *self_ = (CUcs*)(void*)self;
+ Ucs_Return_t ret_val = UCS_RET_ERR_NOT_INITIALIZED;
+ if (self_->init_complete != false)
+ {
+ ret_val = Inic_NwShutdown(self_->inic.local_inic, &self_->net.shutdown_obs);
+ if (ret_val == UCS_RET_SUCCESS)
+ {
+ self_->net.shutdown_fptr = result_fptr;
+ }
+ }
+ return ret_val;
+}
+
+/*! \brief Callback function which announces the result of Ucs_Network_Shutdown()
+ * \param self The instance
+ * \param result_ptr Reference to result. Must be casted into Inic_StdResult_t.
+ */
+static void Ucs_NetworkShutdownResult(void *self, void *result_ptr)
+{
+ CUcs *self_ = (CUcs*)self;
+ Inic_StdResult_t *result_ptr_ = (Inic_StdResult_t *)result_ptr;
+
+ if (self_->net.shutdown_fptr != NULL)
+ {
+ self_->net.shutdown_fptr(result_ptr_->result, self_->ucs_user_ptr);
+ }
+}
+
+Ucs_Return_t Ucs_Network_ForceNotAvailable(Ucs_Inst_t *self, bool force, Ucs_StdResultCb_t result_fptr)
+{
+ CUcs *self_ = (CUcs*)(void*)self;
+ Ucs_Return_t ret_val = UCS_RET_ERR_NOT_INITIALIZED;
+ if (self_->init_complete != false)
+ {
+ ret_val = Inic_NwForceNotAvailable(self_->inic.local_inic, force, &self_->net.force_na_obs);
+ if (ret_val == UCS_RET_SUCCESS)
+ {
+ self_->net.force_na_fptr = result_fptr;
+ }
+ }
+ return ret_val;
+}
+
+/*! \brief Callback function which announces the result of Network_ForceNotAvailable()
+ * \param self The instance
+ * \param result_ptr Reference to result. Must be casted into Inic_StdResult_t.
+ */
+static void Ucs_NetworkForceNAResult(void *self, void *result_ptr)
+{
+ CUcs *self_ = (CUcs*)self;
+ Inic_StdResult_t *result_ptr_ = (Inic_StdResult_t *)result_ptr;
+
+ if (self_->net.force_na_fptr != NULL)
+ {
+ self_->net.force_na_fptr(result_ptr_->result, self_->ucs_user_ptr);
+ }
+}
+
+Ucs_Return_t Ucs_Network_GetFrameCounter(Ucs_Inst_t *self, uint32_t reference, Ucs_Network_FrameCounterCb_t result_fptr)
+{
+ CUcs *self_ = (CUcs*)(void*)self;
+ Ucs_Return_t ret_val = UCS_RET_ERR_NOT_INITIALIZED;
+ if (self_->init_complete != false)
+ {
+ ret_val = Inic_NwFrameCounter_Get(self_->inic.local_inic, reference, &self_->net.frame_counter_obs);
+ if (ret_val == UCS_RET_SUCCESS)
+ {
+ self_->net.frame_counter_fptr = result_fptr;
+ }
+ }
+ return ret_val;
+}
+
+
+/*! \brief Callback function which announces the result of Ucs_Network_GetFrameCounter()
+ * \param self The instance
+ * \param result_ptr Reference to result. Must be casted into Inic_StdResult_t and data_info
+ * must be casted into Inic_FrameCounterStatus_t.
+ */
+static void Ucs_NetworkFrameCounterResult(void *self, void *result_ptr)
+{
+ CUcs *self_ = (CUcs*)self;
+
+ if (self_->net.frame_counter_fptr != NULL)
+ {
+ Inic_StdResult_t *result_ptr_ = (Inic_StdResult_t *)result_ptr;
+ uint32_t reference;
+ uint32_t frame_counter;
+ uint8_t lock;
+
+ if (result_ptr_->data_info != NULL)
+ {
+ Inic_FrameCounterStatus_t *frame_counter_result_data_ptr = (Inic_FrameCounterStatus_t *)result_ptr_->data_info;
+ reference = frame_counter_result_data_ptr->reference;
+ frame_counter = frame_counter_result_data_ptr->frame_counter;
+ lock = frame_counter_result_data_ptr->lock;
+ }
+ else
+ {
+ reference = 0U;
+ frame_counter = 0U;
+ lock = 0U;
+ }
+
+ self_->net.frame_counter_fptr(reference, frame_counter, lock, result_ptr_->result, self_->ucs_user_ptr);
+ }
+}
+
+/*! \brief Observer callback which monitors the network status
+ * \param self The instance
+ * \param result_ptr Reference to result. Must be casted into Net_NetworkStatusParam_t.
+ */
+static void Ucs_NetworkStatus(void *self, void *result_ptr)
+{
+ CUcs *self_ = (CUcs*)self;
+ Net_NetworkStatusParam_t *result_ptr_ = (Net_NetworkStatusParam_t *)result_ptr;
+
+ if (self_->net.status_fptr != NULL)
+ {
+ self_->net.status_fptr( result_ptr_->change_mask,
+ result_ptr_->events,
+ result_ptr_->availability,
+ result_ptr_->avail_info,
+ result_ptr_->avail_trans_cause,
+ result_ptr_->node_address,
+ result_ptr_->node_position,
+ result_ptr_->max_position,
+ result_ptr_->packet_bw,
+ self_->ucs_user_ptr);
+ }
+}
+
+uint8_t Ucs_Network_GetNodesCount(Ucs_Inst_t *self)
+{
+ CUcs *self_ = (CUcs*)(void*)self;
+ return Inic_GetNumberOfNodes(self_->inic.local_inic);
+}
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Node Discovery */
+/*------------------------------------------------------------------------------------------------*/
+Ucs_Return_t Ucs_Nd_Start(Ucs_Inst_t* self)
+{
+ CUcs *self_ = (CUcs*)(void*)self;
+ Ucs_Return_t ret_val = UCS_RET_ERR_NOT_INITIALIZED;
+
+ if (self_->init_complete != false)
+ {
+ ret_val = Nd_Start(&self_->nd);
+ }
+ return ret_val;
+}
+
+
+Ucs_Return_t Ucs_Nd_Stop(Ucs_Inst_t* self)
+{
+ CUcs *self_ = (CUcs*)(void*)self;
+ Ucs_Return_t ret_val = UCS_RET_ERR_NOT_INITIALIZED;
+
+ if (self_->init_complete != false)
+ {
+ ret_val = Nd_Stop(&self_->nd);
+ }
+ return ret_val;
+}
+
+
+Ucs_Return_t Ucs_Nd_InitAll(Ucs_Inst_t* self)
+{
+ CUcs *self_ = (CUcs*)(void*)self;
+ Ucs_Return_t ret_val = UCS_RET_ERR_NOT_INITIALIZED;
+
+ if (self_->init_complete != false)
+ {
+ Nd_InitAll(&self_->nd);
+ ret_val = UCS_RET_SUCCESS;
+ }
+ return ret_val;
+
+}
+
+/*! \brief Callback function to proxy the user callback for node evaluation
+ * \param self The instance
+ * \param signature_ptr Reference to the node signature
+ * \return The evaluation return value which defines how to proceed with the node.
+ */
+static Ucs_Nd_CheckResult_t Ucs_OnNdEvaluate(void *self, Ucs_Signature_t *signature_ptr)
+{
+ CUcs *self_ = (CUcs*)(void*)self;
+ Ucs_Nd_CheckResult_t ret_val = UCS_ND_CHK_UNKNOWN;
+
+ if (self_->init_data.nd.eval_fptr != NULL)
+ {
+ ret_val = self_->init_data.nd.eval_fptr(signature_ptr, self_->ucs_user_ptr);
+ }
+
+ return ret_val;
+}
+
+/*! \brief Callback function to proxy the user callback for node evaluation
+ * \param self The instance
+ * \param code The report code
+ * \param signature_ptr Reference to the node signature or NULL if no signature applies.
+ */
+static void Ucs_OnNdReport(void *self, Ucs_Nd_ResCode_t code, Ucs_Signature_t *signature_ptr)
+{
+ CUcs *self_ = (CUcs*)(void*)self;
+
+ if (self_->init_data.nd.report_fptr != NULL)
+ {
+ self_->init_data.nd.report_fptr(code, signature_ptr, self_->ucs_user_ptr);
+ }
+}
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* BackChannel Diagnosis */
+/*------------------------------------------------------------------------------------------------*/
+Ucs_Return_t Ucs_Bcd_Start(Ucs_Inst_t* self, Ucs_Bcd_ReportCb_t report_fptr)
+{
+ CUcs *self_ = (CUcs*)(void*)self;
+ Ucs_Return_t ret_val = UCS_RET_ERR_NOT_INITIALIZED;
+
+ if (report_fptr == NULL)
+ {
+ ret_val = UCS_RET_ERR_PARAM;
+ }
+ else if (self_->init_complete != false)
+ {
+ Bcd_Start(&self_->bcd, report_fptr);
+ ret_val = UCS_RET_SUCCESS;
+ }
+ return ret_val;
+}
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Programming service */
+/*------------------------------------------------------------------------------------------------*/
+Ucs_Return_t Ucs_Prog_Start(Ucs_Inst_t *self,
+ uint16_t node_id,
+ Ucs_Signature_t *signature,
+ Ucs_Prg_SessionType_t session_type,
+ Ucs_Prg_Command_t* command_list,
+ Ucs_Prg_ReportCb_t result_fptr)
+{
+ CUcs *self_ = (CUcs*)(void*)self;
+ Ucs_Return_t ret_val = UCS_RET_ERR_NOT_INITIALIZED;
+
+ if (result_fptr == NULL)
+ {
+ ret_val = UCS_RET_ERR_PARAM;
+ }
+ else if (self_->init_complete != false)
+ {
+ Prg_Start(&self_->prg, node_id, signature, session_type, command_list, result_fptr);
+ ret_val = UCS_RET_SUCCESS;
+ }
+
+ return ret_val;
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Message Handling */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Initializes the port message service for application interface (MCM)
+ * \param self The instance
+ */
+static void Ucs_InitPmsComponentApp(CUcs *self)
+{
+ Fifo_InitData_t mcm_init;
+ Fifo_Config_t mcm_config;
+
+ /* Initialize the MCM channel */
+ mcm_init.base_ptr = &self->general.base;
+ mcm_init.channel_ptr = &self->pmch;
+ mcm_init.rx_cb_fptr = &Trcv_RxOnMsgComplete;
+ mcm_init.rx_cb_inst = &self->msg.mcm_transceiver;
+ mcm_init.tx_encoder_ptr = Enc_GetEncoder(ENC_CONTENT_00);
+ mcm_init.rx_encoder_ptr = Enc_GetEncoder(ENC_CONTENT_00);
+
+ /* Enable INIC watchdog */
+ mcm_config.fifo_id = PMP_FIFO_ID_MCM;
+ mcm_config.tx_wd_timeout = 10U; /* Watchdog timeout: 1s */
+ mcm_config.tx_wd_timer_value = 600U; /* Watchdog trigger every 600 ms */
+ mcm_config.rx_ack_timeout = 10U; /* Acknowledge timeout: 10 ms */
+ mcm_config.rx_busy_allowed = 0xFU;
+ mcm_config.rx_credits = PMCH_MCM_CREDITS;
+ mcm_config.rx_threshold = PMCH_MCM_THRESHOLD;
+ if (self->init_data.general.inic_watchdog_enabled == false)
+ {
+ /* Disable INIC watchdog */
+ mcm_config.tx_wd_timeout = 0U; /* Watchdog timeout: 0 -> infinite */
+ mcm_config.tx_wd_timer_value = 0U; /* Watchdog timer: 0 -> no timer */
+ mcm_config.rx_ack_timeout = 0U; /* Acknowledge timeout: 0 -> infinite */
+ }
+ Fifo_Ctor(&self->msg.mcm_fifo,&mcm_init, &mcm_config);
+#if 0
+ Fifos_Ctor(&self->fifos, &self->general.base, &self->pmch, NULL, &self->msg.mcm_fifo, NULL);
+ Pmev_Ctor(&self->pme, &self->general.base, &self->fifos); /* initialize event handler */
+#endif
+
+ /* initialize transceivers and set reference to FIFO instance */
+ Trcv_Ctor(&self->msg.mcm_transceiver, &self->msg.mcm_fifo, MSG_ADDR_EHC_APP, self->ucs_user_ptr, PMP_FIFO_ID_MCM);
+ Trcv_RxAssignFilter(&self->msg.mcm_transceiver, &Ucs_McmRx_FilterCallback, self);
+}
+
+static void Ucs_InitAmsComponent(CUcs *self)
+{
+ Smm_Ctor(&self->msg.smm, self->ucs_user_ptr);
+ (void)Smm_LoadPlugin(&self->msg.smm, &self->msg.ams_allocator, SMM_SIZE_RX_MSG);
+
+ TR_ASSERT(self->ucs_user_ptr, "[API]", (self->msg.ams_allocator.alloc_fptr != NULL));
+ TR_ASSERT(self->ucs_user_ptr, "[API]", (self->msg.ams_allocator.free_fptr != NULL));
+
+ Amsp_Ctor(&self->msg.ams_pool, &self->msg.ams_allocator, self->ucs_user_ptr);
+ Ams_Ctor(&self->msg.ams, &self->general.base, &self->msg.mcm_transceiver, NULL, &self->msg.ams_pool,
+ SMM_SIZE_RX_MSG);
+ Ams_TxSetDefaultRetries(&self->msg.ams, self->init_data.ams.tx.default_llrbc);
+
+ Amd_Ctor(&self->msg.amd, &self->general.base, &self->msg.ams);
+ Amd_AssignReceiver(&self->msg.amd, &Ucs_AmsRx_Callback, self);
+ /* Amd_RxAssignModificator(&self->amd, &Mnsa_AmdRx_Modificator, self); */
+
+ self->msg.ams_tx_alloc_failed = false;
+ Obs_Ctor(&self->msg.ams_tx_freed_obs, self, &Ucs_AmsTx_FreedCallback);
+ if (self->init_data.ams.tx.message_freed_fptr != NULL)
+ {
+ Ams_TxAssignMsgFreedObs(&self->msg.ams, &self->msg.ams_tx_freed_obs);
+ }
+
+ Cmd_Ctor(&self->msg.cmd, &self->general.base);
+}
+
+extern Ucs_AmsTx_Msg_t* Ucs_AmsTx_AllocMsg(Ucs_Inst_t *self, uint16_t data_size)
+{
+ CUcs *self_ = (CUcs*)(void*)self;
+ Ucs_AmsTx_Msg_t *ret_ptr = NULL;
+
+ if ((self_->init_complete != false) && (self_->init_data.ams.enabled == true))
+ {
+ ret_ptr = Ams_TxGetMsg(&self_->msg.ams, data_size);
+ }
+
+ self_->msg.ams_tx_alloc_failed = (ret_ptr == NULL) ? true : false;
+ return ret_ptr;
+}
+
+extern Ucs_Return_t Ucs_AmsTx_SendMsg(Ucs_Inst_t *self, Ucs_AmsTx_Msg_t *msg_ptr, Ucs_AmsTx_CompleteCb_t tx_complete_fptr)
+{
+ CUcs *self_ = (CUcs*)(void*)self;
+ Ucs_Return_t ret_val = UCS_RET_ERR_NOT_INITIALIZED;
+
+ if ((self_->init_complete != false) && (self_->init_data.ams.enabled == true))
+ {
+ ret_val = Ams_TxSendMsg(&self_->msg.ams, msg_ptr, NULL, tx_complete_fptr, self_->ucs_user_ptr);
+ }
+
+ return ret_val;
+}
+
+extern void Ucs_AmsTx_FreeUnusedMsg(Ucs_Inst_t *self, Ucs_AmsTx_Msg_t *msg_ptr)
+{
+ CUcs *self_ = (CUcs*)(void*)self;
+
+ if (msg_ptr != NULL)
+ {
+ Ams_TxFreeUnusedMsg(&self_->msg.ams, msg_ptr);
+ }
+}
+
+extern Ucs_AmsRx_Msg_t* Ucs_AmsRx_PeekMsg(Ucs_Inst_t *self)
+{
+ CUcs *self_ = (CUcs*)(void*)self;
+ Ucs_AmsRx_Msg_t *ret = NULL;
+
+ if ((self_->init_complete != false) && (self_->init_data.ams.enabled == true))
+ {
+ ret = Amd_RxPeekMsg(&self_->msg.amd);
+ }
+
+ return ret;
+}
+
+extern void Ucs_AmsRx_ReleaseMsg(Ucs_Inst_t *self)
+{
+ CUcs *self_ = (CUcs*)(void*)self;
+
+ if ((self_->init_complete != false) && (self_->init_data.ams.enabled == true))
+ {
+ Amd_RxReleaseMsg(&self_->msg.amd);
+ }
+}
+
+extern uint16_t Ucs_AmsRx_GetMsgCnt(Ucs_Inst_t *self)
+{
+ CUcs *self_ = (CUcs*)(void*)self;
+ uint16_t ret = 0U;
+
+ if ((self_->init_complete != false) && (self_->init_data.ams.enabled == true))
+ {
+ ret = Amd_RxGetMsgCnt(&self_->msg.amd);
+ }
+ return ret;
+}
+
+/*! \brief Callback function which announces that a new application message
+ * is added to the Rx queue
+ * \param self The instance
+ */
+static void Ucs_AmsRx_Callback(void *self)
+{
+ CUcs *self_ = (CUcs*)self;
+
+ if (self_->init_data.ams.rx.message_received_fptr != NULL)
+ {
+ self_->init_data.ams.rx.message_received_fptr(self_->ucs_user_ptr);
+ }
+}
+
+/*! \brief Callback function which announces that the AMS Tx Pool provides again a Tx message object
+ * after a prior allocation has failed.
+ * \param self The instance
+ * \param data_ptr Not used (always \c NULL)
+ */
+static void Ucs_AmsTx_FreedCallback(void *self, void *data_ptr)
+{
+ CUcs *self_ = (CUcs*)self;
+ MISC_UNUSED(data_ptr);
+
+ if ((self_->msg.ams_tx_alloc_failed != false) && (self_->init_complete != false))
+ {
+ self_->msg.ams_tx_alloc_failed = false;
+ self_->init_data.ams.tx.message_freed_fptr(self_->ucs_user_ptr);
+ }
+}
+
+/*! \brief Callback function which filters MCM Rx messages
+ * \param self The instance
+ * \param tel_ptr The received Rx message object
+ * \return Returns \c true to discard the message and free it to the pool (no-pass).
+ * Otherwise, returns \c false (pass).
+ */
+static bool Ucs_McmRx_FilterCallback(void *self, Msg_MostTel_t *tel_ptr)
+{
+ CUcs *self_ = (CUcs*)self;
+ bool ret = false; /* default: pass the message */
+
+ if ((tel_ptr->id.fblock_id != MSG_DEF_FBLOCK_ID) || (tel_ptr->id.op_type != MSG_DEF_OP_TYPE) ||
+ ((tel_ptr->id.function_id & (uint16_t)0x000FU) != MSG_DEF_FUNC_ID_LSN))
+ {
+ TR_INFO((self_->ucs_user_ptr, "[API]", "Ucs_McmRx_FilterCallback(): discarding Rx message with signature %02X.%02X.%03X.%X ", 4U, tel_ptr->id.fblock_id, tel_ptr->id.instance_id, tel_ptr->id.function_id, tel_ptr->id.op_type));
+ ret = true;
+ }
+
+ MISC_UNUSED(self_);
+
+ return ret;
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Message decoding */
+/*------------------------------------------------------------------------------------------------*/
+Ucs_Cmd_Return_t Ucs_Cmd_AddMsgIdTable(Ucs_Inst_t *self, Ucs_Cmd_MsgId_t *msg_id_tab_ptr)
+{
+ Ucs_Cmd_Return_t ret_val;
+ CUcs *self_ = (CUcs*)(void*)self;
+
+ if (msg_id_tab_ptr != NULL)
+ {
+ ret_val = Cmd_AddMsgIdTable(&(self_->msg.cmd), msg_id_tab_ptr);
+ }
+ else
+ {
+ ret_val = UCS_CMD_RET_ERR_NULL_PTR;
+ }
+
+ return ret_val;
+}
+
+
+Ucs_Cmd_Return_t Ucs_Cmd_RemoveMsgIdTable(Ucs_Inst_t *self)
+{
+ Ucs_Cmd_Return_t ret_val;
+ CUcs *self_ = (CUcs*)(void*)self;
+
+ ret_val = Cmd_RemoveMsgIdTable(&(self_->msg.cmd));
+
+ return ret_val;
+}
+
+
+Ucs_Cmd_Return_t Ucs_Cmd_DecodeMsg(Ucs_Inst_t *self, Ucs_AmsRx_Msg_t *msg_rx_ptr)
+{
+ Ucs_Cmd_Return_t ret_val;
+ CUcs *self_ = (CUcs*)(void*)self;
+
+ if(msg_rx_ptr != NULL)
+ {
+ ret_val = Cmd_DecodeMsg(&(self_->msg.cmd), msg_rx_ptr);
+ }
+ else
+ {
+ ret_val = UCS_CMD_RET_ERR_NULL_PTR;
+ }
+
+ return ret_val;
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Unit tests only */
+/*------------------------------------------------------------------------------------------------*/
+extern void Ucs_AssignRxFilter(Ucs_Inst_t *self, Ucs_RxFilterCb_t callback_fptr)
+{
+ CUcs *self_ = (CUcs*)(void*)self;
+ self_->rx_filter_fptr = callback_fptr;
+}
+
+
+/*!
+ * @}
+ * \endcond
+ */
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_cmd.c b/ucs2-lib/src/ucs_cmd.c
new file mode 100644
index 0000000..4865b88
--- /dev/null
+++ b/ucs2-lib/src/ucs_cmd.c
@@ -0,0 +1,191 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of the Command Interpreter.
+ *
+ * \cond UCS_INTERNAL_DOC
+ *
+ * \addtogroup G_UCS_CMD_INT
+ * @{
+ */
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_cmd.h"
+#include "ucs_misc.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal prototypes */
+/*------------------------------------------------------------------------------------------------*/
+
+
+static Ucs_Cmd_Return_t Cmd_SearchMsgId(Ucs_Cmd_MsgId_t msg_id_tab[], uint16_t *index_ptr,
+ uint16_t message_id);
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation */
+/*------------------------------------------------------------------------------------------------*/
+void Cmd_Ctor(CCmd *self, CBase *base_ptr)
+{
+ MISC_MEM_SET((void *)self, 0, sizeof(*self)); /* reset members to "0" */
+
+ self->msg_id_tab_ptr = NULL;
+ self->ucs_user_ptr = base_ptr->ucs_user_ptr;
+}
+
+
+/*! \brief Add a MessageId Table to the Command Interpreter.
+ * \param self Instance pointer
+ * \param msg_id_tab_ptr Reference to a MessageId Table
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * ------------------------------- | ------------------------------------
+ * UCS_CMD_RET_SUCCESS | MessageId Table was successfully added
+ * UCS_CMD_RET_ERR_ALREADY_ENTERED | MessageId Table already added
+ */
+Ucs_Cmd_Return_t Cmd_AddMsgIdTable(CCmd *self, Ucs_Cmd_MsgId_t *msg_id_tab_ptr)
+{
+ Ucs_Cmd_Return_t ret_val = UCS_CMD_RET_SUCCESS;
+
+
+ if (self->msg_id_tab_ptr != NULL)
+ {
+ ret_val = UCS_CMD_RET_ERR_ALREADY_ENTERED;
+ }
+ else
+ {
+ self->msg_id_tab_ptr = msg_id_tab_ptr;
+ }
+
+ return ret_val;
+}
+
+/*! \brief Remove an MessageId Table from the Command Interpreter.
+ * \param self Instance pointer of Cmd
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * ---------------------------- | ------------------------------------
+ * UCS_CMD_RET_SUCCESS | MessageId Table was successfully removed
+ */
+Ucs_Cmd_Return_t Cmd_RemoveMsgIdTable(CCmd *self)
+{
+ Ucs_Cmd_Return_t ret_val = UCS_CMD_RET_SUCCESS;
+
+ self->msg_id_tab_ptr = NULL;
+
+ return ret_val;
+}
+
+
+/*! \brief Decode an MCM message
+ * \param self Instance pointer
+ * \param msg_rx_ptr Pointer to the message to decode
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * -------------------------------- | ------------------------------------
+ * UCS_CMD_RET_SUCCESS | decoding was successful
+ * UCS_CMD_RET_ERR_MSGID_NOTAVAIL | MessageId not found
+ * UCS_CMD_RET_ERR_TX_BUSY | no Tx Buffer available
+ * UCS_CMD_RET_ERR_APPL | error happened in handler function
+ * UCS_CMD_RET_ERR_NULL_PTR | No MessageId Table available
+ */
+Ucs_Cmd_Return_t Cmd_DecodeMsg(CCmd *self, Ucs_AmsRx_Msg_t *msg_rx_ptr)
+{
+ Ucs_Cmd_Return_t result = UCS_CMD_RET_SUCCESS;
+ uint16_t index;
+
+ result = Cmd_SearchMsgId(self->msg_id_tab_ptr, &index, msg_rx_ptr->msg_id);
+
+ if (result == UCS_CMD_RET_SUCCESS)
+ {
+ /* call handler function */
+ result = (Ucs_Cmd_Return_t)(self->msg_id_tab_ptr[index].handler_function_ptr(msg_rx_ptr, self->ucs_user_ptr));
+ }
+
+ return result;
+}
+
+
+/*! \brief Search in a MessageId Table for matching MessageId
+ * \details Function expects that the MessageId Table ends with a termination entry
+ * (handler_function_ptr == NULL). If this entry is not present, the search may end in an
+ * endless loop.
+ * \param msg_id_tab MessageId Table
+ * \param index_ptr pointer to the matching element
+ * \param message_id MessageId
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * ------------------------------- | ------------------------------------
+ * UCS_CMD_RET_SUCCESS | decoding was successful
+ * UCS_CMD_RET_ERR_MSGID_NOTAVAIL | MessageId not found
+ * UCS_CMD_RET_ERR_NULL_PTR | No MessageId Table available
+ */
+static Ucs_Cmd_Return_t Cmd_SearchMsgId(Ucs_Cmd_MsgId_t msg_id_tab[], uint16_t *index_ptr,
+ uint16_t message_id)
+{
+ Ucs_Cmd_Return_t ret_val = UCS_CMD_RET_SUCCESS;
+ uint16_t i = 0U;
+
+ if (msg_id_tab == NULL)
+ {
+ ret_val = UCS_CMD_RET_ERR_NULL_PTR;
+ }
+ else
+ {
+ while (msg_id_tab[i].handler_function_ptr != NULL) /* last entry */
+ {
+ if (msg_id_tab[i].msg_id != message_id)
+ {
+ ++i; /* goto next list element */
+ }
+ else
+ {
+ *index_ptr = i;
+ break;
+ }
+ }
+
+ if (msg_id_tab[i].handler_function_ptr == NULL) /* no match found */
+ {
+ ret_val = UCS_CMD_RET_ERR_MSGID_NOTAVAIL;
+ }
+ }
+ return ret_val;
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+
+
+
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_dec.c b/ucs2-lib/src/ucs_dec.c
new file mode 100644
index 0000000..b8aef2f
--- /dev/null
+++ b/ucs2-lib/src/ucs_dec.c
@@ -0,0 +1,131 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of the Command Interpreter Module.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_DEC_INT
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_dec.h"
+#include "ucs_misc.h"
+#include "ucs_ret_pb.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Search in a FktOp table for matching FktID and OPType. This function is used for
+ * incoming ICM messages.
+ * \param list FktOp table
+ * \param index_ptr Reference to array index of the matching array element
+ * \param function_id FktID
+ * \param op_type OPType
+ * \return DEC_RET_SUCCESS Decoding was successful
+ * DEC_RET_FKTID_NOT_FOUND FktID/OPType not found
+ */
+Dec_Return_t Dec_SearchFktOpIcm(Dec_FktOpIcm_t const list[], uint16_t *index_ptr,
+ uint16_t function_id, Ucs_OpType_t op_type)
+{
+ uint16_t fktop;
+ uint16_t i = 0U;
+ Dec_Return_t ret_val = DEC_RET_FKTID_NOT_FOUND;
+ bool loop = true;
+
+ fktop = DEC_FKTOP(function_id, op_type);
+ *index_ptr = 0U;
+
+ while ((list[i].handler_function_ptr != NULL) && (loop != false))
+ {
+ if(list[i].fkt_op == fktop)
+ {
+ ret_val = DEC_RET_SUCCESS;
+ *index_ptr = i;
+ loop = false;
+ }
+ else if (list[i].fkt_op > fktop)
+ {
+ loop = false;
+ }
+ else
+ {
+ i++;
+ }
+ }
+
+ return ret_val;
+}
+
+/*! \brief Search in a FktOp table for matching FktID and OPType. This function is used for
+ * MCM messages coming from FBlocks inside the INIC.
+ * \param list FktOp table
+ * \param index_ptr Reference to array index of the matching array element
+ * \param function_id FktID
+ * \param op_type OPType
+ * \return DEC_RET_SUCCESS Decoding was successful
+ * DEC_RET_FKTID_NOT_FOUND FktID/OPType not found
+ */
+Dec_Return_t Dec_SearchFktOpIsh(Dec_FktOpIsh_t const list[], uint16_t *index_ptr,
+ uint16_t function_id, Ucs_OpType_t op_type)
+{
+ uint16_t fktop;
+ uint16_t i = 0U;
+ Dec_Return_t ret_val = DEC_RET_FKTID_NOT_FOUND;
+ bool loop = true;
+
+ fktop = DEC_FKTOP(function_id, op_type);
+ *index_ptr = 0U;
+
+ while ((list[i].handler_function_ptr != NULL) && (loop != false))
+ {
+ if(list[i].fkt_op == fktop)
+ {
+ ret_val = DEC_RET_SUCCESS;
+ *index_ptr = i;
+ loop = false;
+ }
+ else if (list[i].fkt_op > fktop)
+ {
+ loop = false;
+ }
+ else
+ {
+ i++;
+ }
+ }
+
+ return ret_val;
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_dl.c b/ucs2-lib/src/ucs_dl.c
new file mode 100644
index 0000000..7bb106f
--- /dev/null
+++ b/ucs2-lib/src/ucs_dl.c
@@ -0,0 +1,390 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of the doubly linked list.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_DL
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_dl.h"
+#include "ucs_trace.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation of class CDlList */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Constructor of the doubly linked list class.
+ * \param self Instance pointer
+ * \param ucs_user_ptr User reference that needs to be passed in every callback function
+ */
+void Dl_Ctor(CDlList *self, void *ucs_user_ptr)
+{
+ self->head = NULL;
+ self->tail = NULL;
+ self->size = 0U;
+ self->ucs_user_ptr = ucs_user_ptr;
+}
+
+/*! \brief Inserts a new node after an arbitrary node.
+ * \param self Instance pointer
+ * \param node Reference of the initial node
+ * \param new_node Reference of the new node are to be inserted
+ */
+void Dl_InsertAfter(CDlList *self, CDlNode *node, CDlNode *new_node)
+{
+ TR_ASSERT(self->ucs_user_ptr, "[DL]", (self->size <= 0xFFFFU));
+ new_node->prev = node;
+ new_node->next = node->next;
+ if(node->next == NULL) /* Is initial node last node in list? */
+ {
+ self->tail = new_node; /* Set new node as tail of list */
+ }
+ else
+ {
+ node->next->prev = new_node; /* Adjust follower node */
+ }
+ node->next = new_node; /* Adjust parent node */
+ new_node->in_use = true; /* Signals that node is part of a list */
+ self->size++; /* Increment number of nodes */
+}
+
+/*! \brief Inserts a new node before an arbitrary node.
+ * \param self Instance pointer
+ * \param node Reference of the initial node
+ * \param new_node Reference of the new node are to be inserted
+ */
+void Dl_InsertBefore(CDlList *self, CDlNode *node, CDlNode *new_node)
+{
+ TR_ASSERT(self->ucs_user_ptr, "[DL]", (self->size <= 0xFFFFU));
+ new_node->prev = node->prev;
+ new_node->next = node;
+ if(node->prev == NULL) /* Is initial node first node in list? */
+ {
+ self->head = new_node; /* Set new node as head of list */
+ }
+ else
+ {
+ node->prev->next = new_node; /* Adjust parent node */
+ }
+ node->prev = new_node; /* Adjust follower node */
+ new_node->in_use = true; /* Signals that node is part of a list */
+ self->size++; /* Increment number of nodes */
+}
+
+/*! \brief Sets the new node as head of a doubly linked list.
+ * \param self Instance pointer
+ * \param new_node Reference of the new node are to be placed as head of the list
+ */
+void Dl_InsertHead(CDlList *self, CDlNode *new_node)
+{
+ if(self->head == NULL) /* Is list empty? */
+ {
+ TR_ASSERT(self->ucs_user_ptr, "[DL]", (self->size <= 0xFFFFU));
+ self->head = new_node;
+ self->tail = new_node;
+ new_node->prev = NULL;
+ new_node->next = NULL;
+ new_node->in_use = true; /* Signals that node is part of a list */
+ self->size++; /* Increment number of nodes */
+ }
+ else
+ {
+ Dl_InsertBefore(self, self->head, new_node);
+ }
+}
+
+/*! \brief Inserts the new node at the end of a doubly linked list.
+ * \param self Instance pointer
+ * \param new_node Reference of the new node are to be placed at the end of the list
+ */
+void Dl_InsertTail(CDlList *self, CDlNode *new_node)
+{
+ if(self->tail == NULL) /* Is list empty? */
+ {
+ Dl_InsertHead(self, new_node);
+ }
+ else
+ {
+ Dl_InsertAfter(self, self->tail, new_node);
+ }
+}
+
+/*! \brief Removes an arbitrary node from a doubly linked list.
+ * \param self Instance pointer
+ * \param node Reference of the node are to be removed from the list
+ * \return \c DL_OK: No error
+ * \return \c DL_UNKNOWN_NODE: Given node is not part of this list
+ */
+Dl_Ret_t Dl_Remove(CDlList *self, CDlNode *node)
+{
+ Dl_Ret_t ret_val = DL_UNKNOWN_NODE;
+
+ if(Dl_IsNodeInList(self, node) != false) /* Is node part of list? */
+ {
+ TR_ASSERT(self->ucs_user_ptr, "[DL]", (self->size > 0U));
+ if(node->prev == NULL) /* First node in list? */
+ {
+ self->head = node->next; /* Replace head node with next node in list */
+ }
+ else /* -> Not first node in list */
+ {
+ node->prev->next = node->next; /* Set next pointer of previous node to next node */
+ }
+ if(node->next == NULL) /* Last node in list? */
+ {
+ self->tail = node->prev; /* Replace tail node with previous node in list */
+ }
+ else /* -> Not last node in list */
+ {
+ node->next->prev = node->prev; /* Set previous ptr of next node to previous node */
+ }
+ node->prev = NULL;
+ node->next = NULL;
+ node->in_use = false; /* Signals that node is not part of a list */
+ ret_val = DL_OK;
+ self->size--; /* Decrement number of nodes */
+ }
+
+ return ret_val;
+}
+
+/*! \brief Removes the first node in a doubly linked list.
+ * \param self Instance pointer
+ * \return The reference of the removed head node or \c NULL if the list is empty.
+ */
+CDlNode * Dl_PopHead(CDlList *self)
+{
+ CDlNode *node = self->head;
+
+ if(node != NULL) /* Is list not empty? */
+ {
+ TR_ASSERT(self->ucs_user_ptr, "[DL]", (self->size > 0U));
+ self->head = node->next; /* Replace head node with next node in list */
+ if(node->next == NULL) /* Last node in list? */
+ {
+ self->tail = NULL; /* Replace tail node and set list's tail pointer
+ * to NULL
+ */
+ }
+ else /* -> Not last node in list */
+ {
+ node->next->prev = NULL; /* Set previous pointer of next node to NULL */
+ }
+ node->prev = NULL;
+ node->next = NULL;
+ node->in_use = false; /* Signals that node is not part of a list */
+ self->size--; /* Decrement number of nodes */
+ }
+
+ return node;
+}
+
+/*! \brief Removes the last node in a doubly linked list.
+ * \param self Instance pointer
+ * \return The reference of the removed tail node or \c NULL if the list is empty.
+ */
+CDlNode * Dl_PopTail(CDlList *self)
+{
+ CDlNode *node = self->tail;
+
+ if(node != NULL) /* Is list not empty? */
+ {
+ TR_ASSERT(self->ucs_user_ptr, "[DL]", (self->size > 0U));
+ if(node->prev == NULL) /* First node in list? */
+ {
+ self->head = NULL; /* Replace head node and set list's head pointer
+ * to NULL
+ */
+ }
+ else /* -> Not first node in list */
+ {
+ node->prev->next = NULL; /* Set next pointer of previous node to NULL */
+ }
+ self->tail = node->prev; /* Replace tail node with previous node in list */
+ node->prev = NULL;
+ node->next = NULL;
+ node->in_use = false; /* Signals that node is not part of a list */
+ self->size--; /* Decrement number of nodes */
+ }
+
+ return node;
+}
+
+/*! \brief Returns the reference of the first node in a doubly linked list.
+ * \param self Instance pointer
+ * \return The reference of the head node or \c NULL if the list is empty.
+ */
+CDlNode * Dl_PeekHead(CDlList *self)
+{
+ return self->head;
+}
+
+/*! \brief Returns the reference of the last node in a doubly linked list.
+ * \param self Instance pointer
+ * \return The reference of the tail node or NULL if the list is empty.
+ */
+CDlNode * Dl_PeekTail(CDlList *self)
+{
+ return self->tail;
+}
+
+/*! \brief Calls the given function for each node in the doubly linked list. If the func_ptr
+ * returns true the loop is stopped and the current node will be returned.
+ * \param self Instance pointer
+ * \param func_ptr Reference of the callback function which is called for each node
+ * \param user_data_ptr Reference of optional user data given to func_ptr
+ * \return Returns the current node or \c NULL if the whole list is processed.
+ */
+CDlNode * Dl_Foreach(CDlList *self, Dl_ForeachFunc_t func_ptr, void *user_data_ptr)
+{
+ CDlNode *ret_val = NULL;
+ CDlNode *node = self->head;
+
+ while(node != NULL) /* End of list reached? */
+ {
+ if(func_ptr(node->data_ptr, user_data_ptr) != false) /* Data found? */
+ {
+ ret_val = node;
+ break;
+ }
+ node = node->next;
+ }
+ return ret_val;
+}
+
+/*! \brief Checks if a node is part of the given doubly linked list.
+ * \param self Instance pointer
+ * \param node Reference of the searched node
+ * \return \c true: Node is part of the given list
+ * \return \c false: Node is not part of the given list
+ */
+bool Dl_IsNodeInList(CDlList *self, const CDlNode *node)
+{
+ bool ret_val = false;
+ CDlNode *current_node = self->head;
+
+ while(current_node != NULL) /* End of list reached? */
+ {
+ if(current_node == node) /* Is current node the searched one */
+ {
+ ret_val = true;
+ break;
+ }
+ current_node = current_node->next;
+ }
+ return ret_val;
+}
+
+/*! \brief Appends one doubly linked list to another doubly linked list.
+ * \param self Instance pointer
+ * \param list_ptr Reference to the doubly linked list
+ */
+void Dl_AppendList(CDlList *self, CDlList *list_ptr)
+{
+ TR_ASSERT(self->ucs_user_ptr, "[DL]", (list_ptr != NULL));
+ if(list_ptr->head != NULL)
+ {
+ if(self->tail == NULL) /* Is list empty? */
+ {
+ self->head = list_ptr->head;
+ self->tail = list_ptr->tail;
+ self->size = list_ptr->size;
+ }
+ else
+ {
+ list_ptr->head->prev = self->tail;
+ self->tail->next = list_ptr->head;
+ self->tail = list_ptr->tail;
+ self->size += list_ptr->size;
+ }
+ list_ptr->head = NULL;
+ list_ptr->tail = NULL;
+ list_ptr->size = 0U;
+ }
+}
+
+/*! \brief Interface function to retrieve the list size.
+ * \param self Instance pointer
+ * \return Size of the list
+ */
+uint16_t Dl_GetSize(CDlList *self)
+{
+ return self->size;
+}
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation of class CDlNode */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Constructor of doubly linked list nodes.
+ * \param self Instance pointer
+ * \param data_ptr Optional reference to data
+ */
+void Dln_Ctor(CDlNode *self, void *data_ptr)
+{
+ self->next = NULL;
+ self->prev = NULL;
+ self->in_use = false;
+ self->data_ptr = data_ptr;
+}
+
+/*! \brief Interface function to set the data pointer of the given node.
+ * \param self Instance pointer
+ * \param data_ptr Reference of the new data
+ */
+void Dln_SetData(CDlNode *self, void *data_ptr)
+{
+ self->data_ptr = data_ptr;
+}
+
+/*! \brief Interface function to request the data pointer of the given node.
+ * \param self Instance pointer
+ */
+void * Dln_GetData(CDlNode *self)
+{
+ return self->data_ptr;
+}
+
+/*! \brief Checks if a node is part of a doubly linked list.
+ * \param self Instance pointer of the searched node
+ * \return \c true: Node is part of a list
+ * \return \c false: Node is not part of a list
+ */
+bool Dln_IsNodePartOfAList(CDlNode *self)
+{
+ return self->in_use;
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_eh.c b/ucs2-lib/src/ucs_eh.c
new file mode 100644
index 0000000..bc11847
--- /dev/null
+++ b/ucs2-lib/src/ucs_eh.c
@@ -0,0 +1,153 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of the event handler.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_EH
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_eh.h"
+#include "ucs_misc.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal prototypes */
+/*------------------------------------------------------------------------------------------------*/
+static bool Eh_EncodeEvent(uint32_t event_code, Ucs_Error_t *public_error_code_ptr);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation of class CEventHandler */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Constructor of the event handler class.
+ * \param self Instance pointer
+ * \param ucs_user_ptr User reference that needs to be passed in every callback function
+ */
+void Eh_Ctor(CEventHandler *self, void * ucs_user_ptr)
+{
+ MISC_MEM_SET(self, 0, sizeof(*self));
+ /* Save UNICENS instance ID */
+ self->ucs_user_ptr = ucs_user_ptr;
+ /* Initialize subject for internal events */
+ Sub_Ctor(&self->internal_event_subject, self->ucs_user_ptr);
+ /* Initialize subject for public error reporting */
+ Ssub_Ctor(&self->public_error_subject, self->ucs_user_ptr);
+}
+
+/*! \brief Adds an observer which reports public errors
+ * \param self Instance pointer
+ * \param obs_ptr Reference to an observer
+ */
+void Eh_AddObsrvPublicError(CEventHandler *self, CSingleObserver *obs_ptr)
+{
+ (void)Ssub_AddObserver(&self->public_error_subject, obs_ptr);
+}
+
+/*! \brief Removes an observer registered by Eh_AddObsrvPublicError().
+ * \param self Instance pointer
+ */
+void Eh_DelObsrvPublicError(CEventHandler *self)
+{
+ Ssub_RemoveObserver(&self->public_error_subject);
+}
+
+/*! \brief Reports an event to the event handler.
+ * \param self Instance pointer
+ * \param event_code Event code to report
+ */
+void Eh_ReportEvent(CEventHandler *self, uint32_t event_code)
+{
+ Ucs_Error_t public_error_code;
+ /* Check if event code exists */
+ if((event_code & EH_M_ALL_EVENTS) != 0U)
+ {
+ /* Encode internal event code */
+ bool result = Eh_EncodeEvent(event_code, &public_error_code);
+ /* Notify all registered observers */
+ Msub_Notify(&self->internal_event_subject, &event_code, event_code);
+ /* Report error to application? */
+ if(result != false)
+ {
+ Ssub_Notify(&self->public_error_subject, &public_error_code, false);
+ }
+ }
+}
+
+/*! \brief Encodes an internal event code. Some internal event codes are mapped to public
+ * error codes.
+ * \param event_code Internal event code to report
+ * \param public_error_code_ptr Returned public error code
+ * \return true if error must be reported to the application, otherwise false
+ */
+static bool Eh_EncodeEvent(uint32_t event_code, Ucs_Error_t *public_error_code_ptr)
+{
+ bool ret_val = true;
+
+ /* Translate internal event code into public error code */
+ switch(event_code)
+ {
+ case EH_E_BIST_FAILED:
+ *public_error_code_ptr = UCS_GEN_ERR_INIC;
+ break;
+ case EH_E_UNSYNC_COMPLETE:
+ case EH_E_UNSYNC_FAILED:
+ *public_error_code_ptr = UCS_GEN_ERR_COMMUNICATION;
+ break;
+ default:
+ ret_val = false; /* Do not report this event to application. */
+ break;
+ }
+
+ return ret_val;
+}
+
+/*! \brief Registers an observer on the given event code.
+ * \param self Instance pointer
+ * \param obs_ptr Reference to the masked-observer object
+ */
+void Eh_AddObsrvInternalEvent(CEventHandler *self, CMaskedObserver *obs_ptr)
+{
+ (void)Sub_AddObserver(&self->internal_event_subject, &obs_ptr->parent);
+}
+
+/*! \brief Unregisters the given observer from the given event code.
+ * \param self Instance pointer
+ * \param obs_ptr Reference to the masked-observer object
+ */
+void Eh_DelObsrvInternalEvent(CEventHandler *self, CMaskedObserver *obs_ptr)
+{
+ (void)Sub_RemoveObserver(&self->internal_event_subject, &obs_ptr->parent);
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_encoder.c b/ucs2-lib/src/ucs_encoder.c
new file mode 100644
index 0000000..46d90b5
--- /dev/null
+++ b/ucs2-lib/src/ucs_encoder.c
@@ -0,0 +1,253 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+
+/*!
+ * \file
+ * \brief Implementation of message encoder
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_ENCODER
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_encoder.h"
+#include "ucs_misc.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Constants */
+/*------------------------------------------------------------------------------------------------*/
+#define ENC_LLR_TIME_DEFAULT 11U /*! \brief Default LLR time required to transmit valid messages
+ * with ContentType 0x81
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal prototypes */
+/*------------------------------------------------------------------------------------------------*/
+static void Enc_Encode_00(Msg_MostTel_t *tel_ptr, uint8_t header[]);
+static void Enc_Decode_00(Msg_MostTel_t *tel_ptr, uint8_t header[]);
+
+static void Enc_Encode_80(Msg_MostTel_t *tel_ptr, uint8_t header[]);
+static void Enc_Decode_80(Msg_MostTel_t *tel_ptr, uint8_t header[]);
+
+static void Enc_Encode_81(Msg_MostTel_t *tel_ptr, uint8_t header[]);
+static void Enc_Decode_81(Msg_MostTel_t *tel_ptr, uint8_t header[]);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Retrieves the interface of a specific encoder
+ * \details Creates all encoder interfaces as singletons
+ * \param type Specifies the type of encoder to retrieve
+ * \return The desired interface to the specified encoder
+ */
+IEncoder *Enc_GetEncoder(Enc_MsgContent_t type)
+{
+ static IEncoder enc_content_00 = {ENC_CONTENT_00, 8U, 12U, &Enc_Encode_00, &Enc_Decode_00};
+ static IEncoder enc_content_80 = {ENC_CONTENT_80, 6U, 11U, &Enc_Encode_80, &Enc_Decode_80};
+ static IEncoder enc_content_81 = {ENC_CONTENT_81, 6U, 13U, &Enc_Encode_81, &Enc_Decode_81};
+ IEncoder *encoder_ptr = NULL;
+
+ switch (type)
+ {
+ case ENC_CONTENT_00:
+ encoder_ptr = &enc_content_00;
+ break;
+ case ENC_CONTENT_80:
+ encoder_ptr = &enc_content_80;
+ break;
+ case ENC_CONTENT_81:
+ encoder_ptr = &enc_content_81;
+ break;
+ default:
+ encoder_ptr = NULL;
+ break;
+ }
+
+ return encoder_ptr;
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Content type "00" */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Encodes a message telegram to the "ContentType 0x00" MOST message header
+ * \param tel_ptr Reference to the Msg_MostTel_t structure
+ * \param header The header buffer
+ */
+static void Enc_Encode_00(Msg_MostTel_t *tel_ptr, uint8_t header[])
+{
+ header[0] = MISC_HB(tel_ptr->source_addr);
+ header[1] = MISC_LB(tel_ptr->source_addr);
+ header[2] = MISC_HB(tel_ptr->destination_addr);
+ header[3] = MISC_LB(tel_ptr->destination_addr);
+
+ header[4] = tel_ptr->id.fblock_id;
+ header[5] = tel_ptr->id.instance_id;
+
+ header[6] = MISC_HB(tel_ptr->id.function_id);
+ header[7] = MISC_LB(tel_ptr->id.function_id);
+
+ header[8] = (uint8_t)(tel_ptr->tel.tel_id << 4) | (uint8_t)((uint8_t)tel_ptr->id.op_type & 0xFU);
+ header[9] = tel_ptr->opts.llrbc;
+
+ header[10] = tel_ptr->tel.tel_cnt;
+ header[11] = tel_ptr->tel.tel_len;
+}
+
+/*! \brief Decodes a "ContentType 0x00" MOST message header to a message telegram structure
+ * \param tel_ptr Reference to the Msg_MostTel_t structure
+ * \param header The header buffer
+ */
+static void Enc_Decode_00(Msg_MostTel_t *tel_ptr, uint8_t header[])
+{
+ tel_ptr->source_addr = (uint16_t)((uint16_t)header[0] << 8) | (uint16_t)header[1];
+ tel_ptr->destination_addr = (uint16_t)((uint16_t)header[2] << 8) | (uint16_t)header[3];
+
+ tel_ptr->id.fblock_id = header[4];
+ tel_ptr->id.instance_id = header[5];
+
+ tel_ptr->id.function_id = (uint16_t)((uint16_t)header[6] << 8) | (uint16_t)header[7];
+
+ tel_ptr->tel.tel_id = header[8] >> 4; /* high nibble: TelId */
+ tel_ptr->id.op_type = (Ucs_OpType_t)(header[8] & 0x0FU); /* low nibble: OPType */
+
+ tel_ptr->opts.llrbc = header[9];
+ tel_ptr->tel.tel_cnt = header[10];
+ tel_ptr->tel.tel_len = header[11];
+
+ tel_ptr->tel.tel_data_ptr = &header[12];
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Content type "0x80" */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Encodes a message telegram to the "ContentType 0x80" MOST message header
+ * \param tel_ptr Reference to the Msg_MostTel_t structure
+ * \param header The header buffer
+ */
+static void Enc_Encode_80(Msg_MostTel_t *tel_ptr, uint8_t header[])
+{ /* high nibble: TelId low nibble: OPType */
+ header[0] = (uint8_t)(tel_ptr->tel.tel_id << 4) | (uint8_t)((uint8_t)tel_ptr->id.op_type & 0xFU);
+ header[1] = tel_ptr->tel.tel_cnt;
+ header[2] = tel_ptr->tel.tel_len;
+
+ header[3] = MISC_HB(tel_ptr->id.function_id);
+ header[4] = MISC_LB(tel_ptr->id.function_id);
+
+ header[5] = MISC_HB(tel_ptr->source_addr);
+ header[6] = MISC_LB(tel_ptr->source_addr);
+
+ header[7] = MISC_HB(tel_ptr->destination_addr);
+ header[8] = MISC_LB(tel_ptr->destination_addr);
+
+ header[9] = tel_ptr->id.fblock_id;
+ header[10] = tel_ptr->id.instance_id;
+}
+
+/*! \brief Decodes a "ContentType 0x80" MOST message header to a message telegram structure
+ * \param tel_ptr Reference to the Msg_MostTel_t structure
+ * \param header The header buffer
+ */
+static void Enc_Decode_80(Msg_MostTel_t *tel_ptr, uint8_t header[])
+{
+ tel_ptr->tel.tel_id = header[0] >> 4; /* high nibble: TelId */
+ tel_ptr->id.op_type = (Ucs_OpType_t)(header[0] & 0x0FU); /* low nibble: OPType */
+
+ tel_ptr->tel.tel_cnt = header[1];
+ tel_ptr->tel.tel_len = header[2];
+
+ tel_ptr->id.function_id = (uint16_t)((uint16_t)header[3] << 8) | (uint16_t)header[4];
+
+ tel_ptr->source_addr = (uint16_t)((uint16_t)header[5] << 8) | (uint16_t)header[6];
+ tel_ptr->destination_addr = (uint16_t)((uint16_t)header[7] << 8) | (uint16_t)header[8];
+
+ tel_ptr->id.fblock_id = header[9];
+ tel_ptr->id.instance_id = header[10];
+
+ tel_ptr->tel.tel_data_ptr = &header[11];
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Content type "0x81" */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Encodes a message telegram to the "ContentType 0x81" MOST message header
+ * \param tel_ptr Reference to the Msg_MostTel_t structure
+ * \param header The header buffer
+ */
+static void Enc_Encode_81(Msg_MostTel_t *tel_ptr, uint8_t header[])
+{
+ header[0] = tel_ptr->opts.llrbc;
+ header[1] = ENC_LLR_TIME_DEFAULT;
+ /* high nibble: TelId low nibble: OPType */
+ header[2] = (uint8_t)(tel_ptr->tel.tel_id << 4) | (uint8_t)((uint8_t)tel_ptr->id.op_type & 0xFU);
+ header[3] = tel_ptr->tel.tel_cnt;
+ header[4] = tel_ptr->tel.tel_len;
+
+ header[5] = MISC_HB(tel_ptr->id.function_id);
+ header[6] = MISC_LB(tel_ptr->id.function_id);
+
+ header[7] = MISC_HB(tel_ptr->source_addr);
+ header[8] = MISC_LB(tel_ptr->source_addr);
+
+ header[9] = MISC_HB(tel_ptr->destination_addr);
+ header[10] = MISC_LB(tel_ptr->destination_addr);
+
+ header[11] = tel_ptr->id.fblock_id;
+ header[12] = tel_ptr->id.instance_id;
+}
+
+/*! \brief Decodes a "ContentType 0x81" MOST message header to a message telegram structure
+ * \param tel_ptr Reference to the Msg_MostTel_t structure
+ * \param header The header buffer
+ */
+static void Enc_Decode_81(Msg_MostTel_t *tel_ptr, uint8_t header[])
+{
+ tel_ptr->opts.llrbc = header[0];
+
+ tel_ptr->tel.tel_id = header[2] >> 4; /* high nibble: TelId */
+ tel_ptr->id.op_type = (Ucs_OpType_t)(header[2] & 0x0FU); /* low nibble: OPType */
+
+ tel_ptr->tel.tel_cnt = header[3];
+ tel_ptr->tel.tel_len = header[4];
+
+ tel_ptr->id.function_id = (uint16_t)((uint16_t)header[5] << 8) | (uint16_t)header[6];
+
+ tel_ptr->source_addr = (uint16_t)((uint16_t)header[7] << 8) | (uint16_t)header[8];
+ tel_ptr->destination_addr = (uint16_t)((uint16_t)header[9] << 8) | (uint16_t)header[10];
+
+ tel_ptr->id.fblock_id = header[11];
+ tel_ptr->id.instance_id = header[12];
+
+ tel_ptr->tel.tel_data_ptr = &header[13];
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_epm.c b/ucs2-lib/src/ucs_epm.c
new file mode 100644
index 0000000..adc5aab
--- /dev/null
+++ b/ucs2-lib/src/ucs_epm.c
@@ -0,0 +1,495 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of the EndPoint Management.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_EPM
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_epm.h"
+#include "ucs_misc.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal prototypes */
+/*------------------------------------------------------------------------------------------------*/
+static void Epm_XrmReportCb (uint16_t node_address, uint16_t connection_label, Ucs_Xrm_Result_t result, void * user_arg);
+static bool Epm_RsmReportSyncLost (Fac_Inst_t inst_type, void * inst_ptr, void *ud_ptr);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation of class CEndpointManagement */
+/*------------------------------------------------------------------------------------------------*/
+/*------------------------------------------------------------------------------------------------*/
+/* Initialization Methods */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Constructor of the Remote Sync Manager class.
+ * \param self Instance pointer
+ * \param init_ptr init data_ptr
+ */
+void Epm_Ctor(CEndpointManagement *self, Epm_InitData_t *init_ptr)
+{
+ MISC_MEM_SET(self, 0, sizeof(CEndpointManagement));
+
+ /* Init all instances */
+ self->fac_ptr = init_ptr->fac_ptr;
+ self->base_ptr = init_ptr->base_ptr;
+ self->res_debugging_fptr = init_ptr->res_debugging_fptr;
+ self->check_unmute_fptr = init_ptr->check_unmute_fptr;
+}
+
+/*! \brief Initializes the internal information of the given endpoint object.
+ *
+ * Initialization is performed only if the magic number is not set.
+ *
+ * \param self Instance pointer
+ * \param ep_ptr Reference to the endpoint to be looked for
+ */
+void Epm_InitInternalInfos(CEndpointManagement * self, Ucs_Rm_EndPoint_t * ep_ptr)
+{
+ if ((self != NULL) && (ep_ptr != NULL))
+ {
+ if (ep_ptr->internal_infos.magic_number != (uint32_t)0x0BADC0DE)
+ {
+ MISC_MEM_SET(&ep_ptr->internal_infos, 0, sizeof(Ucs_Rm_EndPointInt_t));
+
+ ep_ptr->internal_infos.magic_number = (uint32_t)0x0BADC0DE;
+ Sub_Ctor(&ep_ptr->internal_infos.subject_obj, self->base_ptr->ucs_user_ptr);
+ /* Set the EndpointManagement instance */
+ ep_ptr->internal_infos.epm_inst = (Epm_Inst_t *)(void *)self;
+ }
+ }
+}
+
+/*! \brief Clears the internal information of the given endpoint object.
+ *
+ * Resetting the magic number of the given endpoint will enforce Its Re-Initialization.
+ *
+ * \param self Instance pointer
+ * \param ep_ptr Reference to the endpoint to be cleared.
+ */
+void Epm_ClearIntInfos(CEndpointManagement * self, Ucs_Rm_EndPoint_t * ep_ptr)
+{
+ MISC_UNUSED (self);
+ if (ep_ptr != NULL)
+ {
+ ep_ptr->internal_infos.magic_number = 0x0U;
+ }
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Service */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Add an observer to the Endpoint's subject.
+ * \param ep_ptr Reference to the endpoint instance
+ * \param obs_ptr Reference to the observer object
+ */
+void Epm_AddObserver(Ucs_Rm_EndPoint_t * ep_ptr, CObserver * obs_ptr)
+{
+ Sub_Ret_t ret_val = SUB_UNKNOWN_OBSERVER;
+
+ ret_val = Sub_AddObserver(&ep_ptr->internal_infos.subject_obj, obs_ptr);
+ if (ret_val == SUB_OK)
+ {
+ if ((ep_ptr != NULL) && (ep_ptr->endpoint_type == UCS_RM_EP_SOURCE))
+ {
+ if ((ep_ptr->internal_infos.endpoint_state == UCS_RM_EP_BUILT) && (ep_ptr->internal_infos.reference_cnt > 0U))
+ {
+ ep_ptr->internal_infos.reference_cnt++;
+ }
+ }
+ }
+}
+
+/*! \brief Removes an observer registered by Epm_AddObserver
+ * \param ep_ptr Reference to the endpoint instance
+ * \param obs_ptr Reference to the observer object
+ */
+void Epm_DelObserver(Ucs_Rm_EndPoint_t * ep_ptr, CObserver * obs_ptr)
+{
+ (void)Sub_RemoveObserver(&ep_ptr->internal_infos.subject_obj, obs_ptr);
+}
+
+/*! \brief Processes the construction of the given endpoint
+ * \param self Instance pointer
+ * \param ep_ptr reference to an endpoint
+ * \return Possible return values are
+ * - \c UCS_RET_ERR_API_LOCKED the API is locked. Endpoint is currently being processed.
+ * - \c UCS_RET_SUCCESS the build process was set successfully
+ * - \c UCS_RET_ERR_PARAM NULL pointer detected in the parameter list
+ * - \c UCS_RET_ERR_ALREADY_SET the endpoint has already been set
+ */
+Ucs_Return_t Epm_SetBuildProcess(CEndpointManagement * self, Ucs_Rm_EndPoint_t * ep_ptr)
+{
+ Ucs_Return_t result = UCS_RET_ERR_PARAM;
+
+ if ((self != NULL) && (ep_ptr != NULL))
+ {
+ /* Process Endpoint construction by XRM */
+ result = Xrm_Process(Fac_GetXrm(self->fac_ptr, ep_ptr->node_obj_ptr->signature_ptr->node_address, &Epm_XrmResDebugCb, self->check_unmute_fptr),
+ ep_ptr->jobs_list_ptr, ep_ptr->internal_infos.connection_label,
+ (void *)ep_ptr, &Epm_XrmReportCb);
+ if (result == UCS_RET_SUCCESS)
+ {
+ if (ep_ptr->internal_infos.endpoint_state != UCS_RM_EP_BUILT)
+ {
+ ep_ptr->internal_infos.endpoint_state = UCS_RM_EP_XRMPROCESSING;
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[EPM]", "XRM has been ordered to create following Endpoint: %X", 1U, ep_ptr));
+ }
+ else
+ {
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[EPM]", "Following Endpoint {%X} has already been built", 1U, ep_ptr));
+ }
+ }
+ else if (result == UCS_RET_ERR_ALREADY_SET)
+ {
+ if (ep_ptr->internal_infos.endpoint_state == UCS_RM_EP_IDLE)
+ {
+ ep_ptr->internal_infos.endpoint_state = UCS_RM_EP_BUILT;
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[EPM]", "Following Endpoint {%X} has already been built", 1U, ep_ptr));
+ }
+ }
+ else if (result == UCS_RET_ERR_NOT_AVAILABLE)
+ {
+ /* Set the internal error */
+ ep_ptr->internal_infos.endpoint_state = UCS_RM_EP_IDLE;
+ ep_ptr->internal_infos.xrm_result.code = UCS_XRM_RES_ERR_BUILD;
+ ep_ptr->internal_infos.xrm_result.details.result_type = UCS_XRM_RESULT_TYPE_INT;
+ ep_ptr->internal_infos.xrm_result.details.int_result = result;
+ }
+ }
+
+ return result;
+}
+
+/*! \brief Processes the destruction of the given endpoint
+ * \param self Instance pointer
+ * \param ep_ptr reference to an endpoint
+ * \return Possible return values are
+ * - \c UCS_RET_ERR_API_LOCKED the API is locked. Endpoint is currently being processed.
+ * - \c UCS_RET_SUCCESS the build process was set successfully
+ * - \c UCS_RET_ERR_PARAM At least one parameter is not correct, either NULL pointer in the param list or reference_cnt of the endpoint is NULL.
+ * - \c UCS_RET_ERR_ALREADY_SET the endpoint has already been set
+ * - \c UCS_RET_ERR_NOT_AVAILABLE the endpoint cannot be destroyed since its reference_cnt is greater than 1, i.e. it's in use.
+ * - \c UCS_RET_ERR_INVALID_SHADOW the endpoint cannot be destroyed since its reference_cnt is greater than 1, i.e. it's in use.
+ */
+Ucs_Return_t Epm_SetDestroyProcess(CEndpointManagement * self, Ucs_Rm_EndPoint_t * ep_ptr)
+{
+ Ucs_Return_t result = UCS_RET_ERR_PARAM;
+ bool can_be_destroyed = true;
+
+ if ((self != NULL) && (ep_ptr != NULL) )
+ {
+ if (UCS_RM_EP_SOURCE == ep_ptr->endpoint_type)
+ {
+ if (ep_ptr->internal_infos.reference_cnt == 0U)
+ {
+ can_be_destroyed = false;
+ result = UCS_RET_ERR_PARAM;
+ }
+ else if (ep_ptr->internal_infos.reference_cnt > 1U)
+ {
+ ep_ptr->internal_infos.reference_cnt--;
+ can_be_destroyed = false;
+ result = UCS_RET_ERR_INVALID_SHADOW;
+ }
+ }
+
+ if (can_be_destroyed)
+ {
+ result = Xrm_Destroy(Fac_GetXrmByJobList(self->fac_ptr, ep_ptr->jobs_list_ptr), ep_ptr->jobs_list_ptr);
+ if (result == UCS_RET_SUCCESS)
+ {
+ ep_ptr->internal_infos.endpoint_state = UCS_RM_EP_XRMPROCESSING;
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[EPM]", "XRM has been ordered to destroy following Endpoint {%X}", 1U, ep_ptr));
+ }
+ else if (result == UCS_RET_ERR_ALREADY_SET)
+ {
+ if (ep_ptr->internal_infos.endpoint_state == UCS_RM_EP_BUILT)
+ {
+ ep_ptr->internal_infos.endpoint_state = UCS_RM_EP_IDLE;
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[EPM]", "Following Endpoint {%X} has already been destroyed", 1U, ep_ptr));
+ }
+ }
+ else if (result == UCS_RET_ERR_NOT_AVAILABLE)
+ {
+ if (ep_ptr->internal_infos.endpoint_state == UCS_RM_EP_BUILT)
+ {
+ ep_ptr->internal_infos.endpoint_state = UCS_RM_EP_IDLE;
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[EPM]", "Following Endpoint {%X} has already been destroyed", 1U, ep_ptr));
+ }
+ }
+ }
+ }
+
+ return result;
+}
+
+/*! \brief Returns the state (idle, processing or built) of the given endpoint.
+ * \param self Instance pointer.
+ * \param ep_ptr Reference to the endpoint to be looked for
+ * \return state of the endpoint.
+ */
+Ucs_Rm_EndPointState_t Epm_GetState(CEndpointManagement * self, Ucs_Rm_EndPoint_t * ep_ptr)
+{
+ MISC_UNUSED (self);
+
+ return (ep_ptr != NULL) ? ep_ptr->internal_infos.endpoint_state:UCS_RM_EP_IDLE;
+}
+
+/*! \brief Forces EPM to reset the state of this endpoint.
+ * \param self Instance pointer.
+ * \param ep_ptr Reference to the endpoint to be looked for.
+ */
+void Epm_ResetState(CEndpointManagement * self, Ucs_Rm_EndPoint_t * ep_ptr)
+{
+ MISC_UNUSED (self);
+
+ if (ep_ptr != NULL)
+ {
+ ep_ptr->internal_infos.endpoint_state = UCS_RM_EP_IDLE;
+ ep_ptr->internal_infos.xrm_result.code = UCS_XRM_RES_UNKNOWN;
+ }
+}
+
+/*! \brief Sets the connection label of the given endpoint.
+ * \param self Instance pointer.
+ * \param ep_ptr Reference to the endpoint to be looked for
+ * \param conn_label connection label to be set
+ */
+void Epm_SetConnectionLabel(CEndpointManagement * self, Ucs_Rm_EndPoint_t * ep_ptr, uint16_t conn_label)
+{
+ MISC_UNUSED (self);
+
+ if (ep_ptr != NULL)
+ {
+ ep_ptr->internal_infos.connection_label = conn_label;
+ }
+}
+
+/*! \brief Returns the connection label of the given endpoint.
+ * \param self Instance pointer.
+ * \param ep_ptr Reference to the endpoint to be looked for
+ * \return connection label of the endpoint.
+ */
+uint16_t Epm_GetConnectionLabel(CEndpointManagement * self, Ucs_Rm_EndPoint_t * ep_ptr)
+{
+ MISC_UNUSED (self);
+
+ return (ep_ptr != NULL) ? ep_ptr->internal_infos.connection_label:0U;
+}
+
+/*! \brief This function must be called when a device get invalid.
+ * \param self Reference to the MNS instance.
+ * \param destination_address MOST device address of the target.
+ */
+void Epm_ReportInvalidDevice(CEndpointManagement *self, uint16_t destination_address)
+{
+ if (MSG_ADDR_INIC != destination_address)
+ {
+ CRemoteSyncManagement * rsm_inst = Fac_FindRsm(self->fac_ptr, destination_address);
+ if (NULL != rsm_inst)
+ {
+ Rsm_ReportSyncLost(rsm_inst);
+ }
+ }
+}
+
+/*! \brief Whenever this function has been called, the EndpointManager has to inform his sub-modules that a shutdown occurred.
+ * This function forwards the Network "NotAvailable" information
+ * \param self Instance pointer.
+ */
+void Epm_ReportShutDown(CEndpointManagement * self)
+{
+ Fac_Foreach(self->fac_ptr, FAC_INST_RSM, &Epm_RsmReportSyncLost, NULL);
+}
+
+/*! \brief Function signature used for monitoring the XRM resources.
+ * \param resource_type The XRM resource type to be looked for
+ * \param resource_ptr Reference to the resource to be looked for
+ * \param resource_infos Resource information
+ * \param endpoint_inst_ptr Reference to the endpoint object that encapsulates the given resource.
+ * \param user_ptr User reference provided in \ref Ucs_InitData_t "Ucs_InitData_t::user_ptr"
+ */
+void Epm_XrmResDebugCb (Ucs_Xrm_ResourceType_t resource_type, Ucs_Xrm_ResObject_t *resource_ptr,
+ Ucs_Xrm_ResourceInfos_t resource_infos, void *endpoint_inst_ptr, void *user_ptr)
+{
+ Ucs_Rm_EndPoint_t * ep_ptr = (Ucs_Rm_EndPoint_t *)endpoint_inst_ptr;
+ if (ep_ptr != NULL)
+ {
+ CEndpointManagement * self = (CEndpointManagement *)(void *)ep_ptr->internal_infos.epm_inst;
+ if (self->res_debugging_fptr != NULL)
+ {
+ self->res_debugging_fptr(resource_type, resource_ptr, resource_infos, ep_ptr, user_ptr);
+ }
+ }
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Private Methods */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Reports "SyncLost" to the RSM instance returned.
+ * \param inst_type The instance type to be looked for.
+ * \param inst_ptr Reference to the instance to be looked for.
+ * \param ud_ptr Reference to the user data.
+ * \return false in order to retrieve the next instance of the given type, otherwise false.
+ */
+static bool Epm_RsmReportSyncLost(Fac_Inst_t inst_type, void * inst_ptr, void *ud_ptr)
+{
+ bool ret_val = false;
+ MISC_UNUSED(ud_ptr);
+
+ switch (inst_type)
+ {
+ case FAC_INST_RSM:
+ Rsm_ReportSyncLost((CRemoteSyncManagement *)inst_ptr);
+ break;
+
+ default:
+ ret_val = true;
+ break;
+ }
+
+ return ret_val;
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Callback Functions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief XRM report callback function.
+ * \param node_address The node address from which the results come
+ * \param connection_label Returned MOST network connection label
+ * \param result Result of the job
+ * \param user_arg Reference to the user argument
+ */
+static void Epm_XrmReportCb(uint16_t node_address, uint16_t connection_label, Ucs_Xrm_Result_t result, void * user_arg)
+{
+ Ucs_Rm_EndPoint_t * ep_ptr = (Ucs_Rm_EndPoint_t *)user_arg;
+ uint8_t handle_not_found = 0x32U;
+ uint8_t error_id = 2U;
+
+ MISC_UNUSED (node_address);
+
+ if (ep_ptr != NULL)
+ {
+ ep_ptr->internal_infos.xrm_result = result;
+ switch (result.code)
+ {
+ case UCS_XRM_RES_SUCCESS_BUILD:
+ ep_ptr->internal_infos.connection_label = connection_label;
+ ep_ptr->internal_infos.endpoint_state = UCS_RM_EP_BUILT;
+ if (ep_ptr->endpoint_type == UCS_RM_EP_SOURCE)
+ {
+ ep_ptr->internal_infos.reference_cnt++;
+ }
+ TR_INFO((((CEndpointManagement *)(void *)ep_ptr->internal_infos.epm_inst)->base_ptr->ucs_user_ptr, "[EPM]", "Following Endpoint {%X} has been successfully built", 1U, ep_ptr));
+ break;
+
+ case UCS_XRM_RES_SUCCESS_DESTROY:
+ ep_ptr->internal_infos.connection_label = 0xFFFFU;
+ ep_ptr->internal_infos.endpoint_state = UCS_RM_EP_IDLE;
+ if (ep_ptr->endpoint_type == UCS_RM_EP_SOURCE)
+ {
+ if (ep_ptr->internal_infos.reference_cnt > 0U)
+ {
+ ep_ptr->internal_infos.reference_cnt--;
+ }
+ }
+ TR_INFO((((CEndpointManagement *)(void *)ep_ptr->internal_infos.epm_inst)->base_ptr->ucs_user_ptr, "[EPM]", "Following Endpoint {%X} has been successfully destroyed", 1U, ep_ptr));
+ break;
+
+ case UCS_XRM_RES_RC_AUTO_DESTROYED:
+ TR_ERROR((((CEndpointManagement *)(void *)ep_ptr->internal_infos.epm_inst)->base_ptr->ucs_user_ptr, "[EPM]", "Following Endpoint {%X} has been auto destroyed.", 1U, ep_ptr));
+ ep_ptr->internal_infos.connection_label = 0xFFFFU;
+ ep_ptr->internal_infos.endpoint_state = UCS_RM_EP_IDLE;
+ if (ep_ptr->endpoint_type == UCS_RM_EP_SOURCE)
+ {
+ ep_ptr->internal_infos.reference_cnt = 0U;
+ }
+ if(Sub_GetNumObservers(&ep_ptr->internal_infos.subject_obj) > 0U)
+ {
+ Sub_Notify(&ep_ptr->internal_infos.subject_obj, (void *)ep_ptr);
+ }
+ break;
+
+ case UCS_XRM_RES_ERR_CONFIG:
+ case UCS_XRM_RES_ERR_SYNC:
+ case UCS_XRM_RES_ERR_BUILD:
+ ep_ptr->internal_infos.connection_label = 0xFFFFU;
+ ep_ptr->internal_infos.endpoint_state = UCS_RM_EP_IDLE;
+ TR_ERROR((((CEndpointManagement *)(void *)ep_ptr->internal_infos.epm_inst)->base_ptr->ucs_user_ptr, "[EPM]", "Building endpoint {%X} failed. Error_Code: 0x%02X", 2U, ep_ptr, result.code));
+ break;
+
+ case UCS_XRM_RES_ERR_DESTROY:
+ ep_ptr->internal_infos.endpoint_state = UCS_RM_EP_IDLE;
+ if (ep_ptr->internal_infos.xrm_result.details.result_type == UCS_XRM_RESULT_TYPE_TGT)
+ {
+ if ((ep_ptr->internal_infos.xrm_result.details.inic_result.code == UCS_RES_ERR_CONFIGURATION) &&
+ (ep_ptr->internal_infos.xrm_result.details.inic_result.info_ptr != NULL) &&
+ (ep_ptr->internal_infos.xrm_result.details.inic_result.info_size > 2U))
+ {
+ if (ep_ptr->internal_infos.xrm_result.details.inic_result.info_ptr[error_id] == handle_not_found)
+ {
+ ep_ptr->internal_infos.xrm_result.code = UCS_XRM_RES_SUCCESS_DESTROY;
+ }
+ }
+ }
+ if (ep_ptr->endpoint_type == UCS_RM_EP_SOURCE)
+ {
+ ep_ptr->internal_infos.reference_cnt = 0U;
+ }
+ TR_ERROR((((CEndpointManagement *)(void *)ep_ptr->internal_infos.epm_inst)->base_ptr->ucs_user_ptr, "[EPM]", "Destroying endpoint {%X} failed. Error_Code: 0x%02X", 2U, ep_ptr, result.code));
+ break;
+
+ case UCS_XRM_RES_ERR_INV_LIST:
+ TR_ERROR((((CEndpointManagement *)(void *)ep_ptr->internal_infos.epm_inst)->base_ptr->ucs_user_ptr, "[EPM]", "Request of invalid lists on endpoint {%X} failed.", 1U, ep_ptr));
+ if (ep_ptr->internal_infos.endpoint_state == UCS_RM_EP_BUILT)
+ {
+ ep_ptr->internal_infos.connection_label = 0xFFFFU;
+ ep_ptr->internal_infos.endpoint_state = UCS_RM_EP_IDLE;
+ if(Sub_GetNumObservers(&ep_ptr->internal_infos.subject_obj) > 0U)
+ {
+ Sub_Notify(&ep_ptr->internal_infos.subject_obj, (void *)ep_ptr);
+ }
+ }
+ break;
+
+ default:
+ TR_ERROR((((CEndpointManagement *)(void *)ep_ptr->internal_infos.epm_inst)->base_ptr->ucs_user_ptr, "[EPM]", "Processing endpoint {%X} failed. Unknown Error_Code: 0x%02X", 2U, ep_ptr, result.code));
+ break;
+ }
+ }
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_exc.c b/ucs2-lib/src/ucs_exc.c
new file mode 100644
index 0000000..5f5b5db
--- /dev/null
+++ b/ucs2-lib/src/ucs_exc.c
@@ -0,0 +1,1711 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of FBlock ExtendedNetworkControl
+ * \details Contains the housekeeping functions of INIC management
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_EXC
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_misc.h"
+#include "ucs_ret_pb.h"
+#include "ucs_exc.h"
+
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal definitions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Bitmask for API method Exc_PhyTestResult_Get() used by API locking manager */
+#define EXC_API_PHY_LAY_TEST_RESULT 0x01U
+/*! \brief Bitmask for API method Exc_MemSessionOpen_Sr() used by API locking manager */
+#define EXC_API_MEM_SESSION_OPEN 0x02U
+/*! \brief Bitmask for API method Exc_MemSessionClose_Sr() used by API locking manager */
+#define EXC_API_MEM_SESSION_CLOSE 0x04U
+/*! \brief Bitmask for API method Exc_MemoryRead_Sr() used by API locking manager */
+#define EXC_API_MEM_READ 0x08U
+/*! \brief Bitmask for API method Exc_MemoryWrite_Sr() used by API locking manager */
+#define EXC_API_MEM_WRITE 0x10U
+
+/*! \brief max. number of elements used in MemoryWrite and MemoryWrite messages */
+#define MAX_UNIT_LEN 18U
+
+/*! \brief length of signature (V1) */
+#define EXC_SIGNATURE_LEN_V1 26U
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal prototypes */
+/*------------------------------------------------------------------------------------------------*/
+static void Exc_DecodeMsg(CExc *self, Msg_MostTel_t *msg_rx_ptr);
+static void Exc_EnablePort_Error(void *self, Msg_MostTel_t *msg_ptr);
+static void Exc_EnablePort_Result(void *self, Msg_MostTel_t *msg_ptr);
+static void Exc_Hello_Status(void *self, Msg_MostTel_t *msg_ptr);
+static void Exc_Hello_Error(void *self, Msg_MostTel_t *msg_ptr);
+static void Exc_Welcome_Error(void *self, Msg_MostTel_t *msg_ptr);
+static void Exc_Welcome_Result(void *self, Msg_MostTel_t *msg_ptr);
+static void Exc_Signature_Status(void *self, Msg_MostTel_t *msg_ptr);
+static void Exc_Signature_Error(void *self, Msg_MostTel_t *msg_ptr);
+static void Exc_DeviceInit_Error(void *self, Msg_MostTel_t *msg_ptr);
+static void Exc_CableLinkDiag_Error(void *self, Msg_MostTel_t *msg_ptr);
+static void Exc_CableLinkDiag_Result(void *self, Msg_MostTel_t *msg_ptr);
+static void Exc_NwPhyTest_Error(void *self, Msg_MostTel_t *msg_ptr);
+static void Exc_NwPhyTestResult_Status(void *self, Msg_MostTel_t *msg_ptr);
+static void Exc_NwPhyTestResult_Error(void *self, Msg_MostTel_t *msg_ptr);
+static void Exc_BC_Diag_Result(void *self, Msg_MostTel_t *msg_ptr);
+static void Exc_BC_Diag_Error(void *self, Msg_MostTel_t *msg_ptr);
+static void Exc_BC_EnableTx_Result(void *self, Msg_MostTel_t *msg_ptr);
+static void Exc_BC_EnableTx_Error(void *self, Msg_MostTel_t *msg_ptr);
+static void Exc_MemoryRead_Result(void *self, Msg_MostTel_t *msg_ptr);
+static void Exc_MemoryRead_Error(void *self, Msg_MostTel_t *msg_ptr);
+static void Exc_MemoryWrite_Result(void *self, Msg_MostTel_t *msg_ptr);
+static void Exc_MemoryWrite_Error(void *self, Msg_MostTel_t *msg_ptr);
+static void Exc_MemSessionOpen_Result(void *self, Msg_MostTel_t *msg_ptr);
+static void Exc_MemSessionOpen_Error(void *self, Msg_MostTel_t *msg_ptr);
+static void Exc_MemSessionClose_Result(void *self, Msg_MostTel_t *msg_ptr);
+static void Exc_MemSessionClose_Error(void *self, Msg_MostTel_t *msg_ptr);
+
+static void Exc_HandleApiTimeout(void *self, void *method_mask_ptr);
+
+static Ucs_StdResult_t Exc_TranslateError(CExc *self, uint8_t error_data[], uint8_t error_size);
+static void Exc_Read_Signature(Ucs_Signature_t *dest, uint8_t source[]);
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal constants */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief List of all EXC messages */
+static const Dec_FktOpIsh_t exc_handler[] = /* parasoft-suppress MISRA2004-8_7 "Value shall be part of the module, not part of a function." */
+{
+ { DEC_FKTOP(EXC_FID_HELLO, UCS_OP_STATUS), Exc_Hello_Status },
+ { DEC_FKTOP(EXC_FID_HELLO, UCS_OP_ERROR), Exc_Hello_Error },
+ { DEC_FKTOP(EXC_FID_WELCOME, UCS_OP_RESULT), Exc_Welcome_Result },
+ { DEC_FKTOP(EXC_FID_WELCOME, UCS_OP_ERROR), Exc_Welcome_Error },
+ { DEC_FKTOP(EXC_FID_SIGNATURE, UCS_OP_STATUS), Exc_Signature_Status },
+ { DEC_FKTOP(EXC_FID_SIGNATURE, UCS_OP_ERROR), Exc_Signature_Error },
+ { DEC_FKTOP(EXC_FID_DEVICE_INIT, UCS_OP_ERROR), Exc_DeviceInit_Error },
+ { DEC_FKTOP(EXC_FID_ENABLEPORT, UCS_OP_RESULT), Exc_EnablePort_Result },
+ { DEC_FKTOP(EXC_FID_ENABLEPORT, UCS_OP_ERROR), Exc_EnablePort_Error },
+ { DEC_FKTOP(EXC_FID_CABLE_LINK_DIAG, UCS_OP_RESULT), Exc_CableLinkDiag_Result },
+ { DEC_FKTOP(EXC_FID_CABLE_LINK_DIAG, UCS_OP_ERROR), Exc_CableLinkDiag_Error },
+ { DEC_FKTOP(EXC_FID_PHY_LAY_TEST, UCS_OP_ERROR), Exc_NwPhyTest_Error },
+ { DEC_FKTOP(EXC_FID_PHY_LAY_TEST_RES, UCS_OP_STATUS), Exc_NwPhyTestResult_Status },
+ { DEC_FKTOP(EXC_FID_PHY_LAY_TEST_RES, UCS_OP_ERROR), Exc_NwPhyTestResult_Error },
+ { DEC_FKTOP(EXC_FID_BC_DIAG, UCS_OP_RESULT), Exc_BC_Diag_Result },
+ { DEC_FKTOP(EXC_FID_BC_DIAG, UCS_OP_ERROR), Exc_BC_Diag_Error },
+ { DEC_FKTOP(EXC_FID_BC_ENABLE_TX, UCS_OP_RESULT), Exc_BC_EnableTx_Result },
+ { DEC_FKTOP(EXC_FID_BC_ENABLE_TX, UCS_OP_ERROR), Exc_BC_EnableTx_Error },
+ { DEC_FKTOP(EXC_FID_MEM_SESSION_OPEN, UCS_OP_RESULT), Exc_MemSessionOpen_Result },
+ { DEC_FKTOP(EXC_FID_MEM_SESSION_OPEN, UCS_OP_ERROR), Exc_MemSessionOpen_Error },
+ { DEC_FKTOP(EXC_FID_MEM_SESSION_CLOSE, UCS_OP_RESULT), Exc_MemSessionClose_Result },
+ { DEC_FKTOP(EXC_FID_MEM_SESSION_CLOSE, UCS_OP_ERROR), Exc_MemSessionClose_Error },
+ { DEC_FKTOP(EXC_FID_MEMORY_READ, UCS_OP_RESULT), Exc_MemoryRead_Result },
+ { DEC_FKTOP(EXC_FID_MEMORY_READ, UCS_OP_ERROR), Exc_MemoryRead_Error },
+ { DEC_FKTOP(EXC_FID_MEMORY_WRITE, UCS_OP_RESULT), Exc_MemoryWrite_Result },
+ { DEC_FKTOP(EXC_FID_MEMORY_WRITE, UCS_OP_ERROR), Exc_MemoryWrite_Error },
+ { DEC_FKTOP_TERMINATION, NULL }
+};
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation */
+/*------------------------------------------------------------------------------------------------*/
+
+/*! \brief Constructor of class CExc.
+ * \param self Reference to CExc instance
+ * \param base_ptr Reference to a Base instance
+ * \param rcm_ptr Reference to Transceiver instance
+ */
+void Exc_Ctor(CExc *self, CBase *base_ptr, CTransceiver *rcm_ptr)
+{
+
+ MISC_MEM_SET((void *)self, 0, sizeof(*self));
+
+ self->base_ptr = base_ptr;
+ self->xcvr_ptr = rcm_ptr;
+
+ self->fkt_op_list_ptr = &exc_handler[0];
+
+
+ /* Initialize API locking mechanism */
+ Sobs_Ctor(&self->lock.observer, self, &Exc_HandleApiTimeout);
+ Al_Ctor(&self->lock.api, &self->lock.observer, self->base_ptr->ucs_user_ptr);
+ Alm_RegisterApi(&self->base_ptr->alm, &self->lock.api);
+
+}
+
+
+/*! \brief Callback function to filter RCM Rx messages
+ * \details Do not release the message object here
+ * \param self reference to INIC object
+ * \param tel_ptr received message
+ */
+void Exc_OnRcmRxFilter(void *self, Msg_MostTel_t *tel_ptr)
+{
+ CExc *self_ = (CExc *)self;
+ Exc_DecodeMsg(self_, tel_ptr);
+
+}
+
+
+/*! \brief Decode a message for FBlock EXC
+ * \param self Instance pointer to FBlock EXC
+ * \param msg_rx_ptr pointer to the MCM message to decode
+ */
+static void Exc_DecodeMsg(CExc *self, Msg_MostTel_t *msg_rx_ptr)
+{
+ Dec_Return_t result;
+ uint16_t index;
+
+ result = Dec_SearchFktOpIsh(self->fkt_op_list_ptr, &index, msg_rx_ptr->id.function_id, msg_rx_ptr->id.op_type);
+
+ if (result == DEC_RET_SUCCESS)
+ {
+ self->fkt_op_list_ptr[index].handler_function_ptr(self, msg_rx_ptr);
+ }
+ else
+ {
+ /* no handling of decoding error for shadow OpTypes */
+ }
+}
+
+
+
+/*! \brief Handles an API timeout
+ * \param self Instance pointer
+ * \param method_mask_ptr Bitmask to signal which API method has caused the timeout
+ */
+static void Exc_HandleApiTimeout(void *self, void *method_mask_ptr)
+{
+ CExc *self_ = (CExc *)self;
+ Alm_ModuleMask_t method_mask = *((Alm_ModuleMask_t *)method_mask_ptr);
+ Exc_StdResult_t res_data;
+
+ res_data.result.code = UCS_RES_ERR_TIMEOUT;
+ res_data.result.info_ptr = NULL;
+ res_data.result.info_size = 0U;
+ res_data.data_info = NULL;
+
+ switch(method_mask)
+ {
+#if 0 /* System Diagnosis supervises timeouts for these functions */
+ case EXC_API_ENABLE_PORT:
+ Ssub_Notify(&self_->ssubs.enableport, &res_data, false);
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[EXC]", "API locking timeout occurred for method Exc_EnablePort_Sr().", 0U));
+ break;
+ case EXC_API_HELLO:
+ Ssub_Notify(&self_->ssubs.hello, &res_data, false);
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[EXC]", "API locking timeout occurred for method Exc_Hello_Get().", 0U));
+ break;
+ case EXC_API_WELCOME:
+ Ssub_Notify(&self_->ssubs.welcome, &res_data, false);
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[EXC]", "API locking timeout occurred for method Exc_Welcome_Sr().", 0U));
+ break;
+ case EXC_API_CABLE_LINK_DIAG:
+ Ssub_Notify(&self_->ssubs.cablelinkdiag, &res_data, false);
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[EXC]", "API locking timeout occurred for method Exc_CableLinkDiagnosis_Start().", 0U));
+ break;
+#endif
+ case EXC_API_PHY_LAY_TEST_RESULT:
+ Ssub_Notify(&self_->ssubs.phylaytestresult, &res_data, false);
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[EXC]", "API locking timeout occurred for method Exc_PhyTestResult_Get().", 0U));
+ break;
+ case EXC_API_MEM_SESSION_OPEN:
+ Ssub_Notify(&self_->ssubs.memsessionopen, &res_data, false);
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[EXC]", "API locking timeout occurred for method Exc_MemSessionOpen_Sr().", 0U));
+ break;
+ case EXC_API_MEM_SESSION_CLOSE:
+ Ssub_Notify(&self_->ssubs.memsessionclose, &res_data, false);
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[EXC]", "API locking timeout occurred for method Exc_MemSessionClose_Sr().", 0U));
+ break;
+ case EXC_API_MEM_READ:
+ Ssub_Notify(&self_->ssubs.memoryread, &res_data, false);
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[EXC]", "API locking timeout occurred for method Exc_MemoryRead_Sr().", 0U));
+ break;
+ case EXC_API_MEM_WRITE:
+ Ssub_Notify(&self_->ssubs.memorywrite, &res_data, false);
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[EXC]", "API locking timeout occurred for method Exc_MemoryWrite_Sr().", 0U));
+ break;
+
+ default:
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[EXC]", "Unknown API locking bitmask detected. Mask: 0x%02X", 1U, method_mask));
+ break;
+ }
+}
+
+
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal API */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief This method sends the Hello.Get message
+ * \param self Reference to CExc instance
+ * \param target_address Target address
+ * \param version_limit Signature version limit
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ */
+Ucs_Return_t Exc_Hello_Get(CExc *self,
+ uint16_t target_address,
+ uint8_t version_limit,
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 1U);
+
+ if (msg_ptr != NULL)
+ {
+ if (version_limit > UCS_EXC_SIGNATURE_VERSION_LIMIT)
+ {
+ version_limit = UCS_EXC_SIGNATURE_VERSION_LIMIT;
+ }
+
+ msg_ptr->destination_addr = target_address;
+
+ msg_ptr->id.fblock_id = FB_EXC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = EXC_FID_HELLO;
+ msg_ptr->id.op_type = UCS_OP_GET;
+ msg_ptr->tel.tel_data_ptr[0] = version_limit;
+
+ msg_ptr->info_ptr = &self->ssubs.hello;
+ Trcv_TxSendMsg(self->xcvr_ptr, msg_ptr);
+
+ (void)Ssub_AddObserver(&self->ssubs.hello, obs_ptr);
+ }
+ else
+ {
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+
+ return result;
+}
+
+
+/*! \brief This method send the Welcome.StartResult message
+ * \param self Reference to CExc instance
+ * \param target_address Target address
+ * \param admin_node_address The node address used during system diagnosis
+ * \param version Signature version
+ * \param signature Signature of the device
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ */
+Ucs_Return_t Exc_Welcome_Sr(CExc *self,
+ uint16_t target_address,
+ uint16_t admin_node_address,
+ uint8_t version,
+ Ucs_Signature_t signature,
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, EXC_SIGNATURE_LEN_V1 + 3U); /* Signature v1 */
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = target_address;
+ msg_ptr->id.fblock_id = FB_EXC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = EXC_FID_WELCOME;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+ msg_ptr->tel.tel_data_ptr[0] = MISC_HB(admin_node_address);
+ msg_ptr->tel.tel_data_ptr[1] = MISC_LB(admin_node_address);
+ msg_ptr->tel.tel_data_ptr[2] = version;
+ msg_ptr->tel.tel_data_ptr[3] = MISC_HB(signature.node_address);
+ msg_ptr->tel.tel_data_ptr[4] = MISC_LB(signature.node_address);
+ msg_ptr->tel.tel_data_ptr[5] = MISC_HB(signature.group_address);
+ msg_ptr->tel.tel_data_ptr[6] = MISC_LB(signature.group_address);
+ msg_ptr->tel.tel_data_ptr[7] = MISC_HB(signature.mac_47_32);
+ msg_ptr->tel.tel_data_ptr[8] = MISC_LB(signature.mac_47_32);
+ msg_ptr->tel.tel_data_ptr[9] = MISC_HB(signature.mac_31_16);
+ msg_ptr->tel.tel_data_ptr[10] = MISC_LB(signature.mac_31_16);
+ msg_ptr->tel.tel_data_ptr[11] = MISC_HB(signature.mac_15_0);
+ msg_ptr->tel.tel_data_ptr[12] = MISC_LB(signature.mac_15_0);
+ msg_ptr->tel.tel_data_ptr[13] = MISC_HB(signature.node_pos_addr);
+ msg_ptr->tel.tel_data_ptr[14] = MISC_LB(signature.node_pos_addr);
+ msg_ptr->tel.tel_data_ptr[15] = MISC_HB(signature.diagnosis_id);
+ msg_ptr->tel.tel_data_ptr[16] = MISC_LB(signature.diagnosis_id);
+ msg_ptr->tel.tel_data_ptr[17] = signature.num_ports;
+ msg_ptr->tel.tel_data_ptr[18] = signature.chip_id;
+ msg_ptr->tel.tel_data_ptr[19] = signature.fw_major;
+ msg_ptr->tel.tel_data_ptr[20] = signature.fw_minor;
+ msg_ptr->tel.tel_data_ptr[21] = signature.fw_release;
+ msg_ptr->tel.tel_data_ptr[22] = MISC_HB((signature.fw_build) >>16U);
+ msg_ptr->tel.tel_data_ptr[23] = MISC_LB((signature.fw_build) >>16U);
+ msg_ptr->tel.tel_data_ptr[24] = MISC_HB(signature.fw_build);
+ msg_ptr->tel.tel_data_ptr[25] = MISC_LB(signature.fw_build);
+ msg_ptr->tel.tel_data_ptr[26] = signature.cs_major;
+ msg_ptr->tel.tel_data_ptr[27] = signature.cs_minor;
+ msg_ptr->tel.tel_data_ptr[28] = signature.cs_release;
+/* msg_ptr->tel.tel_data_ptr[29] = signature.uid_persistency;
+ msg_ptr->tel.tel_data_ptr[30] = MISC_HB((signature.uid) >>16U);
+ msg_ptr->tel.tel_data_ptr[31] = MISC_LB((signature.uid) >>16U);
+ msg_ptr->tel.tel_data_ptr[32] = MISC_HB(signature.uid);
+ msg_ptr->tel.tel_data_ptr[33] = MISC_LB(signature.uid);
+*/
+
+ msg_ptr->info_ptr = &self->ssubs.welcome;
+ Trcv_TxSendMsg(self->xcvr_ptr, msg_ptr);
+
+ (void)Ssub_AddObserver(&self->ssubs.welcome, obs_ptr);
+ }
+ else
+ {
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+
+ return result;
+}
+
+
+/*! \brief This method sends the Signature.Get message
+ * \param self Reference to CExc instance
+ * \param target_address Target address
+ * \param version_limit Signature version limit
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ */
+Ucs_Return_t Exc_Signature_Get(CExc *self,
+ uint16_t target_address,
+ uint8_t version_limit,
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 1U);
+
+ if (msg_ptr != NULL)
+ {
+ if (version_limit > UCS_EXC_SIGNATURE_VERSION_LIMIT)
+ {
+ version_limit = UCS_EXC_SIGNATURE_VERSION_LIMIT;
+ }
+
+ msg_ptr->destination_addr = target_address;
+
+ msg_ptr->id.fblock_id = FB_EXC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = EXC_FID_SIGNATURE;
+ msg_ptr->id.op_type = UCS_OP_GET;
+ msg_ptr->tel.tel_data_ptr[0] = version_limit;
+
+ msg_ptr->info_ptr = &self->ssubs.signature;
+ Trcv_TxSendMsg(self->xcvr_ptr, msg_ptr);
+
+ (void)Ssub_AddObserver(&self->ssubs.signature, obs_ptr);
+ }
+ else
+ {
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+
+ return result;
+}
+
+
+/*! \brief This method sends the DeviceInit.Start message
+ * \param self Reference to CExc instance
+ * \param target_address Target address
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ */
+Ucs_Return_t Exc_DeviceInit_Start(CExc *self,
+ uint16_t target_address,
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 0U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = target_address;
+
+ msg_ptr->id.fblock_id = FB_EXC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = EXC_FID_DEVICE_INIT;
+ msg_ptr->id.op_type = UCS_OP_START;
+
+ msg_ptr->info_ptr = &self->ssubs.deviceinit;
+ Trcv_TxSendMsg(self->xcvr_ptr, msg_ptr);
+
+ (void)Ssub_AddObserver(&self->ssubs.deviceinit, obs_ptr);
+ }
+ else
+ {
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+
+ return result;
+}
+
+
+/*! \brief This method enables a port
+ * \param self Reference to CExc instance
+ * \param target_address Target address
+ * \param port_number PortNumber
+ * \param enabled Enabled
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ */
+Ucs_Return_t Exc_EnablePort_Sr(CExc *self,
+ uint16_t target_address,
+ uint8_t port_number,
+ bool enabled,
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 2U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = target_address;
+
+ msg_ptr->id.fblock_id = FB_EXC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = EXC_FID_ENABLEPORT;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+ msg_ptr->tel.tel_data_ptr[0] = port_number;
+ msg_ptr->tel.tel_data_ptr[1] = (uint8_t)enabled;
+
+ msg_ptr->info_ptr = &self->ssubs.enableport;
+ Trcv_TxSendMsg(self->xcvr_ptr, msg_ptr);
+
+ (void)Ssub_AddObserver(&self->ssubs.enableport, obs_ptr);
+ }
+ else
+ {
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+
+ return result;
+}
+
+/*! \brief This method starts the Cable Link Diagnosis
+ * \param self Reference to CExc instance
+ * \param target_address Target address
+ * \param port_number PortNumber
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ */
+Ucs_Return_t Exc_CableLinkDiagnosis_Start(CExc *self,
+ uint16_t target_address,
+ uint8_t port_number,
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 1U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = target_address;
+
+ msg_ptr->id.fblock_id = FB_EXC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = EXC_FID_CABLE_LINK_DIAG;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+ msg_ptr->tel.tel_data_ptr[0] = port_number;
+
+ msg_ptr->info_ptr = &self->ssubs.cablelinkdiag;
+ Trcv_TxSendMsg(self->xcvr_ptr, msg_ptr);
+
+ (void)Ssub_AddObserver(&self->ssubs.cablelinkdiag, obs_ptr);
+ }
+ else
+ {
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+
+ return result;
+}
+
+/*! \brief This method starts the Physical Layer Test
+ * \param self Reference to CExc instance
+ * \param port_number PortNumber
+ * \param type Type
+ * \param lead_in Lead-in
+ * \param duration Duration
+ * \param lead_out Lead-out
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ */
+Ucs_Return_t Exc_PhyTest_Start(CExc *self,
+ uint8_t port_number,
+ Ucs_Diag_PhyTest_Type_t type,
+ uint16_t lead_in,
+ uint32_t duration,
+ uint16_t lead_out,
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 10U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = MSG_ADDR_INIC;
+
+ msg_ptr->id.fblock_id = FB_EXC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = EXC_FID_PHY_LAY_TEST;
+ msg_ptr->id.op_type = UCS_OP_START;
+ msg_ptr->tel.tel_data_ptr[0] = port_number;
+ msg_ptr->tel.tel_data_ptr[1] = (uint8_t)type;
+ msg_ptr->tel.tel_data_ptr[2] = MISC_HB(lead_in);
+ msg_ptr->tel.tel_data_ptr[3] = MISC_LB(lead_in);
+ msg_ptr->tel.tel_data_ptr[4] = (uint8_t)((duration) >> 24);
+ msg_ptr->tel.tel_data_ptr[5] = (uint8_t)((duration) >> 16);
+ msg_ptr->tel.tel_data_ptr[6] = (uint8_t)((duration) >> 8);
+ msg_ptr->tel.tel_data_ptr[7] = (uint8_t)(duration & (uint32_t)0xFF);
+ msg_ptr->tel.tel_data_ptr[8] = MISC_HB(lead_out);
+ msg_ptr->tel.tel_data_ptr[9] = MISC_LB(lead_out);
+
+
+ msg_ptr->info_ptr = &self->ssubs.phylaytest;
+ Trcv_TxSendMsg(self->xcvr_ptr, msg_ptr);
+
+ (void)Ssub_AddObserver(&self->ssubs.phylaytest, obs_ptr);
+ }
+ else
+ {
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+
+ return result;
+}
+
+
+/*! \brief Requests the EXC.PhysicalLayerTestResult.Status message
+ * \param self Reference to CExc instance
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Exc_PhyTestResult_Get(CExc *self,
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.api, EXC_API_PHY_LAY_TEST_RESULT) != false)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 0U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = MSG_ADDR_INIC;
+
+ msg_ptr->id.fblock_id = FB_EXC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = EXC_FID_PHY_LAY_TEST_RES;
+ msg_ptr->id.op_type = UCS_OP_GET;
+
+ msg_ptr->info_ptr = &self->ssubs.phylaytestresult;
+ Trcv_TxSendMsg(self->xcvr_ptr, msg_ptr);
+
+ (void)Ssub_AddObserver(&self->ssubs.phylaytestresult, obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.api, EXC_API_PHY_LAY_TEST_RESULT);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+
+
+/*! Sends the BCDiag.Startresult command
+ *
+ * \param *self Reference to CExc instance
+ * \param position Position of the segment to be checked.
+ * \param admin_na Admin Node Address
+ * \param t_send Timing parameter t_Send
+ * \param t_wait4dut Timing parameter t_WaitForDUT
+ * \param t_switch Timing parameter t_Switch
+ * \param t_back Timing parameter t_Back
+ * \param autoback TBD
+ * \param *obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ */
+Ucs_Return_t Exc_BCDiag_Start(CExc *self,
+ uint8_t position,
+ uint16_t admin_na,
+ uint16_t t_send,
+ uint16_t t_wait4dut,
+ uint16_t t_switch,
+ uint16_t t_back,
+ bool autoback,
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 12U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = UCS_ADDR_BROADCAST_BLOCKING;
+ msg_ptr->id.fblock_id = FB_EXC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = EXC_FID_BC_DIAG;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+ msg_ptr->tel.tel_data_ptr[0] = position;
+ msg_ptr->tel.tel_data_ptr[1] = MISC_HB(admin_na);
+ msg_ptr->tel.tel_data_ptr[2] = MISC_LB(admin_na);
+ msg_ptr->tel.tel_data_ptr[3] = MISC_HB(t_send);
+ msg_ptr->tel.tel_data_ptr[4] = MISC_LB(t_send);
+ msg_ptr->tel.tel_data_ptr[5] = MISC_HB(t_wait4dut);
+ msg_ptr->tel.tel_data_ptr[6] = MISC_LB(t_wait4dut);
+ msg_ptr->tel.tel_data_ptr[7] = MISC_HB(t_switch);
+ msg_ptr->tel.tel_data_ptr[8] = MISC_LB(t_switch);
+ msg_ptr->tel.tel_data_ptr[9] = MISC_HB(t_back);
+ msg_ptr->tel.tel_data_ptr[10] = MISC_LB(t_back);
+ msg_ptr->tel.tel_data_ptr[11] = (uint8_t)autoback;
+
+
+ msg_ptr->info_ptr = &self->ssubs.bcdiag;
+ Trcv_TxSendMsg(self->xcvr_ptr, msg_ptr);
+
+ (void)Ssub_AddObserver(&self->ssubs.bcdiag, obs_ptr);
+ }
+ else
+ {
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+
+ return result;
+}
+
+
+/*! Enables the signal during backChannel Diagnosis
+ *
+ * \param *self Reference to CExc instance
+ * \param port Number of port which has to be enabled.
+ * \param *obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ */
+Ucs_Return_t Exc_BCEnableTx_StartResult(CExc *self,
+ uint8_t port,
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 1U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = UCS_ADDR_BROADCAST_BLOCKING;
+ msg_ptr->id.fblock_id = FB_EXC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = EXC_FID_BC_ENABLE_TX;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+ msg_ptr->tel.tel_data_ptr[0] = port;
+
+ msg_ptr->info_ptr = &self->ssubs.enabletx;
+ Trcv_TxSendMsg(self->xcvr_ptr, msg_ptr);
+
+ (void)Ssub_AddObserver(&self->ssubs.enabletx, obs_ptr);
+ }
+ else
+ {
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+
+ return result;
+}
+
+
+/*! \brief This function is used to open a memory session.
+ *
+ * A memory session is used to control access to the memory resources. Before a memory could
+ * be read or written, a session of the appropriate type has to be opened.
+ * Only a single memory session is supported. Once opened, the session must be first
+ * closed before a new session of a different type could be used. Some session types
+ * (0x01, 0x02 and 0x04) require a hardware reset after they were closed.
+ * Function Exc_MemSessionOpen_Sr() also performs some preprocessing,
+ * depending on the session_type. This includes clearing of the configuration
+ * and identification strings before the error memory is programmed or erased.
+ *
+ * \param *self Reference to CExc instance
+ * \param target_address Target address
+ * \param session_type Defines the set of MemIDs and the memory access type(s) (read and/or write)
+ * \param *obs_ptr Reference to an optional observer
+ *
+ * \return UCS_RET_SUCCESS message was created and sent to INIC
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Exc_MemSessionOpen_Sr(CExc *self,
+ uint16_t target_address,
+ uint8_t session_type,
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.api, EXC_API_MEM_SESSION_OPEN) != false)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 1U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = target_address;
+
+ msg_ptr->id.fblock_id = FB_EXC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = EXC_FID_MEM_SESSION_OPEN;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+ msg_ptr->tel.tel_data_ptr[0] = session_type;
+
+ msg_ptr->info_ptr = &self->ssubs.memsessionopen;
+ Trcv_TxSendMsg(self->xcvr_ptr, msg_ptr);
+
+ (void)Ssub_AddObserver(&self->ssubs.memsessionopen, obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.api, EXC_API_MEM_SESSION_OPEN);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+
+/*! \brief This function is used to close an active memory session that was previously opened by
+ * function Exc_MemSessionOpen_Sr().
+ *
+ * In addition, the function performs some post-processing on given session types. This includes
+ * validation of the newly programmed configuration and identification strings as well as
+ * the deactivation of the current configuration and identification strings. In these cases,
+ * the new configuration becomes active after a hardware reset.
+ *
+ * \param *self Reference to CExc instance
+ * \param target_address Target address
+ * \param session_handle Unique number assigned to the active memory session
+ * \param *obs_ptr Reference to an optional observer
+ *
+ * \return UCS_RET_SUCCESS message was created and sent to INIC
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Exc_MemSessionClose_Sr(CExc *self,
+ uint16_t target_address,
+ uint16_t session_handle,
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.api, EXC_API_MEM_SESSION_CLOSE) != false)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 2U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = target_address;
+
+ msg_ptr->id.fblock_id = FB_EXC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = EXC_FID_MEM_SESSION_CLOSE;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+ msg_ptr->tel.tel_data_ptr[0] = MISC_HB(session_handle);
+ msg_ptr->tel.tel_data_ptr[1] = MISC_LB(session_handle);
+
+ msg_ptr->info_ptr = &self->ssubs.memsessionclose;
+ Trcv_TxSendMsg(self->xcvr_ptr, msg_ptr);
+
+ (void)Ssub_AddObserver(&self->ssubs.memsessionclose, obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.api, EXC_API_MEM_SESSION_CLOSE);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+
+/*! \brief This function provides read access to the memories described by parameter MemID.
+ *
+ * In addition, the function can be used to retrieve the active Configuration String and
+ * Identification String.
+ * Reading the memory can only be done within an active memory session. Parameter
+ * session_handle authorizes the access to the memory resource defined by parameter
+ * MemID. The session_handle is provided by function Exc_MemSessionOpen_Sr(),
+ * which must be called in advance to memory access.
+ *
+ * \param *self Reference to CExc instance
+ * \param target_address Target address
+ * \param session_handle Unique number assigned to the active memory session
+ * \param mem_id Represents the memory resource to be read
+ * \param address Defines the memory location at which the reading operation starts
+ * \param unit_len Sets the number of memory units to be read. Memory units can be
+ * unsigned bytes, unsigned words or unsigned masked data depending
+ * on the memory type.
+ * \param *obs_ptr Reference to an optional observer
+ *
+ * \return UCS_RET_SUCCESS message was created and sent to INIC
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_PARAM parameter ubit_len ist too big
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Exc_MemoryRead_Sr(CExc *self,
+ uint16_t target_address,
+ uint16_t session_handle,
+ uint8_t mem_id,
+ uint32_t address,
+ uint8_t unit_len,
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.api, EXC_API_MEM_READ) != false)
+ {
+ if (unit_len > MAX_UNIT_LEN)
+ {
+ result = UCS_RET_ERR_PARAM;
+ }
+
+ if (result == UCS_RET_SUCCESS)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 8U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = target_address;
+ msg_ptr->id.fblock_id = FB_EXC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = EXC_FID_MEMORY_READ;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+ msg_ptr->tel.tel_data_ptr[0] = MISC_HB(session_handle);
+ msg_ptr->tel.tel_data_ptr[1] = MISC_LB(session_handle);
+ msg_ptr->tel.tel_data_ptr[2] = mem_id;
+ msg_ptr->tel.tel_data_ptr[3] = (uint8_t)((address) >> 24);
+ msg_ptr->tel.tel_data_ptr[4] = (uint8_t)((address) >> 16);
+ msg_ptr->tel.tel_data_ptr[5] = (uint8_t)((address) >> 8);
+ msg_ptr->tel.tel_data_ptr[6] = (uint8_t)(address & (uint32_t)0xFF);
+ msg_ptr->tel.tel_data_ptr[7] = unit_len;
+
+ msg_ptr->info_ptr = &self->ssubs.memoryread;
+ Trcv_TxSendMsg(self->xcvr_ptr, msg_ptr);
+
+ (void)Ssub_AddObserver(&self->ssubs.memoryread, obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.api, EXC_API_MEM_READ);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+
+/*! \brief This function provides write access to the memories described by parameter MemID.
+ *
+ * In addition, the function can be used to program a new Configuration String and Identification
+ * String.
+ * Writing the memory can only be done within an active memory session. Parameter
+ * SessionHandle authorizes the access to the memory resource defined by parameter
+ * MemID. The SessionHandle is provided by function ExtendedNetworkControl.MemorySessionOpen(),
+ * which must be called in advance to memory access.
+ *
+ * \param *self Reference to CExc instance
+ * \param target_address Target address
+ * \param session_handle Unique number assigned to the active memory session
+ * \param mem_id Represents the memory resource to be read
+ * \param address Defines the memory location at which the reading operation starts
+ * \param unit_len Sets the number of memory units to be read. Memory units can be
+ * unsigned bytes, unsigned words or unsigned masked data depending
+ * on the memory type.
+ * \param *unit_data Contains the actual data written to the memory resource and formatted
+ * as memory units
+ * \param *obs_ptr Reference to an optional observer
+ *
+ * \return UCS_RET_SUCCESS message was created and sent to INIC
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_PARAM parameter ubit_len ist too big
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Exc_MemoryWrite_Sr(CExc *self,
+ uint16_t target_address,
+ uint16_t session_handle,
+ uint8_t mem_id,
+ uint32_t address,
+ uint8_t unit_len,
+ uint8_t unit_data[],
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.api, EXC_API_MEM_WRITE) != false)
+ {
+ if (unit_len > MAX_UNIT_LEN)
+ {
+ result = UCS_RET_ERR_PARAM;
+ }
+
+ if (result == UCS_RET_SUCCESS)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 8U + unit_len);
+
+ if (msg_ptr != NULL)
+ {
+ uint8_t i;
+
+ msg_ptr->destination_addr = target_address;
+ msg_ptr->id.fblock_id = FB_EXC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = EXC_FID_MEMORY_WRITE;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+ msg_ptr->tel.tel_data_ptr[0] = MISC_HB(session_handle);
+ msg_ptr->tel.tel_data_ptr[1] = MISC_LB(session_handle);
+ msg_ptr->tel.tel_data_ptr[2] = mem_id;
+ msg_ptr->tel.tel_data_ptr[3] = (uint8_t)((address) >> 24);
+ msg_ptr->tel.tel_data_ptr[4] = (uint8_t)((address) >> 16);
+ msg_ptr->tel.tel_data_ptr[5] = (uint8_t)((address) >> 8);
+ msg_ptr->tel.tel_data_ptr[6] = (uint8_t)(address & (uint32_t)0xFF);
+ msg_ptr->tel.tel_data_ptr[7] = unit_len;
+ for (i=0U; i<unit_len; ++i)
+ {
+ msg_ptr->tel.tel_data_ptr[8U+i] = *(unit_data + i);
+ }
+
+ msg_ptr->info_ptr = &self->ssubs.memorywrite;
+ Trcv_TxSendMsg(self->xcvr_ptr, msg_ptr);
+
+ (void)Ssub_AddObserver(&self->ssubs.memorywrite, obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.api, EXC_API_MEM_WRITE);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Handler functions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Handler function for EXC.Hello.Status
+ * \param self Reference to EXC object
+ * \param msg_ptr Received message
+ */
+static void Exc_Hello_Status(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CExc *self_ = (CExc *)self;
+ Exc_HelloStatus_t hello_data;
+ Exc_StdResult_t res_data;
+
+ if (msg_ptr->tel.tel_len >= (EXC_SIGNATURE_LEN_V1 + 1U))
+ {
+ hello_data.version = msg_ptr->tel.tel_data_ptr[0];
+ Exc_Read_Signature(&(hello_data.signature), &(msg_ptr->tel.tel_data_ptr[1]));
+
+ res_data.data_info = &hello_data;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+ res_data.result.info_size = 0U;
+
+ /* Node Discovery sends the Hello.Get as broadcast message. So we will need the observer
+ several times. */
+ Ssub_Notify(&self_->ssubs.hello, &res_data, false);
+ }
+}
+
+
+/*! \brief Handler function for EXC.Hello.Error
+ * \param self reference to EXC object
+ * \param msg_ptr received message
+ */
+static void Exc_Hello_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CExc *self_ = (CExc *)self;
+ Exc_StdResult_t res_data;
+
+ if (msg_ptr->tel.tel_len > 0U)
+ {
+ res_data.data_info = NULL;
+ res_data.result = Exc_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (uint8_t)(msg_ptr->tel.tel_len));
+
+ /* Node Discovery sends the Hello.Get as broadcast message. So we will need the observer
+ several times. */
+ Ssub_Notify(&self_->ssubs.hello, &res_data, false);
+ }
+}
+
+
+/*! \brief Handler function for EXC.Welcome.Error
+ * \param self reference to EXC object
+ * \param msg_ptr received message
+ */
+static void Exc_Welcome_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CExc *self_ = (CExc *)self;
+ Exc_StdResult_t res_data;
+
+ if (msg_ptr->tel.tel_len > 0U)
+ {
+ res_data.data_info = NULL;
+ res_data.result = Exc_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (uint8_t)(msg_ptr->tel.tel_len));
+
+ Ssub_Notify(&self_->ssubs.welcome, &res_data, true);
+ }
+}
+
+/*! \brief Handler function for the EXC.Welcome.Result message
+ * \param self reference to EXC object
+ * \param msg_ptr received message
+ */
+static void Exc_Welcome_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CExc *self_ = (CExc *)self;
+ Exc_WelcomeResult_t welcome_data;
+ Exc_StdResult_t res_data;
+
+ if (msg_ptr->tel.tel_len >= (EXC_SIGNATURE_LEN_V1 + 2U))
+ {
+ welcome_data.res = msg_ptr->tel.tel_data_ptr[0];
+ welcome_data.version = msg_ptr->tel.tel_data_ptr[1];
+ Exc_Read_Signature(&(welcome_data.signature), &(msg_ptr->tel.tel_data_ptr[2]));
+ res_data.data_info = &welcome_data;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+
+ Ssub_Notify(&self_->ssubs.welcome, &res_data, true);
+ }
+}
+
+
+/*! Handler function for the EXC.Signature.Status message
+ * \param self reference to EXC object
+ * \param msg_ptr received message
+ */
+static void Exc_Signature_Status(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CExc *self_ = (CExc *)self;
+ Exc_SignatureStatus_t signature_data;
+ Exc_StdResult_t res_data;
+
+ if (msg_ptr->tel.tel_len >= (EXC_SIGNATURE_LEN_V1 + 1U))
+ {
+ signature_data.version = msg_ptr->tel.tel_data_ptr[0];
+ Exc_Read_Signature(&(signature_data.signature), &(msg_ptr->tel.tel_data_ptr[1]));
+
+ res_data.data_info = &signature_data;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+ res_data.result.info_size = 0U;
+
+ Ssub_Notify(&self_->ssubs.signature, &res_data, true);
+ }
+}
+
+
+/*! Handler function for the EXC.Signature.Error message
+ * \param self reference to EXC object
+ * \param msg_ptr received message
+ */
+static void Exc_Signature_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CExc *self_ = (CExc *)self;
+ Exc_StdResult_t res_data;
+
+ if (msg_ptr->tel.tel_len > 0U)
+ {
+ res_data.data_info = NULL;
+ res_data.result = Exc_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (uint8_t)(msg_ptr->tel.tel_len));
+
+ Ssub_Notify(&self_->ssubs.signature, &res_data, true);
+ }
+}
+
+
+/*! Handler function for the EXC.DeviceInit.Error message
+ * \param self reference to EXC object
+ * \param msg_ptr received message
+ */
+static void Exc_DeviceInit_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CExc *self_ = (CExc *)self;
+ Exc_StdResult_t res_data;
+
+ if (msg_ptr->tel.tel_len >0U)
+ {
+ res_data.data_info = NULL;
+ res_data.result = Exc_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (uint8_t)(msg_ptr->tel.tel_len));
+
+ Ssub_Notify(&self_->ssubs.deviceinit, &res_data, true);
+ }
+}
+
+
+/*! \brief Handler function for EXC.EnablePort.Error
+ * \param self reference to EXC object
+ * \param msg_ptr received message
+ */
+static void Exc_EnablePort_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CExc *self_ = (CExc *)self;
+ Exc_StdResult_t res_data;
+
+ if (msg_ptr->tel.tel_len > 0U)
+ {
+ res_data.result = Exc_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (uint8_t)(msg_ptr->tel.tel_len));
+
+ Ssub_Notify(&self_->ssubs.enableport, &res_data, true);
+ }
+}
+
+/*! \brief Handler function for EXC.EnablePort.Result
+ * \param self reference to EXC object
+ * \param msg_ptr received message
+ */
+static void Exc_EnablePort_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CExc *self_ = (CExc *)self;
+ Exc_StdResult_t res_data;
+
+ MISC_UNUSED(msg_ptr);
+
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+ Ssub_Notify(&self_->ssubs.enableport, &res_data, true);
+}
+
+
+/*! \brief Handler function for EXC.CableLinkDiag.Error
+ * \param self reference to EXC object
+ * \param msg_ptr received message
+ */
+static void Exc_CableLinkDiag_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CExc *self_ = (CExc *)self;
+ Exc_StdResult_t res_data;
+
+ if (msg_ptr->tel.tel_len > 0U)
+ {
+ res_data.data_info = NULL;
+ res_data.result = Exc_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (uint8_t)(msg_ptr->tel.tel_len));
+
+ Ssub_Notify(&self_->ssubs.cablelinkdiag, &res_data, true);
+ }
+}
+
+/*! \brief Handler function for EXC.CableLinkDiag.Result
+ * \param self reference to EXC object
+ * \param msg_ptr received message
+ */
+static void Exc_CableLinkDiag_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CExc *self_ = (CExc *)self;
+ Exc_CableLinkDiagResult_t cable_link_diag_result_data;
+ Exc_StdResult_t res_data;
+
+ if (msg_ptr->tel.tel_len > 0U)
+ {
+ cable_link_diag_result_data.port_number = msg_ptr->tel.tel_data_ptr[0];
+ cable_link_diag_result_data.result = msg_ptr->tel.tel_data_ptr[1];
+ res_data.data_info = &cable_link_diag_result_data;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+
+ Ssub_Notify(&self_->ssubs.cablelinkdiag, &res_data, true);
+ }
+}
+
+
+/*! \brief Handler function for EXC.PhysicalLayerTest.Error
+ * \param self reference to EXC object
+ * \param msg_ptr received message
+ */static void Exc_NwPhyTest_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CExc *self_ = (CExc *)self;
+ Exc_StdResult_t res_data;
+
+ if (msg_ptr->tel.tel_len > 0U)
+ {
+ res_data.data_info = NULL;
+ res_data.result = Exc_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (uint8_t)(msg_ptr->tel.tel_len));
+
+ Ssub_Notify(&self_->ssubs.phylaytest, &res_data, true);
+ }
+}
+
+
+/*! \brief Handler function for EXC.MOSTNetworkPhysicalLayerTestResult.Status
+ * \param self Reference to EXC object
+ * \param msg_ptr Received message
+ */
+static void Exc_NwPhyTestResult_Status(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CExc *self_ = (CExc *)self;
+ Exc_PhyTestResult_t phy_test_result;
+ Exc_StdResult_t res_data;
+
+ if (msg_ptr->tel.tel_len > 0U)
+ {
+ phy_test_result.port_number = msg_ptr->tel.tel_data_ptr[0];
+ phy_test_result.lock_status = (msg_ptr->tel.tel_data_ptr[1] != 0U) ? true : false;
+ MISC_DECODE_WORD(&(phy_test_result.err_count), &(msg_ptr->tel.tel_data_ptr[2]));
+ res_data.data_info = &phy_test_result;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+
+ Ssub_Notify(&self_->ssubs.phylaytestresult, &res_data, true);
+ }
+ Al_Release(&self_->lock.api, EXC_API_PHY_LAY_TEST_RESULT);
+}
+
+
+/*! \brief Handler function for EXC.MOSTNetworkPhysicalLayerTestResult.Error
+ * \param self reference to EXC object
+ * \param msg_ptr received message
+ */
+static void Exc_NwPhyTestResult_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CExc *self_ = (CExc *)self;
+ Exc_StdResult_t res_data;
+
+ if (msg_ptr->tel.tel_len > 0U)
+ {
+ res_data.data_info = NULL;
+ res_data.result = Exc_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (uint8_t)(msg_ptr->tel.tel_len));
+
+ Ssub_Notify(&self_->ssubs.phylaytestresult, &res_data, true);
+ }
+ Al_Release(&self_->lock.api, EXC_API_PHY_LAY_TEST_RESULT);
+}
+
+
+
+/*! \brief Handler function for EXC.BCDiag.Status
+ * \param self Reference to EXC object
+ * \param msg_ptr Received message
+ */
+static void Exc_BC_Diag_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CExc *self_ = (CExc *)self;
+ Exc_BCDiagResult bcd_result;
+ Exc_StdResult_t res_data;
+
+ if (msg_ptr->tel.tel_len > 1U)
+ {
+ bcd_result.diag_result = (Exc_BCDiagResValue)(msg_ptr->tel.tel_data_ptr[0] >> 4U);
+ MISC_DECODE_WORD(&(bcd_result.admin_addr), &(msg_ptr->tel.tel_data_ptr[0]));
+ bcd_result.admin_addr &= 0x0FFFU;
+ res_data.data_info = &bcd_result;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+
+ Ssub_Notify(&self_->ssubs.bcdiag, &res_data, true);
+ }
+}
+
+
+/*! \brief Handler function for EXC.BCDiag.Error
+ * \param self reference to EXC object
+ * \param msg_ptr received message
+ */
+static void Exc_BC_Diag_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CExc *self_ = (CExc *)self;
+ Exc_StdResult_t res_data;
+
+ if (msg_ptr->tel.tel_len > 0U)
+ {
+ res_data.data_info = NULL;
+ res_data.result = Exc_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (uint8_t)(msg_ptr->tel.tel_len));
+
+ Ssub_Notify(&self_->ssubs.bcdiag, &res_data, true);
+ }
+}
+
+
+
+
+/*! \brief Handler function for EXC.BCEnableTx.Result
+ * \param self Reference to EXC object
+ * \param msg_ptr Received message
+ */
+static void Exc_BC_EnableTx_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CExc *self_ = (CExc *)self;
+ Exc_StdResult_t res_data;
+
+ res_data.data_info = NULL;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+
+ Ssub_Notify(&self_->ssubs.enabletx, &res_data, true);
+
+ MISC_UNUSED(msg_ptr);
+}
+
+
+/*! \brief Handler function for EXC.BCEnableTx.Error
+ * \param self reference to EXC object
+ * \param msg_ptr received message
+ */
+static void Exc_BC_EnableTx_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CExc *self_ = (CExc *)self;
+ Exc_StdResult_t res_data;
+
+ if (msg_ptr->tel.tel_len > 0U)
+ {
+ res_data.data_info = NULL;
+ res_data.result = Exc_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (uint8_t)(msg_ptr->tel.tel_len));
+
+ Ssub_Notify(&self_->ssubs.enabletx, &res_data, true);
+ }
+}
+
+
+/*! \brief Handler function for EXC.MemorySessionOpen.Result
+ * \param self reference to EXC object
+ * \param msg_ptr received message
+ */
+static void Exc_MemSessionOpen_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CExc *self_ = (CExc *)self;
+ uint16_t session_handle;
+ Exc_StdResult_t res_data;
+
+ if (msg_ptr->tel.tel_len > 0U)
+ {
+ MISC_DECODE_WORD(&(session_handle), &(msg_ptr->tel.tel_data_ptr[0]));
+ res_data.data_info = &session_handle;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+
+ Ssub_Notify(&self_->ssubs.memsessionopen, &res_data, true);
+ }
+ Al_Release(&self_->lock.api, EXC_API_MEM_SESSION_OPEN);
+}
+
+
+/*! \brief Handler function for EXC.MemorySessionOpen.Error
+ * \param self reference to EXC object
+ * \param msg_ptr received message
+ */
+static void Exc_MemSessionOpen_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CExc *self_ = (CExc *)self;
+ Exc_StdResult_t res_data;
+
+ if (msg_ptr->tel.tel_len > 0U)
+ {
+ res_data.data_info = NULL;
+ res_data.result = Exc_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (uint8_t)(msg_ptr->tel.tel_len));
+
+ Ssub_Notify(&self_->ssubs.memsessionopen, &res_data, true);
+ }
+ Al_Release(&self_->lock.api, EXC_API_MEM_SESSION_OPEN);
+}
+
+
+/*! \brief Handler function for EXC.MemorySessionClose.Result
+ * \param self reference to EXC object
+ * \param msg_ptr received message
+ */
+static void Exc_MemSessionClose_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CExc *self_ = (CExc *)self;
+ uint8_t session_result;
+ Exc_StdResult_t res_data;
+
+ if (msg_ptr->tel.tel_len > 0U)
+ {
+ session_result = msg_ptr->tel.tel_data_ptr[0];
+ res_data.data_info = &session_result;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+
+ Ssub_Notify(&self_->ssubs.memsessionclose, &res_data, true);
+ }
+ Al_Release(&self_->lock.api, EXC_API_MEM_SESSION_CLOSE);
+}
+
+/*! \brief Handler function for EXC.MemorySessionClose.Error
+ * \param self reference to EXC object
+ * \param msg_ptr received message
+ */
+static void Exc_MemSessionClose_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CExc *self_ = (CExc *)self;
+ Exc_StdResult_t res_data;
+
+ if (msg_ptr->tel.tel_len > 0U)
+ {
+ res_data.data_info = NULL;
+ res_data.result = Exc_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (uint8_t)(msg_ptr->tel.tel_len));
+
+ Ssub_Notify(&self_->ssubs.memsessionclose, &res_data, true);
+ }
+ Al_Release(&self_->lock.api, EXC_API_MEM_SESSION_CLOSE);
+}
+
+/*! \brief Handler function for EXC.MemoryRead.Result
+ * \param self reference to EXC object
+ * \param msg_ptr received message
+ */
+static void Exc_MemoryRead_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CExc *self_ = (CExc *)self;
+ Exc_MemReadResult_t mem_read_result;
+ Exc_StdResult_t res_data;
+ uint8_t i;
+
+ if (msg_ptr->tel.tel_len > 0U)
+ {
+ MISC_DECODE_WORD(&(mem_read_result.session_handle), &(msg_ptr->tel.tel_data_ptr[0]));
+ mem_read_result.mem_id = msg_ptr->tel.tel_data_ptr[2];
+ MISC_DECODE_DWORD(&(mem_read_result.address), &(msg_ptr->tel.tel_data_ptr[3]));
+ mem_read_result.unit_len = msg_ptr->tel.tel_data_ptr[7];
+ for (i=0U; (i<mem_read_result.unit_len) && (i<MAX_UNIT_LEN); ++i)
+ {
+ mem_read_result.unit_data[i] = msg_ptr->tel.tel_data_ptr[8U+i];
+ }
+
+ res_data.data_info = &mem_read_result;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+
+ Ssub_Notify(&self_->ssubs.memoryread, &res_data, true);
+ }
+ Al_Release(&self_->lock.api, EXC_API_MEM_READ);
+}
+
+
+/*! \brief Handler function for EXC.MemoryRead.Error
+ * \param self reference to EXC object
+ * \param msg_ptr received message
+ */
+static void Exc_MemoryRead_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CExc *self_ = (CExc *)self;
+ Exc_StdResult_t res_data;
+
+ if (msg_ptr->tel.tel_len > 0U)
+ {
+ res_data.data_info = NULL;
+ res_data.result = Exc_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (uint8_t)(msg_ptr->tel.tel_len));
+
+ Ssub_Notify(&self_->ssubs.memoryread, &res_data, true);
+ }
+ Al_Release(&self_->lock.api, EXC_API_MEM_READ);
+}
+
+
+/*! \brief Handler function for EXC.MemoryWrite.Result
+ * \param self reference to EXC object
+ * \param msg_ptr received message
+ */
+static void Exc_MemoryWrite_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CExc *self_ = (CExc *)self;
+ Exc_MemWriteResult_t mem_write_result;
+ Exc_StdResult_t res_data;
+
+ if (msg_ptr->tel.tel_len > 0U)
+ {
+ MISC_DECODE_WORD(&(mem_write_result.session_handle), &(msg_ptr->tel.tel_data_ptr[0]));
+ mem_write_result.mem_id = msg_ptr->tel.tel_data_ptr[2];
+
+ res_data.data_info = &mem_write_result;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+
+ Ssub_Notify(&self_->ssubs.memorywrite, &res_data, true);
+ }
+ Al_Release(&self_->lock.api, EXC_API_MEM_WRITE);
+}
+
+
+/*! \brief Handler function for EXC.MemoryWrite.Error
+ * \param self reference to EXC object
+ * \param msg_ptr received message
+ */
+static void Exc_MemoryWrite_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CExc *self_ = (CExc *)self;
+ Exc_StdResult_t res_data;
+
+ if (msg_ptr->tel.tel_len > 0U)
+ {
+ res_data.data_info = NULL;
+ res_data.result = Exc_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (uint8_t)(msg_ptr->tel.tel_len));
+
+ Ssub_Notify(&self_->ssubs.memorywrite, &res_data, true);
+ }
+ Al_Release(&self_->lock.api, EXC_API_MEM_WRITE);
+}
+
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Helper functions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Translates EXC error codes into UNICENS error codes and wraps the raw INIC
+ * error data to a byte stream.
+ * \param self Instance of CExc
+ * \param error_data[] EXC error data
+ * \param error_size Size of EXC error data in bytes
+ * \return The formatted error
+ */
+static Ucs_StdResult_t Exc_TranslateError(CExc *self, uint8_t error_data[], uint8_t error_size)
+{
+ Ucs_StdResult_t ret_val;
+ MISC_UNUSED(self);
+
+ if(error_data[0] != 0x20U)
+ {
+ ret_val.code = UCS_RES_ERR_MOST_STANDARD;
+ }
+ else
+ {
+ ret_val.code = (Ucs_Result_t)(error_data[1] + 1U);
+ }
+
+ ret_val.info_ptr = &error_data[0];
+ ret_val.info_size = error_size;
+
+ return ret_val;
+}
+
+
+/*! \brief Reads a signature from a message's payload
+ *
+ * \param dest Pointer to signature
+ * \param source Pointer to start of signature inabyte array
+ */
+static void Exc_Read_Signature(Ucs_Signature_t *dest, uint8_t source[])
+{
+ MISC_DECODE_WORD(&(dest->node_address), source);
+ MISC_DECODE_WORD(&(dest->group_address), &(source[2]));
+ MISC_DECODE_WORD(&(dest->mac_47_32), &(source[4]));
+ MISC_DECODE_WORD(&(dest->mac_31_16), &(source[6]));
+ MISC_DECODE_WORD(&(dest->mac_15_0), &(source[8]));
+ MISC_DECODE_WORD(&(dest->node_pos_addr), &(source[10]));
+ MISC_DECODE_WORD(&(dest->diagnosis_id), &(source[12]));
+ dest->num_ports = source[14];
+ dest->chip_id = source[15];
+ dest->fw_major = source[16];
+ dest->fw_minor = source[17];
+ dest->fw_release = source[18];
+ MISC_DECODE_DWORD(&(dest->fw_build), &(source[19]));
+ dest->cs_major = source[23];
+ dest->cs_minor = source[24];
+ dest->cs_release = source[25];
+/* dest->uid_persistency = source[26];*/ /* Signature v1 */
+/* MISC_DECODE_DWORD(&(dest->uid), &(source[27]));*/
+
+}
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_factory.c b/ucs2-lib/src/ucs_factory.c
new file mode 100644
index 0000000..978e6d9
--- /dev/null
+++ b/ucs2-lib/src/ucs_factory.c
@@ -0,0 +1,830 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of the MNS Factory.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_FAC
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_factory.h"
+#include "ucs_xrm_pv.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal macros */
+/*------------------------------------------------------------------------------------------------*/
+#define IS_VALID_ADDR(addr) ((UCS_ADDR_LOCAL_DEV == (addr)) || ((0x0FU < (addr)) && (0x300U > (addr))) || ((0x04FFU < (addr)) && (0x0FF0U > (addr)))) /* parasoft-suppress MISRA2004-19_7 "common definition of type cast improves code" */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal prototypes */
+/*------------------------------------------------------------------------------------------------*/
+static void Fac_ConstructFbi (CFactory * self, CInic * fbi, uint16_t address);
+static CInic * Fac_SearchFbi(CFactory * self, uint16_t address);
+static void Fac_ConstructNsm (CFactory * self, CNodeScriptManagement * nsm, uint16_t address);
+static CRemoteSyncManagement * Fac_SearchRsm(CFactory * self, uint16_t address);
+static CExtendedResourceManager * Fac_SearchXrm(CFactory * self, uint16_t address);
+static CGpio * Fac_SearchGpio(CFactory * self, uint16_t address);
+static CI2c* Fac_SearchI2c(CFactory * self, uint16_t address);
+static CNodeScriptManagement * Fac_SearchNsm(CFactory * self, uint16_t address);
+static CInic * Fac_GetUninitializedFbi (CFactory * self);
+static CNodeScriptManagement * Fac_GetUninitializedNsm (CFactory * self);
+static CRemoteSyncManagement * Fac_GetUninitializedRsm (CFactory * self);
+static CExtendedResourceManager * Fac_GetUninitializedXrm (CFactory * self);
+static CGpio * Fac_GetUninitializedGpio (CFactory * self);
+static CI2c * Fac_GetUninitializedI2c (CFactory * self);
+static bool Fac_IsFbiUninitialized(CInic * fbi);
+static bool Fac_IsRsmUninitialized(CRemoteSyncManagement * rsm);
+static bool Fac_IsXrmUninitialized(CExtendedResourceManager * xrm);
+static bool Fac_IsGpioUninitialized(CGpio * gpio);
+static bool Fac_IsI2cUninitialized(CI2c * i2c);
+static bool Fac_IsNsmUninitialized(CNodeScriptManagement * nsm);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation of class CFactory */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Constructor of the MNS Factory class.
+ * \param self Instance pointer
+ * \param init_ptr init data_ptr
+ */
+void Fac_Ctor(CFactory * self, Fac_InitData_t * init_ptr)
+{
+ uint8_t i;
+ Rsm_InitData_t rsm_init_data;
+
+ MISC_MEM_SET(self, 0, sizeof(CFactory));
+
+ /* set base and net instances */
+ self->base_ptr = init_ptr->base_ptr;
+ self->net_ptr = init_ptr->net_ptr;
+ self->xrmp_ptr = init_ptr->xrmp_ptr;
+ self->icm_transceiver = init_ptr->icm_transceiver;
+ self->rcm_transceiver = init_ptr->rcm_transceiver;
+
+ rsm_init_data.base_ptr = self->base_ptr;
+ rsm_init_data.net_ptr = self->net_ptr;
+
+ for (i = 0U; i<FAC_NUM_DEVICES; i++)
+ {
+ rsm_init_data.inic_ptr = &self->fbi_list[i];
+ Rsm_Ctor(&self->rsm_list[i], &rsm_init_data);
+ }
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Service */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Returns the XRM instance associated with the given address.
+ * \param self Instance pointer
+ * \param address Address of the device associated with the instance
+ * \param res_debugging_fptr The resources debugging callback function
+ * \param check_unmute_fptr The check unmute callback function
+ * \return a reference to a XRM instance or \c NULL if no appropriate instance has been found.
+ */
+CExtendedResourceManager * Fac_GetXrm(CFactory * self, uint16_t address, Ucs_Xrm_ResourceDebugCb_t res_debugging_fptr, Ucs_Xrm_CheckUnmuteCb_t check_unmute_fptr)
+{
+ CRemoteSyncManagement * rsm_inst = NULL;
+ CExtendedResourceManager * xrm_inst = NULL;
+
+ if (IS_VALID_ADDR(address))
+ {
+ xrm_inst = Fac_SearchXrm(self, address);
+ if (xrm_inst == NULL)
+ {
+ rsm_inst = Fac_GetRsm(self, address);
+ if (rsm_inst != NULL)
+ {
+ Xrm_InitData_t xrm_init_data;
+ xrm_inst = Fac_GetUninitializedXrm(self);
+ if (xrm_inst != NULL)
+ {
+ xrm_init_data.base_ptr = self->base_ptr;
+ xrm_init_data.net_ptr = self->net_ptr;
+ xrm_init_data.rsm_ptr = rsm_inst;
+ xrm_init_data.inic_ptr = rsm_inst->inic_ptr;
+ xrm_init_data.xrmp_ptr = self->xrmp_ptr;
+ xrm_init_data.check_unmute_fptr = check_unmute_fptr;
+ xrm_init_data.res_debugging_fptr = res_debugging_fptr;
+ Xrm_Ctor(xrm_inst, &xrm_init_data);
+ }
+ }
+ }
+ Xrm_SetResourceDebugCbFn(xrm_inst, res_debugging_fptr);
+ }
+
+ return xrm_inst;
+}
+
+/*! \brief Returns the XRM instance associated with the given address.
+ * \param self Instance pointer
+ * \param address Address of the device associated with the instance
+ * \param check_unmute_fptr The check unmute callback function
+ * \return a reference to a XRM instance or \c NULL if no appropriate instance has been found.
+ */
+CExtendedResourceManager * Fac_GetXrmLegacy(CFactory * self, uint16_t address, Ucs_Xrm_CheckUnmuteCb_t check_unmute_fptr)
+{
+ return Fac_GetXrm(self, address, NULL, check_unmute_fptr);
+}
+
+
+/*! \brief Returns the XRM instance associated with the resource list.
+ * \note <b>This function should only be used in case of Ucs_Xrm_Destroy() since it's certain in that case that the XRM instance for the given job list already exists!</b>
+ * \param self Instance pointer
+ * \param resource_object_list Reference to the job list
+ * \return a reference to a XRM instance or \c NULL if no appropriate instance has been found.
+ */
+CExtendedResourceManager * Fac_GetXrmByJobList(CFactory * self, UCS_XRM_CONST Ucs_Xrm_ResObject_t *resource_object_list[])
+{
+ uint8_t i;
+ CExtendedResourceManager * ret_xrm = NULL;
+
+ for(i=0U; i<FAC_NUM_DEVICES; i++)
+ {
+ if (Xrm_IsInMyJobList(&self->xrm_list[i], resource_object_list))
+ {
+ ret_xrm = &self->xrm_list[i];
+ break;
+ }
+ }
+
+ return ret_xrm;
+}
+
+/*! \brief Returns the FBlock INIC instance associated with the given address.
+ * \param self Instance pointer
+ * \param address Address of the device associated with the instance
+ * \return a reference to a FBI instance or \c NULL if no suitable instance has been found.
+ */
+CInic * Fac_GetInic(CFactory * self, uint16_t address)
+{
+ CInic * fbi_inst = NULL;
+
+ if (IS_VALID_ADDR(address))
+ {
+ fbi_inst = Fac_SearchFbi(self, address);
+ if (fbi_inst == NULL)
+ {
+ fbi_inst = Fac_GetUninitializedFbi(self);
+ if (fbi_inst != NULL)
+ {
+ Fac_ConstructFbi(self, fbi_inst, address);
+ }
+ }
+ }
+
+ return fbi_inst;
+}
+
+/*! \brief Returns the CNodeScriptManagement instance associated with the given address.
+ * \param self Instance pointer
+ * \param address Address of the device associated with the instance
+ * \return a reference to a FBI instance or \c NULL if no suitable instance has been found.
+ */
+CNodeScriptManagement * Fac_GetNsm(CFactory * self, uint16_t address)
+{
+ CNodeScriptManagement * nsm_inst = NULL;
+
+ if (IS_VALID_ADDR(address))
+ {
+ nsm_inst = Fac_SearchNsm(self, address);
+ if (nsm_inst == NULL)
+ {
+ nsm_inst = Fac_GetUninitializedNsm(self);
+ if (nsm_inst != NULL)
+ {
+ Fac_ConstructNsm(self, nsm_inst, address);
+ }
+ }
+ }
+
+ return nsm_inst;
+}
+
+/*! \brief Returns the RSM instance associated with the given address.
+ * \param self Instance pointer
+ * \param address Address of the device associated with the instance
+ * \return a reference to a RSM instance or \c NULL if no suitable instance has been found.
+ */
+CRemoteSyncManagement * Fac_GetRsm(CFactory * self, uint16_t address)
+{
+ CRemoteSyncManagement * rsm_inst = NULL;
+
+ if (IS_VALID_ADDR(address))
+ {
+ rsm_inst = Fac_SearchRsm(self, address);
+ if (rsm_inst == NULL)
+ {
+ rsm_inst = Fac_GetUninitializedRsm(self);
+ if (rsm_inst != NULL)
+ {
+ Fac_ConstructFbi(self, rsm_inst->inic_ptr, address);
+ }
+ }
+ }
+
+ return rsm_inst;
+}
+
+/*! \brief Returns the GPIO instance associated with the given address.
+ * \param self Instance pointer
+ * \param address Address of the device associated with the instance
+ * \param trigger_event_status_fptr User GPIO trigger event status callback function pointer.
+ * \return a reference to a GPIO instance or \c NULL if no suitable instance has been found.
+ */
+CGpio * Fac_GetGpio(CFactory * self, uint16_t address, Ucs_Gpio_TriggerEventResultCb_t trigger_event_status_fptr)
+{
+ CGpio * gpio_inst = NULL;
+ CNodeScriptManagement * nsm_inst = NULL;
+
+ if (IS_VALID_ADDR(address))
+ {
+ gpio_inst = Fac_SearchGpio(self, address);
+ if (NULL == gpio_inst)
+ {
+ nsm_inst = Fac_GetNsm(self, address);
+ if (NULL != nsm_inst)
+ {
+ Gpio_InitData_t gpio_init_data;
+ gpio_inst = Fac_GetUninitializedGpio(self);
+ if (NULL != gpio_inst)
+ {
+ gpio_init_data.nsm_ptr = nsm_inst;
+ gpio_init_data.inic_ptr = nsm_inst->rsm_ptr->inic_ptr;
+ gpio_init_data.trigger_event_status_fptr = trigger_event_status_fptr;
+ Gpio_Ctor(gpio_inst, &gpio_init_data);
+ }
+ }
+ }
+ }
+
+ return gpio_inst;
+}
+
+/*! \brief Returns the I2C instance associated with the given address.
+ * \param self Instance pointer
+ * \param address Address of the device associated with the instance
+ * \param i2c_interrupt_report_fptr User GPIO trigger event status callback function pointer.
+ * \return a reference to an I2C instance or \c NULL if no suitable instance has been found.
+ */
+CI2c * Fac_GetI2c(CFactory * self, uint16_t address, Ucs_I2c_IntEventReportCb_t i2c_interrupt_report_fptr)
+{
+ CI2c * i2c_inst = NULL;
+ CNodeScriptManagement * nsm_inst = NULL;
+
+ if (IS_VALID_ADDR(address))
+ {
+ i2c_inst = Fac_SearchI2c (self, address);
+ if (NULL == i2c_inst)
+ {
+ nsm_inst = Fac_GetNsm(self, address);
+ if (nsm_inst != NULL)
+ {
+ I2c_InitData_t i2c_init_data;
+ i2c_inst = Fac_GetUninitializedI2c(self);
+ if (NULL != i2c_inst)
+ {
+ i2c_init_data.nsm_ptr = nsm_inst;
+ i2c_init_data.inic_ptr = nsm_inst->rsm_ptr->inic_ptr;
+ i2c_init_data.i2c_interrupt_report_fptr = i2c_interrupt_report_fptr;
+ I2c_Ctor(i2c_inst, &i2c_init_data);
+ }
+ }
+ }
+ }
+
+ return i2c_inst;
+}
+
+/*! \brief Searches for the INIC instance associated with the given address and returns It if found.
+ * \param self Instance pointer
+ * \param address Address of the device associated with this instance
+ * \return a reference to the found instance otherwise \c NULL.
+ */
+CInic * Fac_FindInic(CFactory * self, uint16_t address)
+{
+ return Fac_SearchFbi (self, address);
+}
+
+/*! \brief Searches for the NSM instance associated with the given address and returns It if found.
+ * \param self Instance pointer
+ * \param address Address of the device associated with this instance
+ * \return a reference to the found instance otherwise \c NULL.
+ */
+CNodeScriptManagement * Fac_FindNsm(CFactory * self, uint16_t address)
+{
+ return Fac_SearchNsm (self, address);
+}
+
+/*! \brief Searches for the RSM instance associated with the given address and returns It if found.
+ * \param self Instance pointer
+ * \param address Address of the device associated with this instance
+ * \return a reference to the found instance otherwise \c NULL.
+ */
+CRemoteSyncManagement * Fac_FindRsm(CFactory * self, uint16_t address)
+{
+ return Fac_SearchRsm (self, address);
+}
+
+/*! \brief Calls the given function for each instance of inst_type type. If the func_ptr
+ * returns true the loop is stopped.
+ * \param self Reference to a Factory Instance
+ * \param inst_type The instance type to be looked for
+ * \param func_ptr Reference of the callback function which is called for each node
+ * \param user_data_ptr Reference of optional user data pass to the func_ptr
+ */
+void Fac_Foreach(CFactory * self, Fac_Inst_t inst_type, Fac_ForeachFunc_t func_ptr, void *user_data_ptr)
+{
+ uint8_t j;
+ void * curr_inst = NULL;
+ bool exit_loop = false;
+
+ for(j=0U; j<FAC_NUM_DEVICES; j++)
+ {
+ switch(inst_type)
+ {
+ case FAC_INST_INIC:
+ curr_inst = &self->fbi_list[j];
+ if (Fac_IsFbiUninitialized((CInic *)curr_inst))
+ {
+ curr_inst = NULL;
+ }
+ break;
+
+ case FAC_INST_RSM:
+ curr_inst = &self->rsm_list[j];
+ if (Fac_IsRsmUninitialized((CRemoteSyncManagement *)curr_inst))
+ {
+ curr_inst = NULL;
+ }
+ break;
+
+ case FAC_INST_XRM:
+ curr_inst = &self->xrm_list[j];
+ if (Fac_IsXrmUninitialized((CExtendedResourceManager *)curr_inst))
+ {
+ curr_inst = NULL;
+ }
+ break;
+
+ case FAC_INST_GPIO:
+ curr_inst = &self->gpio_list[j];
+ if (Fac_IsGpioUninitialized((CGpio *)curr_inst))
+ {
+ curr_inst = NULL;
+ }
+ break;
+
+ case FAC_INST_I2C:
+ curr_inst = &self->i2c_list[j];
+ if (Fac_IsI2cUninitialized((CI2c *)curr_inst))
+ {
+ curr_inst = NULL;
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ if (curr_inst != NULL)
+ {
+ if (func_ptr(inst_type, curr_inst, user_data_ptr) != false)
+ {
+ exit_loop = true;
+ }
+ }
+ else
+ {
+ exit_loop = true;
+ }
+
+ if (exit_loop)
+ {
+ break;
+ }
+ }
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Private Methods */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Search for the FBI instance associated with the given address and return It.
+ * \param self Instance pointer
+ * \param address Address to be looked for
+ * \return a reference to the found FBI or \c NULL if no suitable instance has been found.
+ */
+static CInic * Fac_SearchFbi(CFactory * self, uint16_t address)
+{
+ CInic * found_fbi = NULL;
+ uint8_t i;
+ uint16_t tmp_addr = address;
+
+ if ((tmp_addr != UCS_ADDR_LOCAL_DEV) && (Net_IsOwnAddress(self->net_ptr, tmp_addr) == NET_IS_OWN_ADDR_NODE))
+ {
+ tmp_addr = UCS_ADDR_LOCAL_DEV;
+ }
+
+ for (i = 0U; (i<FAC_NUM_DEVICES) && (!Fac_IsFbiUninitialized(&self->fbi_list[i])); i++)
+ {
+ if (tmp_addr == Inic_GetTargetAddress(&self->fbi_list[i]))
+ {
+ found_fbi = &self->fbi_list[i];
+ break;
+ }
+ }
+
+ return found_fbi;
+}
+
+/*! \brief Search for the NSM instance associated with the given address and return It.
+ * \param self Instance pointer
+ * \param address Address to be looked for
+ * \return a reference to the found NSM or \c NULL if no suitable instance has been found.
+ */
+static CNodeScriptManagement * Fac_SearchNsm(CFactory * self, uint16_t address)
+{
+ CNodeScriptManagement * found_nsm = NULL;
+ uint8_t i;
+ uint16_t tmp_addr = address;
+
+ if ((tmp_addr != UCS_ADDR_LOCAL_DEV) && (Net_IsOwnAddress(self->net_ptr, tmp_addr) == NET_IS_OWN_ADDR_NODE))
+ {
+ tmp_addr = UCS_ADDR_LOCAL_DEV;
+ }
+
+ for (i = 0U; (i<FAC_NUM_DEVICES) && (!Fac_IsNsmUninitialized(&self->nsm_list[i])); i++)
+ {
+ if (tmp_addr == self->nsm_list[i].target_address)
+ {
+ found_nsm = &self->nsm_list[i];
+ break;
+ }
+ }
+
+ return found_nsm;
+}
+
+/*! \brief Search for the RSM instance associated with the given address.
+ * \param self Instance pointer
+ * \param address Address to be looked for
+ * \return a reference to the found RSM or \c NULL if no suitable instance has been found.
+ */
+static CRemoteSyncManagement * Fac_SearchRsm(CFactory * self, uint16_t address)
+{
+ CRemoteSyncManagement * found_rsm = NULL;
+ uint8_t i;
+ uint16_t tmp_addr = address;
+
+ if ((tmp_addr != UCS_ADDR_LOCAL_DEV) && (Net_IsOwnAddress(self->net_ptr, tmp_addr) == NET_IS_OWN_ADDR_NODE))
+ {
+ tmp_addr = UCS_ADDR_LOCAL_DEV;
+ }
+
+ for (i = 0U; (i<FAC_NUM_DEVICES) && (!Fac_IsFbiUninitialized(self->rsm_list[i].inic_ptr)); i++)
+ {
+ if (tmp_addr == Inic_GetTargetAddress(self->rsm_list[i].inic_ptr))
+ {
+ found_rsm = &self->rsm_list[i];
+ break;
+ }
+ }
+
+ return found_rsm;
+}
+
+/*! \brief Search for the XRM instance associated with the given address.
+ * \param self Instance pointer
+ * \param address Address to be looked for
+ * \return a reference to the found XRM or \c NULL if no suitable instance has been found.
+ */
+static CExtendedResourceManager * Fac_SearchXrm(CFactory * self, uint16_t address)
+{
+ CExtendedResourceManager * found_xrm = NULL;
+ uint8_t i;
+ uint16_t tmp_addr = address;
+
+ if ((tmp_addr != UCS_ADDR_LOCAL_DEV) && (Net_IsOwnAddress(self->net_ptr, tmp_addr) == NET_IS_OWN_ADDR_NODE))
+ {
+ tmp_addr = UCS_ADDR_LOCAL_DEV;
+ }
+
+ for (i = 0U; (i<FAC_NUM_DEVICES) && (!Fac_IsXrmUninitialized(&self->xrm_list[i])); i++)
+ {
+ if (tmp_addr == Inic_GetTargetAddress(self->xrm_list[i].rsm_ptr->inic_ptr))
+ {
+ found_xrm = &self->xrm_list[i];
+ break;
+ }
+ }
+
+ return found_xrm;
+}
+
+/*! \brief Search for the Gpio instance associated with the given address.
+ * \param self Instance pointer
+ * \param address Address to be looked for
+ * \return a reference to the found GPIO or \c NULL if no suitable instance has been found.
+ */
+static CGpio * Fac_SearchGpio(CFactory * self, uint16_t address)
+{
+ CGpio * found_gpio = NULL;
+ uint8_t i;
+ uint16_t tmp_addr = address;
+
+ if ((tmp_addr != UCS_ADDR_LOCAL_DEV) && (Net_IsOwnAddress(self->net_ptr, tmp_addr) == NET_IS_OWN_ADDR_NODE))
+ {
+ tmp_addr = UCS_ADDR_LOCAL_DEV;
+ }
+
+ for (i = 0U; (i<FAC_NUM_DEVICES) && (!Fac_IsGpioUninitialized(&self->gpio_list[i])); i++)
+ {
+ if (tmp_addr == Inic_GetTargetAddress(self->gpio_list[i].nsm_ptr->rsm_ptr->inic_ptr))
+ {
+ found_gpio = &self->gpio_list[i];
+ break;
+ }
+ }
+
+ return found_gpio;
+}
+
+/*! \brief Search for the I2c instance associated with the given address.
+ * \param self Instance pointer
+ * \param address Address to be looked for
+ * \return a reference to the found GPIO or \c NULL if no suitable instance has been found.
+ */
+static CI2c * Fac_SearchI2c(CFactory * self, uint16_t address)
+{
+ CI2c * found_i2c = NULL;
+ uint8_t i;
+ uint16_t tmp_addr = address;
+
+ if ((tmp_addr != UCS_ADDR_LOCAL_DEV) && (Net_IsOwnAddress(self->net_ptr, tmp_addr) == NET_IS_OWN_ADDR_NODE))
+ {
+ tmp_addr = UCS_ADDR_LOCAL_DEV;
+ }
+
+ for (i = 0U; (i<FAC_NUM_DEVICES) && (!Fac_IsI2cUninitialized(&self->i2c_list[i])); i++)
+ {
+ if (tmp_addr == Inic_GetTargetAddress(self->i2c_list[i].nsm_ptr->rsm_ptr->inic_ptr))
+ {
+ found_i2c = &self->i2c_list[i];
+ break;
+ }
+ }
+
+ return found_i2c;
+}
+
+/*! \brief Returns the next free uninitialized XRM instance
+ * \param self Instance pointer
+ * \return a reference to the next free uninitialized XRM instance if found, otherwise \c NULL.
+ */
+static CExtendedResourceManager * Fac_GetUninitializedXrm (CFactory * self)
+{
+ CExtendedResourceManager * tmp_xrm = NULL;
+ uint8_t i;
+
+ for (i = 0U; i<FAC_NUM_DEVICES; i++)
+ {
+ if (self->xrm_list[i].rsm_ptr == NULL)
+ {
+ tmp_xrm = &self->xrm_list[i];
+ break;
+ }
+ }
+
+ return tmp_xrm;
+}
+
+/*! \brief Returns the next free uninitialized FBI instance
+ * \param self Instance pointer
+ * \return a reference to the next free uninitialized FBI instance if found, otherwise \c NULL.
+ */
+static CInic * Fac_GetUninitializedFbi (CFactory * self)
+{
+ CInic * tmp_inic = NULL;
+ uint8_t i;
+
+ for (i = 0U; i<FAC_NUM_DEVICES; i++)
+ {
+ if (self->fbi_list[i].base_ptr == NULL)
+ {
+ tmp_inic = &self->fbi_list[i];
+ break;
+ }
+ }
+
+ return tmp_inic;
+}
+
+/*! \brief Returns the next free uninitialized NSM instance
+ * \param self Instance pointer
+ * \return a reference to the next free uninitialized NSM instance if found, otherwise \c NULL.
+ */
+static CNodeScriptManagement * Fac_GetUninitializedNsm (CFactory * self)
+{
+ CNodeScriptManagement * tmp_nsm = NULL;
+ uint8_t i;
+
+ for (i = 0U; i<FAC_NUM_DEVICES; i++)
+ {
+ if (self->nsm_list[i].base_ptr == NULL)
+ {
+ tmp_nsm = &self->nsm_list[i];
+ break;
+ }
+ }
+
+ return tmp_nsm;
+}
+
+/*! \brief Returns the next free uninitialized RSM instance
+ * \param self Instance pointer
+ * \return a reference to the next free uninitialized RSM instance if found, otherwise \c NULL.
+ */
+static CRemoteSyncManagement * Fac_GetUninitializedRsm (CFactory * self)
+{
+ CRemoteSyncManagement * tmp_rsm = NULL;
+ uint8_t i;
+
+ for (i = 0U; i<FAC_NUM_DEVICES; i++)
+ {
+ if (Inic_GetTargetAddress(self->rsm_list[i].inic_ptr) == 0x0U)
+ {
+ tmp_rsm = &self->rsm_list[i];
+ break;
+ }
+ }
+
+ return tmp_rsm;
+}
+
+/*! \brief Returns the next free uninitialized GPIO instance
+ * \param self Instance pointer
+ * \return a reference to the next free uninitialized GPIO instance if found, otherwise \c NULL.
+ */
+static CGpio * Fac_GetUninitializedGpio (CFactory * self)
+{
+ CGpio * tmp_gpio = NULL;
+ uint8_t i;
+
+ for (i = 0U; i<FAC_NUM_DEVICES; i++)
+ {
+ if (NULL == self->gpio_list[i].nsm_ptr)
+ {
+ tmp_gpio = &self->gpio_list[i];
+ break;
+ }
+ }
+
+ return tmp_gpio;
+}
+
+/*! \brief Returns the next free uninitialized I2C instance
+ * \param self Instance pointer
+ * \return a reference to the next free uninitialized I2C instance if found, otherwise \c NULL.
+ */
+static CI2c * Fac_GetUninitializedI2c (CFactory * self)
+{
+ CI2c * tmp_i2c = NULL;
+ uint8_t i;
+
+ for (i = 0U; i<FAC_NUM_DEVICES; i++)
+ {
+ if (NULL == self->i2c_list[i].nsm_ptr)
+ {
+ tmp_i2c = &self->i2c_list[i];
+ break;
+ }
+ }
+
+ return tmp_i2c;
+}
+
+/*! \brief Constructs the given FBI instance
+ * \param self the MNS factory Instance pointer
+ * \param fbi the INIC Instance pointer
+ * \param address the device address of this FBlock INIC
+ */
+static void Fac_ConstructFbi (CFactory * self, CInic * fbi, uint16_t address)
+{
+ Inic_InitData_t inic_init_data;
+
+ if (address == UCS_ADDR_LOCAL_DEV)
+ {
+ inic_init_data.xcvr_ptr = self->icm_transceiver;
+ }
+ else
+ {
+ inic_init_data.xcvr_ptr = self->rcm_transceiver;
+ }
+
+ inic_init_data.base_ptr = self->base_ptr;
+ inic_init_data.tgt_addr = address;
+
+ Inic_Ctor(fbi, &inic_init_data);
+}
+
+/*! \brief Constructs the given NSM instance
+ * \param self the MNS factory Instance pointer
+ * \param nsm the NSM Instance pointer
+ * \param address the device address
+ */
+static void Fac_ConstructNsm (CFactory * self, CNodeScriptManagement * nsm, uint16_t address)
+{
+ Nsm_InitData_t nsm_init_data;
+
+ nsm_init_data.base_ptr = self->base_ptr;
+ nsm_init_data.rcm_ptr = self->rcm_transceiver;
+ nsm_init_data.rsm_ptr = Fac_GetRsm(self, address);
+
+ Nsm_Ctor(nsm, &nsm_init_data);
+}
+
+/*! \brief Checks whether the given FBlock INIC instance is uninitialized
+ * \param fbi the INIC Instance pointer
+ * \return \c true if the given Fbi instance is not initialized, otherwise \c False.
+ */
+static bool Fac_IsFbiUninitialized(CInic * fbi)
+{
+ return (fbi->base_ptr == NULL) ;
+}
+
+/*! \brief Checks whether the given NSM instance is uninitialized
+ * \param nsm the NSM Instance pointer
+ * \return \c true if the given NSM instance is not initialized, otherwise \c False.
+ */
+static bool Fac_IsNsmUninitialized(CNodeScriptManagement * nsm)
+{
+ return (nsm->base_ptr == NULL) ;
+}
+
+/*! \brief Checks whether the given RSM instance is uninitialized
+ * \param rsm Reference to the RSM instance pointer
+ * \return \c true if the given Fbi instance is not initialized, otherwise \c False.
+ */
+static bool Fac_IsRsmUninitialized(CRemoteSyncManagement * rsm)
+{
+ return Fac_IsFbiUninitialized(rsm->inic_ptr);
+}
+
+/*! \brief Checks whether the given XRM instance is uninitialized
+ * \param xrm the XRM Instance pointer
+ * \return \c true if the given XRM instance is not initialized, otherwise \c False.
+ */
+static bool Fac_IsXrmUninitialized(CExtendedResourceManager * xrm)
+{
+ return (xrm->rsm_ptr == NULL) ;
+}
+
+/*! \brief Checks whether the given GPIO instance is uninitialized
+ * \param gpio the GPIO Instance pointer
+ * \return \c true if the given GPIO instance is not initialized, otherwise \c False.
+ */
+static bool Fac_IsGpioUninitialized(CGpio * gpio)
+{
+ return (NULL == gpio->nsm_ptr);
+}
+
+/*! \brief Checks whether the given I2C instance is uninitialized
+ * \param i2c the I2C Instance pointer
+ * \return \c true if the given I2C instance is not initialized, otherwise \c False.
+ */
+static bool Fac_IsI2cUninitialized(CI2c * i2c)
+{
+ return (NULL == i2c->nsm_ptr);
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_fsm.c b/ucs2-lib/src/ucs_fsm.c
new file mode 100644
index 0000000..c180b0a
--- /dev/null
+++ b/ucs2-lib/src/ucs_fsm.c
@@ -0,0 +1,172 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of the Finite State Machine.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_FSM
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_fsm.h"
+#include "ucs_misc.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal definitions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief NIL-event, indicates that no event is pending at the moment */
+#define FSM_E_NILEVENT 0
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal prototypes */
+/*------------------------------------------------------------------------------------------------*/
+static Fsm_Act_t Fsm_StateEval(CFsm *self);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Constructor of the Finite State Machine class.
+ * \param self Instance pointer
+ * \param inst_ptr Instance pointer used for state machine actions
+ * \param trans_table_ptr Pointer to transition table
+ * \param num_events Maximum number of events
+ * \param init_state Initialization state to start with
+ */
+void Fsm_Ctor(CFsm *self, void *inst_ptr, const Fsm_StateElem_t *trans_table_ptr,
+ uint8_t num_events, int8_t init_state)
+{
+ MISC_MEM_SET(self, 0, sizeof(*self));
+ self->inst_ptr = inst_ptr;
+ self->event_occured = FSM_E_NILEVENT; /* Clear event variable */
+ self->current_state = init_state; /* Set initialization state */
+ self->transition_table_ptr = trans_table_ptr; /* Set pointer to given transition table */
+ self->num_events = num_events; /* Store maximum number of events */
+ self->internal_state = FSM_STATE_IDLE; /* Clear internal state */
+}
+
+/*! \brief Determine required action
+ * \details This function determines the required action in dependency of the current state
+ * and the triggered event. The current state will be transitioned to the next state.
+ * The internal event variable will be cleared and the determined action will be
+ * returned.
+ * \param self Instance pointer
+ * \return Determined required action
+ * \return \c NULL if no action is required
+ */
+static Fsm_Act_t Fsm_StateEval(CFsm *self)
+{
+ Fsm_Act_t retval = NULL; /* Set default return value */
+
+ if(self->event_occured != FSM_E_NILEVENT) /* Event occurred ? */
+ {
+ if((uint8_t)self->event_occured <= self->num_events) /* Check if event is valid */
+ {
+ /* Get state-matrix-element in dependency of current state and triggered event */
+ uint8_t i = ((uint8_t)self->current_state * self->num_events) + (uint8_t)self->event_occured;
+ Fsm_StateElem_t stateEvaluation = self->transition_table_ptr[i];
+ self->current_state = stateEvaluation.next_state; /* Set new state */
+ self->internal_state = FSM_STATE_IDLE; /* Set internal state to \c IDLE */
+ retval = stateEvaluation.action_fptr; /* Return required action */
+ }
+ else
+ {
+ self->internal_state = FSM_STATE_ERROR; /* Error occurred: Unknown event */
+ }
+
+ self->event_occured = FSM_E_NILEVENT; /* Clear event variable */
+ }
+
+ return retval;
+}
+
+/*! \brief Service function for Finite State Machines
+ * \details The state machine will be serviced until it will be stopped by the user or no
+ * further event is triggered. If a state transition occurred the associated action
+ * will be executed.
+ * \param self Instance pointer
+ * \return Internal state of the state machine (see \ref Fsm_State_t).
+ */
+Fsm_State_t Fsm_Service(CFsm *self)
+{
+ /* Internal state is set to \c FSM_STATE_SERVICE and any event is triggered? */
+ while((self->internal_state == FSM_STATE_SERVICE) && (self->event_occured != FSM_E_NILEVENT))
+ {
+ Fsm_Act_t action_fptr = Fsm_StateEval(self); /* Execute state transition */
+ if(action_fptr != NULL) /* Action required ? */
+ {
+ (*action_fptr)(self->inst_ptr); /* Execute action */
+ }
+ }
+
+ return self->internal_state; /* Return internal state machine state */
+}
+
+/*! \brief Set an event
+ * \details This function sets the given event and triggers the service for the given
+ * state machine.
+ * \param self Instance pointer
+ * \param e New event
+ */
+void Fsm_SetEvent(CFsm *self, int8_t e)
+{
+ if(self->internal_state != FSM_STATE_END)
+ {
+ self->event_occured = e; /* Set new event */
+ self->internal_state = FSM_STATE_SERVICE; /* Set internal state to \c FSM_STATE_SERVICE */
+ }
+}
+
+/*! \brief Sets the wait state
+ * \details This function sets the given state state machine into the wait state. The state
+ * machine stops and must be re-triggered.
+ * \param self Instance pointer
+ */
+void Fsm_Wait(CFsm *self)
+{
+ if(self->internal_state != FSM_STATE_END)
+ {
+ self->internal_state = FSM_STATE_WAIT; /* Set internal state to \c WAIT */
+ }
+}
+
+/*! \brief End processing of the state machine
+ * \details If this function is called the given state machine will be stopped immediately.
+ * \param self Instance pointer
+ */
+void Fsm_End(CFsm *self)
+{
+ self->internal_state = FSM_STATE_END; /* Set internal state to \c END */
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_gpio.c b/ucs2-lib/src/ucs_gpio.c
new file mode 100644
index 0000000..645978f
--- /dev/null
+++ b/ucs2-lib/src/ucs_gpio.c
@@ -0,0 +1,713 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of the GPIO module.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_GPIO
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_gpio.h"
+#include "ucs_misc.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal prototypes */
+/*------------------------------------------------------------------------------------------------*/
+static void Gpio_PortCreateResCb(void *self, void *result_ptr);
+static void Gpio_PinModeConfigResCb(void *self, void *result_ptr);
+static void Gpio_PinStateConfigResCb(void *self, void *result_ptr);
+static void Gpio_TriggerEventStatusCb(void *self, void *result_ptr);
+static bool Gpio_RxFilter4NsmCb(Msg_MostTel_t *tel_ptr, void *self);
+static void Gpio_RxError(void *self, Msg_MostTel_t *msg_ptr, Gpio_ErrResultCb_t res_cb_fptr);
+static void Gpio_PortCreate_Result(void *self, Msg_MostTel_t *msg_ptr);
+static void Gpio_PortPinMode_Status(void *self, Msg_MostTel_t *msg_ptr);
+static void Gpio_PortPinState_Status(void *self, Msg_MostTel_t *msg_ptr);
+static void Gpio_NsmResultCb(void * self, Nsm_Result_t result);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation of class Gpio */
+/*------------------------------------------------------------------------------------------------*/
+/*------------------------------------------------------------------------------------------------*/
+/* Initialization Methods */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Constructor of the GPIO class.
+ * \param self Reference to CGpio instance.
+ * \param init_ptr init data_ptr.
+ */
+void Gpio_Ctor(CGpio *self, Gpio_InitData_t *init_ptr)
+{
+ MISC_MEM_SET(self, 0, sizeof(CGpio));
+
+ /* Set class instances */
+ self->inic_ptr = init_ptr->inic_ptr;
+ self->nsm_ptr = init_ptr->nsm_ptr;
+
+ self->curr_user_data.trigger_event_status_fptr = init_ptr->trigger_event_status_fptr;
+
+ /* Init observers */
+ Obs_Ctor(&self->triggerevent_observer, self, &Gpio_TriggerEventStatusCb);
+
+ /* Subscribe Observers */
+ Inic_AddObsrvGpioTriggerEvent(self->inic_ptr, &self->triggerevent_observer);
+
+ /* Set device target address */
+ self->device_address = Inic_GetTargetAddress(self->inic_ptr);
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Service Functions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Creates the GPIO port
+ * \param self Reference to CGpio instance.
+ * \param index The index of the GPIO Port instance.
+ * \param debounce_time The timeout for the GPIO debounce timer (in ms).
+ * \param res_fptr Required result callback function pointer.
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * --------------------------- | ------------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_PARAM | At least one parameter is wrong
+ * UCS_RET_ERR_BUFFER_OVERFLOW | No message buffer available
+ * UCS_RET_ERR_API_LOCKED | API is currently locked
+ */
+Ucs_Return_t Gpio_CreatePort(CGpio * self, uint8_t index, uint16_t debounce_time, Ucs_Gpio_CreatePortResCb_t res_fptr)
+{
+ Ucs_Return_t result = UCS_RET_ERR_PARAM;
+
+ if ((NULL != self) && (NULL != res_fptr))
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ if (!Nsm_IsLocked(self->nsm_ptr))
+ {
+ Gpio_Script_t * tmp_script = &self->curr_script;
+
+ /* Set Data */
+ tmp_script->cfg_data[0] = index;
+ tmp_script->cfg_data[1] = MISC_HB(debounce_time);
+ tmp_script->cfg_data[2] = MISC_LB(debounce_time);
+
+ /* Set message id */
+ tmp_script->cfg_msg.FBlockId = FB_INIC;
+ tmp_script->cfg_msg.InstId = 0U;
+ tmp_script->cfg_msg.FunktId = INIC_FID_GPIO_PORT_CREATE;
+ tmp_script->cfg_msg.OpCode = (uint8_t)UCS_OP_STARTRESULT;
+ tmp_script->cfg_msg.DataLen = 3U;
+ tmp_script->cfg_msg.DataPtr = &tmp_script->cfg_data[0];
+
+ /* Set script */
+ tmp_script->script.send_cmd = &tmp_script->cfg_msg;
+ tmp_script->script.pause = 0U;
+
+ /* Transmit script */
+ result = Nsm_Run_Pv(self->nsm_ptr, &tmp_script->script, 1U, self, &Gpio_RxFilter4NsmCb, &Gpio_NsmResultCb);
+ if(result == UCS_RET_SUCCESS)
+ {
+ self->curr_user_data.portcreate_res_cb = res_fptr;
+ self->curr_res_cb = &Gpio_PortCreateResCb;
+ }
+ }
+ }
+
+ return result;
+}
+
+/*! \brief Sets the pin mode configuration of the given GPIO port
+ * \param self Reference to CGpio instance.
+ * \param gpio_port_handle The GPIO Port resource handle.
+ * \param pin The GPIO pin that is to be configured.
+ * \param mode The mode of the GPIO pin.
+ * \param res_fptr Required result callback function pointer.
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * --------------------------- | ------------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_PARAM | At least one parameter is wrong
+ * UCS_RET_ERR_BUFFER_OVERFLOW | No message buffer available
+ * UCS_RET_ERR_API_LOCKED | API is currently locked
+ */
+Ucs_Return_t Gpio_SetPinModeConfig(CGpio * self, uint16_t gpio_port_handle, uint8_t pin, Ucs_Gpio_PinMode_t mode, Ucs_Gpio_ConfigPinModeResCb_t res_fptr)
+{
+ Ucs_Return_t result = UCS_RET_ERR_PARAM;
+
+ if ((NULL != self) && (NULL != res_fptr))
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ if (!Nsm_IsLocked(self->nsm_ptr))
+ {
+ Gpio_Script_t * tmp_script = &self->curr_script;
+
+ /* Set Data */
+ tmp_script->cfg_data[0] = MISC_HB(gpio_port_handle);
+ tmp_script->cfg_data[1] = MISC_LB(gpio_port_handle);
+ tmp_script->cfg_data[2] = pin;
+ tmp_script->cfg_data[3] = (uint8_t)mode;
+
+ /* Set message id */
+ tmp_script->cfg_msg.FBlockId = FB_INIC;
+ tmp_script->cfg_msg.InstId = 0U;
+ tmp_script->cfg_msg.FunktId = INIC_FID_GPIO_PORT_PIN_MODE;
+ tmp_script->cfg_msg.OpCode = (uint8_t)UCS_OP_SETGET;
+ tmp_script->cfg_msg.DataLen = 4U;
+ tmp_script->cfg_msg.DataPtr = &tmp_script->cfg_data[0];
+
+ /* Set script */
+ tmp_script->script.send_cmd = &tmp_script->cfg_msg;
+ tmp_script->script.pause = 0U;
+
+ /* Transmit script */
+ result = Nsm_Run_Pv(self->nsm_ptr, &tmp_script->script, 1U, self, &Gpio_RxFilter4NsmCb, &Gpio_NsmResultCb);
+ if(result == UCS_RET_SUCCESS)
+ {
+ self->curr_user_data.pinmode_res_cb = res_fptr;
+ self->curr_res_cb = &Gpio_PinModeConfigResCb;
+ }
+ }
+ }
+
+ return result;
+}
+
+/*! \brief Gets the pin mode configuration of the given GPIO port
+ * \param self Reference to CGpio instance.
+ * \param gpio_port_handle The GPIO Port resource handle.
+ * \param res_fptr Required result callback function pointer.
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * --------------------------- | ------------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_PARAM | At least one parameter is wrong
+ * UCS_RET_ERR_BUFFER_OVERFLOW | No message buffer available
+ * UCS_RET_ERR_API_LOCKED | API is currently locked
+ */
+Ucs_Return_t Gpio_GetPinModeConfig(CGpio * self, uint16_t gpio_port_handle, Ucs_Gpio_ConfigPinModeResCb_t res_fptr)
+{
+ Ucs_Return_t result = UCS_RET_ERR_PARAM;
+
+ if ((NULL != self) && (NULL != res_fptr))
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ if (!Nsm_IsLocked(self->nsm_ptr))
+ {
+ Gpio_Script_t * tmp_script = &self->curr_script;
+
+ /* Set Data */
+ tmp_script->cfg_data[0] = MISC_HB(gpio_port_handle);
+ tmp_script->cfg_data[1] = MISC_LB(gpio_port_handle);
+
+ /* Set message id */
+ tmp_script->cfg_msg.FBlockId = FB_INIC;
+ tmp_script->cfg_msg.InstId = 0U;
+ tmp_script->cfg_msg.FunktId = INIC_FID_GPIO_PORT_PIN_MODE;
+ tmp_script->cfg_msg.OpCode = (uint8_t)UCS_OP_GET;
+ tmp_script->cfg_msg.DataLen = 2U;
+ tmp_script->cfg_msg.DataPtr = &tmp_script->cfg_data[0];
+
+ /* Set script */
+ tmp_script->script.send_cmd = &tmp_script->cfg_msg;
+ tmp_script->script.pause = 0U;
+
+ /* Transmit script */
+ result = Nsm_Run_Pv(self->nsm_ptr, &tmp_script->script, 1U, self, &Gpio_RxFilter4NsmCb, &Gpio_NsmResultCb);
+ if(result == UCS_RET_SUCCESS)
+ {
+ self->curr_user_data.pinmode_res_cb = res_fptr;
+ self->curr_res_cb = &Gpio_PinModeConfigResCb;
+ }
+ }
+ }
+
+ return result;
+}
+
+/*! \brief Sets the pin state configuration of the given GPIO port
+ * \param self Reference to CGpio instance.
+ * \param gpio_port_handle The GPIO Port resource handle.
+ * \param mask The GPIO pin to be written.
+ * \param data The state of the GPIO pin to be written.
+ * \param res_fptr Required result callback function pointer.
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * --------------------------- | ------------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_PARAM | At least one parameter is wrong
+ * UCS_RET_ERR_BUFFER_OVERFLOW | No message buffer available
+ * UCS_RET_ERR_API_LOCKED | API is currently locked
+ */
+Ucs_Return_t Gpio_SetPinStateConfig(CGpio * self, uint16_t gpio_port_handle, uint16_t mask, uint16_t data, Ucs_Gpio_PinStateResCb_t res_fptr)
+{
+ Ucs_Return_t result = UCS_RET_ERR_PARAM;
+
+ if ((NULL != self) && (NULL != res_fptr))
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ if (!Nsm_IsLocked(self->nsm_ptr))
+ {
+ Gpio_Script_t * tmp_script = &self->curr_script;
+
+ /* Set Data */
+ tmp_script->cfg_data[0] = MISC_HB(gpio_port_handle);
+ tmp_script->cfg_data[1] = MISC_LB(gpio_port_handle);
+ tmp_script->cfg_data[2] = MISC_HB(mask);
+ tmp_script->cfg_data[3] = MISC_LB(mask);
+ tmp_script->cfg_data[4] = MISC_HB(data);
+ tmp_script->cfg_data[5] = MISC_LB(data);
+
+ /* Set message id */
+ tmp_script->cfg_msg.FBlockId = FB_INIC;
+ tmp_script->cfg_msg.InstId = 0U;
+ tmp_script->cfg_msg.FunktId = INIC_FID_GPIO_PORT_PIN_STATE;
+ tmp_script->cfg_msg.OpCode = (uint8_t)UCS_OP_SETGET;
+ tmp_script->cfg_msg.DataLen = 6U;
+ tmp_script->cfg_msg.DataPtr = &tmp_script->cfg_data[0];
+
+ /* Set script */
+ tmp_script->script.send_cmd = &tmp_script->cfg_msg;
+ tmp_script->script.pause = 0U;
+
+ /* Transmit script */
+ result = Nsm_Run_Pv(self->nsm_ptr, &tmp_script->script, 1U, self, &Gpio_RxFilter4NsmCb, &Gpio_NsmResultCb);
+ if(result == UCS_RET_SUCCESS)
+ {
+ self->curr_user_data.pinstate_res_cb = res_fptr;
+ self->curr_res_cb = &Gpio_PinStateConfigResCb;
+ }
+ }
+ }
+
+ return result;
+}
+
+/*! \brief Retrieves the pin state configuration of the given GPIO port
+ * \param self Reference to CGpio instance.
+ * \param gpio_port_handle The GPIO Port resource handle.
+ * \param res_fptr Required result callback function pointer.
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * --------------------------- | ------------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_PARAM | At least one parameter is wrong
+ * UCS_RET_ERR_BUFFER_OVERFLOW | No message buffer available
+ * UCS_RET_ERR_API_LOCKED | API is currently locked
+ */
+Ucs_Return_t Gpio_GetPinStateConfig(CGpio * self, uint16_t gpio_port_handle, Ucs_Gpio_PinStateResCb_t res_fptr)
+{
+ Ucs_Return_t result = UCS_RET_ERR_PARAM;
+
+ if ((NULL != self) && (NULL != res_fptr))
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ if (!Nsm_IsLocked(self->nsm_ptr))
+ {
+ Gpio_Script_t * tmp_script = &self->curr_script;
+
+ /* Set Data */
+ tmp_script->cfg_data[0] = MISC_HB(gpio_port_handle);
+ tmp_script->cfg_data[1] = MISC_LB(gpio_port_handle);
+
+ /* Set message id */
+ tmp_script->cfg_msg.FBlockId = FB_INIC;
+ tmp_script->cfg_msg.InstId = 0U;
+ tmp_script->cfg_msg.FunktId = INIC_FID_GPIO_PORT_PIN_STATE;
+ tmp_script->cfg_msg.OpCode = (uint8_t)UCS_OP_GET;
+ tmp_script->cfg_msg.DataLen = 2U;
+ tmp_script->cfg_msg.DataPtr = &tmp_script->cfg_data[0];
+
+ /* Set script */
+ tmp_script->script.send_cmd = &tmp_script->cfg_msg;
+ tmp_script->script.pause = 0U;
+
+ /* Transmit script */
+ result = Nsm_Run_Pv(self->nsm_ptr, &tmp_script->script, 1U, self, &Gpio_RxFilter4NsmCb, &Gpio_NsmResultCb);
+ if(result == UCS_RET_SUCCESS)
+ {
+ self->curr_user_data.pinstate_res_cb = res_fptr;
+ self->curr_res_cb = &Gpio_PinStateConfigResCb;
+ }
+ }
+ }
+
+ return result;
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Private Methods */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Handles the result of the GPIOPortCreate.StartResultAck
+ * \param self Reference to CGpio instance
+ * \param result_ptr result pointer
+ */
+static void Gpio_PortCreateResCb(void *self, void *result_ptr)
+{
+ CGpio *self_ = (CGpio *)self;
+ uint16_t gpio_port_handle;
+ Ucs_Gpio_Result_t res;
+ Inic_StdResult_t *result_ptr_ = (Inic_StdResult_t *)result_ptr;
+
+ /* Init result */
+ MISC_MEM_SET(&res, 0, sizeof(Ucs_Gpio_Result_t));
+
+ if (NULL != result_ptr_)
+ {
+ gpio_port_handle = 0U;
+ res.code = UCS_GPIO_RES_ERR_CMD;
+ res.details.result_type = UCS_GPIO_RESULT_TYPE_TGT;
+ res.details.inic_result = result_ptr_->result;
+ if (result_ptr_->data_info != NULL)
+ {
+ if(result_ptr_->result.code == UCS_RES_SUCCESS)
+ {
+ res.code = UCS_GPIO_RES_SUCCESS;
+ gpio_port_handle = *(uint16_t *)result_ptr_->data_info;
+ }
+ else if(result_ptr_->result.code == UCS_RES_ERR_TRANSMISSION)
+ {
+ res.details.result_type = UCS_GPIO_RESULT_TYPE_TX;
+ res.details.tx_result = *(Ucs_MsgTxStatus_t *)(result_ptr_->data_info);
+ }
+ else if (result_ptr_->result.code == UCS_RES_ERR_CONFIGURATION)
+ {
+ res.code = UCS_GPIO_RES_ERR_SYNC;
+ }
+ }
+
+ if (NULL != self_->curr_user_data.portcreate_res_cb)
+ {
+ self_->curr_user_data.portcreate_res_cb(self_->device_address, gpio_port_handle, res, self_->inic_ptr->base_ptr->ucs_user_ptr);
+ }
+ }
+}
+
+/*! \brief Handles the result of the GPIOPortPinMode.Status
+ * \param self Reference to CGpio instance
+ * \param result_ptr result pointer
+ */
+static void Gpio_PinModeConfigResCb(void *self, void *result_ptr)
+{
+ CGpio *self_ = (CGpio *)self;
+ Inic_GpioPortPinModeStatus_t status;
+ Ucs_Gpio_Result_t res;
+ Inic_StdResult_t *result_ptr_ = (Inic_StdResult_t *)result_ptr;
+
+ /* Init result */
+ MISC_MEM_SET(&res, 0, sizeof(Ucs_Gpio_Result_t));
+
+ if (NULL != result_ptr_)
+ {
+ status.gpio_handle = 0U;
+ status.cfg_list = NULL;
+ status.len = 0U;
+ res.code = UCS_GPIO_RES_ERR_CMD;
+ res.details.result_type = UCS_GPIO_RESULT_TYPE_TGT;
+ res.details.inic_result = result_ptr_->result;
+ if (result_ptr_->data_info != NULL)
+ {
+ if(result_ptr_->result.code == UCS_RES_SUCCESS)
+ {
+ res.code = UCS_GPIO_RES_SUCCESS;
+ status = *(Inic_GpioPortPinModeStatus_t *)result_ptr_->data_info;
+ }
+ else if(result_ptr_->result.code == UCS_RES_ERR_TRANSMISSION)
+ {
+ res.details.result_type = UCS_GPIO_RESULT_TYPE_TX;
+ res.details.tx_result = *(Ucs_MsgTxStatus_t *)(result_ptr_->data_info);
+ }
+ else if (result_ptr_->result.code == UCS_RES_ERR_CONFIGURATION)
+ {
+ res.code = UCS_GPIO_RES_ERR_SYNC;
+ }
+ }
+
+ if (NULL != self_->curr_user_data.pinmode_res_cb)
+ {
+ self_->curr_user_data.pinmode_res_cb(self_->device_address, status.gpio_handle, status.cfg_list, status.len, res, self_->inic_ptr->base_ptr->ucs_user_ptr);
+ }
+ }
+}
+
+/*! \brief Handles the result of the GPIOPortPinSate.Status
+ * \param self Reference to CGpio instance
+ * \param result_ptr result pointer
+ */
+static void Gpio_PinStateConfigResCb(void *self, void *result_ptr)
+{
+ CGpio *self_ = (CGpio *)self;
+ Inic_GpioPortPinStateStatus_t status;
+ Ucs_Gpio_Result_t res;
+ Inic_StdResult_t *result_ptr_ = (Inic_StdResult_t *)result_ptr;
+
+ /* Init result */
+ MISC_MEM_SET(&res, 0, sizeof(Ucs_Gpio_Result_t));
+
+ if (NULL != result_ptr_)
+ {
+ status.gpio_handle = 0U;
+ status.current_state = 0U;
+ status.sticky_state = 0U;
+ res.code = UCS_GPIO_RES_ERR_CMD;
+ res.details.result_type = UCS_GPIO_RESULT_TYPE_TGT;
+ res.details.inic_result = result_ptr_->result;
+ if (result_ptr_->data_info != NULL)
+ {
+ if(result_ptr_->result.code == UCS_RES_SUCCESS)
+ {
+ res.code = UCS_GPIO_RES_SUCCESS;
+ status = *(Inic_GpioPortPinStateStatus_t *)result_ptr_->data_info;
+ }
+ else if (result_ptr_->result.code == UCS_RES_ERR_CONFIGURATION)
+ {
+ res.code = UCS_GPIO_RES_ERR_SYNC;
+ }
+ else
+ {
+ res.details.result_type = UCS_GPIO_RESULT_TYPE_TX;
+ res.details.tx_result = *(Ucs_MsgTxStatus_t *)(result_ptr_->data_info);
+ }
+ }
+
+ if (NULL != self_->curr_user_data.pinstate_res_cb)
+ {
+ self_->curr_user_data.pinstate_res_cb(self_->device_address, status.gpio_handle, status.current_state, status.sticky_state, res, self_->inic_ptr->base_ptr->ucs_user_ptr);
+ }
+ }
+}
+
+/*! \brief Handles the result of the GPIOPortTriggerEvent.Status
+ * \param self Reference to CGpio instance
+ * \param result_ptr result pointer
+ */
+static void Gpio_TriggerEventStatusCb(void *self, void *result_ptr)
+{
+ CGpio *self_ = (CGpio *)self;
+ Inic_GpioTriggerEventStatus_t status;
+ Inic_StdResult_t *result_ptr_ = (Inic_StdResult_t *)result_ptr;
+
+ if (NULL != result_ptr_)
+ {
+ status = *(Inic_GpioTriggerEventStatus_t *)result_ptr_->data_info;
+
+ if (NULL != self_->curr_user_data.trigger_event_status_fptr)
+ {
+ self_->curr_user_data.trigger_event_status_fptr(self_->device_address, status.gpio_handle, status.rising_edges, status.falling_edges, status.levels, self_->inic_ptr->base_ptr->ucs_user_ptr);
+ }
+ }
+}
+
+
+/*! \brief Checks whether the incoming is our message and handles It if it's.
+ * \param tel_ptr Reference to the message object.
+ * \param self Reference to the user argument.
+ * \return Returns \c true to discard the message and free it to the pool if it's our message. Otherwise, returns
+ * \c false.
+ */
+static bool Gpio_RxFilter4NsmCb(Msg_MostTel_t *tel_ptr, void *self)
+{
+ CGpio *self_ = (CGpio *)self;
+ bool ret_val = true;
+
+ if ((tel_ptr != NULL) && (tel_ptr->id.function_id == self_->curr_script.script.send_cmd->FunktId))
+ {
+ if (tel_ptr->id.op_type == UCS_OP_RESULT)
+ {
+ switch(tel_ptr->id.function_id)
+ {
+ case INIC_FID_GPIO_PORT_CREATE:
+ Gpio_PortCreate_Result(self_, tel_ptr);
+ break;
+ case INIC_FID_GPIO_PORT_PIN_MODE:
+ Gpio_PortPinMode_Status(self_, tel_ptr);
+ break;
+ case INIC_FID_GPIO_PORT_PIN_STATE:
+ Gpio_PortPinState_Status(self_, tel_ptr);
+ break;
+ default:
+ ret_val = false;
+ break;
+ }
+ }
+ else if (tel_ptr->id.op_type == UCS_OP_ERROR)
+ {
+ Gpio_ErrResultCb_t res_cb_fptr = self_->curr_res_cb;
+ Gpio_RxError(self_, tel_ptr, res_cb_fptr);
+ }
+ }
+ else
+ {
+ ret_val = false;
+ }
+
+ return ret_val;
+}
+
+/*! \brief Result callback function for NSM result. Whenever this function is called the NodeScripting has finished the
+ * script's execution. This function handles transmission and sync error. Only these two kind of errors can occur.
+ * \param self Reference to the called user instance.
+ * \param result Result of the scripting operation.
+ */
+static void Gpio_NsmResultCb(void * self, Nsm_Result_t result)
+{
+ CGpio *self_ = (CGpio *)self;
+
+ if (self_ != NULL)
+ {
+ Inic_StdResult_t res_data;
+ bool allow_report = false;
+
+ if ((result.code == UCS_NS_RES_ERROR) && (result.details.result_type == NS_RESULT_TYPE_TX))
+ {
+ res_data.data_info = &result.details.tx_result;
+ res_data.result.code = UCS_RES_ERR_TRANSMISSION;
+ res_data.result.info_ptr = NULL;
+ res_data.result.info_size = 0U;
+ allow_report = true;
+ }
+ else if ((result.code == UCS_NS_RES_ERROR) && (result.details.result_type == NS_RESULT_TYPE_TGT_SYNC))
+ {
+ res_data.data_info = &result.details.inic_result;
+ res_data.result.code = result.details.inic_result.code;
+ res_data.result.info_ptr = result.details.inic_result.info_ptr;
+ res_data.result.info_size = result.details.inic_result.info_size;
+ allow_report = true;
+ }
+ else if ((result.code == UCS_NS_RES_ERROR) && ((result.details.tx_result == UCS_MSG_STAT_OK) ||
+ (result.details.inic_result.code == UCS_RES_SUCCESS)))
+ {
+ res_data.data_info = NULL;
+ res_data.result.code = UCS_RES_ERR_TIMEOUT;
+ res_data.result.info_ptr = NULL;
+ res_data.result.info_size = 0U;
+
+ TR_ERROR((self_->nsm_ptr->base_ptr->ucs_user_ptr, "[GPIO]", "TIMEOUT ERROR occurred for currently GPIO command. No response received from target device with address 0x%X.", 1U, self_->device_address));
+ }
+
+ if ((self_->curr_res_cb != NULL) && (allow_report))
+ {
+ self_->curr_res_cb(self_, &res_data);
+ }
+ }
+}
+
+/*---------------------------------- GW Functions ----------------------------------*/
+
+/*! \brief Error Handler function for all GPIO methods
+ * \param self Reference to CGpio instance
+ * \param msg_ptr Pointer to received message
+ * \param res_cb_fptr Pointer to a specified error handler function
+ */
+static void Gpio_RxError(void *self, Msg_MostTel_t *msg_ptr, Gpio_ErrResultCb_t res_cb_fptr)
+{
+ CGpio *self_ = (CGpio *)self;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_->inic_ptr,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (msg_ptr->tel.tel_len));
+ if (res_cb_fptr != NULL)
+ {
+ res_cb_fptr(self_, &res_data);
+ }
+}
+
+/*! \brief Handler function for GPIOPortCreate.ResultAck
+ * \details Element res_data.data_info points to the variable gpio_port_handle which holds the
+ * GPIO Port resource handle.
+ * \param self Reference to CGpio instance
+ * \param msg_ptr Pointer to received message
+ */
+static void Gpio_PortCreate_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CGpio *self_ = (CGpio *)self;
+ uint16_t gpio_port_handle;
+ Inic_StdResult_t res_data;
+
+ MISC_DECODE_WORD(&gpio_port_handle, &(msg_ptr->tel.tel_data_ptr[0]));
+ res_data.data_info = &gpio_port_handle;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+
+ Gpio_PortCreateResCb(self_, &res_data);
+}
+
+/*! \brief Handler function for GPIOPortPinMode.Status
+ * \param self Reference to CGpio instance
+ * \param msg_ptr Pointer to received message
+ */
+static void Gpio_PortPinMode_Status(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CGpio *self_ = (CGpio *)self;
+ Inic_GpioPortPinModeStatus_t res;
+ Inic_StdResult_t res_data;
+ uint8_t i = 2U, j = 0U;
+ Ucs_Gpio_PinConfiguration_t pin_ls[16U];
+
+ res.cfg_list = &pin_ls[0];
+ res.len = (msg_ptr->tel.tel_len - 2U) >> 1U;
+ res_data.data_info = &res;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+
+ MISC_DECODE_WORD(&res.gpio_handle, &(msg_ptr->tel.tel_data_ptr[0]));
+ for (; (i < msg_ptr->tel.tel_len) && (j < 16U); i=i+2U)
+ {
+ pin_ls[j].pin = msg_ptr->tel.tel_data_ptr[i];
+ pin_ls[j].mode = (Ucs_Gpio_PinMode_t)msg_ptr->tel.tel_data_ptr[i+1U];
+ j++;
+ }
+
+ Gpio_PinModeConfigResCb(self_, &res_data);
+}
+
+/*! \brief Handler function for GPIOPortPinState.Status
+ * \param self Reference to CGpio instance
+ * \param msg_ptr Pointer to received message
+ */
+static void Gpio_PortPinState_Status(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CGpio *self_ = (CGpio *)self;
+ Inic_GpioPortPinStateStatus_t res;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = &res;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+
+ MISC_DECODE_WORD(&res.gpio_handle, &(msg_ptr->tel.tel_data_ptr[0]));
+ MISC_DECODE_WORD(&res.current_state, &(msg_ptr->tel.tel_data_ptr[2]));
+ MISC_DECODE_WORD(&res.sticky_state, &(msg_ptr->tel.tel_data_ptr[4]));
+
+ Gpio_PinStateConfigResCb(self_, &res_data);
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_i2c.c b/ucs2-lib/src/ucs_i2c.c
new file mode 100644
index 0000000..d2523b0
--- /dev/null
+++ b/ucs2-lib/src/ucs_i2c.c
@@ -0,0 +1,646 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of the I2C Module.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_I2C
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_i2c.h"
+#include "ucs_misc.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal prototypes */
+/*------------------------------------------------------------------------------------------------*/
+static void I2c_PortCreateResCb(void *self, void *result_ptr);
+static void I2c_PortWriteResCb(void *self, void *result_ptr);
+static void I2c_PortReadResCb(void *self, void *result_ptr);
+static void I2c_TriggerEventStatusCb(void *self, void *result_ptr);
+static bool I2c_RxFilter4NsmCb(Msg_MostTel_t *tel_ptr, void *self);
+static void I2c_PortCreate_Result(void *self, Msg_MostTel_t *msg_ptr);
+static void I2c_PortRead_Result(void *self, Msg_MostTel_t *msg_ptr);
+static void I2c_PortWrite_Result(void *self, Msg_MostTel_t *msg_ptr);
+static void I2c_RxError(void *self, Msg_MostTel_t *msg_ptr, I2c_ErrResultCb_t res_cb_fptr);
+static void I2c_NsmResultCb(void * self, Nsm_Result_t result);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation of class I2C */
+/*------------------------------------------------------------------------------------------------*/
+/*------------------------------------------------------------------------------------------------*/
+/* Initialization Methods */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Constructor of the I2C class.
+ * \param self Instance pointer
+ * \param init_ptr init data_ptr
+ */
+void I2c_Ctor(CI2c * self, I2c_InitData_t * init_ptr)
+{
+ MISC_MEM_SET(self, 0, sizeof(CI2c));
+
+ /* Set class instances */
+ self->inic_ptr = init_ptr->inic_ptr;
+ self->base_ptr = self->inic_ptr->base_ptr;
+ self->nsm_ptr = init_ptr->nsm_ptr;
+
+ self->curr_user_data.i2c_interrupt_report_fptr = init_ptr->i2c_interrupt_report_fptr;
+
+ /* Init GPIOTriggerEvent observer */
+ Obs_Ctor(&self->triggerevent_observer, self, &I2c_TriggerEventStatusCb);
+
+ /* Subscribe Observers */
+ Inic_AddObsrvGpioTriggerEvent(self->inic_ptr, &self->triggerevent_observer);
+
+ /* Set device id */
+ self->device_address = Inic_GetTargetAddress(self->inic_ptr);
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Service Functions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Creates an I2C Port with its associated parameter.
+ * \param self Reference to CI2c instance
+ * \param index I2C Port instance
+ * \param speed The speed grade of the I2C Port
+ * \param i2c_int_mask The I2C interrupt pin mask on the GPIO Port.
+ * \param res_fptr Required result callback function pointer.
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * --------------------------- | ------------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_PARAM | At least one parameter is wrong
+ * UCS_RET_ERR_BUFFER_OVERFLOW | No message buffer available
+ * UCS_RET_ERR_API_LOCKED | API is currently locked
+ */
+Ucs_Return_t I2c_CreatePort(CI2c * self, uint8_t index, Ucs_I2c_Speed_t speed, uint8_t i2c_int_mask, Ucs_I2c_CreatePortResCb_t res_fptr)
+{
+ Ucs_Return_t result = UCS_RET_ERR_PARAM;
+ uint8_t address = 0x00U; /* Address will be ignored */
+ uint8_t mode = 0x01U; /* Master Mode */
+
+ if ((NULL != self) && (NULL != res_fptr))
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ if (!Nsm_IsLocked(self->nsm_ptr))
+ {
+ I2c_Script_t * tmp_script = &self->curr_script;
+
+ /* Set Data */
+ tmp_script->cfg_data[0] = index;
+ tmp_script->cfg_data[1] = address;
+ tmp_script->cfg_data[2] = mode;
+ tmp_script->cfg_data[3] = (uint8_t)speed;
+
+ /* Set message id */
+ tmp_script->cfg_msg.FBlockId = FB_INIC;
+ tmp_script->cfg_msg.InstId = 0U;
+ tmp_script->cfg_msg.FunktId = INIC_FID_I2C_PORT_CREATE;
+ tmp_script->cfg_msg.OpCode = (uint8_t)UCS_OP_STARTRESULT;
+ tmp_script->cfg_msg.DataLen = 4U;
+ tmp_script->cfg_msg.DataPtr = &tmp_script->cfg_data[0];
+
+ /* Set script */
+ tmp_script->script.send_cmd = &tmp_script->cfg_msg;
+ tmp_script->script.pause = 0U;
+
+ /* Transmit script */
+ result = Nsm_Run_Pv(self->nsm_ptr, &tmp_script->script, 1U, self, &I2c_RxFilter4NsmCb, &I2c_NsmResultCb);
+ if(result == UCS_RET_SUCCESS)
+ {
+ self->curr_user_data.int_pin_mask = i2c_int_mask;
+ self->curr_user_data.portcreate_res_cb = res_fptr;
+ self->curr_res_cb = &I2c_PortCreateResCb;
+ }
+ }
+ }
+
+ return result;
+}
+
+/*! \brief Writes a block of bytes to an I2C device at a specified I2C address.
+ * \param self Reference to CI2c instance
+ * \param port_handle Port resource handle
+ * \param mode The write transfer mode
+ * \param block_count The number of blocks to be written to the I2C address.
+ * \param slave_address The 7-bit I2C slave address of the peripheral to be read
+ * \param timeout The timeout for the I2C Port write
+ * \param data_len Number of bytes to be written to the addressed I2C peripheral
+ * \param data_ptr Reference to the data to be written
+ * \param res_fptr Required result callback function pointer.
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * --------------------------- | ------------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_PARAM | At least one parameter is wrong
+ * UCS_RET_ERR_BUFFER_OVERFLOW | No message buffer available
+ * UCS_RET_ERR_API_LOCKED | API is currently locked
+ */
+Ucs_Return_t I2c_WritePort(CI2c * self, uint16_t port_handle, Ucs_I2c_TrMode_t mode, uint8_t block_count, uint8_t slave_address, uint16_t timeout, uint8_t data_len, uint8_t data_ptr[], Ucs_I2c_WritePortResCb_t res_fptr)
+{
+ Ucs_Return_t result = UCS_RET_ERR_PARAM;
+
+ if ((NULL != self) && (NULL != res_fptr))
+ {
+ if ((0U < data_len) && (NULL != data_ptr))
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ if (!Nsm_IsLocked(self->nsm_ptr))
+ {
+ bool is_ok = true;
+
+ result = UCS_RET_ERR_PARAM;
+ if ((UCS_I2C_BURST_MODE == mode) && (0U == block_count))
+ {
+ is_ok = false;
+ }
+
+ if (is_ok)
+ {
+ uint8_t i;
+ I2c_Script_t * tmp_script = &self->curr_script;
+
+ for (i = 0U; i < data_len; i++)
+ {
+ tmp_script->cfg_data[8U + i] = data_ptr[i];
+ }
+
+ /* Set Data */
+ tmp_script->cfg_data[0] = MISC_HB(port_handle);
+ tmp_script->cfg_data[1] = MISC_LB(port_handle);
+ tmp_script->cfg_data[2] = (uint8_t)mode;
+ tmp_script->cfg_data[3] = block_count;
+ tmp_script->cfg_data[4] = slave_address;
+ tmp_script->cfg_data[5] = (mode == UCS_I2C_BURST_MODE) ? (data_len/block_count):data_len;
+ tmp_script->cfg_data[6] = MISC_HB(timeout);
+ tmp_script->cfg_data[7] = MISC_LB(timeout);
+
+ /* Set message id */
+ tmp_script->cfg_msg.FBlockId = FB_INIC;
+ tmp_script->cfg_msg.InstId = 0U;
+ tmp_script->cfg_msg.FunktId = INIC_FID_I2C_PORT_WRITE;
+ tmp_script->cfg_msg.OpCode = (uint8_t)UCS_OP_STARTRESULT;
+ tmp_script->cfg_msg.DataLen = data_len + 8U;
+ tmp_script->cfg_msg.DataPtr = &tmp_script->cfg_data[0];
+
+ /* Set script */
+ tmp_script->script.send_cmd = &tmp_script->cfg_msg;
+ tmp_script->script.pause = 0U;
+
+ /* Transmit script */
+ result = Nsm_Run_Pv(self->nsm_ptr, &tmp_script->script, 1U, self, &I2c_RxFilter4NsmCb, &I2c_NsmResultCb);
+ if(result == UCS_RET_SUCCESS)
+ {
+ self->curr_user_data.portwrite_res_cb = res_fptr;
+ self->curr_res_cb = &I2c_PortWriteResCb;
+ }
+ }
+ }
+ }
+ }
+
+ return result;
+}
+
+/*! \brief Reads a block of bytes from an I2C device at a specified I2C address.
+ * \param self Reference to CI2c instance
+ * \param port_handle Port resource handle
+ * \param slave_address The 7-bit I2C slave address of the peripheral to be read
+ * \param data_len Number of bytes to be read from the address
+ * \param timeout The timeout for the I2C Port read
+ * \param res_fptr Required result callback function pointer.
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * --------------------------- | ------------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_PARAM | At least one parameter is wrong
+ * UCS_RET_ERR_BUFFER_OVERFLOW | No message buffer available
+ * UCS_RET_ERR_API_LOCKED | API is currently locked
+ */
+Ucs_Return_t I2c_ReadPort(CI2c * self, uint16_t port_handle, uint8_t slave_address, uint8_t data_len, uint16_t timeout, Ucs_I2c_ReadPortResCb_t res_fptr)
+{
+ Ucs_Return_t result = UCS_RET_ERR_PARAM;
+
+ if ((NULL != self) && (NULL != res_fptr))
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ if (!Nsm_IsLocked(self->nsm_ptr))
+ {
+ I2c_Script_t * tmp_script = &self->curr_script;
+
+ /* Set Data */
+ tmp_script->cfg_data[0] = MISC_HB(port_handle);
+ tmp_script->cfg_data[1] = MISC_LB(port_handle);
+ tmp_script->cfg_data[2] = slave_address;
+ tmp_script->cfg_data[3] = data_len;
+ tmp_script->cfg_data[4] = MISC_HB(timeout);
+ tmp_script->cfg_data[5] = MISC_LB(timeout);
+
+ /* Set message id */
+ tmp_script->cfg_msg.FBlockId = FB_INIC;
+ tmp_script->cfg_msg.InstId = 0U;
+ tmp_script->cfg_msg.FunktId = INIC_FID_I2C_PORT_READ;
+ tmp_script->cfg_msg.OpCode = (uint8_t)UCS_OP_STARTRESULT;
+ tmp_script->cfg_msg.DataLen = 6U;
+ tmp_script->cfg_msg.DataPtr = &tmp_script->cfg_data[0];
+
+ /* Set script */
+ tmp_script->script.send_cmd = &tmp_script->cfg_msg;
+ tmp_script->script.pause = 0U;
+
+ /* Transmit script */
+ result = Nsm_Run_Pv(self->nsm_ptr, &tmp_script->script, 1U, self, &I2c_RxFilter4NsmCb, &I2c_NsmResultCb);
+ if(result == UCS_RET_SUCCESS)
+ {
+ self->curr_user_data.portread_res_cb = res_fptr;
+ self->curr_res_cb = &I2c_PortReadResCb;
+ }
+ }
+ }
+
+ return result;
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Private Methods */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Handles the result of the I2CPortCreate.StartResultAck
+ * \param self Instance pointer
+ * \param result_ptr result pointer
+ */
+static void I2c_PortCreateResCb(void *self, void *result_ptr)
+{
+ CI2c *self_ = (CI2c *)self;
+ uint16_t i2c_port_handle;
+ Ucs_I2c_Result_t res;
+ Inic_StdResult_t *result_ptr_ = (Inic_StdResult_t *)result_ptr;
+
+ /* Init result */
+ MISC_MEM_SET(&res, 0, sizeof(Ucs_I2c_Result_t));
+
+ if (NULL != result_ptr_)
+ {
+ i2c_port_handle = 0U;
+ res.code = UCS_I2C_RES_ERR_CMD;
+ res.details.result_type = UCS_I2C_RESULT_TYPE_TGT;
+ res.details.inic_result = result_ptr_->result;
+ if (result_ptr_->data_info != NULL)
+ {
+ if(result_ptr_->result.code == UCS_RES_SUCCESS)
+ {
+ res.code = UCS_I2C_RES_SUCCESS;
+ i2c_port_handle = *(uint16_t *)result_ptr_->data_info;
+ }
+ else if(result_ptr_->result.code == UCS_RES_ERR_TRANSMISSION)
+ {
+ res.details.result_type = UCS_I2C_RESULT_TYPE_TX;
+ res.details.tx_result = *(Ucs_MsgTxStatus_t *)(result_ptr_->data_info);
+ }
+ else if (result_ptr_->result.code == UCS_RES_ERR_CONFIGURATION)
+ {
+ res.code = UCS_I2C_RES_ERR_SYNC;
+ }
+ }
+
+ if (NULL != self_->curr_user_data.portcreate_res_cb)
+ {
+ self_->curr_user_data.portcreate_res_cb(self_->device_address, i2c_port_handle, res, self_->base_ptr->ucs_user_ptr);
+ }
+ }
+}
+
+/*! \brief Handles the result of the I2CPortWrite.StartResultAck
+ * \param self Instance pointer
+ * \param result_ptr result pointer
+ */
+static void I2c_PortWriteResCb(void *self, void *result_ptr)
+{
+ CI2c *self_ = (CI2c *)self;
+ Inic_I2cWriteResStatus_t wr_res;
+ Ucs_I2c_Result_t res;
+ Inic_StdResult_t *result_ptr_ = (Inic_StdResult_t *)result_ptr;
+
+ /* Init result */
+ MISC_MEM_SET(&res, 0, sizeof(Ucs_I2c_Result_t));
+
+ if (NULL != result_ptr_)
+ {
+ wr_res.data_len = 0U;
+ wr_res.port_handle = 0U;
+ wr_res.slave_address = 0U;
+ res.code = UCS_I2C_RES_ERR_CMD;
+ res.details.result_type = UCS_I2C_RESULT_TYPE_TGT;
+ res.details.inic_result = result_ptr_->result;
+ if (result_ptr_->data_info != NULL)
+ {
+ if(result_ptr_->result.code == UCS_RES_SUCCESS)
+ {
+ res.code = UCS_I2C_RES_SUCCESS;
+ wr_res = *(Inic_I2cWriteResStatus_t *)result_ptr_->data_info;
+ }
+ else if(result_ptr_->result.code == UCS_RES_ERR_TRANSMISSION)
+ {
+ res.details.result_type = UCS_I2C_RESULT_TYPE_TX;
+ res.details.tx_result = *(Ucs_MsgTxStatus_t *)(result_ptr_->data_info);
+ }
+ else if (result_ptr_->result.code == UCS_RES_ERR_CONFIGURATION)
+ {
+ res.code = UCS_I2C_RES_ERR_SYNC;
+ }
+ }
+
+ if (NULL != self_->curr_user_data.portwrite_res_cb)
+ {
+ self_->curr_user_data.portwrite_res_cb(self_->device_address, wr_res.port_handle, wr_res.slave_address, wr_res.data_len, res, self_->base_ptr->ucs_user_ptr);
+ }
+ }
+}
+
+/*! \brief Handles the result of the I2CPortRead.StartResultAck
+ * \param self Instance pointer
+ * \param result_ptr result pointer
+ */
+static void I2c_PortReadResCb(void *self, void *result_ptr)
+{
+ CI2c *self_ = (CI2c *)self;
+ Inic_I2cReadResStatus_t read_res;
+ Ucs_I2c_Result_t res;
+ Inic_StdResult_t *result_ptr_ = (Inic_StdResult_t *)result_ptr;
+
+ /* Init result */
+ MISC_MEM_SET(&res, 0, sizeof(Ucs_I2c_Result_t));
+
+ if (NULL != result_ptr_)
+ {
+ read_res.data_len = 0U;
+ read_res.data_ptr = NULL;
+ read_res.port_handle = 0U;
+ read_res.slave_address = 0U;
+ res.code = UCS_I2C_RES_ERR_CMD;
+ res.details.result_type = UCS_I2C_RESULT_TYPE_TGT;
+ res.details.inic_result = result_ptr_->result;
+ if (result_ptr_->data_info != NULL)
+ {
+ if(result_ptr_->result.code == UCS_RES_SUCCESS)
+ {
+ res.code = UCS_I2C_RES_SUCCESS;
+ read_res = *(Inic_I2cReadResStatus_t *)result_ptr_->data_info;
+ }
+ else if(result_ptr_->result.code == UCS_RES_ERR_TRANSMISSION)
+ {
+ res.details.result_type = UCS_I2C_RESULT_TYPE_TX;
+ res.details.tx_result = *(Ucs_MsgTxStatus_t *)(result_ptr_->data_info);
+ }
+ else if (result_ptr_->result.code == UCS_RES_ERR_CONFIGURATION)
+ {
+ res.code = UCS_I2C_RES_ERR_SYNC;
+ }
+ }
+
+ if (NULL != self_->curr_user_data.portread_res_cb)
+ {
+ self_->curr_user_data.portread_res_cb(self_->device_address, read_res.port_handle, read_res.slave_address, read_res.data_len, read_res.data_ptr, res, self_->base_ptr->ucs_user_ptr);
+ }
+ }
+}
+
+/*! \brief Handles the result of the GPIOPortTriggerEvent.Status
+ * \param self Instance pointer
+ * \param result_ptr result pointer
+ */
+static void I2c_TriggerEventStatusCb(void *self, void *result_ptr)
+{
+ CI2c *self_ = (CI2c *)self;
+ Inic_StdResult_t *result_ptr_ = (Inic_StdResult_t *)result_ptr;
+
+ if ((NULL != result_ptr_) &&
+ (NULL != self_->curr_user_data.i2c_interrupt_report_fptr))
+ {
+ Inic_GpioTriggerEventStatus_t status;
+ uint16_t int_mask = self_->curr_user_data.int_pin_mask;
+ status = *(Inic_GpioTriggerEventStatus_t *)result_ptr_->data_info;
+
+ if ((!status.is_first_report) &&
+ ((int_mask == (status.rising_edges & int_mask)) ||
+ (int_mask == (status.levels & int_mask)) ||
+ (int_mask == (status.falling_edges & int_mask))))
+ {
+ self_->curr_user_data.i2c_interrupt_report_fptr(self_->device_address, self_->base_ptr->ucs_user_ptr);
+ }
+ }
+}
+
+/*! \brief Checks whether the incoming is our message and handles It if it's.
+ * \param tel_ptr Reference to the message object.
+ * \param self Reference to the user argument.
+ * \return Returns \c true to discard the message and free it to the pool if it's our message. Otherwise, returns
+ * \c false.
+ */
+static bool I2c_RxFilter4NsmCb(Msg_MostTel_t *tel_ptr, void *self)
+{
+ CI2c *self_ = (CI2c *)self;
+ bool ret_val = true;
+
+ if ((tel_ptr != NULL) && (tel_ptr->id.function_id == self_->curr_script.script.send_cmd->FunktId))
+ {
+ if (tel_ptr->id.op_type == UCS_OP_RESULT)
+ {
+ switch(tel_ptr->id.function_id)
+ {
+ case INIC_FID_I2C_PORT_CREATE:
+ I2c_PortCreate_Result(self_, tel_ptr);
+ break;
+ case INIC_FID_I2C_PORT_READ:
+ I2c_PortRead_Result(self_, tel_ptr);
+ break;
+ case INIC_FID_I2C_PORT_WRITE:
+ I2c_PortWrite_Result(self_, tel_ptr);
+ break;
+ default:
+ ret_val = false;
+ break;
+ }
+ }
+ else if (tel_ptr->id.op_type == UCS_OP_ERROR)
+ {
+ I2c_ErrResultCb_t res_cb_fptr = self_->curr_res_cb;
+ I2c_RxError(self_, tel_ptr, res_cb_fptr);
+ }
+ }
+ else
+ {
+ ret_val = false;
+ }
+
+ return ret_val;
+}
+
+/*! \brief Result callback function for NSM result. Whenever this function is called the NodeScripting has finished the
+ * script's execution. This function handles transmission and sync error. Only these two kind of errors can occur.
+ * \param self Reference to the called user instance.
+ * \param result Result of the scripting operation.
+ */
+static void I2c_NsmResultCb(void * self, Nsm_Result_t result)
+{
+ CI2c *self_ = (CI2c *)self;
+
+ if (self_ != NULL)
+ {
+ Inic_StdResult_t res_data;
+ bool allow_report = false;
+
+ if ((result.code == UCS_NS_RES_ERROR) && (result.details.result_type == NS_RESULT_TYPE_TX))
+ {
+ res_data.data_info = &result.details.tx_result;
+ res_data.result.code = UCS_RES_ERR_TRANSMISSION;
+ res_data.result.info_ptr = NULL;
+ res_data.result.info_size = 0U;
+ allow_report = true;
+ }
+ else if ((result.code == UCS_NS_RES_ERROR) && (result.details.result_type == NS_RESULT_TYPE_TGT_SYNC))
+ {
+ res_data.data_info = &result.details.inic_result;
+ res_data.result.code = result.details.inic_result.code;
+ res_data.result.info_ptr = result.details.inic_result.info_ptr;
+ res_data.result.info_size = result.details.inic_result.info_size;
+ allow_report = true;
+ }
+ else if ((result.code == UCS_NS_RES_ERROR) && ((result.details.tx_result == UCS_MSG_STAT_OK) ||
+ (result.details.inic_result.code == UCS_RES_SUCCESS)))
+ {
+ res_data.data_info = NULL;
+ res_data.result.code = UCS_RES_ERR_TIMEOUT;
+ res_data.result.info_ptr = NULL;
+ res_data.result.info_size = 0U;
+
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[I2C]", "TIMEOUT ERROR occurred for currently I2C command. No response received from target device with address 0x%X.", 1U, self_->device_address));
+ }
+
+ if ((self_->curr_res_cb != NULL) && (allow_report))
+ {
+ self_->curr_res_cb(self_, &res_data);
+ }
+ }
+}
+
+/*---------------------------------- GW Functions ----------------------------------*/
+
+/*! \brief Error Handler function for all I2C methods
+ * \param self Reference to CI2c instance
+ * \param msg_ptr Pointer to received message
+ * \param res_cb_fptr Pointer to a specified error handler function
+ */
+static void I2c_RxError(void *self, Msg_MostTel_t *msg_ptr, I2c_ErrResultCb_t res_cb_fptr)
+{
+ CI2c *self_ = (CI2c *)self;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_->inic_ptr,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (msg_ptr->tel.tel_len));
+ if (res_cb_fptr != NULL)
+ {
+ res_cb_fptr(self_, &res_data);
+ }
+}
+
+/*! \brief Handler function for I2CPortCreate.ResultAck
+ * \details Element res_data.data_info points to the variable i2c_port_handle which holds the
+ * I2C Port resource handle.
+ * \param self Reference to CI2c instance
+ * \param msg_ptr Pointer to received message
+ */
+static void I2c_PortCreate_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CI2c *self_ = (CI2c *)self;
+ uint16_t i2c_port_handle;
+ Inic_StdResult_t res_data;
+
+ MISC_DECODE_WORD(&i2c_port_handle, &(msg_ptr->tel.tel_data_ptr[0]));
+ res_data.data_info = &i2c_port_handle;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+
+ I2c_PortCreateResCb(self_, &res_data);
+}
+
+/*! \brief Handler function for I2CPortRead.ResultAck
+ * \details Element res_data.data_info points to a variable of type Inic_I2cReadResStatus_t which holds the
+ * the results of the I2CPortRead.StartResultAck command.
+ * \param self Reference to CI2c instance
+ * \param msg_ptr Pointer to received message
+ */
+static void I2c_PortRead_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CI2c *self_ = (CI2c *)self;
+ Inic_I2cReadResStatus_t i2c_read_res;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = &i2c_read_res;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+
+ MISC_DECODE_WORD(&i2c_read_res.port_handle, &(msg_ptr->tel.tel_data_ptr[0]));
+ i2c_read_res.slave_address = msg_ptr->tel.tel_data_ptr[2];
+ i2c_read_res.data_len = msg_ptr->tel.tel_data_ptr[3];
+ i2c_read_res.data_ptr = &msg_ptr->tel.tel_data_ptr[4];
+
+ I2c_PortReadResCb(self_, &res_data);
+}
+
+/*! \brief Handler function for I2CPortWrite.ResultAck
+ * \details Element res_data.data_info points to a variable of type Inic_I2cWriteResStatus_t which holds the
+ * the results of the I2CPortWrite.StartResultAck command.
+ * \param self Reference to CI2c instance
+ * \param msg_ptr Pointer to received message
+ */
+static void I2c_PortWrite_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CI2c *self_ = (CI2c *)self;
+ Inic_I2cWriteResStatus_t i2c_write_res;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = &i2c_write_res;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+
+ MISC_DECODE_WORD(&i2c_write_res.port_handle, &(msg_ptr->tel.tel_data_ptr[0]));
+ i2c_write_res.slave_address = msg_ptr->tel.tel_data_ptr[2];
+ i2c_write_res.data_len = msg_ptr->tel.tel_data_ptr[3];
+
+ I2c_PortWriteResCb(self_, &res_data);
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_inic.c b/ucs2-lib/src/ucs_inic.c
new file mode 100644
index 0000000..5d96a49
--- /dev/null
+++ b/ucs2-lib/src/ucs_inic.c
@@ -0,0 +1,1817 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of FBlock INIC
+ * \details Contains the general, device an network management parts of INIC management
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_INIC
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_misc.h"
+#include "ucs_ret_pb.h"
+#include "ucs_inic.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal constants */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief List of all INIC messages */
+static const Dec_FktOpIcm_t inic_handler[] = /* parasoft-suppress MISRA2004-8_7 "Value shall be part of the module, not part of a function." */
+{
+ { DEC_FKTOP(INIC_FID_NOTIFICATION, UCS_OP_STATUS), Inic_Notification_Status },
+ { DEC_FKTOP(INIC_FID_NOTIFICATION, UCS_OP_ERROR), Inic_Notification_Error },
+ { DEC_FKTOP(INIC_FID_DEVICE_STATUS, UCS_OP_STATUS), Inic_DeviceStatus_Status },
+ { DEC_FKTOP(INIC_FID_DEVICE_STATUS, UCS_OP_ERROR), Inic_DummyHandler },
+ { DEC_FKTOP(INIC_FID_DEVICE_VERSION, UCS_OP_STATUS), Inic_DeviceVersion_Status },
+ { DEC_FKTOP(INIC_FID_DEVICE_VERSION, UCS_OP_ERROR), Inic_DeviceVersion_Error },
+ { DEC_FKTOP(INIC_FID_DEVICE_POWER_OFF, UCS_OP_STATUS), Inic_DummyHandler },
+ { DEC_FKTOP(INIC_FID_DEVICE_POWER_OFF, UCS_OP_ERROR), Inic_DummyHandler },
+ { DEC_FKTOP(INIC_FID_DEVICE_ATTACH, UCS_OP_RESULT), Inic_DeviceAttach_Result },
+ { DEC_FKTOP(INIC_FID_DEVICE_ATTACH, UCS_OP_ERROR), Inic_DeviceAttach_Error },
+ { DEC_FKTOP(INIC_FID_DEVICE_SYNC, UCS_OP_RESULT), Inic_DeviceSync_Result },
+ { DEC_FKTOP(INIC_FID_DEVICE_SYNC, UCS_OP_ERROR), Inic_DeviceSync_Error },
+ { DEC_FKTOP(INIC_FID_MOST_NW_STATUS, UCS_OP_STATUS), Inic_NwStatus_Status },
+ { DEC_FKTOP(INIC_FID_MOST_NW_STATUS, UCS_OP_ERROR), Inic_DummyHandler },
+ { DEC_FKTOP(INIC_FID_MOST_NW_CFG, UCS_OP_STATUS), Inic_NwConfig_Status },
+ { DEC_FKTOP(INIC_FID_MOST_NW_CFG, UCS_OP_ERROR), Inic_NwConfig_Error },
+ { DEC_FKTOP(INIC_FID_MOST_NW_FRAME_COUNTER, UCS_OP_STATUS), Inic_NwFrameCounter_Status },
+ { DEC_FKTOP(INIC_FID_MOST_NW_FRAME_COUNTER, UCS_OP_ERROR), Inic_NwFrameCounter_Error },
+ { DEC_FKTOP(INIC_FID_MOST_NW_STARTUP, UCS_OP_RESULT), Inic_NwStartup_Result },
+ { DEC_FKTOP(INIC_FID_MOST_NW_STARTUP, UCS_OP_ERROR), Inic_NwStartup_Error },
+ { DEC_FKTOP(INIC_FID_MOST_NW_SHUTDOWN, UCS_OP_RESULT), Inic_NwShutdown_Result },
+ { DEC_FKTOP(INIC_FID_MOST_NW_SHUTDOWN, UCS_OP_ERROR), Inic_NwShutdown_Error },
+ { DEC_FKTOP(INIC_FID_MOST_NW_TRIGGER_RBD, UCS_OP_RESULT), Inic_NwTriggerRbd_Result },
+ { DEC_FKTOP(INIC_FID_MOST_NW_TRIGGER_RBD, UCS_OP_ERROR), Inic_NwTriggerRbd_Error },
+ { DEC_FKTOP(INIC_FID_MOST_NW_RBD_RESULT, UCS_OP_STATUS), Inic_NwRbdResult_Status },
+ { DEC_FKTOP(INIC_FID_MOST_NW_RBD_RESULT, UCS_OP_ERROR), Inic_NwRbdResult_Error },
+ { DEC_FKTOP(INIC_FID_MOST_NW_ATTACH, UCS_OP_RESULT), Inic_NwAttach_Result },
+ { DEC_FKTOP(INIC_FID_MOST_NW_ATTACH, UCS_OP_ERROR), Inic_NwAttach_Error },
+ { DEC_FKTOP(INIC_FID_MOST_NW_FORCE_NO_AVAIL, UCS_OP_STATUS), Inic_NwForceNotAvailable_Status },
+ { DEC_FKTOP(INIC_FID_MOST_NW_FORCE_NO_AVAIL, UCS_OP_ERROR), Inic_NwForceNotAvailable_Error },
+ { DEC_FKTOP(INIC_FID_MOST_NW_SYS_DIAGNOSIS, UCS_OP_RESULT), Inic_NwSysDiagnosis_Result },
+ { DEC_FKTOP(INIC_FID_MOST_NW_SYS_DIAGNOSIS, UCS_OP_ERROR), Inic_NwSysDiagnosis_Error },
+ { DEC_FKTOP(INIC_FID_MOST_NW_SYS_DIAG_END, UCS_OP_RESULT), Inic_NwSysDiagEnd_Result },
+ { DEC_FKTOP(INIC_FID_MOST_NW_SYS_DIAG_END, UCS_OP_ERROR), Inic_NwSysDiagEnd_Error },
+ { DEC_FKTOP(INIC_FID_BACK_CHANNEL_DIAGNOSIS, UCS_OP_RESULT), Inic_BCDiagnosis_Result },
+ { DEC_FKTOP(INIC_FID_BACK_CHANNEL_DIAGNOSIS, UCS_OP_ERROR), Inic_BCDiagnosis_Error },
+ { DEC_FKTOP(INIC_FID_BACK_CHANNEL_DIAG_END, UCS_OP_RESULT), Inic_BCDiagEnd_Result },
+ { DEC_FKTOP(INIC_FID_BACK_CHANNEL_DIAG_END, UCS_OP_ERROR), Inic_BCDiagEnd_Error },
+ { DEC_FKTOP(INIC_FID_MOST_PORT_STATUS, UCS_OP_STATUS), Inic_MostPortStatus_Status },
+ { DEC_FKTOP(INIC_FID_MOST_PORT_STATUS, UCS_OP_ERROR), Inic_MostPortStatus_Error },
+ { DEC_FKTOP(INIC_FID_MOST_SOCKET_CREATE, UCS_OP_RESULT), Inic_MostSocketCreate_Result },
+ { DEC_FKTOP(INIC_FID_MOST_SOCKET_CREATE, UCS_OP_ERROR), Inic_MostSocketCreate_Error },
+ { DEC_FKTOP(INIC_FID_MOST_SOCKET_STATUS, UCS_OP_STATUS), Inic_DummyHandler },
+ { DEC_FKTOP(INIC_FID_MOST_SOCKET_STATUS, UCS_OP_ERROR), Inic_DummyHandler },
+ { DEC_FKTOP(INIC_FID_MLB_PORT_CREATE, UCS_OP_RESULT), Inic_MlbPortCreate_Result },
+ { DEC_FKTOP(INIC_FID_MLB_PORT_CREATE, UCS_OP_ERROR), Inic_MlbPortCreate_Error },
+/* { DEC_FKTOP(INIC_FID_MLB_PORT_ALLOCATE_ONLY, UCS_OP_RESULT), Inic_DummyHandler }, */
+/* { DEC_FKTOP(INIC_FID_MLB_PORT_ALLOCATE_ONLY, UCS_OP_ERROR), Inic_DummyHandler }, */
+/* { DEC_FKTOP(INIC_FID_MLB_PORT_DEALLOC_ONLY, UCS_OP_RESULT), Inic_DummyHandler }, */
+/* { DEC_FKTOP(INIC_FID_MLB_PORT_DEALLOC_ONLY, UCS_OP_ERROR), Inic_DummyHandler }, */
+ { DEC_FKTOP(INIC_FID_MLB_SOCKET_CREATE, UCS_OP_RESULT), Inic_MlbSocketCreate_Result },
+ { DEC_FKTOP(INIC_FID_MLB_SOCKET_CREATE, UCS_OP_ERROR), Inic_MlbSocketCreate_Error },
+ { DEC_FKTOP(INIC_FID_SPI_PORT_CREATE, UCS_OP_RESULT), Inic_DummyHandler },
+ { DEC_FKTOP(INIC_FID_SPI_PORT_CREATE, UCS_OP_ERROR), Inic_DummyHandler },
+ { DEC_FKTOP(INIC_FID_SPI_SOCKET_CREATE, UCS_OP_RESULT), Inic_DummyHandler },
+ { DEC_FKTOP(INIC_FID_SPI_SOCKET_CREATE, UCS_OP_ERROR), Inic_DummyHandler },
+ { DEC_FKTOP(INIC_FID_USB_PORT_CREATE, UCS_OP_RESULT), Inic_UsbPortCreate_Result },
+ { DEC_FKTOP(INIC_FID_USB_PORT_CREATE, UCS_OP_ERROR), Inic_UsbPortCreate_Error },
+ { DEC_FKTOP(INIC_FID_USB_SOCKET_CREATE, UCS_OP_RESULT), Inic_UsbSocketCreate_Result },
+ { DEC_FKTOP(INIC_FID_USB_SOCKET_CREATE, UCS_OP_ERROR), Inic_UsbSocketCreate_Error },
+ { DEC_FKTOP(INIC_FID_STREAM_PORT_CONFIG, UCS_OP_STATUS), Inic_StreamPortConfig_Status },
+ { DEC_FKTOP(INIC_FID_STREAM_PORT_CONFIG, UCS_OP_ERROR), Inic_StreamPortConfig_Error },
+ { DEC_FKTOP(INIC_FID_STREAM_PORT_CREATE, UCS_OP_RESULT), Inic_StreamPortCreate_Result },
+ { DEC_FKTOP(INIC_FID_STREAM_PORT_CREATE, UCS_OP_ERROR), Inic_StreamPortCreate_Error },
+ { DEC_FKTOP(INIC_FID_STREAM_PORT_LOOPBACK, UCS_OP_STATUS), Inic_DummyHandler },
+ { DEC_FKTOP(INIC_FID_STREAM_PORT_LOOPBACK, UCS_OP_ERROR), Inic_DummyHandler },
+ { DEC_FKTOP(INIC_FID_STREAM_SOCKET_CREATE, UCS_OP_RESULT), Inic_StreamSocketCreate_Result },
+ { DEC_FKTOP(INIC_FID_STREAM_SOCKET_CREATE, UCS_OP_ERROR), Inic_StreamSocketCreate_Error },
+ { DEC_FKTOP(INIC_FID_RMCK_PORT_CREATE, UCS_OP_RESULT), Inic_RmckPortCreate_Result },
+ { DEC_FKTOP(INIC_FID_RMCK_PORT_CREATE, UCS_OP_ERROR), Inic_RmckPortCreate_Error },
+ { DEC_FKTOP(INIC_FID_I2C_PORT_CREATE, UCS_OP_RESULT), Inic_I2cPortCreate_Result },
+ { DEC_FKTOP(INIC_FID_I2C_PORT_CREATE, UCS_OP_ERROR), Inic_I2cPortCreate_Error },
+ { DEC_FKTOP(INIC_FID_I2C_PORT_READ, UCS_OP_RESULT), Inic_I2cPortRead_Result },
+ { DEC_FKTOP(INIC_FID_I2C_PORT_READ, UCS_OP_ERROR), Inic_I2cPortRead_Error },
+ { DEC_FKTOP(INIC_FID_I2C_PORT_WRITE, UCS_OP_RESULT), Inic_I2cPortWrite_Result },
+ { DEC_FKTOP(INIC_FID_I2C_PORT_WRITE, UCS_OP_ERROR), Inic_I2cPortWrite_Error },
+ { DEC_FKTOP(INIC_FID_PCI_PORT_CREATE, UCS_OP_RESULT), Inic_PciPortCreate_Result },
+ { DEC_FKTOP(INIC_FID_PCI_PORT_CREATE, UCS_OP_ERROR), Inic_PciPortCreate_Error },
+ { DEC_FKTOP(INIC_FID_PCI_SOCKET_CREATE, UCS_OP_RESULT), Inic_PciSocketCreate_Result },
+ { DEC_FKTOP(INIC_FID_PCI_SOCKET_CREATE, UCS_OP_ERROR), Inic_PciSocketCreate_Error },
+ { DEC_FKTOP(INIC_FID_GPIO_PORT_CREATE, UCS_OP_RESULT), Inic_GpioPortCreate_Result },
+ { DEC_FKTOP(INIC_FID_GPIO_PORT_CREATE, UCS_OP_ERROR), Inic_GpioPortCreate_Error },
+ { DEC_FKTOP(INIC_FID_MOST_PORT_ENABLE, UCS_OP_RESULT), Inic_MostPortEnable_Result },
+ { DEC_FKTOP(INIC_FID_MOST_PORT_ENABLE, UCS_OP_ERROR), Inic_MostPortEnable_Error },
+ { DEC_FKTOP(INIC_FID_GPIO_PORT_PIN_MODE, UCS_OP_STATUS), Inic_GpioPortPinMode_Status },
+ { DEC_FKTOP(INIC_FID_GPIO_PORT_PIN_MODE, UCS_OP_ERROR), Inic_GpioPortPinMode_Error },
+ { DEC_FKTOP(INIC_FID_GPIO_PORT_PIN_STATE, UCS_OP_STATUS), Inic_GpioPortPinState_Status },
+ { DEC_FKTOP(INIC_FID_GPIO_PORT_PIN_STATE, UCS_OP_ERROR), Inic_GpioPortPinState_Error },
+ { DEC_FKTOP(INIC_FID_GPIO_PORT_TRIGGER_EVENT, UCS_OP_STATUS), Inic_GpioPortTrigger_Status },
+ { DEC_FKTOP(INIC_FID_GPIO_PORT_TRIGGER_EVENT, UCS_OP_ERROR), Inic_GpioPortTrigger_Error },
+ { DEC_FKTOP(INIC_FID_RESOURCE_DESTROY, UCS_OP_RESULT), Inic_ResourceDestroy_Result },
+ { DEC_FKTOP(INIC_FID_RESOURCE_DESTROY, UCS_OP_ERROR), Inic_ResourceDestroy_Error },
+ { DEC_FKTOP(INIC_FID_RESOURCE_INVALID_LIST, UCS_OP_STATUS), Inic_ResourceInvalidList_Status },
+ { DEC_FKTOP(INIC_FID_RESOURCE_INVALID_LIST, UCS_OP_ERROR), Inic_ResourceInvalidList_Error },
+ { DEC_FKTOP(INIC_FID_RESOURCE_MONITOR, UCS_OP_STATUS), Inic_ResourceMonitor_Status },
+ { DEC_FKTOP(INIC_FID_RESOURCE_MONITOR, UCS_OP_ERROR), Inic_ResourceMonitor_Error },
+/* { DEC_FKTOP(INIC_FID_PACKET_ATTACH_SOCKETS, UCS_OP_RESULT), Inic_DummyHandler }, */
+/* { DEC_FKTOP(INIC_FID_PACKET_ATTACH_SOCKETS, UCS_OP_ERROR), Inic_DummyHandler }, */
+/* { DEC_FKTOP(INIC_FID_PACKET_DETACH_SOCKETS, UCS_OP_RESULT), Inic_DummyHandler }, */
+/* { DEC_FKTOP(INIC_FID_PACKET_DETACH_SOCKETS, UCS_OP_ERROR), Inic_DummyHandler }, */
+ { DEC_FKTOP(INIC_FID_QOS_CREATE, UCS_OP_RESULT), Inic_QoSCreate_Result },
+ { DEC_FKTOP(INIC_FID_QOS_CREATE, UCS_OP_ERROR), Inic_QoSCreate_Error },
+ { DEC_FKTOP(INIC_FID_AVP_CREATE, UCS_OP_RESULT), Inic_AvpCreate_Result },
+ { DEC_FKTOP(INIC_FID_AVP_CREATE, UCS_OP_ERROR), Inic_AvpCreate_Error },
+ { DEC_FKTOP(INIC_FID_SYNC_CREATE, UCS_OP_RESULT), Inic_SyncCreate_Result },
+ { DEC_FKTOP(INIC_FID_SYNC_CREATE, UCS_OP_ERROR), Inic_SyncCreate_Error },
+ { DEC_FKTOP(INIC_FID_SYNC_MUTE, UCS_OP_RESULT), Inic_SyncMute_Result },
+ { DEC_FKTOP(INIC_FID_SYNC_MUTE, UCS_OP_ERROR), Inic_SyncMute_Error },
+ { DEC_FKTOP(INIC_FID_SYNC_DEMUTE, UCS_OP_RESULT), Inic_SyncDemute_Result },
+ { DEC_FKTOP(INIC_FID_SYNC_DEMUTE, UCS_OP_ERROR), Inic_SyncDemute_Error },
+ { DEC_FKTOP(INIC_FID_DFIPHASE_CREATE, UCS_OP_RESULT), Inic_DfiPhaseCreate_Result },
+ { DEC_FKTOP(INIC_FID_DFIPHASE_CREATE, UCS_OP_ERROR), Inic_DfiPhaseCreate_Error },
+ { DEC_FKTOP(INIC_FID_IPC_CREATE, UCS_OP_RESULT), Inic_IpcCreate_Result },
+ { DEC_FKTOP(INIC_FID_IPC_CREATE, UCS_OP_ERROR), Inic_IpcCreate_Error },
+ { DEC_FKTOP(INIC_FID_COMBINER_CREATE, UCS_OP_RESULT), Inic_CombinerCreate_Result },
+ { DEC_FKTOP(INIC_FID_COMBINER_CREATE, UCS_OP_ERROR), Inic_CombinerCreate_Error },
+ { DEC_FKTOP(INIC_FID_SPLITTER_CREATE, UCS_OP_RESULT), Inic_SplitterCreate_Result },
+ { DEC_FKTOP(INIC_FID_SPLITTER_CREATE, UCS_OP_ERROR), Inic_SplitterCreate_Error },
+ { DEC_FKTOP_TERMINATION, NULL }
+};
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal definitions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Bitmask for API method Inic_NwForceNotAvailable() used by API locking manager */
+#define INIC_API_NW_FORCE_NA 0x01U
+/*! \brief Bitmask for API method Inic_NwShutdown() used by API locking manager */
+#define INIC_API_NW_SHUTDOWN 0x02U
+/*! \brief Bitmask for API method Inic_NwFrameCounter_Get() used by API locking manager */
+#define INIC_API_NW_FRAME_COUNTER 0x04U
+/*! \brief Bitmask for API method Inic_NwTriggerRbd() used by API locking manager */
+#define INIC_API_NW_TRIGGER_RBD 0x08U
+/*! \brief Bitmask for API method Inic_NwRbdResult_Get() used by API locking manager */
+#define INIC_API_NW_RBD_RESULT 0x10U
+/*! \brief Bitmask for API method Inic_DeviceVersion_Get() used by API locking manager */
+#define INIC_API_DEVICE_VERSION_GET 0x20U
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal prototypes */
+/*------------------------------------------------------------------------------------------------*/
+static void Inic_HandleInternalErrors(void *self, void *error_code_ptr);
+static void Inic_HandleApiTimeout(void *self, void *method_mask_ptr);
+static void Inic_DecodeIcm(CInic *self, Msg_MostTel_t *msg_ptr);
+static void Inic_MsgTxStatusCb(void *self, Msg_MostTel_t *tel_ptr, Ucs_MsgTxStatus_t status);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation */
+/*------------------------------------------------------------------------------------------------*/
+
+/*! \brief Constructor of class CInic.
+ * \param self Reference to CInic instance
+ * \param init_ptr Reference to initialization data
+ */
+void Inic_Ctor(CInic *self, Inic_InitData_t *init_ptr)
+{
+ uint8_t i;
+ MISC_MEM_SET((void *)self, 0, sizeof(*self));
+
+ self->base_ptr = init_ptr->base_ptr;
+ self->xcvr_ptr = init_ptr->xcvr_ptr;
+ self->fkt_op_list_ptr = &inic_handler[0];
+ self->target_address = init_ptr->tgt_addr;
+
+ /* create instances of single-observers */
+ for(i=0U; i<INIC_NUM_SSUB; i++)
+ {
+ Ssub_Ctor(&self->ssubs[i], self->base_ptr->ucs_user_ptr);
+ }
+
+ /* create instances of "normal" observers */
+ for(i=0U; i<INIC_NUM_SUB; i++)
+ {
+ Sub_Ctor(&self->subs[i], self->base_ptr->ucs_user_ptr);
+ }
+
+ /* Observe internal errors and events */
+ Mobs_Ctor(&self->internal_error_obs, self, EH_M_TERMINATION_EVENTS, &Inic_HandleInternalErrors);
+ Eh_AddObsrvInternalEvent(&self->base_ptr->eh, &self->internal_error_obs);
+
+ /* Initialize API locking mechanism */
+ Sobs_Ctor(&self->lock.observer, self, &Inic_HandleApiTimeout);
+ Al_Ctor(&self->lock.api, &self->lock.observer, self->base_ptr->ucs_user_ptr);
+ Alm_RegisterApi(&self->base_ptr->alm, &self->lock.api);
+
+ /* Initialize Resource Management part */
+ Inic_InitResourceManagement(self);
+}
+
+/*! \brief Handles internal errors and events
+ * \param self Instance pointer
+ * \param error_code_ptr Reference to reported error code
+ */
+static void Inic_HandleInternalErrors(void *self, void *error_code_ptr)
+{
+ uint8_t i;
+ Inic_StdResult_t res_data;
+ CInic *self_ = (CInic *)self;
+ MISC_UNUSED(error_code_ptr);
+
+ res_data.data_info = NULL;
+ res_data.result.code = UCS_RES_ERR_SYSTEM;
+ res_data.result.info_ptr = NULL;
+ res_data.result.info_size = 0U;
+
+ /* Internal error has been occurred => Cancel running jobs */
+ for(i=0U; i<INIC_NUM_SSUB; i++)
+ {
+ Ssub_Notify(&self_->ssubs[i], &res_data, true);
+ }
+}
+
+/*! \brief Handles an API timeout
+ * \param self Instance pointer
+ * \param method_mask_ptr Bitmask to signal which API method has caused the timeout
+ */
+static void Inic_HandleApiTimeout(void *self, void *method_mask_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Alm_ModuleMask_t method_mask = *((Alm_ModuleMask_t *)method_mask_ptr);
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = NULL;
+ res_data.result.code = UCS_RES_ERR_TIMEOUT;
+ res_data.result.info_ptr = NULL;
+
+ switch(method_mask)
+ {
+ case INIC_API_NW_SHUTDOWN:
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_NW_SHUTDOWN], &res_data, true);
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[INIC]", "API locking timeout occurred for method Inic_NwShutdown().", 0U));
+ break;
+ case INIC_API_NW_FRAME_COUNTER:
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_NW_FRAME_COUNTER], &res_data, true);
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[INIC]", "API locking timeout occurred for method Inic_NwFrameCounter_Get().", 0U));
+ break;
+ case INIC_API_NW_TRIGGER_RBD:
+ self_->lock.rbd_trigger_timeout_counter++;
+ if(self_->lock.rbd_trigger_timeout_counter < 5U)
+ {
+ (void)Al_Lock(&self_->lock.api, INIC_API_NW_TRIGGER_RBD);
+ }
+ else
+ {
+ Inic_StdResult_t rbd_result_data;
+ Ucs_StdResult_t result = {UCS_RES_ERR_TIMEOUT, NULL, 0U};
+ rbd_result_data.data_info = NULL;
+ rbd_result_data.result = result;
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_NW_TRIGGER_RBD], &rbd_result_data, true);
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[INIC]", "API locking timeout occurred for method Inic_NwTriggerRbd().", 0U));
+ }
+ break;
+ case INIC_API_NW_RBD_RESULT:
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_NW_RBD_RESULT], &res_data, true);
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[INIC]", "API locking timeout occurred for method Inic_NwRbdResult_Get().", 0U));
+ break;
+ default:
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[INIC]", "Unknown API locking bitmask detected. Mask: 0x%02X", 1U, method_mask));
+ break;
+ }
+}
+
+/*! \brief Decode an ICM message
+ * \param self Instance pointer to FBlock INIC
+ * \param msg_ptr pointer to the ICM message to decode
+ */
+static void Inic_DecodeIcm(CInic *self, Msg_MostTel_t *msg_ptr)
+{
+ Dec_Return_t result;
+ uint16_t index;
+
+ result = Dec_SearchFktOpIcm(self->fkt_op_list_ptr, &index, msg_ptr->id.function_id, msg_ptr->id.op_type);
+
+ if (result == DEC_RET_SUCCESS)
+ {
+ self->fkt_op_list_ptr[index].handler_function_ptr(self, msg_ptr);
+ }
+ else
+ {
+ TR_ERROR((self->base_ptr->ucs_user_ptr, "[INIC]", "Unknown ICM received. FBlockId: 0x%02X, InstId: 0x%02X, FktId: 0x%04X, OPType: 0x%02X", 4U, msg_ptr->id.fblock_id, msg_ptr->id.instance_id, msg_ptr->id.function_id, msg_ptr->id.op_type));
+ }
+}
+
+/*! \brief Receives ICMs
+ * \param self reference to INIC object
+ * \param tel_ptr received message
+ */
+void Inic_OnIcmRx(void *self, Msg_MostTel_t *tel_ptr)
+{
+ CInic *self_ = (CInic *)self;
+
+ if ((tel_ptr->source_addr == MSG_ADDR_INIC) && (tel_ptr->destination_addr == MSG_ADDR_EHC_CFG))
+ {
+ Inic_DecodeIcm(self_, tel_ptr);
+ }
+
+ Trcv_RxReleaseMsg(self_->xcvr_ptr, tel_ptr); /* free Rx telegram */
+}
+
+/*! \brief Filters RCM Rx messages
+ * \details The filter function shall not release the message object
+ * \param self Reference to INIC object
+ * \param tel_ptr Reference to the RCM Rx message object
+ */
+void Inic_OnRcmRxFilter(void *self, Msg_MostTel_t *tel_ptr)
+{
+ uint16_t index;
+ CInic *self_ = (CInic *)self;
+
+ if (Dec_SearchFktOpIcm(self_->fkt_op_list_ptr, &index, tel_ptr->id.function_id, tel_ptr->id.op_type) == DEC_RET_SUCCESS)
+ {
+ self_->fkt_op_list_ptr[index].handler_function_ptr(self, tel_ptr);
+ }
+}
+
+/*! \brief Handle message Tx status and free message objects
+ * \param self The instance
+ * \param tel_ptr Reference to transmitted message
+ * \param status Status of the transmitted message
+ */
+static void Inic_MsgTxStatusCb(void *self, Msg_MostTel_t *tel_ptr, Ucs_MsgTxStatus_t status)
+{
+ CInic *self_ = (CInic *)self;
+
+ if ((status != UCS_MSG_STAT_OK) && (tel_ptr->info_ptr != NULL))
+ {
+ Inic_StdResult_t res_data;
+ CSingleSubject *ssub_ptr = (CSingleSubject *)tel_ptr->info_ptr;
+
+ res_data.data_info = &status;
+ res_data.result.code = UCS_RES_ERR_TRANSMISSION;
+ res_data.result.info_ptr = NULL;
+ res_data.result.info_size = 0U;
+ Ssub_Notify(ssub_ptr, &res_data, true);
+ }
+ Trcv_TxReleaseMsg(tel_ptr);
+
+ /* ICM messages pending? */
+ if (Sub_GetNumObservers(&self_->subs[INIC_SUB_TX_MSG_OBJ_AVAIL]) > 0U)
+ {
+ Sub_Notify(&self_->subs[INIC_SUB_TX_MSG_OBJ_AVAIL], NULL);
+ }
+}
+
+/*! \brief Add an observer to be notified when a tx message object is available
+ * \param self instance of CInic
+ * \param obs_ptr pointer to observer to be informed
+ */
+void Inic_AddObsrvOnTxMsgObjAvail(CInic *self, CObserver *obs_ptr)
+{
+ (void)Sub_AddObserver(&self->subs[INIC_SUB_TX_MSG_OBJ_AVAIL], obs_ptr);
+}
+
+/*! \brief Delete an observer set by Inic_AddObsrvOnTxMsgObjAvail()
+ * \param self instance of CInic
+ * \param obs_ptr pointer to observer to be removed
+ */
+void Inic_DelObsrvOnTxMsgObjAvail(CInic *self, CObserver *obs_ptr)
+{
+ (void)Sub_RemoveObserver(&self->subs[INIC_SUB_TX_MSG_OBJ_AVAIL], obs_ptr);
+}
+
+/*! \brief Add an observer to the NetworkStatus subject
+ * \param self instance of CInic
+ * \param obs_ptr pointer to observer to be informed
+ */
+void Inic_AddObsrvNwStatus(CInic *self, CObserver *obs_ptr)
+{
+ (void)Sub_AddObserver(&self->subs[INIC_SUB_NW_STATUS], obs_ptr);
+}
+
+/*! \brief Delete an observer to the NetworkStatus subject
+ * \param self instance of CInic
+ * \param obs_ptr pointer to observer to be removed
+ */
+void Inic_DelObsrvNwStatus(CInic *self, CObserver *obs_ptr)
+{
+ (void)Sub_RemoveObserver(&self->subs[INIC_SUB_NW_STATUS], obs_ptr);
+}
+
+/*! \brief Add an observer to the NetworkConfiguration subject
+ * \param self instance of CInic
+ * \param obs_ptr pointer to observer to be informed
+ */
+void Inic_AddObsvrNwConfig(CInic *self, CObserver *obs_ptr)
+{
+ (void)Sub_AddObserver(&self->subs[INIC_SUB_NW_CONFIG], obs_ptr);
+}
+
+/*! \brief Delete an observer to the NetworkConfiguration subject
+ * \param self instance of CInic
+ * \param obs_ptr pointer to observer to be removed
+ */
+void Inic_DelObsvrNwConfig(CInic *self, CObserver *obs_ptr)
+{
+ (void)Sub_RemoveObserver(&self->subs[INIC_SUB_NW_CONFIG], obs_ptr);
+}
+
+/*! \brief Add an observer to the DeviceStatus subject
+ * \details The provided data points to a \ref Inic_DeviceStatus_t structure
+ * \param self instance of CInic
+ * \param obs_ptr pointer to observer to be informed
+ */
+void Inic_AddObsvrDeviceStatus(CInic *self, CObserver *obs_ptr)
+{
+ (void)Sub_AddObserver(&self->subs[INIC_SUB_DEVICE_STATUS], obs_ptr);
+}
+
+/*! \brief Delete an observer to the DeviceStatus subject
+ * \param self instance of CInic
+ * \param obs_ptr pointer to observer to be removed
+ */
+void Inic_DelObsvrDeviceStatus(CInic *self, CObserver *obs_ptr)
+{
+ (void)Sub_RemoveObserver(&self->subs[INIC_SUB_DEVICE_STATUS], obs_ptr);
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal API */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief This method requests the INIC version info
+ * \param self Reference to CInic instance
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Inic_DeviceVersion_Get(CInic *self, CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.api, INIC_API_DEVICE_VERSION_GET) != false)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 0U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_DEVICE_VERSION;
+ msg_ptr->id.op_type = UCS_OP_GET;
+
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_DEVICE_VERSION];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_MsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_DEVICE_VERSION], obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.api, INIC_API_DEVICE_VERSION_GET);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+/*! \brief Attach EHC to the INIC
+ * \param self Reference to CInic instance
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ */
+Ucs_Return_t Inic_DeviceAttach(CInic *self, CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 0U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_DEVICE_ATTACH;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_DEVICE_ATTACH];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_MsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_DEVICE_ATTACH], obs_ptr);
+ }
+ else
+ {
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+
+ return result;
+}
+
+/*! \brief Attaches the given PMS channel to the network
+ * \param self Reference to CInic instance
+ * \param pmp_channel_handle Port message channel resource handle
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ */
+Ucs_Return_t Inic_NwAttach(CInic *self,
+ uint16_t pmp_channel_handle,
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 2U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_MOST_NW_ATTACH;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+
+ msg_ptr->tel.tel_data_ptr[0] = MISC_HB(pmp_channel_handle);
+ msg_ptr->tel.tel_data_ptr[1] = MISC_LB(pmp_channel_handle);
+
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_NW_ATTACH];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_MsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_NW_ATTACH], obs_ptr);
+ }
+ else
+ {
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+
+ return result;
+}
+
+
+/*! \brief Starts the System diagnosis
+ * \param self Reference to CInic instance
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ */
+Ucs_Return_t Inic_NwSysDiagnosis(CInic *self, CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 0U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_MOST_NW_SYS_DIAGNOSIS;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_NW_SYS_DIAGNOSIS];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_MsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_NW_SYS_DIAGNOSIS], obs_ptr);
+ }
+ else
+ {
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+
+ return result;
+}
+
+/*! \brief Stops the System diagnosis
+ * \param self Reference to CInic instance
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ */
+Ucs_Return_t Inic_NwSysDiagEnd(CInic *self, CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 0U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_MOST_NW_SYS_DIAG_END;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_NW_SYS_DIAGEND];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_MsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_NW_SYS_DIAGEND], obs_ptr);
+ }
+ else
+ {
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+
+ return result;
+}
+
+/*! \brief Starts the Backchannel Diagnosis Mode
+ *
+ * \param *self Reference to CInic instance
+ * \param *obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ */
+Ucs_Return_t Inic_BCDiagnosis(CInic *self, CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 0U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = MSG_ADDR_INIC;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_BACK_CHANNEL_DIAGNOSIS;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_BC_DIAGNOSIS];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_MsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_BC_DIAGNOSIS], obs_ptr);
+ }
+ else
+ {
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+
+ return result;
+}
+
+/*! \brief Stops the Backchannel Diagnosis Mode
+ *
+ * \param *self Reference to CInic instance
+ * \param *obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ */
+Ucs_Return_t Inic_BCDiagEnd(CInic *self, CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 0U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = MSG_ADDR_INIC;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_BACK_CHANNEL_DIAG_END;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_BC_DIAG_END];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_MsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_BC_DIAG_END], obs_ptr);
+ }
+ else
+ {
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+
+ return result;
+}
+
+
+/*! \brief Requests the INIC.MOSTNetworRBDResult.Status message
+ * \param self Reference to CInic instance
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Inic_NwRbdResult_Get(CInic *self, CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.api, INIC_API_NW_RBD_RESULT) != false)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 0U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_MOST_NW_RBD_RESULT;
+ msg_ptr->id.op_type = UCS_OP_GET;
+
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_NW_RBD_RESULT];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_MsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_NW_RBD_RESULT], obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.api, INIC_API_NW_RBD_RESULT);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+
+/*! \brief This functions starts up the MOST network.
+ * \param self Reference to CInic instance
+ * \param auto_forced_na The delay time to shutdown the network after INIC has entered the
+ * protected mode.
+ * \param packet_bandwidth The desired packed bandwidth
+ * \param obs_ptr Reference to an optional observer. The result must be casted into type
+ * Inic_StdResult_t.
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Inic_NwStartup(CInic *self, uint16_t auto_forced_na,
+ uint16_t packet_bandwidth, CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if (self->startup_locked == false)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 4U);
+
+ if (msg_ptr != NULL)
+ {
+ self->startup_locked = true;
+
+ msg_ptr->destination_addr = self->target_address;
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_MOST_NW_STARTUP;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+ msg_ptr->tel.tel_data_ptr[0] = MISC_HB(auto_forced_na);
+ msg_ptr->tel.tel_data_ptr[1] = MISC_LB(auto_forced_na);
+ msg_ptr->tel.tel_data_ptr[2] = MISC_HB(packet_bandwidth);
+ msg_ptr->tel.tel_data_ptr[3] = MISC_LB(packet_bandwidth);
+
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_NW_STARTUP];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_MsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_NW_STARTUP], obs_ptr);
+ }
+ else
+ {
+ self->startup_locked = false;
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+/*! \brief This function shuts down the entire MOST network.
+ * \param self Reference to CInic instance
+ * \param obs_ptr Reference to an optional observer. The result must be casted into type
+ * Inic_StdResult_t.
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Inic_NwShutdown(CInic *self, CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.api, INIC_API_NW_SHUTDOWN) != false)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 0U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_MOST_NW_SHUTDOWN;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_NW_SHUTDOWN];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_MsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_NW_SHUTDOWN], obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.api, INIC_API_NW_SHUTDOWN);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+/*! \brief This function triggers the Ring Break Diagnosis.
+ * \param self Reference to CInic instance
+ * \param type Specifies if the INIC starts the RBD as a TimingMaster or TimingSlave.
+ * \param obs_ptr Reference to an optional observer. The result must be casted into type
+ * Inic_StdResult_t.
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Inic_NwTriggerRbd(CInic *self, Ucs_Diag_RbdType_t type, CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.api, INIC_API_NW_TRIGGER_RBD) != false)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 1U);
+
+ if (msg_ptr != NULL)
+ {
+ self->lock.rbd_trigger_timeout_counter = 0U;
+
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_MOST_NW_TRIGGER_RBD;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+
+ msg_ptr->tel.tel_data_ptr[0] = (uint8_t)type;
+
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_NW_TRIGGER_RBD];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_MsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_NW_TRIGGER_RBD], obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.api, INIC_API_NW_TRIGGER_RBD);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+/*! \brief This function triggers the INIC to force the NotAvailable state
+ * \param self Reference to CInic instance
+ * \param force Is \c true if the INIC shall force the network in NotAvailable state.
+ * If \c false the INIC shall no no longer force the network to NotAvailable state.
+ * \param obs_ptr Reference to an optional observer. The result must be casted into type
+ * Inic_StdResult_t.
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Inic_NwForceNotAvailable(CInic *self, bool force, CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if (Al_Lock(&self->lock.api, INIC_API_NW_FORCE_NA) != false)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 1U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_MOST_NW_FORCE_NO_AVAIL;
+ msg_ptr->id.op_type = UCS_OP_SETGET;
+
+ if (force == false)
+ {
+ msg_ptr->tel.tel_data_ptr[0] = 0U;
+ }
+ else
+ {
+ msg_ptr->tel.tel_data_ptr[0] = 1U;
+ }
+
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_NW_FORCE_NA];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_MsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_NW_FORCE_NA], obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.api, INIC_API_NW_FORCE_NA);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+/*! \brief This function modifies the INIC network configuration.
+ * \param self Reference to CInic instance
+ * \param mask Allows to change a single, multiple, or all parameters
+ * \param config Holds the parameter values
+ * \param obs_ptr Reference to an optional observer. The result must be casted into type
+ * Inic_StdResult_t.
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ */
+Ucs_Return_t Inic_NwConfig_SetGet(CInic *self, uint16_t mask, Inic_NetworkConfig_t config,
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 24U);
+
+ if (msg_ptr != NULL)
+ {
+ mask = mask & 7U; /* allow only bit 0..2 */
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_MOST_NW_CFG;
+ msg_ptr->id.op_type = UCS_OP_SETGET;
+
+ msg_ptr->tel.tel_data_ptr[0] = MISC_HB(mask);
+ msg_ptr->tel.tel_data_ptr[1] = MISC_LB(mask);
+ msg_ptr->tel.tel_data_ptr[2] = MISC_HB(config.node_address);
+ msg_ptr->tel.tel_data_ptr[3] = MISC_LB(config.node_address);
+ msg_ptr->tel.tel_data_ptr[4] = MISC_HB(config.group_address);
+ msg_ptr->tel.tel_data_ptr[5] = MISC_LB(config.group_address);
+ msg_ptr->tel.tel_data_ptr[6] = config.llrbc;
+ MISC_MEM_SET(&msg_ptr->tel.tel_data_ptr[7], 0, 17U);
+
+ Trcv_TxSendMsg(self->xcvr_ptr, msg_ptr);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_NW_CONFIG], obs_ptr);
+ }
+ else
+ {
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+
+ return result;
+}
+
+/*! \brief Requests the INIC.NetworkConfiguration.Status message
+ * \param self Reference to CInic instance
+ * \param obs_ptr Reference to an optional observer. The result must be casted into type
+ * Inic_StdResult_t.
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ */
+Ucs_Return_t Inic_NwConfig_Get(CInic *self, CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 0U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_MOST_NW_CFG;
+ msg_ptr->id.op_type = UCS_OP_GET;
+
+ Trcv_TxSendMsg(self->xcvr_ptr, msg_ptr);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_NW_CONFIG], obs_ptr);
+ }
+ else
+ {
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+
+ return result;
+}
+
+/*! \brief Requests the INIC.MOSTNetworkFrameCounter.Status message
+ * \param self Reference to CInic instance
+ * \param reference Reference counter value
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Inic_NwFrameCounter_Get(CInic *self, uint32_t reference, CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.api, INIC_API_NW_FRAME_COUNTER) != false)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 4U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_MOST_NW_FRAME_COUNTER;
+ msg_ptr->id.op_type = UCS_OP_GET;
+
+ msg_ptr->tel.tel_data_ptr[0] = (uint8_t)(reference >> 24);
+ msg_ptr->tel.tel_data_ptr[1] = (uint8_t)(reference >> 16);
+ msg_ptr->tel.tel_data_ptr[2] = (uint8_t)(reference >> 8);
+ msg_ptr->tel.tel_data_ptr[3] = (uint8_t)reference;
+
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_NW_FRAME_COUNTER];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_MsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_NW_FRAME_COUNTER], obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.api, INIC_API_NW_FRAME_COUNTER);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+
+
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Handler functions */
+/*------------------------------------------------------------------------------------------------*/
+
+/*! \brief Dummy handler function for unused INIC functions
+ *
+ * \param self instance of CInic
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_DummyHandler(void *self, Msg_MostTel_t *msg_ptr)
+{
+ MISC_UNUSED(self);
+ MISC_UNUSED(msg_ptr);
+}
+
+/*! \brief Handler function for INIC.DeviceStatus.Status
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_DeviceStatus_Status(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+
+ if (msg_ptr->tel.tel_len > 0U)
+ {
+ TR_ASSERT(self_->base_ptr->ucs_user_ptr, "[INIC]", (msg_ptr->tel.tel_len == 5U));
+ self_->device_status.config_iface_state= (Inic_AttachState_t)msg_ptr->tel.tel_data_ptr[0];
+ self_->device_status.app_iface_state = (Inic_AttachState_t)msg_ptr->tel.tel_data_ptr[1];
+ self_->device_status.power_state = (Ucs_Inic_PowerState_t)msg_ptr->tel.tel_data_ptr[2];
+ self_->device_status.bist = (Inic_Bist_t)msg_ptr->tel.tel_data_ptr[3];
+ self_->device_status.last_reset_reason = (Ucs_Inic_LastResetReason_t)msg_ptr->tel.tel_data_ptr[4];
+
+ /* INIC BIST error detected */
+ if (self_->device_status.bist == INIC_BIST_ERROR)
+ {
+ Eh_ReportEvent(&self_->base_ptr->eh, EH_E_BIST_FAILED);
+ }
+
+ Sub_Notify(&self_->subs[INIC_SUB_DEVICE_STATUS], &self_->device_status);
+ }
+}
+
+/*! \brief Handler function for INIC.DeviceVersion.Status
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_DeviceVersion_Status(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ if (msg_ptr->tel.tel_len > 0U)
+ {
+ MISC_DECODE_DWORD(&(self_->device_version.product_identifier), &(msg_ptr->tel.tel_data_ptr[0]));
+ self_->device_version.major_version = msg_ptr->tel.tel_data_ptr[4];
+ self_->device_version.minor_version = msg_ptr->tel.tel_data_ptr[5];
+ self_->device_version.release_version = msg_ptr->tel.tel_data_ptr[6];
+ MISC_DECODE_DWORD(&(self_->device_version.build_version), &(msg_ptr->tel.tel_data_ptr[7]));
+ self_->device_version.hw_revision = msg_ptr->tel.tel_data_ptr[11];
+ MISC_DECODE_WORD(&(self_->device_version.diagnosis_id), &(msg_ptr->tel.tel_data_ptr[12]));
+
+ TR_ASSERT(self_->base_ptr->ucs_user_ptr, "[INIC]", (msg_ptr->tel.tel_data_ptr[14] == 0x01U)); /* ExtIdentifier == CFGS ? */
+
+ self_->device_version.cs_major_version = msg_ptr->tel.tel_data_ptr[15];
+ self_->device_version.cs_minor_version = msg_ptr->tel.tel_data_ptr[16];
+ self_->device_version.cs_release_version = msg_ptr->tel.tel_data_ptr[17];
+
+
+ res_data.data_info = &self_->device_version;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+
+
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_DEVICE_VERSION], &res_data, true);
+ }
+ Al_Release(&self_->lock.api, INIC_API_DEVICE_VERSION_GET);
+}
+
+/*! \brief Handler function for INIC.DeviceVersion.Error
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_DeviceVersion_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ if (msg_ptr->tel.tel_len > 0U)
+ {
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ msg_ptr->tel.tel_len);
+
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_DEVICE_VERSION], &res_data, true);
+ }
+ Al_Release(&self_->lock.api, INIC_API_DEVICE_VERSION_GET);
+}
+
+/*! \brief Handler function for INIC.NetworkStatus.Status
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_NwStatus_Status(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ if (msg_ptr->tel.tel_len > 0U)
+ {
+ res_data.data_info = &self_->network_status;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+
+ TR_ASSERT(self_->base_ptr->ucs_user_ptr, "[INIC]", (msg_ptr->tel.tel_len == 11U));
+ MISC_DECODE_WORD(&(self_->network_status.events), &(msg_ptr->tel.tel_data_ptr[0]));
+ self_->network_status.availability = (Ucs_Network_Availability_t)msg_ptr->tel.tel_data_ptr[2];
+ self_->network_status.avail_info = (Ucs_Network_AvailInfo_t)msg_ptr->tel.tel_data_ptr[3];
+ self_->network_status.avail_trans_cause = (Ucs_Network_AvailTransCause_t)msg_ptr->tel.tel_data_ptr[4];
+ MISC_DECODE_WORD(&(self_->network_status.node_address), &(msg_ptr->tel.tel_data_ptr[5]));
+ self_->network_status.node_position = msg_ptr->tel.tel_data_ptr[7];
+ self_->network_status.max_position = msg_ptr->tel.tel_data_ptr[8];
+ MISC_DECODE_WORD(&(self_->network_status.packet_bw), &(msg_ptr->tel.tel_data_ptr[9]));
+
+ Sub_Notify(&self_->subs[INIC_SUB_NW_STATUS], &res_data);
+ }
+}
+
+/*! \brief Handler function for INIC.NetworkConfiguration.Status
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_NwConfig_Status(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ if (msg_ptr->tel.tel_len > 4U)
+ {
+ res_data.data_info = &self_->network_config;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+
+ MISC_DECODE_WORD(&(self_->network_config.node_address), &(msg_ptr->tel.tel_data_ptr[0]));
+ MISC_DECODE_WORD(&(self_->network_config.group_address), &(msg_ptr->tel.tel_data_ptr[2]));
+ self_->network_config.llrbc = msg_ptr->tel.tel_data_ptr[4];
+
+ Sub_Notify(&self_->subs[INIC_SUB_NW_CONFIG], &res_data);
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_NW_CONFIG], &res_data, true);
+ }
+}
+
+/*! \brief Handler function for INIC.NetworkConfiguration.Error
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_NwConfig_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ if (msg_ptr->tel.tel_len > 0U)
+ {
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ msg_ptr->tel.tel_len);
+
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_NW_CONFIG], &res_data, true);
+ }
+}
+
+/*! \brief Handler function for INIC.MOSTNetworkFrameCounter.Status
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_NwFrameCounter_Status(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+ Inic_FrameCounterStatus_t frame_counter_status;
+
+ if (msg_ptr->tel.tel_len > 0U)
+ {
+ MISC_DECODE_DWORD(&frame_counter_status.reference, &(msg_ptr->tel.tel_data_ptr[0]));
+ MISC_DECODE_DWORD(&frame_counter_status.frame_counter, &(msg_ptr->tel.tel_data_ptr[4]));
+ frame_counter_status.lock = msg_ptr->tel.tel_data_ptr[8];
+ res_data.data_info = &frame_counter_status;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_NW_FRAME_COUNTER], &res_data, true); /* provides pointer to Inic_StdResult_t structure */
+ }
+ Al_Release(&self_->lock.api, INIC_SSUB_NW_FRAME_COUNTER);
+}
+
+/*! \brief Handler function for INIC.MOSTNetworkFrameCounter.Error
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_NwFrameCounter_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ if (msg_ptr->tel.tel_len > 0U)
+ {
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ msg_ptr->tel.tel_len);
+
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_NW_FRAME_COUNTER], &res_data, true); /* provides pointer to Inic_StdResult_t structure */
+ }
+ Al_Release(&self_->lock.api, INIC_SSUB_NW_FRAME_COUNTER);
+}
+
+/*! \brief Handler function for INIC.MOSTNetworkStartup.ErrorAck
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_NwStartup_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ self_->startup_locked = false;
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (msg_ptr->tel.tel_len));
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_NW_STARTUP], &res_data, true);
+}
+
+/*! \brief Handler function for INIC.MOSTNetworkStartup.ResultAck
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_NwStartup_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+ MISC_UNUSED(msg_ptr);
+
+ self_->startup_locked = false;
+ res_data.data_info = NULL;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_NW_STARTUP], &res_data, true);
+}
+
+/*! \brief Handler function for INIC.MOSTNetworkShutdown.ErrorAck
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_NwShutdown_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ if (msg_ptr->tel.tel_len > 0U)
+ {
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (msg_ptr->tel.tel_len));
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_NW_SHUTDOWN], &res_data, true);
+ }
+ Al_Release(&self_->lock.api, INIC_API_NW_SHUTDOWN);
+}
+
+/*! \brief Handler function for INIC.MOSTNetworkShutdown.ResultAck
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_NwShutdown_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+ MISC_UNUSED(msg_ptr);
+
+ res_data.data_info = NULL;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_NW_SHUTDOWN], &res_data, true);
+ Al_Release(&self_->lock.api, INIC_API_NW_SHUTDOWN);
+}
+
+/*! \brief Handler function for INIC.MOSTNetworkTriggerRBD.ErrorAck
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_NwTriggerRbd_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ if (msg_ptr->tel.tel_len > 0U)
+ {
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (msg_ptr->tel.tel_len));
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_NW_TRIGGER_RBD], &res_data, true);
+ }
+ Al_Release(&self_->lock.api, INIC_API_NW_TRIGGER_RBD);
+}
+
+/*! \brief Handler function for INIC.MOSTNetworkTriggerRBD.ResultAck
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_NwTriggerRbd_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+ MISC_UNUSED(msg_ptr);
+
+ res_data.data_info = NULL;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_NW_TRIGGER_RBD], &res_data, true);
+ Al_Release(&self_->lock.api, INIC_API_NW_TRIGGER_RBD);
+}
+
+/*! \brief Handler function for INIC.MOSTNetworkForceNotAvailable.ErrorAck
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_NwForceNotAvailable_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ if (msg_ptr->tel.tel_len > 0U)
+ {
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (msg_ptr->tel.tel_len));
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_NW_FORCE_NA], &res_data, true);
+ }
+ Al_Release(&self_->lock.api, INIC_API_NW_FORCE_NA);
+}
+
+/*! \brief Handler function for INIC.MOSTNetworkForceNotAvailable.ResultAck
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_NwForceNotAvailable_Status(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+ MISC_UNUSED(msg_ptr);
+
+ res_data.data_info = NULL;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_NW_FORCE_NA], &res_data, true);
+ Al_Release(&self_->lock.api, INIC_API_NW_FORCE_NA);
+}
+
+/*! \brief Handler function for INIC.DeviceAttach.Error
+ * \param self reference to INIC object
+ * \param msg_ptr received message
+ */
+void Inic_DeviceAttach_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ if (msg_ptr->tel.tel_len > 0U)
+ {
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (msg_ptr->tel.tel_len));
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_DEVICE_ATTACH], &res_data, true);
+ }
+}
+
+/*! \brief Handler function for INIC.DeviceAttach.Result
+ * \param self reference to INIC object
+ * \param msg_ptr received message
+ */
+void Inic_DeviceAttach_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ MISC_UNUSED(msg_ptr);
+
+ res_data.data_info = NULL;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_DEVICE_ATTACH], &res_data, true);
+}
+
+/*! \brief Handler function for INIC.NetworkAttach.ErrorAck
+ * \param self reference to INIC object
+ * \param msg_ptr received message
+ */
+void Inic_NwAttach_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ if (msg_ptr->tel.tel_len > 0U)
+ {
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (msg_ptr->tel.tel_len));
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_NW_ATTACH], &res_data, true);
+ }
+}
+
+/*! \brief Handler function for INIC.NetworkAttach.ResultAck
+ * \param self reference to INIC object
+ * \param msg_ptr received message
+ */
+void Inic_NwAttach_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ MISC_UNUSED(msg_ptr);
+
+ res_data.data_info = NULL;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_NW_ATTACH], &res_data, true);
+}
+
+
+
+
+/*! \brief Handler function for INIC.MOSTNetworkSystemDiagnosis.Error
+ * \param self reference to INIC object
+ * \param msg_ptr received message
+ */
+void Inic_NwSysDiagnosis_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ if (msg_ptr->tel.tel_len > 0U)
+ {
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (msg_ptr->tel.tel_len));
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_NW_SYS_DIAGNOSIS], &res_data, true);
+ }
+}
+
+/*! \brief Handler function for INIC.MOSTNetworkSystemDiagnosis.Result
+ * \param self reference to INIC object
+ * \param msg_ptr received message
+ */
+void Inic_NwSysDiagnosis_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ MISC_UNUSED(msg_ptr);
+
+ res_data.data_info = NULL;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_NW_SYS_DIAGNOSIS], &res_data, true);
+}
+
+/*! \brief Handler function for INIC.MOSTNetworkSystemDiagnosisEnd.Error
+ * \param self reference to INIC object
+ * \param msg_ptr received message
+ */
+void Inic_NwSysDiagEnd_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ if (msg_ptr->tel.tel_len > 0U)
+ {
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (msg_ptr->tel.tel_len));
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_NW_SYS_DIAGEND], &res_data, true);
+ }
+}
+
+/*! \brief Handler function for INIC.MOSTNetworkSystemDiagnosisEnd.Result
+ * \param self reference to INIC object
+ * \param msg_ptr received message
+ */
+void Inic_NwSysDiagEnd_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ MISC_UNUSED(msg_ptr);
+
+ res_data.data_info = NULL;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_NW_SYS_DIAGEND], &res_data, true);
+}
+
+
+
+/*! \brief Handler function for INIC.BCDiag.Error
+ * \param self reference to INIC object
+ * \param msg_ptr received message
+ */
+void Inic_BCDiagnosis_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (msg_ptr->tel.tel_len));
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_BC_DIAGNOSIS], &res_data, true);
+}
+
+/*! \brief Handler function for INIC.BCDiag.ResultAck
+ * \param self reference to INIC object
+ * \param msg_ptr received message
+ */
+void Inic_BCDiagnosis_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ MISC_UNUSED(msg_ptr);
+
+ res_data.data_info = NULL;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_BC_DIAGNOSIS], &res_data, true);
+}
+
+/*! \brief Handler function for INIC.BCDiagEnd.Error
+ * \param self reference to INIC object
+ * \param msg_ptr received message
+ */
+void Inic_BCDiagEnd_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (msg_ptr->tel.tel_len));
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_BC_DIAG_END], &res_data, true);
+}
+
+/*! \brief Handler function for INIC.BCDiagEnd.Result
+ * \param self reference to INIC object
+ * \param msg_ptr received message
+ */
+void Inic_BCDiagEnd_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ MISC_UNUSED(msg_ptr);
+
+ res_data.data_info = NULL;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_BC_DIAG_END], &res_data, true);
+}
+
+
+
+
+
+/*! \brief Handler function for INIC.MOSTNetworkRBDResult.Status
+ * \param self Reference to INIC object
+ * \param msg_ptr Received message
+ */
+void Inic_NwRbdResult_Status(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_RbdResult_t rbd_result_data;
+ Inic_StdResult_t res_data;
+
+ if (msg_ptr->tel.tel_len > 0U)
+ {
+ rbd_result_data.result = (Ucs_Diag_RbdResult_t)msg_ptr->tel.tel_data_ptr[0];
+ rbd_result_data.position = msg_ptr->tel.tel_data_ptr[1];
+ rbd_result_data.status = msg_ptr->tel.tel_data_ptr[2];
+ MISC_DECODE_WORD(&(rbd_result_data.diag_id), &(msg_ptr->tel.tel_data_ptr[3]));
+ res_data.data_info = &rbd_result_data;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_NW_RBD_RESULT], &res_data, true);
+ }
+ Al_Release(&self_->lock.api, INIC_API_NW_RBD_RESULT);
+}
+
+/*! \brief Handler function for INIC.MOSTNetworkRBDResult.Error
+ * \param self reference to INIC object
+ * \param msg_ptr received message
+ */
+void Inic_NwRbdResult_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ if (msg_ptr->tel.tel_len > 0U)
+ {
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ msg_ptr->tel.tel_len);
+
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_NW_RBD_RESULT], &res_data, true);
+ }
+ Al_Release(&self_->lock.api, INIC_API_NW_RBD_RESULT);
+}
+
+
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Helper functions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Translates INIC error codes into UNICENS error codes and wraps the raw INIC
+ * error data to a byte stream.
+ * \param self Instance of CInic
+ * \param error_data[] INIC error data
+ * \param error_size Size of INIC error data in bytes
+ * \return The formatted error
+ */
+Ucs_StdResult_t Inic_TranslateError(CInic *self, uint8_t error_data[], uint8_t error_size)
+{
+ Ucs_StdResult_t ret_val;
+ MISC_UNUSED(self);
+
+ if(error_data[0] != 0x20U)
+ {
+ ret_val.code = UCS_RES_ERR_MOST_STANDARD;
+ }
+ else
+ {
+ ret_val.code = (Ucs_Result_t)(error_data[1] + 1U);
+ }
+
+ ret_val.info_ptr = &error_data[0];
+ ret_val.info_size = error_size;
+
+ return ret_val;
+}
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Synchronous Getters */
+/*------------------------------------------------------------------------------------------------*/
+uint16_t Inic_GetGroupAddress(CInic *self)
+{
+ return self->network_config.group_address;
+}
+
+uint16_t Inic_GetPacketDataBandwidth(CInic *self)
+{
+ return self->network_status.packet_bw;
+}
+
+uint16_t Inic_GetNodeAddress(CInic *self)
+{
+ return self->network_status.node_address;
+}
+
+uint8_t Inic_GetNodePosition(CInic *self)
+{
+ return self->network_status.node_position;
+}
+
+uint8_t Inic_GetNumberOfNodes(CInic *self)
+{
+ return self->network_status.max_position;
+}
+
+uint8_t Inic_GetInicLlrbc(CInic *self)
+{
+ return self->network_config.llrbc;
+}
+
+Ucs_Inic_Version_t Inic_GetDeviceVersion(CInic *self)
+{
+ return self->device_version;
+}
+
+Ucs_Inic_LastResetReason_t Inic_GetLastResetReason(CInic *self)
+{
+ return self->device_status.last_reset_reason;
+}
+
+Ucs_Inic_PowerState_t Inic_GetDevicePowerState(CInic *self)
+{
+ return self->device_status.power_state;
+}
+
+Ucs_Network_Availability_t Inic_GetAvailability(CInic *self)
+{
+ return self->network_status.availability;
+}
+
+uint16_t Inic_GetTargetAddress (CInic *self)
+{
+ return self->target_address;
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_inic_res.c b/ucs2-lib/src/ucs_inic_res.c
new file mode 100644
index 0000000..b9ab104
--- /dev/null
+++ b/ucs2-lib/src/ucs_inic_res.c
@@ -0,0 +1,3735 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of FBlock INIC (resource management parts of INIC management)
+ * \details Contains the resource management parts of INIC management
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_INIC
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_misc.h"
+#include "ucs_ret_pb.h"
+#include "ucs_inic.h"
+#include "ucs_base.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal macros */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief API locking Bitmask for all INIC create methods. */
+#define INIC_API_CREATE_CLASS 0x0001U
+/*! \brief API locking Bitmask of method Inic_ResourceDestroy(). */
+#define INIC_API_RESOURCE_DESTROY 0x0002U
+/*! \brief API locking Bitmask of method Inic_ResourceInvalidList_Get(). */
+#define INIC_API_RESOURCE_INVAL_LIST 0x0004U
+/*! \brief API locking Bitmask of method Inic_Notification_Set(). */
+#define INIC_API_NOTIFICATION 0x0008U
+/*! \brief API locking Bitmask of method Inic_StreamPortConfig_Get(). */
+#define INIC_API_STREAM_PORT_CONFIG 0x0010U
+/*! \brief API locking Bitmask of method Inic_SyncMute(). */
+#define INIC_API_SYNC_MUTE 0x0020U
+/*! \brief API locking Bitmask of method Inic_SyncDemute(). */
+#define INIC_API_SYNC_DEMUTE 0x0040U
+/*! \brief API locking Bitmask of method Inic_MostPortEnable(). */
+#define INIC_API_MOST_PORT_ENABLE 0x0080U
+/*! \brief API locking Bitmask of method Inic_MostPortEnFullStr(). */
+#define INIC_API_MOST_PORT_EN_FULL_STR 0x0100U
+/*! \brief API locking Bitmask of method Inic_GpioPortPinMode_SetGet(). */
+#define INIC_API_GPIO_PIN_MODE 0x0200U
+/*! \brief API locking Bitmask of method Inic_GpioPortPinState_SetGet(). */
+#define INIC_API_GPIO_PIN_STATE 0x0400U
+/*! \brief API locking Bitmask of methods Inic_I2cPortRead_StartResultAck() and Inic_I2cPortWrite_StartResultAck(). */
+#define INIC_API_I2C_PORT_WR 0x0800U
+/*! \brief Bitmask for API method Inic_DeviceSync() used by API locking manager */
+#define INIC_API_DEVICE_SYNC 0x1000U
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal prototypes */
+/*------------------------------------------------------------------------------------------------*/
+static void Inic_HandleResApiTimeout(void *self, void *method_mask_ptr);
+static void Inic_ResMsgTxStatusCb(void *self, Msg_MostTel_t *tel_ptr, Ucs_MsgTxStatus_t status);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Initialization function of the INIC Resource Management part. Called by Inic_Ctor().
+ * \param self Instance pointer
+ */
+void Inic_InitResourceManagement(CInic *self)
+{
+ Sobs_Ctor(&self->lock.res_observer, self, &Inic_HandleResApiTimeout);
+ Al_Ctor(&self->lock.res_api, &self->lock.res_observer, self->base_ptr->ucs_user_ptr);
+ Alm_RegisterApi(&self->base_ptr->alm, &self->lock.res_api);
+
+ /* initializes the gpio report time status */
+ self->gpio_rt_status.first_report = true;
+}
+
+/*! \brief Handles an API timeout
+ * \param self Instance pointer
+ * \param method_mask_ptr Bitmask to signal which API method has caused the timeout
+ */
+static void Inic_HandleResApiTimeout(void *self, void *method_mask_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Alm_ModuleMask_t method_mask = *((Alm_ModuleMask_t *)method_mask_ptr);
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = NULL;
+ res_data.result.code = UCS_RES_ERR_TIMEOUT;
+ res_data.result.info_ptr = NULL;
+
+ switch(method_mask)
+ {
+ case INIC_API_CREATE_CLASS:
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_CREATE_CLASS], &res_data, true);
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[INIC_RES]", "API locking timeout occurred for INIC create method.", 0U));
+ break;
+ case INIC_API_RESOURCE_DESTROY:
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_RESOURCE_DESTROY], &res_data, true);
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[INIC_RES]", "API locking timeout occurred for method Inic_ResourceDestroy().", 0U));
+ break;
+ case INIC_API_RESOURCE_INVAL_LIST:
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_RESOURCE_INVAL_LIST], &res_data, true);
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[INIC_RES]", "API locking timeout occurred for method Inic_ResourceInvalidList_Get().", 0U));
+ break;
+ case INIC_API_NOTIFICATION:
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_NOTIFICATION], &res_data, true);
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[INIC_RES]", "API locking timeout occurred for method Inic_Notification_Get().", 0U));
+ break;
+ case INIC_API_STREAM_PORT_CONFIG:
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_STREAM_PORT_CONFIG], &res_data, true);
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[INIC_RES]", "API locking timeout occurred for method Inic_StreamPortConfig_Get().", 0U));
+ break;
+ case INIC_API_SYNC_MUTE:
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_SYNC_MUTE], &res_data, true);
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[INIC_RES]", "API locking timeout occurred for method Inic_SyncMute().", 0U));
+ break;
+ case INIC_API_SYNC_DEMUTE:
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_SYNC_DEMUTE], &res_data, true);
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[INIC_RES]", "API locking timeout occurred for method Inic_SyncDemute().", 0U));
+ break;
+ case INIC_API_MOST_PORT_ENABLE:
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_MOST_PORT_ENABLE], &res_data, true);
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[INIC_RES]", "API locking timeout occurred for method Inic_MostPortEnable().", 0U));
+ break;
+ case INIC_API_MOST_PORT_EN_FULL_STR:
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_MOST_PORT_EN_FULL_STR], &res_data, true);
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[INIC_RES]", "API locking timeout occurred for method Inic_MostPortEnFullStr().", 0U));
+ break;
+ case INIC_API_GPIO_PIN_MODE:
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_GPIO_PIN_MODE], &res_data, true);
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[INIC_RES]", "API locking timeout occurred for method Inic_GpioPortPinMode_SetGet().", 0U));
+ break;
+ case INIC_API_GPIO_PIN_STATE:
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_GPIO_PIN_STATE], &res_data, true);
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[INIC_RES]", "API locking timeout occurred for method Inic_GpioPortPinState_SetGet().", 0U));
+ break;
+ case INIC_API_DEVICE_SYNC:
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_DEVICE_SYNC], &res_data, true);
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[INIC_RES]", "API locking timeout occurred for method Inic_DeviceSync_StartResult().", 0U));
+ break;
+ default:
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[INIC_RES]", "Unknown API locking bitmask detected. Mask: 0x%02X", 1U, method_mask));
+ break;
+ }
+}
+
+/*! \brief Add an observer to the ResourceMonitor subject
+ * \param self Instance of CInic
+ * \param obs_ptr Pointer to observer to be informed
+ */
+void Inic_AddObsrvResMonitor(CInic *self, CObserver *obs_ptr)
+{
+ (void)Sub_AddObserver(&self->subs[INIC_SUB_RES_MONITOR], obs_ptr);
+}
+
+/*! \brief Delete an observer from the ResourceMonitor subject
+ * \param self Instance of CInic
+ * \param obs_ptr Pointer to observer to be informed
+ */
+void Inic_DelObsrvResMonitor(CInic *self, CObserver *obs_ptr)
+{
+ (void)Sub_RemoveObserver(&self->subs[INIC_SUB_RES_MONITOR], obs_ptr);
+}
+
+/*! \brief Add an observer to the MOSTPortStatus subject
+ * \param self Instance of CInic
+ * \param obs_ptr Pointer to observer to be informed
+ */
+void Inic_AddObsrvMostPortStatus(CInic *self, CObserver *obs_ptr)
+{
+ if (Sub_AddObserver(&self->subs[INIC_SUB_MOST_PORT_STATUS], obs_ptr) != SUB_UNKNOWN_OBSERVER)
+ {
+ Sub_Notify(&self->subs[INIC_SUB_MOST_PORT_STATUS], &self->most_port_status);
+ }
+}
+
+/*! \brief Delete an observer from the MOSTPortStatus subject
+ * \param self Instance of CInic
+ * \param obs_ptr Pointer to observer to be informed
+ */
+void Inic_DelObsrvMostPortStatus(CInic *self, CObserver *obs_ptr)
+{
+ (void)Sub_RemoveObserver(&self->subs[INIC_SUB_MOST_PORT_STATUS], obs_ptr);
+}
+
+/*! \brief Add an observer to the GpioTriggerEvent subject
+ * \param self Instance of CInic
+ * \param obs_ptr Pointer to observer to be informed
+ */
+void Inic_AddObsrvGpioTriggerEvent(CInic *self, CObserver *obs_ptr)
+{
+ (void)Sub_AddObserver(&self->subs[INIC_SUB_GPIO_TRIGGER_EVENT], obs_ptr);
+}
+
+/*! \brief Removes an observer from the GpioTriggerEvent subject
+ * \param self Instance of CInic
+ * \param obs_ptr Pointer to observer to be informed
+ */
+void Inic_DelObsrvGpioTriggerEvent(CInic *self, CObserver *obs_ptr)
+{
+ (void)Sub_RemoveObserver(&self->subs[INIC_SUB_GPIO_TRIGGER_EVENT], obs_ptr);
+}
+
+/*! \brief Destroys the resources associated with the given resource handles
+ * \param self Reference to CInic instance
+ * \param res_handle_list resource handle list
+ * \param obs_ptr Reference to an optional observer. The result must be casted into type
+ * Inic_StdResult_t.
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ * \return UCS_RET_ERR_PARAM Wrong length of resource handle list
+ */
+Ucs_Return_t Inic_ResourceDestroy(CInic *self,
+ Inic_ResHandleList_t res_handle_list,
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+ uint8_t len;
+
+ if(Al_Lock(&self->lock.res_api, INIC_API_RESOURCE_DESTROY) != false)
+ {
+ /* sender handle + number of resource handles */
+ len = 2U * res_handle_list.num_handles;
+
+ if ((len == 0U) || ((MAX_INVALID_HANDLES_LIST << 1) < len))
+ {
+ Al_Release(&self->lock.res_api, INIC_API_RESOURCE_DESTROY);
+ result = UCS_RET_ERR_PARAM;
+ }
+ else
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, len);
+
+ if (msg_ptr != NULL)
+ {
+ uint8_t i;
+
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_RESOURCE_DESTROY;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+
+ for (i=0U; i < res_handle_list.num_handles; ++i)
+ {
+ msg_ptr->tel.tel_data_ptr[2U*i] = MISC_HB(res_handle_list.res_handles[i]);
+ msg_ptr->tel.tel_data_ptr[1U + (2U*i)] = MISC_LB(res_handle_list.res_handles[i]);
+ }
+
+ self->ssubs[INIC_SSUB_RESOURCE_DESTROY].user_mask = INIC_API_RESOURCE_DESTROY;
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_RESOURCE_DESTROY];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_ResMsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_RESOURCE_DESTROY], obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.res_api, INIC_API_RESOURCE_DESTROY);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+/*! \brief Retrieves the list of invalid resources
+ * \param self Reference to CInic instance
+ * \param obs_ptr Reference to an optional observer. The result must be casted into type
+ * Inic_StdResult_t.
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Inic_ResourceInvalidList_Get(CInic *self, CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.res_api, INIC_API_RESOURCE_INVAL_LIST) != false)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 0U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_RESOURCE_INVALID_LIST;
+ msg_ptr->id.op_type = UCS_OP_GET;
+
+ self->ssubs[INIC_SSUB_RESOURCE_INVAL_LIST].user_mask = INIC_API_RESOURCE_INVAL_LIST;
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_RESOURCE_INVAL_LIST];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_ResMsgTxStatusCb, self);
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_RESOURCE_INVAL_LIST], obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.res_api, INIC_API_RESOURCE_INVAL_LIST);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+/*! \brief Resets the resource monitor back to its default state.
+ * \param self Reference to CInic instance
+ * \param control Used to reset the resource monitor
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ */
+Ucs_Return_t Inic_ResourceMonitor_Set(CInic *self, Ucs_Resource_MonitorCtrl_t control)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 1U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_RESOURCE_MONITOR;
+ msg_ptr->id.op_type = UCS_OP_SET;
+ msg_ptr->tel.tel_data_ptr[0] = (uint8_t)control;
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_ResMsgTxStatusCb, self);
+ }
+ else
+ {
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+
+ return result;
+}
+
+/*! \brief Triggers notification of the given function_id list.
+ * \param self Reference to CInic instance
+ * \param control control command used
+ * \param device_id Id of the sending device (local node address).
+ * \param fktid_list function ids list.
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_PARAM parameter exceeds its admissible range was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ */
+Ucs_Return_t Inic_Notification_Set(CInic *self, Ucs_Inic_NotificationCtrl_t control, uint16_t device_id, Inic_FktIdList_t fktid_list)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ /* control + device_id + size of the funcids list */
+ uint8_t len = 1U + 2U + (2U * fktid_list.num_fktids);
+
+ if (len > MSG_MAX_SIZE_PAYLOAD)
+ {
+ result = UCS_RET_ERR_PARAM;
+ }
+ else
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, len);
+
+ if (msg_ptr != NULL)
+ {
+ uint8_t i;
+
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_NOTIFICATION;
+ msg_ptr->id.op_type = UCS_OP_SET;
+
+ msg_ptr->tel.tel_data_ptr[0] = (uint8_t)control;
+ msg_ptr->tel.tel_data_ptr[1] = MISC_HB(device_id);
+ msg_ptr->tel.tel_data_ptr[2] = MISC_LB(device_id);
+
+ if ((len > 3U) && (fktid_list.fktids_ptr != NULL) )
+ {
+ for (i=0U; i < fktid_list.num_fktids; ++i)
+ {
+ msg_ptr->tel.tel_data_ptr[3U+(2U*i)] = MISC_HB(fktid_list.fktids_ptr[i]);
+ msg_ptr->tel.tel_data_ptr[4U+(2U*i)] = MISC_LB(fktid_list.fktids_ptr[i]);
+ }
+ }
+
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_NOTIFICATION];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_ResMsgTxStatusCb, self);
+ }
+ else
+ {
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+
+ return result;
+}
+
+/*! \brief Gets the device id that has notified the given function_id
+ * \param self Reference to CInic instance
+ * \param fktid The function id to be looked for
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Inic_Notification_Get(CInic *self, uint16_t fktid, CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.res_api, INIC_API_NOTIFICATION) != false)
+ {
+ Msg_MostTel_t * msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 2U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_NOTIFICATION;
+ msg_ptr->id.op_type = UCS_OP_GET;
+
+ msg_ptr->tel.tel_data_ptr[0] = MISC_HB(fktid);
+ msg_ptr->tel.tel_data_ptr[1] = MISC_LB(fktid);
+
+ self->ssubs[INIC_SSUB_NOTIFICATION].user_mask = INIC_API_NOTIFICATION;
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_NOTIFICATION];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_ResMsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_NOTIFICATION], obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.res_api, INIC_API_NOTIFICATION);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+/*! \brief Creates a synchronous data connection. The connection can be directly associated with
+ * an input and output socket.
+ * \param self Reference to CInic instance
+ * \param resource_handle_in The ID number of the socket or splitter resource that is the
+ * starting point of the link.
+ * \param resource_handle_out The ID number of the socket or splitter resource that is the ending
+ * point of the link.
+ * \param default_mute specifies if the connection is muted by default
+ * \param mute_mode Configures how the resource monitor shall handle events that may
+ * the streamed data invalid.
+ * \param offset Denotes the offset from/to where data from/to a socket should be
+ * routed from/to a splitter/combiner.
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Inic_SyncCreate(CInic *self,
+ uint16_t resource_handle_in,
+ uint16_t resource_handle_out,
+ bool default_mute,
+ Ucs_Sync_MuteMode_t mute_mode,
+ uint16_t offset,
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.res_api, INIC_API_CREATE_CLASS) != false)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 8U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_SYNC_CREATE;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+
+ msg_ptr->tel.tel_data_ptr[0] = MISC_HB(resource_handle_in);
+ msg_ptr->tel.tel_data_ptr[1] = MISC_LB(resource_handle_in);
+ msg_ptr->tel.tel_data_ptr[2] = MISC_HB(resource_handle_out);
+ msg_ptr->tel.tel_data_ptr[3] = MISC_LB(resource_handle_out);
+ msg_ptr->tel.tel_data_ptr[4] = (default_mute != false) ? 1U : 0U;
+ msg_ptr->tel.tel_data_ptr[5] = (uint8_t)mute_mode;
+ msg_ptr->tel.tel_data_ptr[6] = MISC_HB(offset);
+ msg_ptr->tel.tel_data_ptr[7] = MISC_LB(offset);
+
+ self->ssubs[INIC_SSUB_CREATE_CLASS].user_mask = INIC_API_CREATE_CLASS;
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_CREATE_CLASS];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_ResMsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_CREATE_CLASS], obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.res_api, INIC_API_CREATE_CLASS);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+/*! \brief This function manually mutes a synchronous data connection.
+ * \param self Reference to CInic instance
+ * \param sync_handle Resource handle of the synchronous connection
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Inic_SyncMute(CInic *self,
+ uint16_t sync_handle,
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.res_api, INIC_API_SYNC_MUTE) != false)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 2U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_SYNC_MUTE;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+
+ msg_ptr->tel.tel_data_ptr[0] = MISC_HB(sync_handle);
+ msg_ptr->tel.tel_data_ptr[1] = MISC_LB(sync_handle);
+
+ self->ssubs[INIC_SSUB_SYNC_MUTE].user_mask = INIC_API_SYNC_MUTE;
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_SYNC_MUTE];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_ResMsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_SYNC_MUTE], obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.res_api, INIC_API_SYNC_MUTE);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+/*! \brief This function manually de-mutes a synchronous data connection.
+ * \param self Reference to CInic instance
+ * \param sync_handle Resource handle of the synchronous connection
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Inic_SyncDemute(CInic *self,
+ uint16_t sync_handle,
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.res_api, INIC_API_SYNC_DEMUTE) != false)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 2U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_SYNC_DEMUTE;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+
+ msg_ptr->tel.tel_data_ptr[0] = MISC_HB(sync_handle);
+ msg_ptr->tel.tel_data_ptr[1] = MISC_LB(sync_handle);
+
+ self->ssubs[INIC_SSUB_SYNC_DEMUTE].user_mask = INIC_API_SYNC_DEMUTE;
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_SYNC_DEMUTE];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_ResMsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_SYNC_DEMUTE], obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.res_api, INIC_API_SYNC_DEMUTE);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+/*! \brief Creates a DiscreteFrame Isochronous streaming phase connection. The connection can be
+ * directly associated with an input and output socket.
+ * \param self Reference to CInic instance
+ * \param resource_handle_in The ID number of the socket or splitter resource that is the
+ * starting point of the link.
+ * \param resource_handle_out The ID number of the socket or splitter resource that is the ending
+ * point of the link.
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Inic_DfiPhaseCreate(CInic *self,
+ uint16_t resource_handle_in,
+ uint16_t resource_handle_out,
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.res_api, INIC_API_CREATE_CLASS) != false)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 4U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_DFIPHASE_CREATE;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+
+ msg_ptr->tel.tel_data_ptr[0] = MISC_HB(resource_handle_in);
+ msg_ptr->tel.tel_data_ptr[1] = MISC_LB(resource_handle_in);
+ msg_ptr->tel.tel_data_ptr[2] = MISC_HB(resource_handle_out);
+ msg_ptr->tel.tel_data_ptr[3] = MISC_LB(resource_handle_out);
+
+ self->ssubs[INIC_SSUB_CREATE_CLASS].user_mask = INIC_API_CREATE_CLASS;
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_CREATE_CLASS];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_ResMsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_CREATE_CLASS], obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.res_api, INIC_API_CREATE_CLASS);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+/*! \brief Creates a combiner resource. A Combiner enables grouping of data from multiple network
+ * sockets into the same port socket.
+ * \param self Reference to CInic instance
+ * \param port_socket_handle Only supported sockets are Streaming Port, MLB, USB (OS81118) or PCI
+ * (OS81160) sockets of data type Synchronous. Direction must be OUT.
+ * \param most_port_handle When the splitter is created with a MOST socket, the socket must be
+ * created on the same port indicated by this handle.
+ * \param bytes_per_frame Specifies the total number of data bytes that are to be transferred
+ * each MOST frame.
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Inic_CombinerCreate(CInic *self,
+ uint16_t port_socket_handle,
+ uint16_t most_port_handle,
+ uint16_t bytes_per_frame,
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.res_api, INIC_API_CREATE_CLASS) != false)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 6U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_COMBINER_CREATE;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+
+ msg_ptr->tel.tel_data_ptr[0] = MISC_HB(port_socket_handle);
+ msg_ptr->tel.tel_data_ptr[1] = MISC_LB(port_socket_handle);
+ msg_ptr->tel.tel_data_ptr[2] = MISC_HB(most_port_handle);
+ msg_ptr->tel.tel_data_ptr[3] = MISC_LB(most_port_handle);
+ msg_ptr->tel.tel_data_ptr[4] = MISC_HB(bytes_per_frame);
+ msg_ptr->tel.tel_data_ptr[5] = MISC_LB(bytes_per_frame);
+
+ self->ssubs[INIC_SSUB_CREATE_CLASS].user_mask = INIC_API_CREATE_CLASS;
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_CREATE_CLASS];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_ResMsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_CREATE_CLASS], obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.res_api, INIC_API_CREATE_CLASS);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+/*! \brief Creates a splitter resource. A Splitter enables splitting up the data from a single
+ * channel into multiple channels.
+ * \param self Reference to CInic instance
+ * \param socket_handle_in All sockets of data type Synchronous are supported, regardless of
+ * the port the socket is created on. The direction must be IN.
+ * \param most_port_handle When the splitter is created with a MOST socket, the socket must be
+ * created on the same port indicated by this handle.
+ * \param bytes_per_frame Specifies the total number of data bytes that are to be transferred
+ * each MOST frame.
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Inic_SplitterCreate(CInic *self,
+ uint16_t socket_handle_in,
+ uint16_t most_port_handle,
+ uint16_t bytes_per_frame,
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.res_api, INIC_API_CREATE_CLASS) != false)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 6U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_SPLITTER_CREATE;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+
+ msg_ptr->tel.tel_data_ptr[0] = MISC_HB(socket_handle_in);
+ msg_ptr->tel.tel_data_ptr[1] = MISC_LB(socket_handle_in);
+ msg_ptr->tel.tel_data_ptr[2] = MISC_HB(most_port_handle);
+ msg_ptr->tel.tel_data_ptr[3] = MISC_LB(most_port_handle);
+ msg_ptr->tel.tel_data_ptr[4] = MISC_HB(bytes_per_frame);
+ msg_ptr->tel.tel_data_ptr[5] = MISC_LB(bytes_per_frame);
+
+ self->ssubs[INIC_SSUB_CREATE_CLASS].user_mask = INIC_API_CREATE_CLASS;
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_CREATE_CLASS];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_ResMsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_CREATE_CLASS], obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.res_api, INIC_API_CREATE_CLASS);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+/*! \brief Creates an Quality of Service IP Streaming data connection.
+ * \param self Reference to CInic instance
+ * \param socket_in_handle The ID number of the created socket that is the starting point of
+ * the link. Must be a socket of type Input.
+ * \param socket_out_handle The ID number of the created socket that is the ending point of
+ * the link. Must be a socket of type Output.
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Inic_QoSCreate(CInic *self,
+ uint16_t socket_in_handle,
+ uint16_t socket_out_handle,
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.res_api, INIC_API_CREATE_CLASS) != false)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 4U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_QOS_CREATE;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+
+ msg_ptr->tel.tel_data_ptr[0] = MISC_HB(socket_in_handle);
+ msg_ptr->tel.tel_data_ptr[1] = MISC_LB(socket_in_handle);
+ msg_ptr->tel.tel_data_ptr[2] = MISC_HB(socket_out_handle);
+ msg_ptr->tel.tel_data_ptr[3] = MISC_LB(socket_out_handle);
+
+ self->ssubs[INIC_SSUB_CREATE_CLASS].user_mask = INIC_API_CREATE_CLASS;
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_CREATE_CLASS];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_ResMsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_CREATE_CLASS], obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.res_api, INIC_API_CREATE_CLASS);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+/*! \brief Creates an IPC (Inter-Processor Communication) packet connection.
+ * \param self Reference to CInic instance
+ * \param socket_in_handle The ID number of the created socket that is the starting point of
+ * the link. Must be a socket of type Input.
+ * \param socket_out_handle The ID number of the created socket that is the ending point of
+ * the link. Must be a socket of type Output.
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Inic_IpcCreate(CInic *self,
+ uint16_t socket_in_handle,
+ uint16_t socket_out_handle,
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.res_api, INIC_API_CREATE_CLASS) != false)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 4U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_IPC_CREATE;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+
+ msg_ptr->tel.tel_data_ptr[0] = MISC_HB(socket_in_handle);
+ msg_ptr->tel.tel_data_ptr[1] = MISC_LB(socket_in_handle);
+ msg_ptr->tel.tel_data_ptr[2] = MISC_HB(socket_out_handle);
+ msg_ptr->tel.tel_data_ptr[3] = MISC_LB(socket_out_handle);
+
+ self->ssubs[INIC_SSUB_CREATE_CLASS].user_mask = INIC_API_CREATE_CLASS;
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_CREATE_CLASS];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_ResMsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_CREATE_CLASS], obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.res_api, INIC_API_CREATE_CLASS);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+/*! \brief Creates an A/V Packetized Isochronous Streaming data connection.
+ * \param self Reference to CInic instance
+ * \param socket_in_handle The ID number of the created socket that is the starting point of
+ * the link. Must be a socket of type Input.
+ * \param socket_out_handle The ID number of the created socket that is the ending point of
+ * the link. Must be a socket of type Output.
+ * \param isoc_packet_size Specifies the size of data packets that are to be transported over
+ * the isochronous channel.
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Inic_AvpCreate(CInic *self,
+ uint16_t socket_in_handle,
+ uint16_t socket_out_handle,
+ Ucs_Avp_IsocPacketSize_t isoc_packet_size,
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.res_api, INIC_API_CREATE_CLASS) != false)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 6U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_AVP_CREATE;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+
+ msg_ptr->tel.tel_data_ptr[0] = MISC_HB(socket_in_handle);
+ msg_ptr->tel.tel_data_ptr[1] = MISC_LB(socket_in_handle);
+ msg_ptr->tel.tel_data_ptr[2] = MISC_HB(socket_out_handle);
+ msg_ptr->tel.tel_data_ptr[3] = MISC_LB(socket_out_handle);
+ msg_ptr->tel.tel_data_ptr[4] = MISC_HB((uint16_t)isoc_packet_size);
+ msg_ptr->tel.tel_data_ptr[5] = MISC_LB((uint16_t)isoc_packet_size);
+
+ self->ssubs[INIC_SSUB_CREATE_CLASS].user_mask = INIC_API_CREATE_CLASS;
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_CREATE_CLASS];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_ResMsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_CREATE_CLASS], obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.res_api, INIC_API_CREATE_CLASS);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+/*! \brief This function creates a MOST socket bound to the MOST Network Port.
+ * \param self Reference to CInic instance
+ * \param most_port_handle MOST Network Port resource handle
+ * \param direction indicates the direction of the data stream from the perspective of
+ * the INIC
+ * \param data_type Specifies the data type
+ * \param bandwidth Required socket bandwidth in bytes. Maximum value depends on current
+ * free network resources.
+ * \param connection_label MOST network connection label. When used as parameter with direction
+ * Input, the connection label is used to connect to the appropriate MOST
+ * frame bytes. When used as parameter with direction Output, the
+ * connection label is not used and must be set to 0xFFFF.
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Inic_MostSocketCreate(CInic *self,
+ uint16_t most_port_handle,
+ Ucs_SocketDirection_t direction,
+ Ucs_Most_SocketDataType_t data_type,
+ uint16_t bandwidth,
+ uint16_t connection_label,
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.res_api, INIC_API_CREATE_CLASS) != false)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 8U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_MOST_SOCKET_CREATE;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+
+ msg_ptr->tel.tel_data_ptr[0] = MISC_HB(most_port_handle);
+ msg_ptr->tel.tel_data_ptr[1] = MISC_LB(most_port_handle);
+ msg_ptr->tel.tel_data_ptr[2] = (uint8_t)direction;
+ msg_ptr->tel.tel_data_ptr[3] = (uint8_t)data_type;
+ msg_ptr->tel.tel_data_ptr[4] = MISC_HB(bandwidth);
+ msg_ptr->tel.tel_data_ptr[5] = MISC_LB(bandwidth);
+ msg_ptr->tel.tel_data_ptr[6] = MISC_HB(connection_label);
+ msg_ptr->tel.tel_data_ptr[7] = MISC_LB(connection_label);
+
+ self->ssubs[INIC_SSUB_CREATE_CLASS].user_mask = INIC_API_CREATE_CLASS;
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_CREATE_CLASS];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_ResMsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_CREATE_CLASS], obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.res_api, INIC_API_CREATE_CLASS);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+/*! \brief Creates the MediaLB Port with its associated port instance identifier.
+ * \param self Reference to CInic instance
+ * \param index MediaLB Port instance
+ * \param clock_config Stores the clock speed configuration. The value is a multiple
+ * of the MOST network frame rate Fs; this means the MediaLB Port
+ * can only be frequency locked to the network's system clock.
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Inic_MlbPortCreate(CInic *self,
+ uint8_t index,
+ Ucs_Mlb_ClockConfig_t clock_config,
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.res_api, INIC_API_CREATE_CLASS) != false)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 2U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_MLB_PORT_CREATE;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+
+ msg_ptr->tel.tel_data_ptr[0] = index;
+ msg_ptr->tel.tel_data_ptr[1] = (uint8_t)clock_config;
+
+ self->ssubs[INIC_SSUB_CREATE_CLASS].user_mask = INIC_API_CREATE_CLASS;
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_CREATE_CLASS];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_ResMsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_CREATE_CLASS], obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.res_api, INIC_API_CREATE_CLASS);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+/*! \brief Creates a MediaLB socket bound to the MediaLB Port with the associated port instance
+ * identifier. If INIC enters Protected Mode, the MediaLB socket will be automatically
+ * destroyed.
+ * \param self Reference to CInic instance
+ * \param mlb_port_handle MediaLB Port resource handle
+ * \param direction Indicates the direction of the data stream from the perspective of
+ * the INIC
+ * \param data_type Specifies the data type
+ * \param bandwidth Required socket bandwidth in bytes
+ * \param channel_address Indicates the MediaLB ChannelAddress where the socket is mapped to.
+ * If the MediaLB Port is created by default, ChannelAddresses 0x0002
+ * and 0x0004 are reserved and cannot be used.
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Inic_MlbSocketCreate(CInic *self,
+ uint16_t mlb_port_handle,
+ Ucs_SocketDirection_t direction,
+ Ucs_Mlb_SocketDataType_t data_type,
+ uint16_t bandwidth,
+ uint16_t channel_address,
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.res_api, INIC_API_CREATE_CLASS) != false)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 8U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_MLB_SOCKET_CREATE;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+
+ msg_ptr->tel.tel_data_ptr[0] = MISC_HB(mlb_port_handle);
+ msg_ptr->tel.tel_data_ptr[1] = MISC_LB(mlb_port_handle);
+ msg_ptr->tel.tel_data_ptr[2] = (uint8_t)direction;
+ msg_ptr->tel.tel_data_ptr[3] = (uint8_t)data_type;
+ msg_ptr->tel.tel_data_ptr[4] = MISC_HB(bandwidth);
+ msg_ptr->tel.tel_data_ptr[5] = MISC_LB(bandwidth);
+ msg_ptr->tel.tel_data_ptr[6] = MISC_HB(channel_address);
+ msg_ptr->tel.tel_data_ptr[7] = MISC_LB(channel_address);
+
+ self->ssubs[INIC_SSUB_CREATE_CLASS].user_mask = INIC_API_CREATE_CLASS;
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_CREATE_CLASS];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_ResMsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_CREATE_CLASS], obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.res_api, INIC_API_CREATE_CLASS);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+/*! \brief Creates the USB Port with its associated port instance identifier. The instance
+ * identifier of an USB Port is always directly bound to a specific hardware port.
+ * \param self Reference to CInic instance
+ * \param index USB Port instance
+ * \param physical_layer USB Port physical layer
+ * \param devices_interfaces USB Interfaces supported by the device
+ * \param streaming_if_ep_out_count number of USB OUT Endpoints being provided through the USB streaming interface
+ * \param streaming_if_ep_in_count number of USB IN Endpoints being provided through the USB Streaming interface
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Inic_UsbPortCreate(CInic *self,
+ uint8_t index,
+ Ucs_Usb_PhysicalLayer_t physical_layer,
+ uint16_t devices_interfaces,
+ uint8_t streaming_if_ep_out_count,
+ uint8_t streaming_if_ep_in_count,
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.res_api, INIC_API_CREATE_CLASS) != false)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 6U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_USB_PORT_CREATE;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+
+ msg_ptr->tel.tel_data_ptr[0] = index;
+ msg_ptr->tel.tel_data_ptr[1] = (uint8_t)physical_layer;
+ msg_ptr->tel.tel_data_ptr[2] = MISC_HB(devices_interfaces);
+ msg_ptr->tel.tel_data_ptr[3] = MISC_LB(devices_interfaces);
+ msg_ptr->tel.tel_data_ptr[4] = streaming_if_ep_out_count;
+ msg_ptr->tel.tel_data_ptr[5] = streaming_if_ep_in_count;
+
+ self->ssubs[INIC_SSUB_CREATE_CLASS].user_mask = INIC_API_CREATE_CLASS;
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_CREATE_CLASS];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_ResMsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_CREATE_CLASS], obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.res_api, INIC_API_CREATE_CLASS);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+/*! \brief Creates a USB socket bound to the USB port with its associated port instance identifier.
+ * If INIC enters Protected Mode, the USB socket will be automatically destroyed.
+ * \param self Reference to CInic instance
+ * \param usb_port_handle USB Port resource handle
+ * \param direction Indicates the direction of the data stream from the perspective of
+ * the INIC
+ * \param data_type Specifies the data type
+ * \param end_point_addr Denotes the address of a USB endpoint as per its description in the
+ * USB 2.0 Specification
+ * \param frames_per_transfer Indicates the number of MOST frames per transfer per one USB
+ * transaction
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Inic_UsbSocketCreate(CInic *self,
+ uint16_t usb_port_handle,
+ Ucs_SocketDirection_t direction,
+ Ucs_Usb_SocketDataType_t data_type,
+ uint8_t end_point_addr,
+ uint16_t frames_per_transfer,
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.res_api, INIC_API_CREATE_CLASS) != false)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 7U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_USB_SOCKET_CREATE;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+
+ msg_ptr->tel.tel_data_ptr[0] = MISC_HB(usb_port_handle);
+ msg_ptr->tel.tel_data_ptr[1] = MISC_LB(usb_port_handle);
+ msg_ptr->tel.tel_data_ptr[2] = (uint8_t)direction;
+ msg_ptr->tel.tel_data_ptr[3] = (uint8_t)data_type;
+ msg_ptr->tel.tel_data_ptr[4] = end_point_addr;
+ msg_ptr->tel.tel_data_ptr[5] = MISC_HB(frames_per_transfer);
+ msg_ptr->tel.tel_data_ptr[6] = MISC_LB(frames_per_transfer);
+
+ self->ssubs[INIC_SSUB_CREATE_CLASS].user_mask = INIC_API_CREATE_CLASS;
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_CREATE_CLASS];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_ResMsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_CREATE_CLASS], obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.res_api, INIC_API_CREATE_CLASS);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+/*! \brief This function is used to configure the Streaming Ports.
+ * \param self Reference to CInic instance
+ * \param index Streaming Port instance
+ * \param op_mode Streaming Port Operation mode
+ * \param port_option Streaming Port Options
+ * \param clock_mode Stream Port Clock Mode
+ * \param clock_data_delay Stream Port Clock Data Delay
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ */
+Ucs_Return_t Inic_StreamPortConfig_SetGet(CInic *self,
+ uint8_t index,
+ Ucs_Stream_PortOpMode_t op_mode,
+ Ucs_Stream_PortOption_t port_option,
+ Ucs_Stream_PortClockMode_t clock_mode,
+ Ucs_Stream_PortClockDataDelay_t clock_data_delay,
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.res_api, INIC_API_STREAM_PORT_CONFIG) != false)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 5U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_STREAM_PORT_CONFIG;
+ msg_ptr->id.op_type = UCS_OP_SETGET;
+
+ msg_ptr->tel.tel_data_ptr[0] = (uint8_t)index;
+ msg_ptr->tel.tel_data_ptr[1] = (uint8_t)op_mode;
+ msg_ptr->tel.tel_data_ptr[2] = (uint8_t)port_option;
+ msg_ptr->tel.tel_data_ptr[3] = (uint8_t)clock_mode;
+ msg_ptr->tel.tel_data_ptr[4] = (uint8_t)clock_data_delay;
+
+ self->ssubs[INIC_SSUB_STREAM_PORT_CONFIG].user_mask = INIC_API_STREAM_PORT_CONFIG;
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_STREAM_PORT_CONFIG];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_ResMsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_STREAM_PORT_CONFIG], obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.res_api, INIC_API_STREAM_PORT_CONFIG);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+/*! \brief This function is used to request the configurations of the Streaming Ports.
+ * \param self Reference to CInic instance
+ * \param index Streaming Port Instance ID
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Inic_StreamPortConfig_Get(CInic *self,
+ uint8_t index,
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.res_api, INIC_API_STREAM_PORT_CONFIG) != false)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 1U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_STREAM_PORT_CONFIG;
+ msg_ptr->id.op_type = UCS_OP_GET;
+
+ msg_ptr->tel.tel_data_ptr[0] = (uint8_t)index;
+
+ self->ssubs[INIC_SSUB_STREAM_PORT_CONFIG].user_mask = INIC_API_STREAM_PORT_CONFIG;
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_STREAM_PORT_CONFIG];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_ResMsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_STREAM_PORT_CONFIG], obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.res_api, INIC_API_STREAM_PORT_CONFIG);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+/*! \brief This function creates the Streaming Port with its associated port instance identifier.
+ * \param self Reference to CInic instance
+ * \param index Streaming Port instance
+ * \param clock_config Clock speed configuration of the SCK signal
+ * \param data_alignment Defines the alignment of the data bytes within the streaming port frame
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Inic_StreamPortCreate(CInic *self,
+ uint8_t index,
+ Ucs_Stream_PortClockConfig_t clock_config,
+ Ucs_Stream_PortDataAlign_t data_alignment,
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.res_api, INIC_API_CREATE_CLASS) != false)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 3U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_STREAM_PORT_CREATE;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+
+ msg_ptr->tel.tel_data_ptr[0] = index;
+ msg_ptr->tel.tel_data_ptr[1] = (uint8_t)clock_config;
+ msg_ptr->tel.tel_data_ptr[2] = (uint8_t)data_alignment;
+
+ self->ssubs[INIC_SSUB_CREATE_CLASS].user_mask = INIC_API_CREATE_CLASS;
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_CREATE_CLASS];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_ResMsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_CREATE_CLASS], obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.res_api, INIC_API_CREATE_CLASS);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+/*! \brief This function creates a Synchronous or DiscreteFrame Isochronous Streaming data socket
+ * bound to the Streaming Port with the denoted port instance identifier.
+ * \param self Reference to CInic instance
+ * \param stream_port_handle Streaming Port resource handle
+ * \param direction Indicates the direction of the data stream, from the INIC's
+ * perspective
+ * \param data_type Specifies the data type
+ * \param bandwidth Required socket bandwidth in bytes
+ * \param stream_pin_id ID of the serial interface pin of the addressed Streaming Port
+ * instance
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Inic_StreamSocketCreate(CInic *self,
+ uint16_t stream_port_handle,
+ Ucs_SocketDirection_t direction,
+ Ucs_Stream_SocketDataType_t data_type,
+ uint16_t bandwidth,
+ Ucs_Stream_PortPinId_t stream_pin_id,
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.res_api, INIC_API_CREATE_CLASS) != false)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 7U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_STREAM_SOCKET_CREATE;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+
+ msg_ptr->tel.tel_data_ptr[0] = MISC_HB(stream_port_handle);
+ msg_ptr->tel.tel_data_ptr[1] = MISC_LB(stream_port_handle);
+ msg_ptr->tel.tel_data_ptr[2] = (uint8_t)direction;
+ msg_ptr->tel.tel_data_ptr[3] = (uint8_t)data_type;
+ msg_ptr->tel.tel_data_ptr[4] = MISC_HB(bandwidth);
+ msg_ptr->tel.tel_data_ptr[5] = MISC_LB(bandwidth);
+ msg_ptr->tel.tel_data_ptr[6] = (uint8_t)stream_pin_id;
+
+ self->ssubs[INIC_SSUB_CREATE_CLASS].user_mask = INIC_API_CREATE_CLASS;
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_CREATE_CLASS];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_ResMsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_CREATE_CLASS], obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.res_api, INIC_API_CREATE_CLASS);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+/*! \brief This function creates an RMCK Port with its associated port instance identifier.
+ * \param self Reference to CInic instance
+ * \param index RMCK Port instance
+ * \param clock_source Indicates the source of the RMCK clock
+ * \param divisor Divisor of the clock source
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Inic_RmckPortCreate(CInic *self,
+ uint8_t index,
+ Ucs_Rmck_PortClockSource_t clock_source,
+ uint16_t divisor,
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.res_api, INIC_API_CREATE_CLASS) != false)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 4U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_RMCK_PORT_CREATE;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+
+ msg_ptr->tel.tel_data_ptr[0] = index;
+ msg_ptr->tel.tel_data_ptr[1] = (uint8_t)clock_source;
+ msg_ptr->tel.tel_data_ptr[2] = MISC_HB(divisor);
+ msg_ptr->tel.tel_data_ptr[3] = MISC_LB(divisor);
+
+ self->ssubs[INIC_SSUB_CREATE_CLASS].user_mask = INIC_API_CREATE_CLASS;
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_CREATE_CLASS];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_ResMsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_CREATE_CLASS], obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.res_api, INIC_API_CREATE_CLASS);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+/*! \brief This function creates an I2C Port with its associated port instance identifier.
+ * \param self Reference to CInic instance
+ * \param index I2C Port instance
+ * \param address The 7-bit I2C slave address of the peripheral to be read.
+ * \param mode The operation mode of the I2C Port
+ * \param speed The speed grade of the I2C Port
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Inic_I2cPortCreate(CInic *self,
+ uint8_t index,
+ uint8_t address,
+ uint8_t mode,
+ Ucs_I2c_Speed_t speed,
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.res_api, INIC_API_CREATE_CLASS) != false)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 4U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_I2C_PORT_CREATE;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+
+ msg_ptr->tel.tel_data_ptr[0] = index;
+ msg_ptr->tel.tel_data_ptr[1] = address;
+ msg_ptr->tel.tel_data_ptr[2] = mode;
+ msg_ptr->tel.tel_data_ptr[3] = (uint8_t)speed;
+
+ self->ssubs[INIC_SSUB_CREATE_CLASS].user_mask = INIC_API_CREATE_CLASS;
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_CREATE_CLASS];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_ResMsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_CREATE_CLASS], obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.res_api, INIC_API_CREATE_CLASS);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+/*! \brief This function reads a block of bytes from an I2C device at a specified I2C address.
+ * \param self Reference to CInic instance
+ * \param port_handle Port resource handle
+ * \param slave_address The 7-bit I2C slave address of the peripheral to be read
+ * \param data_len Number of bytes to be read from the address
+ * \param timeout The timeout for the I2C Port read
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Inic_I2cPortRead(CInic *self,
+ uint16_t port_handle,
+ uint8_t slave_address,
+ uint8_t data_len,
+ uint16_t timeout,
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.res_api, INIC_API_I2C_PORT_WR) != false)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 6U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_I2C_PORT_READ;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+
+ msg_ptr->tel.tel_data_ptr[0] = MISC_HB(port_handle);
+ msg_ptr->tel.tel_data_ptr[1] = MISC_LB(port_handle);
+ msg_ptr->tel.tel_data_ptr[2] = slave_address;
+ msg_ptr->tel.tel_data_ptr[3] = data_len;
+ msg_ptr->tel.tel_data_ptr[4] = MISC_HB(timeout);
+ msg_ptr->tel.tel_data_ptr[5] = MISC_LB(timeout);
+
+ self->ssubs[INIC_SSUB_I2C_PORT_WR].user_mask = INIC_API_I2C_PORT_WR;
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_I2C_PORT_WR];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_ResMsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_I2C_PORT_WR], obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.res_api, INIC_API_I2C_PORT_WR);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+/*! \brief This function writes a block of bytes to an I2C device at a specified I2C address.
+ * \param self Reference to CInic instance
+ * \param port_handle Port resource handle
+ * \param mode The write transfer mode
+ * \param block_count The number of blocks to be written to the I2C address.
+ * \param slave_address The 7-bit I2C slave address of the peripheral to be read
+ * \param timeout The timeout for the I2C Port write
+ * \param data_len Number of bytes to be written to the addressed I2C peripheral
+ * \param data_list Reference to the data list to be written
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Inic_I2cPortWrite(CInic *self,
+ uint16_t port_handle,
+ Ucs_I2c_TrMode_t mode,
+ uint8_t block_count,
+ uint8_t slave_address,
+ uint16_t timeout,
+ uint8_t data_len,
+ uint8_t data_list[],
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.res_api, INIC_API_I2C_PORT_WR) != false)
+ {
+ uint8_t i;
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, (8U + data_len));
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_I2C_PORT_WRITE;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+
+ msg_ptr->tel.tel_data_ptr[0] = MISC_HB(port_handle);
+ msg_ptr->tel.tel_data_ptr[1] = MISC_LB(port_handle);
+ msg_ptr->tel.tel_data_ptr[2] = (uint8_t)mode;
+ msg_ptr->tel.tel_data_ptr[3] = block_count;
+ msg_ptr->tel.tel_data_ptr[4] = slave_address;
+ msg_ptr->tel.tel_data_ptr[5] = (mode == UCS_I2C_BURST_MODE) ? (data_len/block_count):data_len;
+ msg_ptr->tel.tel_data_ptr[6] = MISC_HB(timeout);
+ msg_ptr->tel.tel_data_ptr[7] = MISC_LB(timeout);
+
+ if (data_list != NULL)
+ {
+ for (i = 0U; i < data_len; i++)
+ {
+ msg_ptr->tel.tel_data_ptr[8U + i] = data_list[i];
+ }
+ }
+
+ self->ssubs[INIC_SSUB_I2C_PORT_WR].user_mask = INIC_API_I2C_PORT_WR;
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_I2C_PORT_WR];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_ResMsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_I2C_PORT_WR], obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.res_api, INIC_API_I2C_PORT_WR);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+/*! \brief This function creates an PCIe Port with its associated port instance identifier.
+ * \param self Reference to CInic instance
+ * \param index PCIe Port instance
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Inic_PciPortCreate(CInic *self,
+ uint8_t index,
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.res_api, INIC_API_CREATE_CLASS) != false)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 1U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_PCI_PORT_CREATE;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+
+ msg_ptr->tel.tel_data_ptr[0] = index;
+
+ self->ssubs[INIC_SSUB_CREATE_CLASS].user_mask = INIC_API_CREATE_CLASS;
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_CREATE_CLASS];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_ResMsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_CREATE_CLASS], obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.res_api, INIC_API_CREATE_CLASS);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+/*! \brief This function creates a PCIe socket bound to the PCIe Port with the associated port
+ * instance identifier. If the EHC detaches, the PCIe socket will be automatically
+ * destroyed.
+ * \param self Reference to CInic instance
+ * \param pci_port_handle PCIe Port resource handle
+ * \param direction Indicates the direction of the data stream from the perspective of
+ * the INIC
+ * \param data_type Specifies the data type
+ * \param dma_channel Specifies the DMA channel
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Inic_PciSocketCreate(CInic *self,
+ uint16_t pci_port_handle,
+ Ucs_SocketDirection_t direction,
+ Ucs_Pci_SocketDataType_t data_type,
+ uint8_t dma_channel,
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.res_api, INIC_API_CREATE_CLASS) != false)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 5U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_PCI_SOCKET_CREATE;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+
+ msg_ptr->tel.tel_data_ptr[0] = MISC_HB(pci_port_handle);
+ msg_ptr->tel.tel_data_ptr[1] = MISC_LB(pci_port_handle);
+ msg_ptr->tel.tel_data_ptr[2] = (uint8_t)direction;
+ msg_ptr->tel.tel_data_ptr[3] = (uint8_t)data_type;
+ msg_ptr->tel.tel_data_ptr[4] = dma_channel;
+
+ self->ssubs[INIC_SSUB_CREATE_CLASS].user_mask = INIC_API_CREATE_CLASS;
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_CREATE_CLASS];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_ResMsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_CREATE_CLASS], obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.res_api, INIC_API_CREATE_CLASS);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+/*! \brief This function creates a GPIO Port with its associated port instance identifier.
+ * \param self Reference to CInic instance
+ * \param gpio_port_index GPIO Port instance
+ * \param debounce_time Timeout for the GPIO debounce timer
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Inic_GpioPortCreate(CInic *self,
+ uint8_t gpio_port_index,
+ uint16_t debounce_time,
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.res_api, INIC_API_CREATE_CLASS) != false)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 3U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_GPIO_PORT_CREATE;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+
+ msg_ptr->tel.tel_data_ptr[0] = gpio_port_index;
+ msg_ptr->tel.tel_data_ptr[1] = MISC_HB(debounce_time);
+ msg_ptr->tel.tel_data_ptr[2] = MISC_LB(debounce_time);
+
+ self->ssubs[INIC_SSUB_CREATE_CLASS].user_mask = INIC_API_CREATE_CLASS;
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_CREATE_CLASS];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_ResMsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_CREATE_CLASS], obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.res_api, INIC_API_CREATE_CLASS);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+/*! \brief This function enables or disables a specific MOST Network Port.
+ * \param self Reference to CInic instance
+ * \param most_port_handle Port resource handle
+ * \param enabled Indicates whether a MOST Network Port should be enabled or disabled
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Inic_MostPortEnable(CInic *self,
+ uint16_t most_port_handle,
+ bool enabled,
+ CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.res_api, INIC_API_MOST_PORT_ENABLE) != false)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 3U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_MOST_PORT_ENABLE;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+
+ msg_ptr->tel.tel_data_ptr[0] = MISC_HB(most_port_handle);
+ msg_ptr->tel.tel_data_ptr[1] = MISC_LB(most_port_handle);
+ msg_ptr->tel.tel_data_ptr[2] = (enabled != false) ? 1U : 0U;
+
+ self->ssubs[INIC_SSUB_MOST_PORT_ENABLE].user_mask = INIC_API_MOST_PORT_ENABLE;
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_MOST_PORT_ENABLE];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_ResMsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_MOST_PORT_ENABLE], obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.res_api, INIC_API_MOST_PORT_ENABLE);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+/*! \brief This function retrieves the current pin mode of the given GPIO Port.
+ * \param self Reference to CInic instance
+ * \param gpio_handle GPIO Port instance
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Inic_GpioPortPinMode_Get(CInic *self, uint16_t gpio_handle, CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.res_api, INIC_API_GPIO_PIN_MODE) != false)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 2U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_GPIO_PORT_PIN_MODE;
+ msg_ptr->id.op_type = UCS_OP_GET;
+
+ msg_ptr->tel.tel_data_ptr[0] = MISC_HB(gpio_handle);
+ msg_ptr->tel.tel_data_ptr[1] = MISC_LB(gpio_handle);
+
+ self->ssubs[INIC_SSUB_GPIO_PIN_MODE].user_mask = INIC_API_GPIO_PIN_MODE;
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_GPIO_PIN_MODE];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_ResMsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_GPIO_PIN_MODE], obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.res_api, INIC_API_GPIO_PIN_MODE);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+/*! \brief This function sets and retrieves the mode of a pin on the GPIO Port
+ * \param self Reference to CInic instance
+ * \param gpio_handle GPIO Port instance
+ * \param pin The GPIO pin that is to be configured
+ * \param mode The mode of the GPIO pin
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Inic_GpioPortPinMode_SetGet(CInic *self, uint16_t gpio_handle, uint8_t pin, Ucs_Gpio_PinMode_t mode, CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.res_api, INIC_API_GPIO_PIN_MODE) != false)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 4U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_GPIO_PORT_PIN_MODE;
+ msg_ptr->id.op_type = UCS_OP_SETGET;
+
+ msg_ptr->tel.tel_data_ptr[0] = MISC_HB(gpio_handle);
+ msg_ptr->tel.tel_data_ptr[1] = MISC_LB(gpio_handle);
+ msg_ptr->tel.tel_data_ptr[2] = pin;
+ msg_ptr->tel.tel_data_ptr[3] = (uint8_t)mode;
+
+ self->ssubs[INIC_SSUB_GPIO_PIN_MODE].user_mask = INIC_API_GPIO_PIN_MODE;
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_GPIO_PIN_MODE];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_ResMsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_GPIO_PIN_MODE], obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.res_api, INIC_API_GPIO_PIN_MODE);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+/*! \brief This function retrieves the pin state of the given GPIO Port.
+ * \param self Reference to CInic instance
+ * \param gpio_handle GPIO Port instance
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Inic_GpioPortPinState_Get(CInic *self, uint16_t gpio_handle, CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.res_api, INIC_API_GPIO_PIN_STATE) != false)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 2U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_GPIO_PORT_PIN_STATE;
+ msg_ptr->id.op_type = UCS_OP_GET;
+
+ msg_ptr->tel.tel_data_ptr[0] = MISC_HB(gpio_handle);
+ msg_ptr->tel.tel_data_ptr[1] = MISC_LB(gpio_handle);
+
+ self->ssubs[INIC_SSUB_GPIO_PIN_STATE].user_mask = INIC_API_GPIO_PIN_STATE;
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_GPIO_PIN_STATE];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_ResMsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_GPIO_PIN_STATE], obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.res_api, INIC_API_GPIO_PIN_STATE);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+/*! \brief This function sets and retrieves the state of a pin on the GPIO Port
+ * \param self Reference to CInic instance
+ * \param gpio_handle GPIO Port instance
+ * \param mask The GPIO pins to be written
+ * \param data The state of the GPIO pins to be written
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Inic_GpioPortPinState_SetGet(CInic *self, uint16_t gpio_handle, uint16_t mask, uint16_t data, CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.res_api, INIC_API_GPIO_PIN_STATE) != false)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 6U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_GPIO_PORT_PIN_STATE;
+ msg_ptr->id.op_type = UCS_OP_SETGET;
+
+ msg_ptr->tel.tel_data_ptr[0] = MISC_HB(gpio_handle);
+ msg_ptr->tel.tel_data_ptr[1] = MISC_LB(gpio_handle);
+ msg_ptr->tel.tel_data_ptr[2] = MISC_HB(mask);
+ msg_ptr->tel.tel_data_ptr[3] = MISC_LB(mask);
+ msg_ptr->tel.tel_data_ptr[4] = MISC_HB(data);
+ msg_ptr->tel.tel_data_ptr[5] = MISC_LB(data);
+
+ self->ssubs[INIC_SSUB_GPIO_PIN_STATE].user_mask = INIC_API_GPIO_PIN_STATE;
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_GPIO_PIN_STATE];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_ResMsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_GPIO_PIN_STATE], obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.res_api, INIC_API_GPIO_PIN_STATE);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+/*! \brief This function enables full streaming for a specific MOST Network Port.
+ * \param self Reference to CInic instance
+ * \param most_port_handle Port resource handle
+ * \param enabled Indicates whether full streaming is enabled or disabled
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_API_LOCKED Resource API is already used by another command
+ */
+Ucs_Return_t Inic_MostPortEnFullStr(CInic *self,
+ uint16_t most_port_handle,
+ bool enabled,
+ CSingleObserver *obs_ptr)
+{
+ MISC_UNUSED(self);
+ MISC_UNUSED(most_port_handle);
+ MISC_UNUSED(enabled);
+ MISC_UNUSED(obs_ptr);
+
+ return UCS_RET_ERR_NOT_SUPPORTED;
+}
+
+/*! \brief Allows remote synchronization of the given device
+ * \param self Reference to CInic instance
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ */
+Ucs_Return_t Inic_DeviceSync(CInic *self, CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if(Al_Lock(&self->lock.res_api, INIC_API_DEVICE_SYNC) != false)
+ {
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 1U);
+
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_DEVICE_SYNC;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+
+ msg_ptr->tel.tel_data_ptr[0] = 0x01U;
+
+ self->ssubs[INIC_SSUB_DEVICE_SYNC].user_mask = INIC_API_DEVICE_SYNC;
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_DEVICE_SYNC];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_ResMsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_DEVICE_SYNC], obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.res_api, INIC_API_DEVICE_SYNC);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+/*! \brief Un-synchronizes to the given remote device
+ * \param self Reference to CInic instance
+ * \param obs_ptr Reference to an optional observer
+ * \return UCS_RET_SUCCESS message was created
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ */
+Ucs_Return_t Inic_DeviceUnsync(CInic *self, CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->xcvr_ptr, 1U);
+
+ if(Al_Lock(&self->lock.res_api, INIC_API_DEVICE_SYNC) != false)
+ {
+ if (msg_ptr != NULL)
+ {
+ msg_ptr->destination_addr = self->target_address;
+
+ msg_ptr->id.fblock_id = FB_INIC;
+ msg_ptr->id.instance_id = 0U;
+ msg_ptr->id.function_id = INIC_FID_DEVICE_SYNC;
+ msg_ptr->id.op_type = UCS_OP_STARTRESULT;
+
+ msg_ptr->tel.tel_data_ptr[0] = 0U;
+
+ self->ssubs[INIC_SSUB_DEVICE_SYNC].user_mask = INIC_API_DEVICE_SYNC;
+ msg_ptr->info_ptr = &self->ssubs[INIC_SSUB_DEVICE_SYNC];
+ Trcv_TxSendMsgExt(self->xcvr_ptr, msg_ptr, &Inic_ResMsgTxStatusCb, self);
+
+ (void)Ssub_AddObserver(&self->ssubs[INIC_SSUB_DEVICE_SYNC], obs_ptr);
+ }
+ else
+ {
+ Al_Release(&self->lock.res_api, INIC_API_DEVICE_SYNC);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+ else
+ {
+ result = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return result;
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Handler functions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Handle message Tx status, Unlock the API and free the message objects
+ * \param self The instance
+ * \param tel_ptr Reference to transmitted message
+ * \param status Status of the transmitted message
+ */
+static void Inic_ResMsgTxStatusCb(void *self, Msg_MostTel_t *tel_ptr, Ucs_MsgTxStatus_t status)
+{
+ CInic *self_ = (CInic *)self;
+ CSingleSubject *ssub_ptr = (CSingleSubject *)tel_ptr->info_ptr;
+
+ if ((status != UCS_MSG_STAT_OK) && (tel_ptr->info_ptr != NULL))
+ {
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = &status;
+ res_data.result.code = UCS_RES_ERR_TRANSMISSION;
+ res_data.result.info_ptr = NULL;
+ res_data.result.info_size = 0U;
+ Ssub_Notify(ssub_ptr, &res_data, true);
+
+ if ((ssub_ptr != NULL) && (ssub_ptr->user_mask != 0U))
+ {
+ Al_Release(&self_->lock.res_api, (Alm_ModuleMask_t)ssub_ptr->user_mask);
+ }
+ }
+ Trcv_TxReleaseMsg(tel_ptr);
+ /* Reset user mask of the single subject if available */
+ if (ssub_ptr != NULL)
+ {
+ ssub_ptr->user_mask = 0U;
+ }
+
+ /* ICM messages pending? */
+ if (Sub_GetNumObservers(&self_->subs[INIC_SUB_TX_MSG_OBJ_AVAIL]) > 0U)
+ {
+ Sub_Notify(&self_->subs[INIC_SUB_TX_MSG_OBJ_AVAIL], NULL);
+ }
+}
+
+/*! \brief Handler function for INIC.ResourceDestroy.ErrorAck
+ * \param self reference to INIC object
+ * \param msg_ptr received message
+ */
+void Inic_ResourceDestroy_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (msg_ptr->tel.tel_len));
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_RESOURCE_DESTROY], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_RESOURCE_DESTROY);
+}
+
+/*! \brief Handler function for INIC.ResourceDestroy.ResultAck
+ * \param self reference to INIC object
+ * \param msg_ptr received message
+ */
+void Inic_ResourceDestroy_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+ MISC_UNUSED(msg_ptr);
+
+ res_data.data_info = NULL;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_RESOURCE_DESTROY], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_RESOURCE_DESTROY);
+}
+
+/*! \brief Handler function for INIC.ResourceInvalidList.Status
+ * \param self reference to INIC object
+ * \param msg_ptr received message
+ */
+void Inic_ResourceInvalidList_Status(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+ Inic_ResHandleList_t result;
+ uint8_t i;
+ uint16_t inv_res_handles[22]; /* Max. ICM message size is 45 -> max. 22 16-bit values */
+
+ res_data.data_info = &result;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+
+ /* Length of message must be even, since 16-Bit values are transmitted via two 8-bit fields. */
+ TR_ASSERT(self_->base_ptr->ucs_user_ptr, "[INIC_RES]", ((msg_ptr->tel.tel_len % 2U) == 0U));
+
+ for(i=0U; (i < (uint8_t)(msg_ptr->tel.tel_len >> 1)); i++)
+ {
+ MISC_DECODE_WORD(&inv_res_handles[i],
+ &(msg_ptr->tel.tel_data_ptr[(uint8_t)((uint8_t)i << 1)]));
+ }
+ result.res_handles = &inv_res_handles[0];
+ result.num_handles = (uint8_t)((uint8_t)msg_ptr->tel.tel_len >> 1);
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_RESOURCE_INVAL_LIST], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_RESOURCE_INVAL_LIST);
+}
+
+/*! \brief Handler function for INIC.ResourceInvalidList.Error
+ * \param self reference to INIC object
+ * \param msg_ptr received message
+ */
+void Inic_ResourceInvalidList_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ msg_ptr->tel.tel_len);
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_RESOURCE_INVAL_LIST], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_RESOURCE_INVAL_LIST);
+}
+
+/*! \brief Handler function for INIC.ResourceMonitor.Status
+ * \param self reference to INIC object
+ * \param msg_ptr received message
+ */
+void Inic_ResourceMonitor_Status(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+ Ucs_Resource_MonitorState_t state;
+
+ res_data.data_info = &state;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+ state = (Ucs_Resource_MonitorState_t)msg_ptr->tel.tel_data_ptr[0];
+ Sub_Notify(&self_->subs[INIC_SUB_RES_MONITOR], &res_data);
+}
+
+/*! \brief Handler function for INIC.ResourceMonitor.Error
+ * \param self reference to INIC object
+ * \param msg_ptr received message
+ */
+void Inic_ResourceMonitor_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ msg_ptr->tel.tel_len);
+ Sub_Notify(&self_->subs[INIC_SUB_RES_MONITOR], &res_data);
+}
+
+/*! \brief Handler function for INIC.SyncCreate.ErrorAck
+ * \param self reference to INIC object
+ * \param msg_ptr received message
+ */
+void Inic_SyncCreate_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (msg_ptr->tel.tel_len));
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_CREATE_CLASS], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_CREATE_CLASS);
+}
+
+/*! \brief Handler function for INIC.SyncCreate.ResultAck. res_data.data_info points to the
+ * resource handle of the synchronous connection which was created.
+ * \param self reference to INIC object
+ * \param msg_ptr received message
+ */
+void Inic_SyncCreate_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ uint16_t handle;
+ Inic_StdResult_t res_data;
+
+ MISC_DECODE_WORD(&handle, &(msg_ptr->tel.tel_data_ptr[0]));
+ res_data.data_info = &handle;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_CREATE_CLASS], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_CREATE_CLASS);
+}
+
+
+/*! \brief Handler function for INIC.SyncMute.ErrorAck
+ * \param self reference to INIC object
+ * \param msg_ptr received message
+ */
+void Inic_SyncMute_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (msg_ptr->tel.tel_len));
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_SYNC_MUTE], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_SYNC_MUTE);
+}
+
+/*! \brief Handler function for INIC.SyncMute.ResultAck
+ * \param self reference to INIC object
+ * \param msg_ptr received message
+ */
+void Inic_SyncMute_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ MISC_UNUSED(msg_ptr);
+
+ res_data.data_info = NULL;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_SYNC_MUTE], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_SYNC_MUTE);
+}
+
+/*! \brief Handler function for INIC.SyncDemute.ErrorAck
+ * \param self reference to INIC object
+ * \param msg_ptr received message
+ */
+void Inic_SyncDemute_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (msg_ptr->tel.tel_len));
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_SYNC_DEMUTE], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_SYNC_DEMUTE);
+}
+
+/*! \brief Handler function for INIC.SyncDemute.ResultAck
+ * \param self reference to INIC object
+ * \param msg_ptr received message
+ */
+void Inic_SyncDemute_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ MISC_UNUSED(msg_ptr);
+
+ res_data.data_info = NULL;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_SYNC_DEMUTE], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_SYNC_DEMUTE);
+}
+
+/*! \brief Handler function for INIC.DFIPhaseCreate.ErrorAck
+ * \param self reference to INIC object
+ * \param msg_ptr received message
+ */
+void Inic_DfiPhaseCreate_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (msg_ptr->tel.tel_len));
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_CREATE_CLASS], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_CREATE_CLASS);
+}
+
+/*! \brief Handler function for INIC.DFIPhaseCreate.ResultAck. res_data.data_info points to the
+ * resource handle of the DFIPhase streaming phase connection which was created.
+ * \param self reference to INIC object
+ * \param msg_ptr received message
+ */
+void Inic_DfiPhaseCreate_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ uint16_t handle;
+ Inic_StdResult_t res_data;
+
+ MISC_DECODE_WORD(&handle, &(msg_ptr->tel.tel_data_ptr[0]));
+ res_data.data_info = &handle;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_CREATE_CLASS], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_CREATE_CLASS);
+}
+
+/*! \brief Handler function for INIC.CombinerCreate.ErrorAck
+ * \param self reference to INIC object
+ * \param msg_ptr received message
+ */
+void Inic_CombinerCreate_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (msg_ptr->tel.tel_len));
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_CREATE_CLASS], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_CREATE_CLASS);
+}
+
+/*! \brief Handler function for INIC.CombinerCreate.ResultAck
+ * \param self reference to INIC object
+ * \param msg_ptr received message
+ */
+void Inic_CombinerCreate_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ uint16_t handle;
+ Inic_StdResult_t res_data;
+
+ MISC_DECODE_WORD(&handle, &(msg_ptr->tel.tel_data_ptr[0]));
+ res_data.data_info = &handle;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_CREATE_CLASS], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_CREATE_CLASS);
+}
+
+/*! \brief Handler function for INIC.SplitterCreate.ErrorAck
+ * \param self reference to INIC object
+ * \param msg_ptr received message
+ */
+void Inic_SplitterCreate_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (msg_ptr->tel.tel_len));
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_CREATE_CLASS], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_CREATE_CLASS);
+}
+
+/*! \brief Handler function for INIC.SplitterCreate.ResultAck
+ * \param self reference to INIC object
+ * \param msg_ptr received message
+ */
+void Inic_SplitterCreate_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ uint16_t handle;
+ Inic_StdResult_t res_data;
+
+ MISC_DECODE_WORD(&handle, &(msg_ptr->tel.tel_data_ptr[0]));
+ res_data.data_info = &handle;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_CREATE_CLASS], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_CREATE_CLASS);
+}
+
+/*! \brief Handler function for INIC.QoSCreate.ErrorAck
+ * \param self reference to INIC object
+ * \param msg_ptr received message
+ */
+void Inic_QoSCreate_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (msg_ptr->tel.tel_len));
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_CREATE_CLASS], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_CREATE_CLASS);
+}
+
+/*! \brief Handler function for INIC.QoSCreate.ResultAck.res_data.data_info points to the Resource
+ * handle of the Quality of Service IP Streaming data connection which was created.
+ * \param self reference to INIC object
+ * \param msg_ptr received message
+ */
+void Inic_QoSCreate_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ uint16_t handle;
+ Inic_StdResult_t res_data;
+
+ MISC_DECODE_WORD(&handle, &(msg_ptr->tel.tel_data_ptr[0]));
+ res_data.data_info = &handle;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_CREATE_CLASS], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_CREATE_CLASS);
+}
+
+/*! \brief Handler function for INIC.IPCPacketCreate.ErrorAck
+ * \param self reference to INIC object
+ * \param msg_ptr received message
+ */
+void Inic_IpcCreate_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (msg_ptr->tel.tel_len));
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_CREATE_CLASS], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_CREATE_CLASS);
+}
+
+/*! \brief Handler function for INIC.IPCPacketCreate.ResultAck.res_data.data_info points to the resource
+ * handle of the Inter-Processor Communication packet connection which was created.
+ * \param self reference to INIC object
+ * \param msg_ptr received message
+ */
+void Inic_IpcCreate_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ uint16_t handle;
+ Inic_StdResult_t res_data;
+
+ MISC_DECODE_WORD(&handle, &(msg_ptr->tel.tel_data_ptr[0]));
+ res_data.data_info = &handle;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_CREATE_CLASS], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_CREATE_CLASS);
+}
+
+/*! \brief Handler function for INIC.AVPCreate.ErrorAck
+ * \param self reference to INIC object
+ * \param msg_ptr received message
+ */
+void Inic_AvpCreate_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (msg_ptr->tel.tel_len));
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_CREATE_CLASS], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_CREATE_CLASS);
+}
+
+/*! \brief Handler function for INIC.AVPCreate.ResultAck. res_data.data_info points to the Resource
+ * handle of the A/V Packetized Isochronous Streaming connection which was created.
+ * \param self reference to INIC object
+ * \param msg_ptr received message
+ */
+void Inic_AvpCreate_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ uint16_t handle;
+ Inic_StdResult_t res_data;
+
+ MISC_DECODE_WORD(&handle, &(msg_ptr->tel.tel_data_ptr[0]));
+ res_data.data_info = &handle;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_CREATE_CLASS], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_CREATE_CLASS);
+}
+
+/*! \brief Handler function for INIC.MOSTPortStatus.Status
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_MostPortStatus_Status(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_MostPortStatus_t result;
+
+ MISC_DECODE_WORD(&(result.most_port_handle), &(msg_ptr->tel.tel_data_ptr[0]));
+ result.availability = (Ucs_Most_PortAvail_t)msg_ptr->tel.tel_data_ptr[2];
+ result.avail_info = (Ucs_Most_PortAvailInfo_t)msg_ptr->tel.tel_data_ptr[3];
+ result.fullstreaming_enabled = (msg_ptr->tel.tel_data_ptr[4] != 0U) ? true : false;
+ MISC_DECODE_WORD(&(result.freestreaming_bw), &(msg_ptr->tel.tel_data_ptr[5]));
+
+ self_->most_port_status = result;
+
+ Sub_Notify(&self_->subs[INIC_SUB_MOST_PORT_STATUS], &result);
+}
+
+/*! \brief Handler function for INIC.MOSTPortStatus.Error
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_MostPortStatus_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ msg_ptr->tel.tel_len);
+
+ Sub_Notify(&self_->subs[INIC_SUB_MOST_PORT_STATUS], &res_data);
+}
+
+/*! \brief Handler function for INIC.MOSTSocketCreate.ErrorAck. Result is delivered via the
+ * SingleObserver object ssubs[INIC_SSUB_CREATE_CLASS].
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_MostSocketCreate_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (msg_ptr->tel.tel_len));
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_CREATE_CLASS], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_CREATE_CLASS);
+}
+
+/*! \brief Handler function for INIC.MOSTSocketCreate.ResultAck
+ * \details Result is delivered via the SingleObserver element ssubs[INIC_SSUB_CREATE_CLASS]. Element
+ * res_data.data_info points to a variable of type Inic_MostSocketCreate_Result_t
+ * which holds the results of the MOSTSocketCreate command.
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_MostSocketCreate_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+ Inic_MostSocketCreate_Result_t res;
+
+ MISC_DECODE_WORD(&(res.most_socket_handle), &(msg_ptr->tel.tel_data_ptr[0]));
+ MISC_DECODE_WORD(&(res.conn_label), &(msg_ptr->tel.tel_data_ptr[2]));
+ res_data.data_info = &res;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_CREATE_CLASS], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_CREATE_CLASS);
+}
+
+
+/*! \brief Handler function for INIC.MLBPortCreate.ErrorAck
+ * \details Result is delivered via the SingleObserver object ssubs[INIC_SSUB_CREATE_CLASS].
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_MlbPortCreate_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (msg_ptr->tel.tel_len));
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_CREATE_CLASS], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_CREATE_CLASS);
+}
+
+/*! \brief Handler function for INIC.MLBPortCreate.ResultAck
+ * \details Result is delivered via the SingleObserver object ssubs[INIC_SSUB_CREATE_CLASS].
+ * Element res_data.data_info points to the variable mlb_port_handle which holds the
+ * MediaLB Port resource handle.
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_MlbPortCreate_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ uint16_t mlb_port_handle;
+ Inic_StdResult_t res_data;
+
+ MISC_DECODE_WORD(&mlb_port_handle, &(msg_ptr->tel.tel_data_ptr[0]));
+ res_data.data_info = &mlb_port_handle;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_CREATE_CLASS], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_CREATE_CLASS);
+}
+
+/*! \brief Handler function for INIC.MLBSocketCreate.ErrorAck
+ * \details Result is delivered via the SingleObserver object ssubs[INIC_SSUB_CREATE_CLASS].
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_MlbSocketCreate_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (msg_ptr->tel.tel_len));
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_CREATE_CLASS], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_CREATE_CLASS);
+}
+
+/*! \brief Handler function for INIC.MLBSocketCreate.ResultAck
+ * \details Element res_data.data_info points to the variable mlb_socket_handle which holds the
+ * MediaLB Socket resource handle of the created socket. Result is delivered via the
+ * SingleObserver object ssubs[INIC_SSUB_CREATE_CLASS].
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_MlbSocketCreate_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ uint16_t mlb_socket_handle;
+ Inic_StdResult_t res_data;
+
+ MISC_DECODE_WORD(&mlb_socket_handle, &(msg_ptr->tel.tel_data_ptr[0]));
+ res_data.data_info = &mlb_socket_handle;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_CREATE_CLASS], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_CREATE_CLASS);
+}
+
+/*! \brief Handler function for INIC.USBPortCreate.ErrorAck
+ * \details Result is delivered via the SingleObserver object ssubs[INIC_SSUB_CREATE_CLASS].
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_UsbPortCreate_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (msg_ptr->tel.tel_len));
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_CREATE_CLASS], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_CREATE_CLASS);
+}
+
+/*! \brief Handler function for INIC.USBPortCreate.ResultAck
+ * \details Element res_data.data_info points to the variable usb_port_handle which holds the USB
+ * Port resource handle.
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_UsbPortCreate_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ uint16_t usb_port_handle;
+ Inic_StdResult_t res_data;
+
+ MISC_DECODE_WORD(&usb_port_handle, &(msg_ptr->tel.tel_data_ptr[0]));
+ res_data.data_info = &usb_port_handle;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_CREATE_CLASS], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_CREATE_CLASS);
+}
+
+/*! \brief Handler function for INIC.USBSocketCreate.ErrorAck
+ * \details Result is delivered via the SingleObserver object ssubs[INIC_SSUB_CREATE_CLASS].
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_UsbSocketCreate_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (msg_ptr->tel.tel_len));
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_CREATE_CLASS], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_CREATE_CLASS);
+}
+
+/*! \brief Handler function for INIC.USBSocketCreate.ResultAck
+ * \details Element res_data.data_info points to the variable usb_socket_handle which holds the
+ * Socket resource handle of the created socket. Result is delivered via the
+ * SingleObserver object ssubs[INIC_SSUB_CREATE_CLASS].
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_UsbSocketCreate_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ uint16_t usb_socket_handle;
+ Inic_StdResult_t res_data;
+
+ MISC_DECODE_WORD(&usb_socket_handle, &(msg_ptr->tel.tel_data_ptr[0]));
+ res_data.data_info = &usb_socket_handle;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_CREATE_CLASS], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_CREATE_CLASS);
+}
+
+/*! \brief Handler function for INIC.StreamPortConfiguration.Status
+ * \details Result is delivered via the SingleObserver object ssubs[INIC_SSUB_STREAM_PORT_CONFIG].
+ * Element res_data.data_info points to a variable of type Inic_StreamPortConfigStatus_t
+ * which holds the results of the INIC.StreamPortConfiguration.Get command.
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_StreamPortConfig_Status(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StreamPortConfigStatus_t res;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = &res;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+
+ res.index = msg_ptr->tel.tel_data_ptr[0];
+ res.op_mode = (Ucs_Stream_PortOpMode_t)msg_ptr->tel.tel_data_ptr[1];
+ res.port_option = (Ucs_Stream_PortOption_t)msg_ptr->tel.tel_data_ptr[2];
+ res.clock_mode = (Ucs_Stream_PortClockMode_t)msg_ptr->tel.tel_data_ptr[3];
+ res.clock_data_delay = (Ucs_Stream_PortClockDataDelay_t)msg_ptr->tel.tel_data_ptr[4];
+
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_STREAM_PORT_CONFIG], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_STREAM_PORT_CONFIG);
+}
+
+/*! \brief Handler function for INIC.StreamPortConfiguration.Error
+ * \details Result is delivered via the SingleObserver object ssubs[INIC_SSUB_STREAM_PORT_CONFIG].
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_StreamPortConfig_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ msg_ptr->tel.tel_len);
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_STREAM_PORT_CONFIG], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_STREAM_PORT_CONFIG);
+}
+
+/*! \brief Handler function for INIC.StreamPortCreate.ErrorAck
+ * \details Result is delivered via the SingleObserver object ssubs[INIC_SSUB_CREATE_CLASS].
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_StreamPortCreate_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (msg_ptr->tel.tel_len));
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_CREATE_CLASS], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_CREATE_CLASS);
+}
+
+/*! \brief Handler function for INIC.StreamPortCreate.ResultAck
+ * \details Element res_data.data_info points to the variable stream_port_handle which holds the
+ * Streaming Port resource handle. Result is delivered via the SingleObserver object
+ * ssubs[INIC_SSUB_CREATE_CLASS].
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_StreamPortCreate_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ uint16_t stream_port_handle;
+ Inic_StdResult_t res_data;
+
+ MISC_DECODE_WORD(&stream_port_handle, &(msg_ptr->tel.tel_data_ptr[0]));
+ res_data.data_info = &stream_port_handle;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_CREATE_CLASS], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_CREATE_CLASS);
+}
+
+/*! \brief Handler function for INIC.StreamSocketCreate.ErrorAck
+ * \details Result is delivered via the SingleObserver object ssubs[INIC_SSUB_CREATE_CLASS].
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_StreamSocketCreate_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (msg_ptr->tel.tel_len));
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_CREATE_CLASS], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_CREATE_CLASS);
+}
+
+/*! \brief Handler function for INIC.StreamSocketCreate.ResultAck
+ * \details Element res_data.data_info points to the variable stream_socket_handle which holds
+ * the Socket resource handle of the created socket. Result is delivered via the
+ * SingleObserver object ssubs[INIC_SSUB_CREATE_CLASS].
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_StreamSocketCreate_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ uint16_t stream_socket_handle;
+ Inic_StdResult_t res_data;
+
+ MISC_DECODE_WORD(&stream_socket_handle, &(msg_ptr->tel.tel_data_ptr[0]));
+ res_data.data_info = &stream_socket_handle;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_CREATE_CLASS], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_CREATE_CLASS);
+}
+
+/*! \brief Handler function for INIC.RMCKOutPortCreate.ErrorAck
+ * \details Result is delivered via the SingleObserver object ssubs[INIC_SSUB_CREATE_CLASS].
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_RmckPortCreate_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (msg_ptr->tel.tel_len));
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_CREATE_CLASS], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_CREATE_CLASS);
+}
+
+/*! \brief Handler function for INIC.RMCKOutPortCreate.ResultAck
+ * \details Element res_data.data_info points to the variable rmck_port_handle which holds the
+ * RMCK Port resource handle. Result is delivered via the SingleObserver object
+ * ssubs[INIC_SSUB_CREATE_CLASS].
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_RmckPortCreate_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ uint16_t rmck_port_handle;
+ Inic_StdResult_t res_data;
+
+ MISC_DECODE_WORD(&rmck_port_handle, &(msg_ptr->tel.tel_data_ptr[0]));
+ res_data.data_info = &rmck_port_handle;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_CREATE_CLASS], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_CREATE_CLASS);
+}
+
+/*! \brief Handler function for INIC.I2CPortCreate.ErrorAck
+ * \details Result is delivered via the SingleObserver object ssubs[INIC_SSUB_CREATE_CLASS].
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_I2cPortCreate_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (msg_ptr->tel.tel_len));
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_CREATE_CLASS], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_CREATE_CLASS);
+}
+
+/*! \brief Handler function for INIC.I2CPortCreate.ResultAck
+ * \details Element res_data.data_info points to the variable i2c_port_handle which holds the
+ * I2C Port resource handle. Result is delivered via the SingleObserver object
+ * ssubs[INIC_SSUB_CREATE_CLASS].
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_I2cPortCreate_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ uint16_t i2c_port_handle;
+ Inic_StdResult_t res_data;
+
+ MISC_DECODE_WORD(&i2c_port_handle, &(msg_ptr->tel.tel_data_ptr[0]));
+ res_data.data_info = &i2c_port_handle;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_CREATE_CLASS], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_CREATE_CLASS);
+}
+
+/*! \brief Handler function for INIC.I2CPortRead.ErrorAck
+ * \details Result is delivered via the SingleObserver object ssubs[INIC_SSUB_I2C_PORT_WR].
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_I2cPortRead_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (msg_ptr->tel.tel_len));
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_I2C_PORT_WR], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_I2C_PORT_WR);
+}
+
+/*! \brief Handler function for INIC.I2CPortRead.ResultAck
+ * \details Element res_data.data_info points to a variable of type Inic_I2cReadResStatus_t which holds the
+ * the results of the INIC.I2CPortRead.StartResultAck command.
+ * Result is delivered via the SingleObserver object ssubs[INIC_SSUB_I2C_PORT_WR].
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_I2cPortRead_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_I2cReadResStatus_t i2c_read_res;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = &i2c_read_res;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+
+ MISC_DECODE_WORD(&i2c_read_res.port_handle, &(msg_ptr->tel.tel_data_ptr[0]));
+ i2c_read_res.slave_address = msg_ptr->tel.tel_data_ptr[2];
+ i2c_read_res.data_len = msg_ptr->tel.tel_data_ptr[3];
+ i2c_read_res.data_ptr = &msg_ptr->tel.tel_data_ptr[4];
+
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_I2C_PORT_WR], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_I2C_PORT_WR);
+}
+
+/*! \brief Handler function for INIC.I2CPortWrite.ErrorAck
+ * \details Result is delivered via the SingleObserver object ssubs[INIC_SSUB_I2C_PORT_WR].
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_I2cPortWrite_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (msg_ptr->tel.tel_len));
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_I2C_PORT_WR], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_I2C_PORT_WR);
+}
+
+/*! \brief Handler function for INIC.I2CPortWrite.ResultAck
+ * \details Element res_data.data_info points to a variable of type Inic_I2cWriteResStatus_t which holds the
+ * the results of the INIC.I2CPortWrite.StartResultAck command.
+ * Result is delivered via the SingleObserver object ssubs[INIC_SSUB_I2C_PORT_WR].
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_I2cPortWrite_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_I2cWriteResStatus_t i2c_write_res;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = &i2c_write_res;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+
+ MISC_DECODE_WORD(&i2c_write_res.port_handle, &(msg_ptr->tel.tel_data_ptr[0]));
+ i2c_write_res.slave_address = msg_ptr->tel.tel_data_ptr[2];
+ i2c_write_res.data_len = msg_ptr->tel.tel_data_ptr[3];
+
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_I2C_PORT_WR], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_I2C_PORT_WR);
+}
+
+/*! \brief Handler function for INIC.PCIPortCreate.ErrorAck
+ * \details Result is delivered via the SingleObserver object ssubs[INIC_SSUB_CREATE_CLASS].
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_PciPortCreate_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (msg_ptr->tel.tel_len));
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_CREATE_CLASS], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_CREATE_CLASS);
+}
+
+/*! \brief Handler function for INIC.PCIPortCreate.ResultAck
+ * \details Result is delivered via the SingleObserver object ssubs[INIC_SSUB_CREATE_CLASS].
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_PciPortCreate_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ uint16_t pci_port_handle;
+ Inic_StdResult_t res_data;
+
+ MISC_DECODE_WORD(&pci_port_handle, &(msg_ptr->tel.tel_data_ptr[0]));
+ res_data.data_info = &pci_port_handle;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_CREATE_CLASS], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_CREATE_CLASS);
+}
+
+/*! \brief Handler function for INIC.PCISocketCreate.ErrorAck
+ * \details Result is delivered via the SingleObserver object ssubs[INIC_SSUB_CREATE_CLASS].
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_PciSocketCreate_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (msg_ptr->tel.tel_len));
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_CREATE_CLASS], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_CREATE_CLASS);
+}
+
+/*! \brief Handler function for INIC.PCISocketCreate.ResultAck
+ * \details Result is delivered via the SingleObserver object ssubs[INIC_SSUB_CREATE_CLASS].
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_PciSocketCreate_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ uint16_t pci_socket_port_handle;
+ Inic_StdResult_t res_data;
+
+ MISC_DECODE_WORD(&pci_socket_port_handle, &(msg_ptr->tel.tel_data_ptr[0]));
+ res_data.data_info = &pci_socket_port_handle;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_CREATE_CLASS], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_CREATE_CLASS);
+}
+
+/*! \brief Handler function for INIC.GPIOPortCreate.ErrorAck
+ * \details Result is delivered via the SingleObserver object ssubs[INIC_SSUB_CREATE_CLASS].
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_GpioPortCreate_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (msg_ptr->tel.tel_len));
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_CREATE_CLASS], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_CREATE_CLASS);
+}
+
+/*! \brief Handler function for INIC.GPIOPortCreate.ResultAck
+ * \details Result is delivered via the SingleObserver object ssubs[INIC_SSUB_CREATE_CLASS].
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_GpioPortCreate_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ uint16_t gpio_port_handle;
+ Inic_StdResult_t res_data;
+
+ MISC_DECODE_WORD(&gpio_port_handle, &(msg_ptr->tel.tel_data_ptr[0]));
+ res_data.data_info = &gpio_port_handle;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_CREATE_CLASS], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_CREATE_CLASS);
+}
+
+/*! \brief Handler function for INIC.MOSTPortEnable.ErrorAck
+ * \details Result is delivered via the SingleObserver object ssubs[INIC_SSUB_MOST_PORT_ENABLE].
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_MostPortEnable_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (msg_ptr->tel.tel_len));
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_MOST_PORT_ENABLE], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_MOST_PORT_ENABLE);
+}
+
+/*! \brief Handler function for INIC.MOSTPortEnable.ResultAck
+ * \details Result is delivered via the SingleObserver object ssubs[INIC_SSUB_MOST_PORT_ENABLE].
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_MostPortEnable_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+ MISC_UNUSED(msg_ptr);
+
+ res_data.data_info = NULL;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_MOST_PORT_ENABLE], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_MOST_PORT_ENABLE);
+}
+
+/*! \brief Handler function for INIC.GPIOPortPinMode.Status
+ * \details Result is delivered via the SingleObserver object ssubs[INIC_SSUB_GPIO_PIN_MODE].
+ * Element res_data.data_info points to a variable of type Inic_GpioPortPinModeStatus_t
+ * which holds the results of the INIC.GPIOPortPinMode.Get command.
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_GpioPortPinMode_Status(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_GpioPortPinModeStatus_t res;
+ Inic_StdResult_t res_data;
+ uint8_t i = 2U, j = 0U;
+ Ucs_Gpio_PinConfiguration_t pin_ls[16U];
+
+ res.cfg_list = &pin_ls[0];
+ res.len = (msg_ptr->tel.tel_len - 2U) >> 1U;
+ res_data.data_info = &res;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+
+ MISC_DECODE_WORD(&res.gpio_handle, &(msg_ptr->tel.tel_data_ptr[0]));
+ for (; (i < msg_ptr->tel.tel_len) && (j < 16U); i=i+2U)
+ {
+ pin_ls[j].pin = msg_ptr->tel.tel_data_ptr[i];
+ pin_ls[j].mode = (Ucs_Gpio_PinMode_t)msg_ptr->tel.tel_data_ptr[i+1U];
+ j++;
+ }
+
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_GPIO_PIN_MODE], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_GPIO_PIN_MODE);
+}
+
+/*! \brief Handler function for INIC.GPIOPortPinMode.Error
+ * \details Result is delivered via the SingleObserver object ssubs[INIC_SSUB_GPIO_PIN_MODE].
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_GpioPortPinMode_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ msg_ptr->tel.tel_len);
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_GPIO_PIN_MODE], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_GPIO_PIN_MODE);
+}
+
+/*! \brief Handler function for INIC.GPIOPortPinState.Status
+ * \details Result is delivered via the SingleObserver object ssubs[INIC_SSUB_GPIO_PIN_STATE].
+ * Element res_data.data_info points to a variable of type Inic_GpioPortPinStateStatus_t
+ * which holds the results of the INIC.GPIOPortPinState.Get command.
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_GpioPortPinState_Status(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_GpioPortPinStateStatus_t res;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = &res;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+
+ MISC_DECODE_WORD(&res.gpio_handle, &(msg_ptr->tel.tel_data_ptr[0]));
+ MISC_DECODE_WORD(&res.current_state, &(msg_ptr->tel.tel_data_ptr[2]));
+ MISC_DECODE_WORD(&res.sticky_state, &(msg_ptr->tel.tel_data_ptr[4]));
+
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_GPIO_PIN_STATE], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_GPIO_PIN_STATE);
+}
+
+/*! \brief Handler function for INIC.GPIOPortPinState.Error
+ * \details Result is delivered via the SingleObserver object ssubs[INIC_SSUB_GPIO_PIN_STATE].
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_GpioPortPinState_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ msg_ptr->tel.tel_len);
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_GPIO_PIN_STATE], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_GPIO_PIN_STATE);
+}
+
+/*! \brief Handler function for INIC.GPIOPortTriggerEvent.Status
+ * \details Result is delivered via the SingleObserver object ssubs[INIC_SSUB_GPIO_TRIGGER_EVENT].
+ * Element res_data.data_info points to a variable of type Inic_GpioTriggerEventStatus_t
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_GpioPortTrigger_Status(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_GpioTriggerEventStatus_t res;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = &res;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+
+ MISC_DECODE_WORD(&res.gpio_handle, &(msg_ptr->tel.tel_data_ptr[0]));
+ MISC_DECODE_WORD(&res.rising_edges, &(msg_ptr->tel.tel_data_ptr[2]));
+ MISC_DECODE_WORD(&res.falling_edges, &(msg_ptr->tel.tel_data_ptr[4]));
+ MISC_DECODE_WORD(&res.levels, &(msg_ptr->tel.tel_data_ptr[6]));
+ res.is_first_report = self_->gpio_rt_status.first_report;
+ if (self_->gpio_rt_status.first_report)
+ {
+ self_->gpio_rt_status.first_report = false;
+ }
+
+ Sub_Notify(&self_->subs[INIC_SUB_GPIO_TRIGGER_EVENT], &res_data);
+}
+
+/*! \brief Handler function for INIC.GPIOPortTriggerEvent.Error
+ * \details Result is delivered via the SingleObserver object ssubs[INIC_SSUB_GPIO_TRIGGER_EVENT].
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_GpioPortTrigger_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ msg_ptr->tel.tel_len);
+ Sub_Notify(&self_->subs[INIC_SUB_GPIO_TRIGGER_EVENT], &res_data);
+}
+
+/*! \brief Handler function for INIC.MOSTPortEnableFullStreaming.ErrorAck
+ * \details Result is delivered via the SingleObserver object ssubs[INIC_SSUB_MOST_PORT_EN_FULL_STR].
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_MostPortEnFullStr_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (msg_ptr->tel.tel_len));
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_MOST_PORT_EN_FULL_STR], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_MOST_PORT_EN_FULL_STR);
+}
+
+/*! \brief Handler function for INIC.MOSTPortEnableFullStreaming.ResultAck
+ * \details Result is delivered via the SingleObserver object ssubs[INIC_SSUB_MOST_PORT_EN_FULL_STR].
+ * \param self Reference to CInic instance
+ * \param msg_ptr Pointer to received message
+ */
+void Inic_MostPortEnFullStr_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+ MISC_UNUSED(msg_ptr);
+
+ res_data.data_info = NULL;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_MOST_PORT_EN_FULL_STR], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_MOST_PORT_EN_FULL_STR);
+}
+
+/*! \brief Handler function for INIC.Notification.Error
+ * \param self reference to INIC object
+ * \param msg_ptr received message
+ */
+void Inic_Notification_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (msg_ptr->tel.tel_len));
+
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_NOTIFICATION], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_NOTIFICATION);
+}
+
+/*! \brief Handler function for INIC.Notification.ResultAck
+ * \param self reference to INIC object
+ * \param msg_ptr received message
+ */
+void Inic_Notification_Status(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+ Inic_NotificationResult_t notif_res;
+
+ res_data.data_info = &notif_res;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+
+ MISC_DECODE_WORD(&notif_res.func_id, &(msg_ptr->tel.tel_data_ptr[0]));
+ if (msg_ptr->tel.tel_len == 4U)
+ {
+ MISC_DECODE_WORD(&notif_res.device_id, &(msg_ptr->tel.tel_data_ptr[2]));
+ }
+ else
+ {
+ notif_res.device_id = 0U;
+ }
+
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_NOTIFICATION], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_NOTIFICATION);
+}
+
+/*! \brief Handler function for INIC.DeviceSync.Error
+ * \param self reference to INIC object
+ * \param msg_ptr received message
+ */
+void Inic_DeviceSync_Error(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ res_data.data_info = NULL;
+ res_data.result = Inic_TranslateError(self_,
+ &msg_ptr->tel.tel_data_ptr[0],
+ (msg_ptr->tel.tel_len));
+
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_DEVICE_SYNC], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_DEVICE_SYNC);
+}
+
+/*! \brief Handler function for INIC.DeviceSync.Result
+ * \param self reference to INIC object
+ * \param msg_ptr received message
+ */
+void Inic_DeviceSync_Result(void *self, Msg_MostTel_t *msg_ptr)
+{
+ CInic *self_ = (CInic *)self;
+ Inic_StdResult_t res_data;
+
+ MISC_UNUSED(msg_ptr);
+
+ res_data.data_info = NULL;
+ res_data.result.code = UCS_RES_SUCCESS;
+ res_data.result.info_ptr = NULL;
+
+ Ssub_Notify(&self_->ssubs[INIC_SSUB_DEVICE_SYNC], &res_data, true);
+ Al_Release(&self_->lock.res_api, INIC_API_DEVICE_SYNC);
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_jobs.c b/ucs2-lib/src/ucs_jobs.c
new file mode 100644
index 0000000..2ef6c8d
--- /dev/null
+++ b/ucs2-lib/src/ucs_jobs.c
@@ -0,0 +1,369 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of Job classes
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_MGR
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_jobs.h"
+#include "ucs_misc.h"
+/*#include "ucs_scheduler.h"
+#include "ucs_trace.h"*/
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal constants */
+/*------------------------------------------------------------------------------------------------*/
+static const uint8_t JBS_SRV_PRIO = 246U; /* parasoft-suppress MISRA2004-8_7 "Value shall be part of the module, not part of a function." */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal prototypes */
+/*------------------------------------------------------------------------------------------------*/
+static void Jbs_Service(void *self);
+static void Jbq_OnJobResult(void *self, void *data_ptr);
+static bool Jbs_ForEachJbq(void *d_ptr, void *ud_ptr);
+static bool Jbq_CheckState(CJobQ *self, CJob *job_ptr);
+
+/*------------------------------------------------------------------------------------------------*/
+/* CJobService Methods */
+/*------------------------------------------------------------------------------------------------*/
+void Jbs_Ctor(CJobService *self, CBase *base_ptr)
+{
+ MISC_MEM_SET(self, 0, sizeof(*self));
+
+ self->base_ptr = base_ptr;
+ Dl_Ctor(&self->list, base_ptr->ucs_user_ptr);
+ Srv_Ctor(&self->service, JBS_SRV_PRIO, self, &Jbs_Service);
+ (void)Scd_AddService(&self->base_ptr->scd, &self->service);
+}
+
+void Jbs_RegisterJobQ(CJobService *self, CDlNode *job_q_node)
+{
+ Dl_InsertTail(&self->list, job_q_node);
+}
+
+void Jbs_TriggerEvent(CJobService *self, Srv_Event_t id)
+{
+ Srv_SetEvent(&self->service, id);
+}
+
+static bool Jbs_ForEachJbq(void *d_ptr, void *ud_ptr)
+{
+ Srv_Event_t *event_ptr = (Srv_Event_t*)ud_ptr;
+ CJobQ *jobQ_ptr = (CJobQ*)d_ptr;
+
+ if ((*event_ptr & Jbq_GetEventId(jobQ_ptr)) != 0U)
+ {
+ Jbq_Service(jobQ_ptr);
+ }
+
+ return false; /* continue loop for all jobQs */
+}
+
+static void Jbs_Service(void *self)
+{
+ CJobService *self_ = (CJobService *)self;
+ Srv_Event_t event_mask;
+
+ Srv_GetEvent(&self_->service, &event_mask); /* save and reset current events */
+ Srv_ClearEvent(&self_->service, event_mask);
+
+ Dl_Foreach(&self_->list, &Jbs_ForEachJbq, &event_mask); /* service jobQ with the corresponding event */
+}
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* CJobQ Methods */
+/*------------------------------------------------------------------------------------------------*/
+void Jbq_Ctor(CJobQ *self, CJobService *job_service_ptr, Srv_Event_t event_id, CJob *job_list[])
+{
+ MISC_MEM_SET(self, 0, sizeof(*self));
+
+ self->job_service_ptr = job_service_ptr;
+ self->event_id = event_id;
+ self->job_list = job_list;
+
+ self->index = 0U;
+ self->state = JOB_S_STOPPED;
+ self->result = JOB_R_NA;
+
+ Dln_Ctor(&self->node, self);
+ Ssub_Ctor(&self->q_subject, 0U /*inst id*/);
+ Sobs_Ctor(&self->result_obs, self, &Jbq_OnJobResult);
+ Jbs_RegisterJobQ(self->job_service_ptr, &self->node);
+}
+
+Srv_Event_t Jbq_GetEventId(CJobQ *self)
+{
+ return self->event_id;
+}
+
+void Jbq_Start(CJobQ *self, CSingleObserver *result_obs_ptr)
+{
+ if (self->state != JOB_S_STARTED)
+ {
+ if (self->job_list[self->index] != NULL)
+ {
+ TR_INFO((0U, "[JBQ]", "Jbq_Start(): Starting job queue. Id: 0x%04X", 1U, self->event_id));
+ self->index = 0U;
+ self->state = JOB_S_STARTED;
+ self->result = JOB_R_NA;
+ (void)Ssub_AddObserver(&self->q_subject, result_obs_ptr); /* register observer for finished queue */
+ Job_Start(self->job_list[self->index], &self->result_obs); /* pass own observer for finished job */
+ }
+ else
+ {
+ TR_ERROR((0U, "[JBQ]", "Jbq_Start(): Invalid job list. Id: 0x%04X", 1U, self->event_id));
+ }
+ }
+ else
+ {
+ TR_ERROR((0U, "[JBQ]", "Jbq_Start(): JobQ already started. Id: 0x%04X", 1U, self->event_id));
+ }
+}
+
+void Jbq_Stop(CJobQ *self)
+{
+ if (self->state == JOB_S_STARTED)
+ {
+ if (self->job_list[self->index] != NULL)
+ {
+ self->index = 0U;
+ self->state = JOB_S_STOPPED;
+ self->result = JOB_R_NA;
+ (void)Ssub_RemoveObserver(&self->q_subject);
+ Job_Stop(self->job_list[self->index]);
+ }
+ }
+}
+
+
+static void Jbq_OnJobResult(void *self, void *data_ptr)
+{
+ CJobQ *self_ = (CJobQ *)self;
+ Job_Result_t *result_ptr = (Job_Result_t *)data_ptr;
+
+ if (self_->state == JOB_S_STARTED)
+ {
+ TR_INFO((0U, "[JBQ]", "Jbq_OnJobResult(): Receiving job result. event_id=0x%04X, result=0x%02X", 2U, self_->event_id, *result_ptr));
+ Jbs_TriggerEvent(self_->job_service_ptr, self_->event_id);
+ }
+ else
+ {
+ TR_INFO((0U, "[JBQ]", "Jbq_OnJobResult(): Receiving job result for stopped job. Id: 0x%04X", 1U, self_->event_id));
+ }
+
+ MISC_UNUSED(result_ptr);
+}
+
+
+static bool Jbq_CheckState(CJobQ *self, CJob *job_ptr)
+{
+ bool ret = false;
+
+ if (self->state == JOB_S_STARTED)
+ {
+ if (job_ptr != NULL)
+ {
+ if ((Job_GetState(job_ptr) == JOB_S_FINISHED) && (Job_GetResult(job_ptr) != JOB_R_NA))
+ {
+ ret = true; /* job attributes are correct -> process */
+ }
+ }
+ else
+ {
+ TR_ERROR((0U, "[JBQ]", "Jbq_Service(): Invalid job list. Id: 0x%04X", 1U, self->event_id));
+ }
+ }
+ else
+ {
+ TR_ERROR((0U, "[JBQ]", "Jbq_Service(): JobQ not started. Id: 0x%04X", 1U, self->event_id));
+ }
+
+ return ret;
+}
+
+void Jbq_Service(CJobQ *self)
+{
+ CJob *curr_job_ptr = self->job_list[self->index];
+ CJob *next_job_ptr = self->job_list[self->index + 1U];
+
+ if (Jbq_CheckState(self, curr_job_ptr))
+ {
+ if (curr_job_ptr != NULL)
+ {
+ Job_Result_t tmp_res = Job_GetResult(curr_job_ptr);
+
+ if ((next_job_ptr != NULL) && (tmp_res == JOB_R_SUCCESS)) /* job successfully and next job available */
+ {
+ self->index += 1U;
+ Job_Start(next_job_ptr, &self->result_obs);
+ }
+ else /* current job not successful or last job */
+ {
+ self->result = tmp_res; /* copy status from last job and finish */
+ self->state = JOB_S_FINISHED;
+ Ssub_Notify(&self->q_subject, &tmp_res, true/*auto-remove*/);
+ }
+ }
+ }
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* CJob Methods */
+/*------------------------------------------------------------------------------------------------*/
+
+void Job_Ctor(CJob *self, Job_StartCb_t start_fptr, void *inst_ptr)
+{
+ MISC_MEM_SET(self, 0, sizeof(*self));
+
+ self->start_fptr = start_fptr;
+ self->inst_ptr = inst_ptr;
+
+ self->state = JOB_S_STOPPED;
+ self->result = JOB_R_NA;
+ Ssub_Ctor(&self->subject, 0U /*ucs instance*/);
+}
+
+void Job_Start(CJob *self, CSingleObserver *result_obs_ptr)
+{
+ if (self->state != JOB_S_STARTED)
+ {
+ TR_ASSERT(0U, "[JOB]", (self->start_fptr != NULL));
+ (void)Ssub_AddObserver(&self->subject, result_obs_ptr);
+ self->state = JOB_S_STARTED;
+ self->result = JOB_R_NA;
+
+ TR_INFO((0U, "[JOB]", "Job_Start(): starting job", 0U));
+ self->start_fptr(self->inst_ptr);
+ }
+ else
+ {
+ TR_INFO((0U, "[JOB]", "Job_Start(): ambiguous state during job start", 0U));
+ }
+}
+
+void Job_Stop(CJob *self)
+{
+ self->state = JOB_S_STOPPED;
+ self->result = JOB_R_NA;
+ Ssub_RemoveObserver(&self->subject);
+ TR_INFO((0U, "[JOB]", "Job_Stop()", 0U));
+}
+
+void Job_SetResult(CJob *self, Job_Result_t result)
+{
+ TR_INFO((0U, "[JOB]", "Job_SetResult(): result=%d", 1U, result));
+
+ if (self->state == JOB_S_STARTED)
+ {
+ self->state = JOB_S_FINISHED;
+ self->result = result;
+ Ssub_Notify(&self->subject, &result, true/*auto-remove*/);
+ MISC_UNUSED(self);
+ MISC_UNUSED(result);
+ }
+ else
+ {
+ TR_ERROR((0U, "[JOB]", "Job_SetResult(): called in ambiguous state=%d", 1U, self->state));
+ }
+}
+
+Job_State_t Job_GetState(CJob *self)
+{
+ return self->state;
+}
+
+Job_Result_t Job_GetResult(CJob *self)
+{
+ return self->result;
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#if 0
+
+/*------------------------------------------------------------------------------------------------*/
+/* Initialization Methods */
+/*------------------------------------------------------------------------------------------------*/
+
+/*! \brief Constructor of Manager class
+ * \param self The instance
+ * \param base_ptr Reference to base component
+ * \param inic_ptr Reference to INIC component
+ * \param net_ptr Reference to net component
+ * \param packet_bw Desired packet bandwidth
+ */
+void Mgr_Ctor(CManager *self, CBase *base_ptr, CInic *inic_ptr, CNetworkManagement *net_ptr, uint16_t packet_bw)
+{
+ MISC_MEM_SET(self, 0, sizeof(*self));
+
+ self->base_ptr = base_ptr;
+ self->inic_ptr = inic_ptr;
+ self->net_ptr = net_ptr;
+ self->packet_bw = packet_bw;
+
+ Srv_Ctor(&self->service, MGR_SRV_PRIO, self, &Mgr_Service); /* register service */
+ (void)Scd_AddService(&self->base_ptr->scd, &self->service);
+
+ Mobs_Ctor(&self->event_observer, self, EH_E_INIT_SUCCEEDED, &Mgr_OnInitComplete);
+ Eh_AddObsrvInternalEvent(&self->base_ptr->eh, &self->event_observer);
+
+ Sobs_Ctor(&self->startup_obs, self, &Mgr_OnNwStartupResult);
+ Sobs_Ctor(&self->shutdown_obs, self, &Mgr_OnNwShutdownResult);
+ Mobs_Ctor(&self->nwstatus_mobs, self, MGR_NWSTATUS_MASK, &Mgr_OnNwStatus);
+ Fsm_Ctor(&self->fsm, self, &(mgr_state_tbl[0][0]), (uint8_t)MGR_EV_MAX_NUM_EVENTS, MGR_EV_NIL/*init.event*/);
+}
+
+#endif
+
+
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_lldpool.c b/ucs2-lib/src/ucs_lldpool.c
new file mode 100644
index 0000000..b0b833d
--- /dev/null
+++ b/ucs2-lib/src/ucs_lldpool.c
@@ -0,0 +1,99 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of LLD Message Pool
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_PMF
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_lldpool.h"
+#include "ucs_misc.h"
+#include "ucs_trace.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Returns an unused LLD Tx message object back to the pool
+ * \param self The instance
+ * \param owner_ptr Assigns messages to the respective FIFO
+ * \param ucs_user_ptr User reference that needs to be passed in every callback function
+ */
+void Lldp_Ctor(CLldPool *self, void *owner_ptr, void* ucs_user_ptr)
+{
+ uint8_t cnt;
+ MISC_MEM_SET(self, 0, sizeof(*self));
+
+ Dl_Ctor(&self->list, ucs_user_ptr);
+
+ for (cnt = 0U; cnt < LLDP_NUM_HANDLES; cnt++) /* setup LLD Tx handles */
+ {
+ TR_ASSERT(ucs_user_ptr, "[FIFO]", (self->messages[cnt].msg_ptr == NULL) );
+ Dln_Ctor(&self->messages[cnt].node, &self->messages[cnt]);
+ self->messages[cnt].owner_ptr = owner_ptr;
+ Dl_InsertTail(&self->list, &self->messages[cnt].node);
+ }
+}
+
+/*! \brief Returns an unused LLD Tx message object back to the pool
+ * \param self The instance
+ * \param msg_ptr The unused LLD Tx message object
+ */
+void Lldp_ReturnTxToPool(CLldPool *self, Lld_IntTxMsg_t *msg_ptr)
+{
+ Dl_InsertTail(&self->list, &msg_ptr->node);
+}
+
+/*! \brief Allocates an unused LLD Tx message object from the pool
+ * \param self The instance
+ * \return An internal LLD Tx message object or \c NULL if no message object is
+ * available.
+ */
+Lld_IntTxMsg_t* Lldp_GetTxFromPool(CLldPool *self)
+{
+ CDlNode *node_ptr = NULL;
+ Lld_IntTxMsg_t *handle_ptr = NULL;
+
+ node_ptr = Dl_PopHead(&self->list);
+
+ if (node_ptr != NULL)
+ {
+ handle_ptr = (Lld_IntTxMsg_t*)Dln_GetData(node_ptr);
+ }
+
+ return handle_ptr;
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_message.c b/ucs2-lib/src/ucs_message.c
new file mode 100644
index 0000000..e39e165
--- /dev/null
+++ b/ucs2-lib/src/ucs_message.c
@@ -0,0 +1,353 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of class message
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_MESSAGE
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_message.h"
+#include "ucs_misc.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal constants */
+/*------------------------------------------------------------------------------------------------*/
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Constructor of common MOST message class
+ * \param self The instance
+ */
+void Msg_Ctor(CMessage *self)
+{
+ MISC_MEM_SET(self, 0, sizeof(*self));
+
+ Dln_Ctor(&self->node, self);
+
+ self->rsvd_memory.allocator_ptr = NULL;
+ self->rsvd_memory.mem_info_ptr = NULL;
+ self->rsvd_memory.public_buffer.next_buffer_ptr = NULL;
+ self->rsvd_memory.public_buffer.data_ptr = &self->rsvd_buffer[0];
+ self->rsvd_memory.public_buffer.data_size = MSG_SIZE_RSVD_BUFFER;
+ self->rsvd_memory.public_buffer.total_size = MSG_SIZE_RSVD_BUFFER;
+
+ self->start_ptr = &self->rsvd_buffer[0];
+ self->pb_msg.tel.tel_data_ptr = &self->rsvd_buffer[0];
+/* self->pb_msg.tel.tel_id = 0U;
+ self->pb_msg.tel.tel_cnt = 0U;
+ self->pb_msg.tel.tel_len = 0U; */
+
+ self->pb_msg.opts.llrbc = MSG_LLRBC_DEFAULT;
+
+/* self->header_rsvd_sz = 0U;
+ self->header_curr_idx = 0U;
+ self->header_curr_sz = 0U;
+ self->ref_ptr = NULL; */
+}
+
+/*! \brief Prepares the message for re-usage
+ * \details In future this function has to take care that external memory
+ * has to be reinitialize properly.
+ * \param self The instance
+ */
+void Msg_Cleanup(CMessage *self)
+{
+ void *handle = self->lld_handle_ptr; /* restore associated LLD message object */
+ void *pool_ptr = self->pool_ptr; /* restore associated pool reference */
+
+ Msg_Ctor(self); /* simply call constructor now */
+
+ self->lld_handle_ptr = handle;
+ self->pool_ptr = pool_ptr;
+}
+
+/*! \brief Adds external message payload to the message
+ * \details The internally reserved message payload is no longer in in use.
+ * \param self The instance
+ * \param payload_ptr Pointer to externally allocated payload
+ * \param payload_sz Size of externally allocated payload
+ * \param mem_info_ptr Reference to additional memory information
+ */
+void Msg_SetExtPayload(CMessage *self, uint8_t *payload_ptr, uint8_t payload_sz, void* mem_info_ptr)
+{
+ self->pb_msg.tel.tel_data_ptr = payload_ptr;
+ self->pb_msg.tel.tel_len = payload_sz;
+
+ self->ext_memory.allocator_ptr = NULL;
+ self->ext_memory.mem_info_ptr = mem_info_ptr;
+ self->ext_memory.public_buffer.data_ptr = payload_ptr;
+ self->ext_memory.public_buffer.data_size = payload_sz;
+ self->ext_memory.public_buffer.total_size = payload_sz;
+ self->ext_memory.public_buffer.next_buffer_ptr = NULL;
+}
+
+/*! \brief Initially defines a header space in front of the data body
+ * \details Ensure that \c start_ptr is assigned correctly before calling
+ * this functions.
+ * \param self The instance
+ * \param header_sz Size of the header
+ */
+void Msg_ReserveHeader(CMessage *self, uint8_t header_sz)
+{
+ /* self->start_ptr stays */
+ self->header_rsvd_sz = header_sz;
+ self->header_curr_idx = header_sz;
+ self->header_curr_sz = 0U;
+
+ self->pb_msg.tel.tel_data_ptr = &self->start_ptr[header_sz];
+}
+
+/*! \brief Adds a defined header space in front of the current header
+ * \param self The instance
+ * \param header_sz Size of the header
+ */
+void Msg_PullHeader(CMessage *self, uint8_t header_sz)
+{
+/* UCS_ASSERT(header_sz <= self->curr_header_sz); */
+
+/* self->pb_msg.tel.tel_data_ptr = &self->rsvd_buffer[MSG_SIZE_RSVD_HEADER];*/
+ self->header_curr_idx -= header_sz;
+ self->header_curr_sz += header_sz;
+}
+
+/*! \brief Undoes a message header of a defined size
+ * \param self The instance
+ * \param header_sz Size of the header
+ */
+void Msg_PushHeader(CMessage *self, uint8_t header_sz)
+{
+ self->header_curr_idx += header_sz;
+ self->header_curr_sz -= header_sz;
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Class Properties (get/set) */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Retrieves the reference to the containing MOST Telegrams structure
+ * \param self The instance
+ * \return Pointer to the internal MOST Telegram structure
+ */
+Msg_MostTel_t* Msg_GetMostTel(CMessage *self)
+{
+ return &self->pb_msg;
+}
+
+/*! \brief Retrieves the start of the current message header
+ * \param self The instance
+ * \return Pointer to the current header start
+ */
+uint8_t* Msg_GetHeader(CMessage *self)
+{
+ return &(self->rsvd_buffer[self->header_curr_idx]);
+}
+
+/*! \brief Retrieves the size of the current message header
+ * \param self The instance
+ * \return Size of the current header in bytes
+ */
+uint8_t Msg_GetHeaderSize(CMessage * self)
+{
+ return (self->header_curr_sz);
+}
+
+/*! \brief Retrieves the message buffer as memory structure
+ * \param self The instance
+ * \return Reference to the message memory structure
+ */
+Ucs_Mem_Buffer_t* Msg_GetMemTx(CMessage *self)
+{
+ self->rsvd_memory.public_buffer.data_ptr = &(self->rsvd_buffer[self->header_curr_idx]);
+
+ if (self->ext_memory.public_buffer.data_size == 0U)
+ {
+ self->rsvd_memory.public_buffer.next_buffer_ptr = NULL;
+ self->rsvd_memory.public_buffer.data_size = (uint16_t)self->header_curr_sz + (uint16_t)self->pb_msg.tel.tel_len;
+ self->rsvd_memory.public_buffer.total_size = (uint16_t)self->header_curr_sz + (uint16_t)self->pb_msg.tel.tel_len;
+ }
+ else
+ {
+ self->rsvd_memory.public_buffer.next_buffer_ptr = &self->ext_memory.public_buffer;
+ self->rsvd_memory.public_buffer.data_size = (uint16_t)self->header_curr_sz; /* only header is enclosed */
+ self->rsvd_memory.public_buffer.total_size = self->rsvd_memory.public_buffer.data_size
+ + self->ext_memory.public_buffer.data_size;
+ }
+
+ return &self->rsvd_memory.public_buffer;
+}
+
+/*! \brief Assigns a message status handler which is called as soon as the message is processed
+ * \param self The instance
+ * \param callback_fptr Reference to the status callback function
+ * \param inst_ptr The instance which implements the status callback
+ */
+void Msg_SetTxStatusHandler(CMessage *self, Msg_TxStatusCb_t callback_fptr, void *inst_ptr)
+{
+ self->tx_status_inst = inst_ptr;
+ self->tx_status_fptr = callback_fptr;
+}
+
+/*! \brief Marks the message as occupied by the LLD
+ * \param self The instance
+ * \param active Set to \c true if the message is occupied by the LLD, otherwise \c false.
+ */
+void Msg_SetTxActive(CMessage *self, bool active)
+{
+ self->tx_active = active;
+}
+
+/*! \brief Checks if the message as occupied by the LLD
+ * \param self The instance
+ * \return Returns \c true if the message is occupied by the LLD, otherwise \c false.
+ */
+bool Msg_IsTxActive(CMessage *self)
+{
+ return self->tx_active;
+}
+
+/*! \brief Marks the message as bypass message
+ * \param self The instance
+ * \param bypass Set to \c true if the message is supposed to be a bypass message, otherwise \c false.
+ */
+void Msg_SetTxBypass(CMessage *self, bool bypass)
+{
+ self->tx_bypass = bypass;
+}
+
+/*! \brief Checks if the message is marked as bypass message
+ * \param self The instance
+ * \return Returns \c true if the message is marked as bypass message, otherwise \c false.
+ */
+bool Msg_IsTxBypass(CMessage *self)
+{
+ return self->tx_bypass;
+}
+
+/*! \brief Fires a status notification for the message object
+ * \param self The instance
+ * \param status The transmission status
+ */
+void Msg_NotifyTxStatus(CMessage *self, Ucs_MsgTxStatus_t status)
+{
+ if (self->tx_status_fptr != NULL)
+ {
+ self->tx_status_fptr(self->tx_status_inst, &self->pb_msg, status);
+ }
+}
+
+/*! \brief Assigns a low-level driver message
+ * \param self The instance
+ * \param handle The reference to a low-level driver message object (Tx or Rx)
+ */
+void Msg_SetLldHandle(CMessage *self, void *handle)
+{
+ self->lld_handle_ptr = handle;
+}
+
+/*! \brief Retrieves the reference to a low-level driver message
+ * \param self The instance
+ * \return The reference to a low-level driver message object or \c NULL
+ * if no message is assigned.
+ */
+void *Msg_GetLldHandle(CMessage *self)
+{
+ return self->lld_handle_ptr;
+}
+
+/*! \brief Assigns a reference for the owning pool
+ * \param self The instance
+ * \param pool_ptr The reference to the owning pool
+ */
+void Msg_SetPoolReference(CMessage *self, void *pool_ptr)
+{
+ self->pool_ptr = pool_ptr;
+}
+
+/*! \brief Retrieves a reference for the owning pool
+ * \param self The instance
+ * \return The reference to the owning pool or \c NULL
+ * if no pool is assigned.
+ */
+void *Msg_GetPoolReference(CMessage *self)
+{
+ return self->pool_ptr;
+}
+
+/*! \brief Retrieves the reference to the internal node member
+ * \param self The instance
+ * \return The reference the internal list node
+ */
+CDlNode *Msg_GetNode(CMessage *self)
+{
+ return &self->node;
+}
+
+/*! \brief Performs checks on length payload length
+ * \param self The instance
+ * \return Returns \c true if the verification succeeded. Otherwise \c false.
+ */
+bool Msg_VerifyContent(CMessage *self)
+{
+ bool success = (self->pb_msg.tel.tel_len <= MSG_MAX_SIZE_PAYLOAD) ? true : false;
+
+ return success;
+}
+
+/*! \brief Merges the alternate message id into a the most message id
+ * \param self The instance
+ * \return The alternate message id
+ */
+uint16_t Msg_GetAltMsgId(CMessage *self)
+{
+ uint16_t msg_id;
+ msg_id = (uint16_t)(self->pb_msg.id.function_id >> 4);
+ msg_id = (uint16_t)((uint16_t)self->pb_msg.id.instance_id << 8) | msg_id;
+ return msg_id;
+}
+
+/*! \brief Extracts the alternate message id from a the most message id
+ * \param self The instance
+ * \param alt_id The alternate message id
+ */
+void Msg_SetAltMsgId(CMessage *self, uint16_t alt_id)
+{
+ self->pb_msg.id.fblock_id = MSG_DEF_FBLOCK_ID;
+ self->pb_msg.id.instance_id = MISC_HB(alt_id);
+ self->pb_msg.id.function_id = (uint16_t)((((alt_id) & (uint16_t)0xFF)) << 4) | (uint16_t)MSG_DEF_FUNC_ID_LSN;
+ self->pb_msg.id.op_type = MSG_DEF_OP_TYPE;
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_mgr.c b/ucs2-lib/src/ucs_mgr.c
new file mode 100644
index 0000000..23443b9
--- /dev/null
+++ b/ucs2-lib/src/ucs_mgr.c
@@ -0,0 +1,354 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of CManager class
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_MGR
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_mgr.h"
+#include "ucs_misc.h"
+#include "ucs_scheduler.h"
+#include "ucs_trace.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal constants */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Priority of the Application Message Service */
+static const uint8_t MGR_SRV_PRIO = 245U; /* parasoft-suppress MISRA2004-8_7 "configuration property" */
+/*! \brief Event which triggers the service */
+static const Srv_Event_t MGR_SRV_EV_SERVICE = 1U;
+
+/*! \brief Network status mask */
+static const uint32_t MGR_NWSTATUS_MASK = 0x0FU; /* parasoft-suppress MISRA2004-8_7 "configuration property" */
+/*! \brief The time in milliseconds the INIC will go to AutoForcedNA after sync lost. */
+static const uint16_t MGR_AUTOFORCED_NA_TIME = 5000U; /* parasoft-suppress MISRA2004-8_7 "configuration property" */
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal prototypes */
+/*------------------------------------------------------------------------------------------------*/
+static void Mgr_OnInitComplete(void *self, void *error_code_ptr);
+static void Mgr_OnNwStatus(void *self, void *data_ptr);
+static void Mgr_OnJobQResult(void *self, void *result_ptr);
+static void Mgr_Startup(void *self);
+static void Mgr_OnNwStartupResult(void *self, void *result_ptr);
+static void Mgr_LeaveForcedNA(void *self);
+static void Mgr_OnLeaveForcedNAResult(void *self, void *result_ptr);
+#if 0
+static void Mgr_Shutdown(void *self);
+static void Mgr_OnNwShutdownResult(void *self, void *result_ptr);
+#endif
+
+/*------------------------------------------------------------------------------------------------*/
+/* Class methods */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Constructor of Manager class
+ * \param self The instance
+ * \param base_ptr Reference to base component
+ * \param inic_ptr Reference to INIC component
+ * \param net_ptr Reference to net component
+ * \param nd_ptr Reference to NodeDiscovery component
+ * \param packet_bw Desired packet bandwidth
+ */
+void Mgr_Ctor(CManager *self, CBase *base_ptr, CInic *inic_ptr, CNetworkManagement *net_ptr, CNodeDiscovery *nd_ptr, uint16_t packet_bw)
+{
+ MISC_MEM_SET(self, 0, sizeof(*self));
+
+ self->initial = true;
+ self->base_ptr = base_ptr;
+ self->inic_ptr = inic_ptr;
+ self->net_ptr = net_ptr;
+ self->nd_ptr = nd_ptr;
+ self->packet_bw = packet_bw;
+
+ Jbs_Ctor(&self->job_service, base_ptr);
+ Job_Ctor(&self->job_leave_forced_na, &Mgr_LeaveForcedNA, self);
+ Job_Ctor(&self->job_startup, &Mgr_Startup, self);
+#if 0
+ Job_Ctor(&self->job_shutdown, &Mgr_Shutdown, self);
+#endif
+
+ self->list_startup[0] = &self->job_startup;
+ self->list_startup[1] = NULL;
+ self->list_force_startup[0] = &self->job_leave_forced_na;
+ self->list_force_startup[1] = &self->job_startup;
+ self->list_force_startup[2] = NULL;
+#if 0
+ self->list_shutdown[0] = &self->job_shutdown;
+ self->list_shutdown[1] = NULL;
+#endif
+
+ Jbq_Ctor(&self->job_q_startup, &self->job_service, 1U, self->list_startup);
+ Jbq_Ctor(&self->job_q_force_startup, &self->job_service, 2U, self->list_force_startup);
+#if 0
+ Jbq_Ctor(&self->job_q_shutdown, &self->job_service, 4U, self->list_shutdown);
+#endif
+
+ Sobs_Ctor(&self->startup_obs, self, &Mgr_OnNwStartupResult);
+ Sobs_Ctor(&self->force_na_obs, self, &Mgr_OnLeaveForcedNAResult);
+#if 0
+ Sobs_Ctor(&self->shutdown_obs, self, &Mgr_OnNwShutdownResult);
+#endif
+ Sobs_Ctor(&self->job_q_obs, self, &Mgr_OnJobQResult);
+
+ Mobs_Ctor(&self->event_observer, self, EH_E_INIT_SUCCEEDED, &Mgr_OnInitComplete);
+ Eh_AddObsrvInternalEvent(&self->base_ptr->eh, &self->event_observer);
+ Mobs_Ctor(&self->nwstatus_mobs, self, MGR_NWSTATUS_MASK, &Mgr_OnNwStatus);
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Callback Methods */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Callback function which is invoked if the initialization is complete
+ * \param self The instance
+ * \param error_code_ptr Reference to the error code
+ */
+static void Mgr_OnInitComplete(void *self, void *error_code_ptr)
+{
+ CManager *self_ = (CManager*)self;
+ MISC_UNUSED(error_code_ptr);
+
+ TR_INFO((self_->base_ptr->ucs_user_ptr, "[MGR]", "Received init complete event", 0U));
+ Net_AddObserverNetworkStatus(self_->net_ptr, &self_->nwstatus_mobs); /* register observer */
+ (void)Nd_Start(self_->nd_ptr);
+}
+
+/*! \brief NetworkStatus callback function
+ * \details The function is only active if \c listening flag is \c true.
+ * This avoids to re-register und un-register the observer for several times.
+ * \param self The instance
+ * \param data_ptr Reference to \ref Net_NetworkStatusParam_t
+ */
+static void Mgr_OnNwStatus(void *self, void *data_ptr)
+{
+ CManager *self_ = (CManager*)self;
+ Net_NetworkStatusParam_t *param_ptr = (Net_NetworkStatusParam_t *)data_ptr;
+
+ TR_INFO((self_->base_ptr->ucs_user_ptr, "[MGR]", "Mgr_OnNwStatus()", 0U));
+
+ TR_INFO((self_->base_ptr->ucs_user_ptr, "[MGR]", "Mgr_OnNwStatus(): mask=0x%04X, events=0x%04X", 2U, param_ptr->change_mask ,param_ptr->events));
+ TR_INFO((self_->base_ptr->ucs_user_ptr, "[MGR]", "Mgr_OnNwStatus(): avail=0x%X, avail_i=0x%X, bw=0x%X", 3U, param_ptr->availability, param_ptr->avail_info, param_ptr->packet_bw));
+ TR_INFO((self_->base_ptr->ucs_user_ptr, "[MGR]", "Mgr_OnNwStatus(): addr=0x%03X, pos=0x%X, mpr=0x%X", 3U, param_ptr->node_address, param_ptr->node_position, param_ptr->max_position));
+
+ if ((param_ptr->change_mask & ((uint16_t)UCS_NW_M_AVAIL | (uint16_t)UCS_NW_M_PACKET_BW)) != 0U)
+ {
+ TR_INFO((self_->base_ptr->ucs_user_ptr, "[MGR]", "Mgr_OnNwStatus(): trigger event", 0U));
+
+ if (self_->current_q_ptr != NULL)
+ {
+ Jbq_Stop(self_->current_q_ptr);
+ }
+
+ if (param_ptr->avail_info == UCS_NW_AVAIL_INFO_FORCED_NA)
+ {
+ self_->current_q_ptr = &self_->job_q_force_startup; /* stop forcing NA, then startup */
+ Jbq_Start(&self_->job_q_force_startup, &self_->job_q_obs);
+ }
+ else if (param_ptr->availability == UCS_NW_NOT_AVAILABLE)
+ {
+ self_->current_q_ptr = &self_->job_q_startup; /* just startup */
+ Jbq_Start(&self_->job_q_startup, &self_->job_q_obs);
+ }
+#if 0
+ else if ((param_ptr->node_position != 0U) || (param_ptr->packet_bw != self_->packet_bw))
+ {
+ self_->current_q_ptr = &self_->job_q_shutdown; /* just shutdown - startup is triggered automatically */
+ Jbq_Start(&self_->job_q_shutdown, &self_->job_q_obs);
+ }
+#endif
+ if (self_->initial != false)
+ {
+ self_->initial = false;
+ if (self_->current_q_ptr == NULL) /* trigger InitAll() if no job is required for the */
+ { /* initial network status notification */
+ Nd_InitAll(self_->nd_ptr);
+ }
+ }
+ }
+}
+
+/*! \brief Callback function that is triggered after finished a job.
+ * \details Failed jobs will be restarted here.
+ * \param self The instance
+ * \param result_ptr Reference to the job result \ref Job_Result_t.
+ */
+static void Mgr_OnJobQResult(void *self, void *result_ptr)
+{
+ CManager *self_ = (CManager*)self;
+ Job_Result_t *res = (Job_Result_t *)result_ptr;
+ TR_INFO((self_->base_ptr->ucs_user_ptr, "[MGR]", "Mgr_OnJobQResult(): result=%d", 1U, *res));
+
+ if ((*res != JOB_R_SUCCESS) && (self_->current_q_ptr != NULL))
+ {
+ Jbq_Start(self_->current_q_ptr, &self_->job_q_obs);
+ }
+ else
+ {
+ self_->current_q_ptr = NULL;
+ }
+}
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Job: LeaveForcedNA */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Action that sets the INIC from "Forced-NotAvailable" to "NotAvailable"
+ * \param self The instance
+ */
+static void Mgr_LeaveForcedNA(void *self)
+{
+ CManager *self_ = (CManager*)self;
+ Ucs_Return_t ret;
+
+ TR_INFO((self_->base_ptr->ucs_user_ptr, "[MGR]", "Mgr_LeaveForcedNA()", 0U));
+ ret = Inic_NwForceNotAvailable(self_->inic_ptr, false /*no longer force NA*/, &self_->force_na_obs);
+
+ if (ret != UCS_RET_SUCCESS)
+ {
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[MGR]", "Mgr_LeaveForcedNA(), function returns 0x%02X", 1U, ret));
+ Job_SetResult(&self_->job_leave_forced_na, JOB_R_FAILED);
+ }
+}
+
+/*! \brief Callback function which announces the result of Inic_NwForceNotAvailable()
+ * \param self The instance
+ * \param result_ptr Reference to result. Must be casted into Inic_StdResult_t.
+ */
+static void Mgr_OnLeaveForcedNAResult(void *self, void *result_ptr)
+{
+ CManager *self_ = (CManager*)self;
+ Inic_StdResult_t *result_ptr_ = (Inic_StdResult_t *)result_ptr;
+
+ TR_INFO((self_->base_ptr->ucs_user_ptr, "[MGR]", "Mgr_OnLeaveForcedNAResult(): code=0x%02X", 1U, result_ptr_->result.code));
+
+ if (result_ptr_->result.code == UCS_RES_SUCCESS)
+ {
+ Job_SetResult(&self_->job_leave_forced_na, JOB_R_SUCCESS);
+ }
+ else
+ {
+ Job_SetResult(&self_->job_leave_forced_na, JOB_R_FAILED);
+ }
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Job: Startup */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Action that starts the network with the given parameters
+ * \param self The instance
+ */
+static void Mgr_Startup(void *self)
+{
+ CManager *self_ = (CManager*)self;
+ Ucs_Return_t ret;
+
+ TR_INFO((self_->base_ptr->ucs_user_ptr, "[MGR]", "Mgr_Startup()", 0U));
+ ret = Inic_NwStartup(self_->inic_ptr, MGR_AUTOFORCED_NA_TIME, self_->packet_bw, &self_->startup_obs); /* Startup without ForcedNA */
+
+ if (ret != UCS_RET_SUCCESS)
+ {
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[MGR]", "Mgr_Startup(), startup returns 0x%02X", 1U, ret));
+ Job_SetResult(&self_->job_startup, JOB_R_FAILED);
+ }
+}
+
+/*! \brief Callback function which announces the result of Net_NetworkStartup()
+ * \param self The instance
+ * \param result_ptr Reference to result. Must be casted into Inic_StdResult_t.
+ */
+static void Mgr_OnNwStartupResult(void *self, void *result_ptr)
+{
+ CManager *self_ = (CManager*)self;
+ Inic_StdResult_t *result_ptr_ = (Inic_StdResult_t *)result_ptr;
+
+ TR_INFO((self_->base_ptr->ucs_user_ptr, "[MGR]", "Mgr_OnNwStartupResult(): code=0x%02X", 1U, result_ptr_->result.code));
+
+ if (result_ptr_->result.code == UCS_RES_SUCCESS)
+ {
+ Job_SetResult(&self_->job_startup, JOB_R_SUCCESS);
+ }
+ else
+ {
+ Job_SetResult(&self_->job_startup, JOB_R_FAILED);
+ }
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Job: Shutdown */
+/*------------------------------------------------------------------------------------------------*/
+#if 0
+/*! \brief Action that performs a network shutdown.
+ * \param self The instance
+ */
+static void Mgr_Shutdown(void *self)
+{
+ CManager *self_ = (CManager*)self;
+ Ucs_Return_t ret;
+
+ TR_INFO((self_->base_ptr->ucs_user_ptr, "[MGR]", "Mgr_Shutdown()", 0U));
+ ret = Inic_NwShutdown(self_->inic_ptr, &self_->shutdown_obs);
+
+ if (ret != UCS_RET_SUCCESS)
+ {
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[MGR]", "Mgr_Shutdown(), shutdown returns 0x%02X", 1U, ret));
+ Job_SetResult(&self_->job_shutdown, JOB_R_FAILED);
+ }
+}
+
+/*! \brief Callback function which announces the result of Net_NetworkShutdown()
+ * \param self The instance
+ * \param result_ptr Reference to result. Must be casted into Inic_StdResult_t.
+ */
+static void Mgr_OnNwShutdownResult(void *self, void *result_ptr)
+{
+ CManager *self_ = (CManager*)self;
+ Inic_StdResult_t *result_ptr_ = (Inic_StdResult_t *)result_ptr;
+
+ TR_INFO((self_->base_ptr->ucs_user_ptr, "[MGR]", "Mgr_OnNwShutdownResult(): code=0x%02X", 1U, result_ptr_->result.code));
+
+ if (result_ptr_->result.code == UCS_RES_SUCCESS)
+ {
+ Job_SetResult(&self_->job_shutdown, JOB_R_SUCCESS);
+ }
+ else
+ {
+ Job_SetResult(&self_->job_shutdown, JOB_R_FAILED);
+ }
+}
+#endif
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_misc.c b/ucs2-lib/src/ucs_misc.c
new file mode 100644
index 0000000..8c018a4
--- /dev/null
+++ b/ucs2-lib/src/ucs_misc.c
@@ -0,0 +1,80 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of the library module which contains miscellaneous helper functions.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_MISC
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_misc.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief UNICENS internal memset-function.
+ * \param dst_ptr Pointer to the block of memory to fill
+ * \param value Value to be set
+ * \param size Number of bytes to be set to the value
+ */
+void Misc_MemSet(void *dst_ptr, int32_t value, uint32_t size)
+{
+ uint8_t *dst_ptr_ = (uint8_t *)dst_ptr;
+ uint32_t i;
+
+ for(i=0U; i<size; i++)
+ {
+ dst_ptr_[i] = (uint8_t)value; /* parasoft-suppress MISRA2004-17_4 "void pointer required for memset-function signature (stdlib)" */
+ }
+}
+
+/*! \brief UNICENS internal memcpy-function.
+ * \param dst_ptr Pointer to the destination array where the content is to be copied
+ * \param src_ptr Pointer to the source of data to be copied
+ * \param size Number of bytes to copy
+ */
+void Misc_MemCpy(void *dst_ptr, void *src_ptr, uint32_t size)
+{
+ uint8_t *dst_ptr_ = (uint8_t *)dst_ptr;
+ uint8_t *src_ptr_ = (uint8_t *)src_ptr;
+ uint32_t i;
+
+ for(i=0U; i<size; i++)
+ {
+ dst_ptr_[i] = src_ptr_[i]; /* parasoft-suppress MISRA2004-17_4 "void pointers required for memcpy-function signature (stdlib)" */
+ }
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_net.c b/ucs2-lib/src/ucs_net.c
new file mode 100644
index 0000000..4e4b274
--- /dev/null
+++ b/ucs2-lib/src/ucs_net.c
@@ -0,0 +1,310 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of the Network Management.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_NET
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_net.h"
+#include "ucs_misc.h"
+#include "ucs_trace.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Service parameters */
+/*------------------------------------------------------------------------------------------------*/
+/*! Priority of the NET service used by scheduler */
+static const uint8_t NET_SRV_PRIO = 251U; /* parasoft-suppress MISRA2004-8_7 "Value shall be part of the module, not part of a function." */
+/*! \brief Event to trigger notification of MOST Network Status */
+static const Srv_Event_t NET_EVENT_NOTIFY_NW_STATUS = 1U;
+/*! \brief Event to trigger notification of MOST Network Configuration */
+static const Srv_Event_t NET_EVENT_NOTIFY_NW_CONFIG = 2U;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal constants */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Default value used for INIC sender handles */
+static const uint16_t NET_DEFAULT_SENDER_HANDLE = 0x0001U; /* parasoft-suppress MISRA2004-8_7 "Value shall be part of the module, not part of a function." */
+/*! \brief Initialization timeout in milliseconds (t = 7s) */
+static const uint16_t NET_PBW_TIMEOUT = 7000U; /* parasoft-suppress MISRA2004-8_7 "Value shall be part of the module, not part of a function." */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal prototypes */
+/*------------------------------------------------------------------------------------------------*/
+static void Net_Service(void *self);
+static void Net_UpdateNetworkStatus(void *self, void *data_ptr);
+static void Net_UpdateNetworkConfiguration(void *self, void *data_ptr);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation of class CNetworkManagement */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Constructor of the Network Management class.
+ * \param self Instance pointer
+ * \param init_ptr Reference to the initialization data
+ */
+void Net_Ctor(CNetworkManagement *self, Net_InitData_t *init_ptr)
+{
+ MISC_MEM_SET(self, 0, sizeof(*self));
+ self->base_ptr = init_ptr->base_ptr;
+ self->inic_ptr = init_ptr->inic_ptr;
+ Obs_Ctor(&self->network_status.observer, self, &Net_UpdateNetworkStatus);
+ Inic_AddObsrvNwStatus(self->inic_ptr, &self->network_status.observer);
+ self->network_status.param.change_mask = 0xFFFFU; /* Used for initial notification! */
+ Sub_Ctor(&self->network_status.pre_subject, self->base_ptr->ucs_user_ptr);
+ Sub_Ctor(&self->network_status.subject, self->base_ptr->ucs_user_ptr);
+
+ Obs_Ctor(&self->network_configuration.observer, self, &Net_UpdateNetworkConfiguration);
+ Inic_AddObsvrNwConfig(self->inic_ptr, &self->network_configuration.observer);
+ self->network_configuration.param.change_mask = 0xFFFFU; /* Used for initial notification! */
+ Sub_Ctor(&self->network_configuration.pre_subject, self->base_ptr->ucs_user_ptr);
+ Sub_Ctor(&self->network_configuration.subject, self->base_ptr->ucs_user_ptr);
+
+ Srv_Ctor(&self->net_srv, NET_SRV_PRIO, self, &Net_Service); /* Initialize Network Management service */
+ (void)Scd_AddService(&self->base_ptr->scd, &self->net_srv); /* Add NET service to scheduler */
+}
+
+/*! \brief Service function of the network management.
+ * \param self Instance pointer
+ */
+static void Net_Service(void *self)
+{
+ CNetworkManagement *self_ = (CNetworkManagement *)self;
+ Srv_Event_t event_mask;
+ Srv_GetEvent(&self_->net_srv, &event_mask);
+ /* Notification of MOST Network Status triggered? */
+ if((event_mask & NET_EVENT_NOTIFY_NW_STATUS) == NET_EVENT_NOTIFY_NW_STATUS)
+ {
+ Srv_ClearEvent(&self_->net_srv, NET_EVENT_NOTIFY_NW_STATUS);
+ self_->network_status.param.change_mask = 0xFFFFU;
+ Sub_Notify(&self_->network_status.pre_subject, &self_->network_status.param);
+ self_->network_status.param.change_mask = 0U;
+ (void)Sub_SwitchObservers(&self_->network_status.subject,
+ &self_->network_status.pre_subject);
+ }
+ /* Notification of MOST Network Configuration triggered? */
+ if((event_mask & NET_EVENT_NOTIFY_NW_CONFIG) == NET_EVENT_NOTIFY_NW_CONFIG)
+ {
+ Srv_ClearEvent(&self_->net_srv, NET_EVENT_NOTIFY_NW_CONFIG);
+ self_->network_configuration.param.change_mask = 0xFFFFU;
+ Sub_Notify(&self_->network_configuration.pre_subject, &self_->network_configuration.param);
+ self_->network_configuration.param.change_mask = 0U;
+ (void)Sub_SwitchObservers(&self_->network_configuration.subject,
+ &self_->network_configuration.pre_subject);
+ }
+}
+
+/*! \brief Adds an observer which is called if the network status has been changed.
+ * \param self Instance pointer
+ * \param obs_ptr Reference to an observer
+ */
+void Net_AddObserverNetworkStatus(CNetworkManagement *self, CMaskedObserver *obs_ptr)
+{
+ (void)Msub_AddObserver(&self->network_status.pre_subject, obs_ptr);
+ Srv_SetEvent(&self->net_srv, NET_EVENT_NOTIFY_NW_STATUS);
+}
+
+/*! \brief Removes an observer registered by Net_AddObserverNetworkStatus().
+ * \param self Instance pointer
+ * \param obs_ptr Reference to observer to be removed
+
+ */
+void Net_DelObserverNetworkStatus(CNetworkManagement *self, CMaskedObserver *obs_ptr)
+{
+ (void)Msub_RemoveObserver(&self->network_status.pre_subject, obs_ptr);
+ (void)Msub_RemoveObserver(&self->network_status.subject, obs_ptr);
+}
+
+/*! \brief Adds an observer which is called if the network configuration has been changed.
+ * \param self Instance pointer
+ * \param obs_ptr Reference to an observer
+ */
+void Net_AddObserverNetworkConfig(CNetworkManagement *self, CMaskedObserver *obs_ptr)
+{
+ (void)Msub_AddObserver(&self->network_configuration.pre_subject, obs_ptr);
+ Srv_SetEvent(&self->net_srv, NET_EVENT_NOTIFY_NW_CONFIG);
+}
+
+/*! \brief Removes an observer registered by Net_AddObserverNetworkConfig().
+ * \param self Instance pointer
+ * \param obs_ptr Reference to observer to be removed
+ */
+void Net_DelObserverNetworkConfig(CNetworkManagement *self, CMaskedObserver *obs_ptr)
+{
+ (void)Msub_RemoveObserver(&self->network_configuration.pre_subject, obs_ptr);
+ (void)Msub_RemoveObserver(&self->network_configuration.subject, obs_ptr);
+}
+
+/*! \brief Observer callback used for the MOST Network Status
+ * \param self Instance pointer
+ * \param data_ptr Reference to the data structure
+ */
+static void Net_UpdateNetworkStatus(void *self, void *data_ptr)
+{
+ Inic_StdResult_t *data_ptr_ = (Inic_StdResult_t *)data_ptr;
+
+ if(data_ptr_->result.code == UCS_RES_SUCCESS)
+ {
+ CNetworkManagement *self_ = (CNetworkManagement *)self;
+ Inic_NetworkStatus_t result = *((Inic_NetworkStatus_t *)data_ptr_->data_info);
+
+ /* Check for changes */
+ if(result.events != 0U) /* Notify only if at least one event flag is set */
+ {
+ self_->network_status.param.change_mask |= 0x0001U;
+ }
+ if(self_->network_status.param.availability != result.availability)
+ {
+ self_->network_status.param.change_mask |= 0x0002U;
+ }
+ if(self_->network_status.param.avail_info != result.avail_info)
+ {
+ self_->network_status.param.change_mask |= 0x0004U;
+ }
+ if(self_->network_status.param.avail_trans_cause != result.avail_trans_cause)
+ {
+ self_->network_status.param.change_mask |= 0x0008U;
+ }
+ if(self_->network_status.param.node_address != result.node_address)
+ {
+ self_->network_status.param.change_mask |= 0x0010U;
+ }
+ if(self_->network_status.param.node_position != result.node_position)
+ {
+ self_->network_status.param.change_mask |= 0x0020U;
+ }
+ if(self_->network_status.param.max_position != result.max_position)
+ {
+ self_->network_status.param.change_mask |= 0x0040U;
+ }
+ if(self_->network_status.param.packet_bw != result.packet_bw)
+ {
+ self_->network_status.param.change_mask |= 0x0080U;
+ }
+
+ /* Update MOST Network Status parameters */
+ self_->network_status.param.events = result.events;
+ self_->network_status.param.availability = result.availability;
+ self_->network_status.param.avail_info = result.avail_info;
+ self_->network_status.param.avail_trans_cause = result.avail_trans_cause;
+ self_->network_status.param.node_address = result.node_address;
+ self_->network_status.param.node_position = result.node_position;
+ self_->network_status.param.max_position = result.max_position;
+ self_->network_status.param.packet_bw = result.packet_bw;
+
+ /* Notify observer? */
+ Msub_Notify(&self_->network_status.subject,
+ &self_->network_status.param,
+ (uint32_t)self_->network_status.param.change_mask);
+
+ /* Clear change-mask */
+ self_->network_status.param.change_mask = 0U;
+ }
+}
+
+/*! \brief Observer callback used for the MOST Network Configuration
+ * \param self Instance pointer
+ * \param data_ptr Reference to the data structure
+ */
+static void Net_UpdateNetworkConfiguration(void *self, void *data_ptr)
+{
+ Inic_StdResult_t *data_ptr_ = (Inic_StdResult_t *)data_ptr;
+
+ if(data_ptr_->result.code == UCS_RES_SUCCESS)
+ {
+ CNetworkManagement *self_ = (CNetworkManagement *)self;
+ Inic_NetworkConfig_t result = *((Inic_NetworkConfig_t *)data_ptr_->data_info);
+
+ /* Check for changes */
+ if(self_->network_configuration.param.node_address != result.node_address)
+ {
+ self_->network_configuration.param.change_mask |= 0x0001U;
+ }
+ if(self_->network_configuration.param.group_address != result.group_address)
+ {
+ self_->network_configuration.param.change_mask |= 0x0002U;
+ }
+ if(self_->network_configuration.param.llrbc != result.llrbc)
+ {
+ self_->network_configuration.param.change_mask |= 0x0004U;
+ }
+
+ /* Update MOST Network Configuration parameters */
+ self_->network_configuration.param.node_address = result.node_address;
+ self_->network_configuration.param.group_address = result.group_address;
+ self_->network_configuration.param.llrbc = result.llrbc;
+
+ /* Notify observer? */
+ Msub_Notify(&self_->network_configuration.subject,
+ &self_->network_configuration.param,
+ (uint32_t)self_->network_configuration.param.change_mask);
+
+ /* Clear change-mask */
+ self_->network_configuration.param.change_mask = 0U;
+ }
+}
+
+/*! \brief Checks if the given address matches with the own node address, node position or group address.
+ * \param self Instance pointer
+ * \param address Address to be checked
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * --------------------- | -------------------------------------------------------------
+ * NET_IS_OWN_ADDR_NODE | Is own node position address or own logical node address
+ * NET_IS_OWN_ADDR_GROUP | Is own group address
+ * NET_IS_OWN_ADDR_NONE | Is foreign address
+ */
+Net_IsOwnAddrResult_t Net_IsOwnAddress(CNetworkManagement *self, uint16_t address)
+{
+ Net_IsOwnAddrResult_t ret_val;
+
+ if((self->network_status.param.node_address == address) ||
+ (((uint16_t)self->network_status.param.node_position + (uint16_t)0x400) == address))
+ {
+ ret_val = NET_IS_OWN_ADDR_NODE;
+ }
+ else if(self->network_configuration.param.group_address == address)
+ {
+ ret_val = NET_IS_OWN_ADDR_GROUP;
+ }
+ else
+ {
+ ret_val = NET_IS_OWN_ADDR_NONE;
+ }
+
+ return ret_val;
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_nodedis.c b/ucs2-lib/src/ucs_nodedis.c
new file mode 100644
index 0000000..b9f2f5a
--- /dev/null
+++ b/ucs2-lib/src/ucs_nodedis.c
@@ -0,0 +1,1038 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of the Node Discovery.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_NODE_DIS
+ * @{
+
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_inic_pb.h"
+#include "ucs_nodedis.h"
+#include "ucs_misc.h"
+
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal constants */
+/*------------------------------------------------------------------------------------------------*/
+#define ND_NUM_STATES 5U /*!< \brief Number of state machine states */
+#define ND_NUM_EVENTS 14U /*!< \brief Number of state machine events */
+
+#define ND_TIMEOUT_PERIODIC 5000U /*!< \brief 5s timeout */
+#define ND_TIMEOUT_COMMAND 300U /*!< \brief supervise EXC commands */
+
+#define ND_SIGNATURE_VERSION 1U /*!< \brief signature version used for Node Discovery */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Service parameters */
+/*------------------------------------------------------------------------------------------------*/
+/*! Priority of the Node Discovery service used by scheduler */
+static const uint8_t ND_SRV_PRIO = 248U; /* parasoft-suppress MISRA2004-8_7 "Value shall be part of the module, not part of a function." */
+/*! Main event for the Node Discovery service */
+static const Srv_Event_t ND_EVENT_SERVICE = 1U;
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal enumerators */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Possible events of the Node Discovery state machine */
+typedef enum Nd_Events_
+{
+ ND_E_NIL = 0U, /*!< \brief NIL Event */
+ ND_E_START = 1U, /*!< \brief API start command was called. */
+ ND_E_STOP = 2U, /*!< \brief Stop request occurred. */
+ ND_E_CHECK = 3U, /*!< \brief Check conditions in CHECK_HELLO state. */
+ ND_E_NET_OFF = 4U, /*!< \brief NetOff occurred. */
+ ND_E_HELLO_STATUS = 5U, /*!< \brief Hello.Status message available to be processed. */
+ ND_E_RES_NODE_OK = 6U, /*!< \brief Evaluation result of node: ok. */
+ ND_E_RES_UNKNOWN = 7U, /*!< \brief Evaluation result of node: unknown node. */
+ ND_E_RES_CHECK_UNIQUE = 8U, /*!< \brief Evaluation result of node: check if node is unique. */
+ ND_E_WELCOME_SUCCESS = 9U, /*!< \brief Welcome command was successful. */
+ ND_E_WELCOME_NOSUCCESS = 10U, /*!< \brief Welcome command was not successful. */
+ ND_E_SIGNATURE_SUCCESS = 11U, /*!< \brief Signature command was successful. */
+ ND_E_TIMEOUT = 12U, /*!< \brief Timeout occurred. */
+ ND_E_ERROR = 13U /*!< \brief An unexpected error occurred. */
+
+} Nd_Events_t;
+
+
+/*! \brief States of the Node Discovery state machine */
+typedef enum Nd_State_
+{
+ ND_S_IDLE = 0U, /*!< \brief Idle state */
+ ND_S_CHECK_HELLO = 1U, /*!< \brief Node Discovery started */
+ ND_S_WAIT_EVAL = 2U, /*!< \brief Evaluate next Hello.Status message */
+ ND_S_WAIT_WELCOME = 3U, /*!< \brief Wait for Welcome.Status */
+ ND_S_WAIT_PING = 4U /*!< \brief Wait for Signature.Status */
+} Nd_State_t;
+
+
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal prototypes */
+/*------------------------------------------------------------------------------------------------*/
+static void Nd_Service(void *self);
+
+static void Nd_HelloStatusCb(void *self, void *result_ptr);
+static void Nd_WelcomeResultCb(void *self, void *result_ptr);
+static void Nd_SignatureStatusCb(void *self, void *result_ptr);
+static void Nd_InitCb(void *self, void *result_ptr);
+static void Nd_TimerCb(void *self);
+static void Nd_OnTerminateEventCb(void *self, void *result_ptr);
+static void Nd_NetworkStatusCb(void *self, void *result_ptr);
+
+static void Nd_Reset_Lists(void *self);
+
+static void Nd_A_Start(void *self);
+static void Nd_A_Stop(void *self);
+static void Nd_A_CheckConditions(void *self);
+static void Nd_A_Eval_Hello(void *self);
+static void Nd_A_Welcome(void *self);
+static void Nd_A_Unknown(void *self);
+static void Nd_A_CheckUnique(void *self);
+static void Nd_A_WelcomeSuccess(void *self);
+static void Nd_A_WelcomeNoSuccess(void *self);
+static void Nd_A_WelcomeTimeout(void *self);
+static void Nd_A_Timeout_Hello(void *self);
+static void Nd_A_NetOff(void *self);
+static void Nd_A_Signature_Timeout(void *self);
+static void Nd_A_Signature_Success(void *self);
+static void Nd_A_Error(void *self);
+
+static void Nd_Send_Hello_Get(void *self);
+static void Nd_Start_Periodic_Timer(void *self);
+static void Nd_Send_Welcome_SR(void *self, Ucs_Signature_t *signature);
+static void Nd_Send_Signature_Get(void *self, uint16_t target_address);
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* State transition table (used by finite state machine) */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief State transition table */
+static const Fsm_StateElem_t nd_trans_tab[ND_NUM_STATES][ND_NUM_EVENTS] = /* parasoft-suppress MISRA2004-8_7 "Value shall be part of the module, not part of a function." */
+{
+ { /* State ND_S_IDLE */
+ /* ND_E_NIL */ {NULL, ND_S_IDLE },
+ /* ND_E_START */ {&Nd_A_Start, ND_S_CHECK_HELLO },
+ /* ND_E_STOP */ {NULL, ND_S_IDLE },
+ /* ND_E_CHECK */ {NULL, ND_S_IDLE },
+ /* ND_E_NET_OFF */ {NULL, ND_S_IDLE },
+ /* ND_E_HELLO_STATUS */ {NULL, ND_S_IDLE },
+ /* ND_E_RES_NODE_OK */ {NULL, ND_S_IDLE },
+ /* ND_E_RES_UNKNOWN */ {NULL, ND_S_IDLE },
+ /* ND_E_RES_CHECK_UNIQUE */ {NULL, ND_S_IDLE },
+ /* ND_E_WELCOME_SUCCESS */ {NULL, ND_S_IDLE },
+ /* ND_E_WELCOME_NOSUCCESS */ {NULL, ND_S_IDLE },
+ /* ND_E_SIGNATURE_SUCCESS */ {NULL, ND_S_IDLE },
+ /* ND_E_TIMEOUT */ {NULL, ND_S_IDLE },
+ /* ND_E_ERROR */ {NULL, ND_S_IDLE }
+
+ },
+ { /* State ND_S_CHECK_HELLO */
+ /* ND_E_NIL */ {NULL, ND_S_CHECK_HELLO },
+ /* ND_E_START */ {NULL, ND_S_CHECK_HELLO },
+ /* ND_E_STOP */ {&Nd_A_Stop, ND_S_IDLE },
+ /* ND_E_CHECK */ {&Nd_A_CheckConditions, ND_S_CHECK_HELLO },
+ /* ND_E_NET_OFF */ {&Nd_A_NetOff, ND_S_CHECK_HELLO },
+ /* ND_E_HELLO_STATUS */ {&Nd_A_Eval_Hello, ND_S_WAIT_EVAL },
+ /* ND_E_RES_NODE_OK */ {NULL, ND_S_CHECK_HELLO },
+ /* ND_E_RES_UNKNOWN */ {NULL, ND_S_CHECK_HELLO },
+ /* ND_E_RES_CHECK_UNIQUE */ {NULL, ND_S_CHECK_HELLO },
+ /* ND_E_WELCOME_SUCCESS */ {NULL, ND_S_CHECK_HELLO },
+ /* ND_E_WELCOME_NOSUCCESS */ {NULL, ND_S_CHECK_HELLO },
+ /* ND_E_SIGNATURE_SUCCESS */ {NULL, ND_S_CHECK_HELLO },
+ /* ND_E_TIMEOUT */ {&Nd_A_Timeout_Hello, ND_S_CHECK_HELLO },
+ /* ND_E_ERROR */ {&Nd_A_Error, ND_S_IDLE }
+ },
+ { /* State ND_S_WAIT_EVAL */
+ /* ND_E_NIL */ {NULL, ND_S_WAIT_EVAL },
+ /* ND_E_START */ {NULL, ND_S_WAIT_EVAL },
+ /* ND_E_STOP */ {NULL, ND_S_WAIT_EVAL },
+ /* ND_E_CHECK */ {NULL, ND_S_WAIT_EVAL },
+ /* ND_E_NET_OFF */ {&Nd_A_NetOff, ND_S_CHECK_HELLO },
+ /* ND_E_HELLO_STATUS */ {NULL, ND_S_WAIT_EVAL },
+ /* ND_E_RES_NODE_OK */ {&Nd_A_Welcome, ND_S_WAIT_WELCOME },
+ /* ND_E_RES_UNKNOWN */ {&Nd_A_Unknown, ND_S_CHECK_HELLO },
+ /* ND_E_RES_CHECK_UNIQUE */ {&Nd_A_CheckUnique, ND_S_WAIT_PING },
+ /* ND_E_WELCOME_SUCCESS */ {NULL, ND_S_WAIT_EVAL },
+ /* ND_E_WELCOME_NOSUCCESS */ {NULL, ND_S_WAIT_EVAL },
+ /* ND_E_SIGNATURE_SUCCESS */ {NULL, ND_S_WAIT_EVAL },
+ /* ND_E_TIMEOUT */ {NULL, ND_S_WAIT_EVAL },
+ /* ND_E_ERROR */ {&Nd_A_Error, ND_S_IDLE }
+ },
+
+ {/* ND_S_WAIT_WELCOME */
+ /* ND_E_NIL */ {NULL, ND_S_WAIT_WELCOME },
+ /* ND_E_START */ {NULL, ND_S_WAIT_WELCOME },
+ /* ND_E_STOP */ {NULL, ND_S_WAIT_WELCOME },
+ /* ND_E_CHECK */ {NULL, ND_S_WAIT_WELCOME },
+ /* ND_E_NET_OFF */ {&Nd_A_NetOff, ND_S_CHECK_HELLO },
+ /* ND_E_HELLO_STATUS */ {NULL, ND_S_WAIT_WELCOME },
+ /* ND_E_RES_NODE_OK */ {NULL, ND_S_WAIT_WELCOME },
+ /* ND_E_RES_UNKNOWN */ {NULL, ND_S_WAIT_WELCOME },
+ /* ND_E_RES_CHECK_UNIQUE */ {NULL, ND_S_WAIT_WELCOME },
+ /* ND_E_WELCOME_SUCCESS */ {&Nd_A_WelcomeSuccess, ND_S_CHECK_HELLO },
+ /* ND_E_WELCOME_NOSUCCESS */ {&Nd_A_WelcomeNoSuccess, ND_S_CHECK_HELLO },
+ /* ND_E_SIGNATURE_SUCCESS */ {NULL, ND_S_WAIT_WELCOME },
+ /* ND_E_TIMEOUT */ {&Nd_A_WelcomeTimeout, ND_S_CHECK_HELLO },
+ /* ND_E_ERROR */ {&Nd_A_Error, ND_S_IDLE }
+ },
+ {/* ND_S_WAIT_PING */
+ /* ND_E_NIL */ {NULL, ND_S_WAIT_PING },
+ /* ND_E_START */ {NULL, ND_S_WAIT_PING },
+ /* ND_E_STOP */ {NULL, ND_S_WAIT_PING },
+ /* ND_E_CHECK */ {NULL, ND_S_WAIT_PING },
+ /* ND_E_NET_OFF */ {&Nd_A_NetOff, ND_S_CHECK_HELLO },
+ /* ND_E_HELLO_STATUS */ {NULL, ND_S_WAIT_PING },
+ /* ND_E_RES_NODE_OK */ {NULL, ND_S_WAIT_PING },
+ /* ND_E_RES_UNKNOWN */ {NULL, ND_S_WAIT_PING },
+ /* ND_E_RES_CHECK_UNIQUE */ {NULL, ND_S_WAIT_PING },
+ /* ND_E_WELCOME_SUCCESS */ {NULL, ND_S_WAIT_PING },
+ /* ND_E_WELCOME_NOSUCCESS */ {NULL, ND_S_WAIT_PING },
+ /* ND_E_SIGNATURE_SUCCESS */ {&Nd_A_Signature_Success, ND_S_CHECK_HELLO },
+ /* ND_E_TIMEOUT */ {&Nd_A_Signature_Timeout, ND_S_WAIT_WELCOME },
+ /* ND_E_ERROR */ {&Nd_A_Error, ND_S_IDLE }
+ }
+};
+
+
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation */
+/*------------------------------------------------------------------------------------------------*/
+
+/*! \brief Constructor of class CNodeDiscovery.
+ * \param self Reference to CNodeDiscovery instance
+ * \param inic Reference to CInic instance
+ * \param base Reference to CBase instance
+ * \param exc Reference to CExc instance
+ * \param init_ptr Report callback function
+ */
+void Nd_Ctor(CNodeDiscovery *self, CInic *inic, CBase *base, CExc *exc, Nd_InitData_t *init_ptr)
+{
+ MISC_MEM_SET((void *)self, 0, sizeof(*self));
+
+ self->inic = inic;
+ self->exc = exc;
+ self->base = base;
+ self->cb_inst_ptr = init_ptr->inst_ptr;
+ self->report_fptr = init_ptr->report_fptr;
+ self->eval_fptr = init_ptr->eval_fptr;
+
+ Fsm_Ctor(&self->fsm, self, &(nd_trans_tab[0][0]), ND_NUM_EVENTS, ND_E_NIL);
+
+ Nd_Reset_Lists(self);
+
+ Sobs_Ctor(&self->nd_hello, self, &Nd_HelloStatusCb);
+ Sobs_Ctor(&self->nd_welcome, self, &Nd_WelcomeResultCb);
+ Sobs_Ctor(&self->nd_signature, self, &Nd_SignatureStatusCb);
+ Sobs_Ctor(&self->nd_init, self, &Nd_InitCb);
+
+ /* register termination events */
+ Mobs_Ctor(&self->nd_terminate, self, EH_M_TERMINATION_EVENTS, &Nd_OnTerminateEventCb);
+ Eh_AddObsrvInternalEvent(&self->base->eh, &self->nd_terminate);
+
+ /* Register NetOn and MPR events */
+ Obs_Ctor(&self->nd_nwstatus, self, &Nd_NetworkStatusCb);
+ Inic_AddObsrvNwStatus(self->inic, &self->nd_nwstatus);
+ self->neton = false;
+
+ /* Initialize Node Discovery service */
+ Srv_Ctor(&self->service, ND_SRV_PRIO, self, &Nd_Service);
+ /* Add Node Discovery service to scheduler */
+ (void)Scd_AddService(&self->base->scd, &self->service);
+
+}
+
+
+/*! \brief Service function of the Node Discovery service.
+ * \param self Reference to Node Discovery object
+ */
+static void Nd_Service(void *self)
+{
+ CNodeDiscovery *self_ = (CNodeDiscovery *)self;
+ Srv_Event_t event_mask;
+ Srv_GetEvent(&self_->service, &event_mask);
+ if(ND_EVENT_SERVICE == (event_mask & ND_EVENT_SERVICE)) /* Is event pending? */
+ {
+ Fsm_State_t result;
+ Srv_ClearEvent(&self_->service, ND_EVENT_SERVICE);
+ TR_INFO((self_->base->ucs_user_ptr, "[ND]", "FSM __ %d %d", 2U, self_->fsm.current_state, self_->fsm.event_occured));
+ result = Fsm_Service(&self_->fsm);
+ TR_ASSERT(self_->base->ucs_user_ptr, "[ND]", (result != FSM_STATE_ERROR));
+ TR_INFO((self_->base->ucs_user_ptr, "[ND]", "FSM -> %d", 1U, self_->fsm.current_state));
+ MISC_UNUSED(result);
+ }
+}
+
+
+
+/**************************************************************************************************/
+/* API functions */
+/**************************************************************************************************/
+/*! \brief Start the Node Discovery
+ *
+ * \param *self Reference to Node Discovery object
+ * \return UCS_RET_SUCCESS Operation successful
+ * \return UCS_RET_ERR_API_LOCKED Node Discovery was already started
+ */
+Ucs_Return_t Nd_Start(CNodeDiscovery *self)
+{
+ Ucs_Return_t ret_val = UCS_RET_SUCCESS;
+
+
+ if (self->running == false)
+ {
+ Fsm_SetEvent(&self->fsm, ND_E_START);
+ Srv_SetEvent(&self->service, ND_EVENT_SERVICE);
+ self->running = true;
+ TR_INFO((self->base->ucs_user_ptr, "[ND]", "Nd_Start", 0U));
+ }
+ else
+ {
+ ret_val = UCS_RET_ERR_API_LOCKED;
+ TR_INFO((self->base->ucs_user_ptr, "[ND]", "Nd_Start failed", 0U));
+ }
+
+ return ret_val;
+
+
+
+
+}
+
+/*! \brief Stops the Node Discovery
+ *
+ * \param *self Reference to Node Discovery object
+ * \return UCS_RET_SUCCESS Operation successful
+ * \return UCS_RET_ERR_NOT_AVAILABLE Node Discovery not running
+ */
+Ucs_Return_t Nd_Stop(CNodeDiscovery *self)
+{
+ Ucs_Return_t ret_val = UCS_RET_SUCCESS;
+
+ if (self->running == true) /* check if Node Discovery was started */
+ {
+ self->stop_request = true;
+ Fsm_SetEvent(&self->fsm, ND_E_CHECK);
+ Srv_SetEvent(&self->service, ND_EVENT_SERVICE);
+
+ TR_INFO((self->base->ucs_user_ptr, "[ND]", "Nd_Stop", 0U));
+ }
+ else
+ {
+ ret_val = UCS_RET_ERR_NOT_AVAILABLE;
+ TR_INFO((self->base->ucs_user_ptr, "[ND]", "Nd_Stop failed", 0U));
+ }
+
+ return ret_val;
+}
+
+
+/*! \brief Sends the Init command to all nodes
+ *
+ * \param *self Reference to Node Discovery object
+ */
+void Nd_InitAll(CNodeDiscovery *self)
+{
+ Ucs_Return_t result;
+
+ result = Exc_DeviceInit_Start(self->exc, UCS_ADDR_BROADCAST_BLOCKING, NULL);
+ if (result == UCS_RET_SUCCESS)
+ {
+ TR_INFO((self->base->ucs_user_ptr, "[ND]", "Nd_InitAll", 0U));
+ }
+ else
+ {
+ TR_INFO((self->base->ucs_user_ptr, "[ND]", "Nd_InitAll failed", 0U));
+ }
+
+}
+
+
+
+
+/**************************************************************************************************/
+/* FSM Actions */
+/**************************************************************************************************/
+/*! \brief Action on start event
+ *
+ * \param *self Reference to Node Discovery object
+ */
+static void Nd_A_Start(void *self)
+{
+ CNodeDiscovery *self_ = (CNodeDiscovery *)self;
+
+ /* empty new_list*/
+ Nd_Reset_Lists(self_);
+
+ Nd_Send_Hello_Get(self_);
+
+ Nd_Start_Periodic_Timer(self_);
+
+ self_->stop_request = false;
+ self_->hello_mpr_request = false;
+ self_->hello_neton_request = false;
+}
+
+/*! \brief Action on stop event
+ *
+ * \param *self Reference to Node Discovery object
+ */
+static void Nd_A_Stop(void *self)
+{
+ CNodeDiscovery *self_ = (CNodeDiscovery *)self;
+ Ucs_Signature_t *dummy = NULL;
+
+ if (self_->report_fptr != NULL)
+ {
+ self_->report_fptr(self_->cb_inst_ptr, UCS_ND_RES_STOPPED, dummy);
+ }
+ self_->running = false;
+}
+
+/*! \brief Check conditions
+ *
+ * \param *self Reference to Node Discovery object
+ */
+static void Nd_A_CheckConditions(void *self)
+{
+ CNodeDiscovery *self_ = (CNodeDiscovery *)self;
+
+ if (self_->stop_request == true)
+ {
+ Fsm_SetEvent(&self_->fsm, ND_E_STOP);
+ Srv_SetEvent(&self_->service, ND_EVENT_SERVICE);
+ }
+ else if (self_->hello_mpr_request == true)
+ {
+ Nd_Reset_Lists(self_);
+ Nd_Send_Hello_Get(self_);
+ Nd_Start_Periodic_Timer(self_);
+ self_->hello_mpr_request = false;
+ self_->hello_neton_request = false;
+ }
+ else if (self_->hello_neton_request == true)
+ {
+ Nd_Send_Hello_Get(self_);
+ Nd_Start_Periodic_Timer(self_);
+ self_->hello_neton_request = false;
+ }
+ else if (Dl_GetSize(&(self_->new_list)) > 0U)
+ {
+ Fsm_SetEvent(&self_->fsm, ND_E_HELLO_STATUS);
+ Srv_SetEvent(&self_->service, ND_EVENT_SERVICE);
+ }
+ else
+ {
+ Nd_Start_Periodic_Timer(self_);
+ }
+
+}
+
+
+/*! \brief Evaluate the signature of the next node
+ *
+ * \param *self Reference to Node Discovery object
+ */
+static void Nd_A_Eval_Hello(void *self)
+{
+ CNodeDiscovery *self_ = (CNodeDiscovery *)self;
+ CDlNode *node;
+ Ucs_Nd_CheckResult_t result;
+ bool service_flag = false;
+ Ucs_Signature_t temp_sig;
+
+ if (Dl_GetSize(&(self_->new_list)) > 0U)
+ {
+ node = Dl_PopHead(&(self_->new_list));
+ self_->current_sig = *((Ucs_Signature_t *)(node->data_ptr));
+
+ if (self_->eval_fptr != NULL)
+ {
+ temp_sig = self_->current_sig; /* provide only a copy to the application */
+ result = self_->eval_fptr(self_->cb_inst_ptr, &temp_sig);
+
+ switch (result)
+ {
+ case UCS_ND_CHK_UNKNOWN:
+ Fsm_SetEvent(&self_->fsm, ND_E_RES_UNKNOWN);
+ service_flag = true;
+ break;
+
+ case UCS_ND_CHK_WELCOME:
+ Fsm_SetEvent(&self_->fsm, ND_E_RES_NODE_OK);
+ service_flag = true;
+ break;
+
+ case UCS_ND_CHK_UNIQUE:
+ Fsm_SetEvent(&self_->fsm, ND_E_RES_CHECK_UNIQUE);
+ service_flag = true;
+ break;
+
+ default:
+ Fsm_SetEvent(&self_->fsm, ND_E_ERROR);
+ service_flag = true;
+ break;
+ }
+ }
+ }
+
+ if (service_flag == true)
+ {
+ Srv_SetEvent(&self_->service, ND_EVENT_SERVICE);
+ }
+}
+
+
+/*! \brief Sends a Welcome message to the current node
+ *
+ * \param *self Reference to Node Discovery object
+ */
+static void Nd_A_Welcome(void *self)
+{
+ CNodeDiscovery *self_ = (CNodeDiscovery *)self;
+
+ Nd_Send_Welcome_SR(self, &self_->current_sig);
+}
+
+
+/*! \brief Report the current node as unknown
+ *
+ * \param *self Reference to Node Discovery object
+ */
+static void Nd_A_Unknown(void *self)
+{
+ CNodeDiscovery *self_ = (CNodeDiscovery *)self;
+ Ucs_Signature_t temp_sig;
+
+ if (self_->report_fptr != NULL)
+ {
+ temp_sig = self_->current_sig; /* provide only a copy to the application */
+ self_->report_fptr(self_->cb_inst_ptr, UCS_ND_RES_UNKNOWN, &temp_sig);
+ }
+
+ Fsm_SetEvent(&self_->fsm, ND_E_CHECK);
+ Srv_SetEvent(&self_->service, ND_EVENT_SERVICE);
+}
+
+/*! \brief Check if the current node has already got a Welcome message
+ *
+ * \param *self Reference to Node Discovery object
+ */
+static void Nd_A_CheckUnique(void *self)
+{
+ CNodeDiscovery *self_ = (CNodeDiscovery *)self;
+
+ Nd_Send_Signature_Get(self, self_->current_sig.node_address);
+
+}
+
+
+/*! \brief Report a successful Welcome.Result
+ *
+ * \param *self Reference to Node Discovery object
+ */
+static void Nd_A_WelcomeSuccess(void *self)
+{
+ CNodeDiscovery *self_ = (CNodeDiscovery *)self;
+ Ucs_Signature_t temp_sig;
+
+ if (self_->report_fptr != NULL)
+ {
+ temp_sig = self_->current_sig; /* provide only a copy to the application */
+ self_->report_fptr(self_->cb_inst_ptr, UCS_ND_RES_WELCOME_SUCCESS, &temp_sig);
+ }
+
+ /* initiate a Hello.Get if the current node is the local INIC */
+ if (self_->current_sig.node_pos_addr == 0x0400U)
+ {
+ Nd_Send_Hello_Get(self_);
+ Nd_Start_Periodic_Timer(self_);
+ }
+
+ Fsm_SetEvent(&self_->fsm, ND_E_CHECK);
+ Srv_SetEvent(&self_->service, ND_EVENT_SERVICE);
+}
+
+
+/*! \brief Report an unsuccessful Welcome.Result
+ *
+ * \param *self Reference to Node Discovery object
+ */
+static void Nd_A_WelcomeNoSuccess(void *self)
+{
+ CNodeDiscovery *self_ = (CNodeDiscovery *)self;
+
+ /* same reaction as for MPR event */
+ self_->hello_mpr_request = true;
+
+ Fsm_SetEvent(&self_->fsm, ND_E_CHECK);
+ Srv_SetEvent(&self_->service, ND_EVENT_SERVICE);
+}
+
+
+/*! \brief Reaction on a timeout for the Welcome messsage
+ *
+ * \param *self Reference to Node Discovery object
+ */
+static void Nd_A_WelcomeTimeout(void *self)
+{
+ CNodeDiscovery *self_ = (CNodeDiscovery *)self;
+
+ /* same reaction as for MPR event */
+ self_->hello_mpr_request = true;
+
+ Fsm_SetEvent(&self_->fsm, ND_E_CHECK);
+ Srv_SetEvent(&self_->service, ND_EVENT_SERVICE);
+}
+
+
+/*! \brief The periodic timer elapsed
+ *
+ * \param *self Reference to Node Discovery object
+ */
+static void Nd_A_Timeout_Hello(void *self)
+{
+ CNodeDiscovery *self_ = (CNodeDiscovery *)self;
+
+ Nd_Send_Hello_Get(self_);
+ Nd_Start_Periodic_Timer(self_);
+}
+
+
+/*! \brief Reaction on a NetOff event
+ *
+ * \param *self Reference to Node Discovery object
+ */
+static void Nd_A_NetOff(void *self)
+{
+ CNodeDiscovery *self_ = (CNodeDiscovery *)self;
+ Ucs_Signature_t *dummy = NULL;
+
+ if (self_->report_fptr != NULL)
+ {
+ self_->report_fptr(self_->cb_inst_ptr, UCS_ND_RES_NETOFF, dummy);
+ }
+
+ Nd_Reset_Lists(self_);
+
+}
+
+
+/*! \brief Reaction on a timeout of the Signature command
+ *
+ * \param *self Reference to Node Discovery object
+ */
+static void Nd_A_Signature_Timeout(void *self)
+{
+ CNodeDiscovery *self_ = (CNodeDiscovery *)self;
+
+ Nd_Send_Welcome_SR(self, &self_->current_sig);
+}
+
+
+/*! \brief Reaction on a successful Signature answer
+ *
+ * \param *self Reference to Node Discovery object
+ */
+static void Nd_A_Signature_Success(void *self)
+{
+ CNodeDiscovery *self_ = (CNodeDiscovery *)self;
+ Ucs_Signature_t temp_sig;
+
+ if (self_->report_fptr != NULL)
+ {
+ temp_sig = self_->current_sig; /* provide only a copy to the application */
+ self_->report_fptr(self_->cb_inst_ptr, UCS_ND_RES_MULTI, &temp_sig);
+ }
+}
+
+
+/*! \brief An unecpected error occurred
+ *
+ * \param *self Reference to Node Discovery object
+ */
+static void Nd_A_Error(void *self)
+{
+ CNodeDiscovery *self_ = (CNodeDiscovery *)self;
+ Ucs_Signature_t *dummy = NULL;
+
+ if (self_->report_fptr != NULL)
+ {
+ self_->report_fptr(self_->cb_inst_ptr, UCS_ND_RES_ERROR, dummy);
+ }
+ self_->running = false;
+}
+
+
+/**************************************************************************************************/
+/* Callback functions */
+/**************************************************************************************************/
+
+/*! Callback function for the Exc.Hello.Status message
+ *
+ * \param *self Reference to Node Discovery object
+ * \param *result_ptr Result of the Exc_Hello_Get() command
+ */
+static void Nd_HelloStatusCb(void *self, void *result_ptr)
+{
+ CNodeDiscovery *self_ = (CNodeDiscovery *)self;
+ Exc_StdResult_t *result_ptr_ = (Exc_StdResult_t *)result_ptr;
+ CDlNode *node;
+
+ if (result_ptr_->result.code == UCS_RES_SUCCESS)
+ {
+ /* read signature and store it in the new_list */
+ node = Dl_PopHead(&(self_->unused_list)); /* get an unused list element */
+ if (node != NULL)
+ {
+ ((Nd_Node *)(node->data_ptr))->signature = (*(Exc_HelloStatus_t *)(result_ptr_->data_info)).signature;
+ Dl_InsertTail(&(self_->new_list), node);
+
+ Fsm_SetEvent(&self_->fsm, ND_E_HELLO_STATUS);
+ TR_INFO((self_->base->ucs_user_ptr, "[ND]", "Nd_HelloStatusCb UCS_RES_SUCCESS", 0U));
+ }
+ else
+ {
+ TR_INFO((self_->base->ucs_user_ptr, "[ND]", "Nd_HelloStatusCb No list entry av.", 0U));
+ }
+ }
+ else
+ {
+ Fsm_SetEvent(&self_->fsm, ND_E_ERROR);
+ TR_INFO((self_->base->ucs_user_ptr, "[ND]", "Nd_HelloStatusCb ND_E_ERROR", 0U));
+ }
+
+ Srv_SetEvent(&self_->service, ND_EVENT_SERVICE);
+}
+
+
+/*! \brief Function is called on reception of the Welcome.Result messsage
+ * \param self Reference to Node Discovery object
+ * \param result_ptr Pointer to the result of the Welcome message
+ */
+static void Nd_WelcomeResultCb(void *self, void *result_ptr)
+{
+ CNodeDiscovery *self_ = (CNodeDiscovery *)self;
+ Exc_StdResult_t *result_ptr_ = (Exc_StdResult_t *)result_ptr;
+
+ Tm_ClearTimer(&self_->base->tm, &self_->timer);
+
+ if (result_ptr_->result.code == UCS_RES_SUCCESS)
+ {
+ /* read signature and store it */
+ self_->welcome_result = *(Exc_WelcomeResult_t *)(result_ptr_->data_info);
+ if (self_->welcome_result.res == EXC_WELCOME_SUCCESS)
+ {
+ Fsm_SetEvent(&self_->fsm, ND_E_WELCOME_SUCCESS);
+ TR_INFO((self_->base->ucs_user_ptr, "[ND]", "Nd_WelcomeResultCb ND_E_WELCOME_SUCCESS", 0U));
+ }
+ else
+ {
+ Fsm_SetEvent(&self_->fsm, ND_E_WELCOME_NOSUCCESS);
+ TR_INFO((self_->base->ucs_user_ptr, "[ND]", "Nd_WelcomeResultCb ND_E_WELCOME_NOSUCCESS", 0U));
+ }
+ }
+ else
+ {
+ uint8_t i;
+
+ if ( (result_ptr_->result.info_size == 3U)
+ && (result_ptr_->result.info_ptr[0] == 0x20U)
+ && (result_ptr_->result.info_ptr[1] == 0x03U)
+ && (result_ptr_->result.info_ptr[2] == 0x31U))
+ { /* Device has not yet received an ExtendedNetworkControl.Hello.Get() message. */
+ Fsm_SetEvent(&self_->fsm, ND_E_WELCOME_NOSUCCESS);
+ }
+ else
+ {
+ Fsm_SetEvent(&self_->fsm, ND_E_ERROR);
+ TR_INFO((self_->base->ucs_user_ptr, "[ND]", "Nd_WelcomeResultCb Error (code) 0x%x", 1U, result_ptr_->result.code));
+ for (i=0U; i< result_ptr_->result.info_size; ++i)
+ {
+ TR_INFO((self_->base->ucs_user_ptr, "[ND]", "Nd_WelcomeResultCb Error (info) 0x%x", 1U, result_ptr_->result.info_ptr[i]));
+ }
+ }
+ }
+
+ Srv_SetEvent(&self_->service, ND_EVENT_SERVICE);
+}
+
+
+/*! \brief Callback function for Signature status and error messages
+ *
+ * \param *self Reference to Node Discovery object
+ * \param *result_ptr Pointer to the result of the Signature message
+ */
+static void Nd_SignatureStatusCb(void *self, void *result_ptr)
+{
+ CNodeDiscovery *self_ = (CNodeDiscovery *)self;
+ Exc_StdResult_t *result_ptr_ = (Exc_StdResult_t *)result_ptr;
+
+ Tm_ClearTimer(&self_->base->tm, &self_->timer);
+
+ if (result_ptr_->result.code == UCS_RES_SUCCESS)
+ {
+ self_->signature_status = *(Exc_SignatureStatus_t *)(result_ptr_->data_info);
+ Fsm_SetEvent(&self_->fsm, ND_E_SIGNATURE_SUCCESS);
+ TR_INFO((self_->base->ucs_user_ptr, "[ND]", "Nd_SignatureStatusCb ND_E_SIGNATURE_SUCCESS", 0U));
+ }
+ else
+ {
+ Fsm_SetEvent(&self_->fsm, ND_E_ERROR);
+ TR_INFO((self_->base->ucs_user_ptr, "[ND]", "Nd_SignatureStatusCb Error 0x%x", 1U, result_ptr_->result.code));
+ }
+
+ Srv_SetEvent(&self_->service, ND_EVENT_SERVICE);
+}
+
+
+/*! \brief Callback function for Init error messages
+ *
+ * \param *self Reference to Node Discovery object
+ * \param *result_ptr Pointer to the result of the Init message
+ */
+static void Nd_InitCb(void *self, void *result_ptr)
+{
+ CNodeDiscovery *self_ = (CNodeDiscovery *)self;
+ Exc_StdResult_t *result_ptr_ = (Exc_StdResult_t *)result_ptr;
+
+ MISC_UNUSED(self_);
+ MISC_UNUSED(result_ptr_);
+
+}
+
+
+/*! \brief Timer callback used for supervising INIC command timeouts.
+ * \param self Reference to Node Discovery object
+ */
+static void Nd_TimerCb(void *self)
+{
+ CNodeDiscovery *self_ = (CNodeDiscovery *)self;
+
+ Fsm_SetEvent(&self_->fsm, ND_E_TIMEOUT);
+ TR_INFO((self_->base->ucs_user_ptr, "[ND]", "Nd_TimerCb ND_E_TIMEOUT", 0U));
+
+ Srv_SetEvent(&self_->service, ND_EVENT_SERVICE);
+}
+
+
+/*! Function is called on severe internal errors
+ *
+ * \param *self Reference to Node Discovery object
+ * \param *result_ptr Reference to data
+ */
+static void Nd_OnTerminateEventCb(void *self, void *result_ptr)
+{
+ CNodeDiscovery *self_ = (CNodeDiscovery *)self;
+ Ucs_Signature_t *dummy = NULL;
+
+ MISC_UNUSED(result_ptr);
+
+ if (self_->fsm.current_state != ND_S_IDLE)
+ {
+ Tm_ClearTimer(&self_->base->tm, &self_->timer);
+ if (self_->report_fptr != NULL)
+ {
+ self_->report_fptr(self_->cb_inst_ptr, UCS_ND_RES_ERROR, dummy);
+ }
+ Nd_Reset_Lists(self_);
+ }
+}
+
+
+/*! \brief Callback function for the INIC.NetworkStatus status and error messages
+ *
+ * \param *self Reference to Node Discovery object
+ * \param *result_ptr Pointer to the result of the INIC.NetworkStatus message
+ */
+static void Nd_NetworkStatusCb(void *self, void *result_ptr)
+{
+ CNodeDiscovery *self_ = (CNodeDiscovery *)self;
+ Inic_StdResult_t *result_ptr_ = (Inic_StdResult_t *)result_ptr;
+
+ if (result_ptr_->result.code == UCS_RES_SUCCESS)
+ {
+ TR_INFO((self_->base->ucs_user_ptr, "[ND]", "Nd_NetworkStatusCb 0x%x", 1U, result_ptr_->result.code));
+ /* check for NetOn/NetOff events */
+ if ( (self_->neton == true)
+ && ((((Inic_NetworkStatus_t *)(result_ptr_->data_info))->availability) == UCS_NW_NOT_AVAILABLE) )
+ {
+ self_->neton = false;
+ Fsm_SetEvent(&self_->fsm, ND_E_NET_OFF);
+ }
+ /* check for NetOn/NetOff events */
+ else if ( (self_->neton == false)
+ && ((((Inic_NetworkStatus_t *)(result_ptr_->data_info))->availability) == UCS_NW_AVAILABLE) )
+ {
+ self_->neton = true;
+ self_->hello_neton_request = true;
+ Fsm_SetEvent(&self_->fsm, ND_E_CHECK);
+ }
+ /* check for MPR event */
+ else if ( (((Inic_NetworkStatus_t *)(result_ptr_->data_info))->events & UCS_NETWORK_EVENT_NCE)
+ == UCS_NETWORK_EVENT_NCE)
+ {
+ self_->hello_mpr_request = true;
+ Fsm_SetEvent(&self_->fsm, ND_E_CHECK);
+ }
+ }
+
+ Srv_SetEvent(&self_->service, ND_EVENT_SERVICE);
+}
+
+
+
+/**************************************************************************************************/
+/* Helper functions */
+/**************************************************************************************************/
+/*! \brief Reset the list of new detected nodes
+ *
+ * \param *self Reference to Node Discovery object
+ */
+static void Nd_Reset_Lists(void *self)
+{
+ CNodeDiscovery *self_ = (CNodeDiscovery *)self;
+ uint16_t i;
+
+ Dl_Ctor(&self_->new_list, self_->base->ucs_user_ptr);
+ Dl_Ctor(&self_->unused_list, self_->base->ucs_user_ptr);
+
+ for(i=0U; i < ND_NUM_NODES; ++i)
+ {
+ Dln_Ctor(&(self_->nodes[i]).node, &(self_->nodes[i]));
+ Dl_InsertTail(&(self_->unused_list), &(self_->nodes[i]).node);
+ }
+}
+
+
+/*! \brief Send the Hello.Get message
+ *
+ * \param *self Reference to Node Discovery object
+ */
+static void Nd_Send_Hello_Get(void *self)
+{
+ Ucs_Return_t ret_val;
+ CNodeDiscovery *self_ = (CNodeDiscovery *)self;
+
+ ret_val = Exc_Hello_Get(self_->exc, UCS_ADDR_BROADCAST_BLOCKING,
+ ND_SIGNATURE_VERSION, &self_->nd_hello);
+
+ TR_ASSERT(self_->base->ucs_user_ptr, "[ND]", ret_val == UCS_RET_SUCCESS);
+ MISC_UNUSED(ret_val);
+}
+
+
+/*! \brief Send the Welcome.StartResult message
+ *
+ * \param *self Reference to Node Discovery object
+ * \param *signature signature parameter
+ */
+static void Nd_Send_Welcome_SR(void *self, Ucs_Signature_t *signature)
+{
+ Ucs_Return_t ret_val;
+ CNodeDiscovery *self_ = (CNodeDiscovery *)self;
+ uint16_t target_address;
+
+ if (signature->node_pos_addr == 0x0400U)
+ {
+ target_address = 0x0001U;
+ }
+ else
+ {
+ target_address = signature->node_pos_addr;
+ }
+
+ ret_val = Exc_Welcome_Sr(self_->exc,
+ target_address,
+ 0xFFFFU,
+ ND_SIGNATURE_VERSION,
+ *signature,
+ &self_->nd_welcome);
+ Tm_SetTimer(&self_->base->tm,
+ &self_->timer,
+ &Nd_TimerCb,
+ self_,
+ ND_TIMEOUT_COMMAND,
+ 0U);
+ TR_ASSERT(self_->base->ucs_user_ptr, "[ND]", ret_val == UCS_RET_SUCCESS);
+ MISC_UNUSED(ret_val);
+}
+
+
+/*! \brief Send the Signature.Get message
+ *
+ * \param *self Reference to Node Discovery object
+ * \param target_address target address for the command
+ */
+static void Nd_Send_Signature_Get(void *self, uint16_t target_address)
+{
+ Ucs_Return_t ret_val;
+ CNodeDiscovery *self_ = (CNodeDiscovery *)self;
+
+ ret_val = Exc_Signature_Get(self_->exc, target_address, ND_SIGNATURE_VERSION, &self_->nd_signature);
+ Tm_SetTimer(&self_->base->tm,
+ &self_->timer,
+ &Nd_TimerCb,
+ self_,
+ ND_TIMEOUT_COMMAND,
+ 0U);
+ TR_ASSERT(self_->base->ucs_user_ptr, "[ND]", ret_val == UCS_RET_SUCCESS);
+ MISC_UNUSED(ret_val);
+}
+
+/*! \brief Starts the periodic timer
+ *
+ * \param *self Reference to Node Discovery object
+ */
+static void Nd_Start_Periodic_Timer(void *self)
+{
+ CNodeDiscovery *self_ = (CNodeDiscovery *)self;
+
+ Tm_SetTimer(&self_->base->tm,
+ &self_->timer,
+ &Nd_TimerCb,
+ self,
+ ND_TIMEOUT_PERIODIC,
+ 0U);
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_nodeobserver.c b/ucs2-lib/src/ucs_nodeobserver.c
new file mode 100644
index 0000000..5832e41
--- /dev/null
+++ b/ucs2-lib/src/ucs_nodeobserver.c
@@ -0,0 +1,341 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of CNodeObserver class
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_NODEOBSERVER
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_nodeobserver.h"
+#include "ucs_misc.h"
+#include "ucs_trace.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal constants */
+/*------------------------------------------------------------------------------------------------*/
+#define NOBS_ADDR_ADMIN_MIN 0xF80U /*!< \brief Start of address range to park unknown devices */
+#define NOBS_ADDR_ADMIN_MAX 0xFDFU /*!< \brief End of address range to park unknown devices */
+
+#define NOBS_ADDR_RANGE1_MIN 0x200U /*!< \brief Start of first static address range */
+#define NOBS_ADDR_RANGE1_MAX 0x2FFU /*!< \brief End of first static address range */
+#define NOBS_ADDR_RANGE2_MIN 0x500U /*!< \brief Start of second static address range */
+#define NOBS_ADDR_RANGE2_MAX 0xEFFU /*!< \brief End of second static address range */
+
+#define NOSB_JOIN_NO 0x00U
+#define NOSB_JOIN_WAIT 0x01U
+#define NOSB_JOIN_YES 0x02U
+
+#define NOBS_WAIT_TIME 200U /*!< \brief Wait time between node not_available -> available */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal prototypes */
+/*------------------------------------------------------------------------------------------------*/
+static void Nobs_OnInitComplete(void *self, void *error_code_ptr);
+static void Nobs_OnWakeupTimer(void *self);
+static bool Nobs_CheckAddrRange(CNodeObserver *self, Ucs_Signature_t *signature_ptr);
+static void Nobs_InitAllNodes(CNodeObserver *self);
+static void Nobs_InvalidateAllNodes(CNodeObserver *self);
+static void Nobs_InvalidateNode(CNodeObserver *self, Ucs_Rm_Node_t *node_ptr);
+static Ucs_Rm_Node_t* Nobs_GetNodeBySignature(CNodeObserver *self, Ucs_Signature_t *signature_ptr);
+static void Nobs_NotifyApp(CNodeObserver *self, Ucs_MgrReport_t code, uint16_t node_address, Ucs_Rm_Node_t *node_ptr);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Class methods */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Constructor of NodeObserver class
+ * \param self The instance
+ * \param base_ptr Reference to base component
+ * \param nd_ptr Reference to NodeDiscovery component
+ * \param rtm_ptr Reference to RoutingManagement component
+ * \param init_ptr Reference to initialization data
+ */
+void Nobs_Ctor(CNodeObserver *self, CBase *base_ptr, CNodeDiscovery *nd_ptr, CRouteManagement *rtm_ptr, Ucs_Mgr_InitData_t *init_ptr)
+{
+ MISC_MEM_SET(self, 0, sizeof(*self));
+ self->base_ptr = base_ptr;
+ self->nd_ptr = nd_ptr;
+ self->rtm_ptr = rtm_ptr;
+ if (init_ptr != NULL)
+ {
+ self->init_data = *init_ptr;
+ }
+ Nobs_InitAllNodes(self);
+ T_Ctor(&self->wakeup_timer);
+
+ Mobs_Ctor(&self->event_observer, self, EH_E_INIT_SUCCEEDED, &Nobs_OnInitComplete);
+ Eh_AddObsrvInternalEvent(&self->base_ptr->eh, &self->event_observer);
+}
+
+/*! \brief Callback function which is invoked if the initialization is complete
+ * \param self The instance
+ * \param error_code_ptr Reference to the error code
+ */
+static void Nobs_OnInitComplete(void *self, void *error_code_ptr)
+{
+ CNodeObserver *self_ = (CNodeObserver*)self;
+ MISC_UNUSED(error_code_ptr);
+
+ (void)Nd_Start(self_->nd_ptr);
+ (void)Rtm_StartProcess(self_->rtm_ptr, self_->init_data.routes_list_ptr, self_->init_data.routes_list_size);
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Callback Methods */
+/*------------------------------------------------------------------------------------------------*/
+Ucs_Nd_CheckResult_t Nobs_OnNdEvaluate(void *self, Ucs_Signature_t *signature_ptr)
+{
+ CNodeObserver *self_ = (CNodeObserver*)self;
+ Ucs_Rm_Node_t *node_ptr = NULL;
+ Ucs_Nd_CheckResult_t ret = UCS_ND_CHK_UNKNOWN; /* ignore by default */
+
+ if (signature_ptr != NULL)
+ {
+ if (Nobs_CheckAddrRange(self_, signature_ptr) != false)
+ {
+ node_ptr = Nobs_GetNodeBySignature(self_, signature_ptr);
+
+ if (node_ptr != NULL)
+ {
+ if (node_ptr->internal_infos.mgr_joined == NOSB_JOIN_NO)
+ {
+ ret = UCS_ND_CHK_WELCOME; /* welcome new node */
+ }
+ else if (node_ptr->internal_infos.mgr_joined == NOSB_JOIN_YES)
+ {
+ ret = UCS_ND_CHK_UNIQUE; /* node already available - check for reset */
+ }
+ /* else if (node_ptr->internal_infos.mgr_joined == NOSB_JOIN_WAIT) --> ignore waiting nodes */
+ /* future version compare node position to improve handling */
+ }
+ }
+
+ self_->eval_signature = *signature_ptr;
+ TR_INFO((self_->base_ptr->ucs_user_ptr, "[NOBS]", "Nobs_OnNdEvaluate(): node=0x%03X, node_pos=0x%03X, ret=0x%02X", 2U, signature_ptr->node_address, signature_ptr->node_pos_addr, ret));
+ }
+ else
+ {
+ MISC_MEM_SET(&self_->eval_signature, 0, sizeof(self_->eval_signature)); /* reset signature */
+ TR_FAILED_ASSERT(self_->base_ptr->ucs_user_ptr, "[NOBS]"); /* signature missing - it is evident for evaluation */
+ }
+
+ self_->eval_node_ptr = node_ptr;
+ self_->eval_action = ret;
+
+ if ((ret == UCS_ND_CHK_UNKNOWN) && (signature_ptr != NULL)) /* notify unknown node */
+ {
+ Nobs_NotifyApp(self_, UCS_MGR_REP_IGNORED_UNKNOWN, signature_ptr->node_address, NULL);
+ }
+
+ return ret;
+}
+
+void Nobs_OnNdReport(void *self, Ucs_Nd_ResCode_t code, Ucs_Signature_t *signature_ptr)
+{
+ CNodeObserver *self_ = (CNodeObserver*)self;
+ Ucs_Rm_Node_t *node_ptr = NULL;
+
+ if (signature_ptr != NULL)
+ {
+ TR_INFO((self_->base_ptr->ucs_user_ptr, "[NOBS]", "Nobs_OnNdReport(): code=0x%02X, node=0x%03X, node_pos=0x%03X", 3U, code, signature_ptr->node_address, signature_ptr->node_pos_addr));
+ node_ptr = Nobs_GetNodeBySignature(self_, signature_ptr);
+ if (node_ptr != self_->eval_node_ptr) /* if signature available -> expecting the same node_ptr as previously announced in Nobs_OnNdEvaluate */
+ {
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[NOBS]", "Nobs_OnNdReport(): sanity check failed node_ptr=%p, eval_node_ptr=%p", 2U, node_ptr, self_->eval_node_ptr));
+ node_ptr = NULL; /* do not handle node */
+ }
+ }
+ else
+ {
+ TR_INFO((self_->base_ptr->ucs_user_ptr, "[NOBS]", "Nobs_OnNdReport(): code=0x%02X", 1U, code));
+ }
+
+ if (code == UCS_ND_RES_NETOFF)
+ {
+ Nobs_InvalidateAllNodes(self_);
+ }
+ else if (node_ptr == NULL)
+ {
+ /* no not handle events with unspecified node */
+ }
+ else if ((code == UCS_ND_RES_WELCOME_SUCCESS) && (self_->eval_action == UCS_ND_CHK_WELCOME)) /* is new node? */
+ {
+ TR_INFO((self_->base_ptr->ucs_user_ptr, "[NOBS]", "Nobs_OnNdReport(): welcome of new node=0x%03X", 1U, signature_ptr->node_address));
+ node_ptr->internal_infos.mgr_joined = NOSB_JOIN_YES;
+ (void)Rtm_SetNodeAvailable(self_->rtm_ptr, node_ptr, true);
+ Nobs_NotifyApp(self_, UCS_MGR_REP_AVAILABLE, signature_ptr->node_address, node_ptr);
+ }
+ else if ((code == UCS_ND_RES_WELCOME_SUCCESS) && (self_->eval_action == UCS_ND_CHK_UNIQUE)) /* is node that previously joined */
+ {
+ TR_INFO((self_->base_ptr->ucs_user_ptr, "[NOBS]", "Nobs_OnNdReport(): welcome of existing node=0x%03X (RESET -> not_available)", 1U, signature_ptr->node_address));
+ node_ptr->internal_infos.mgr_joined = NOSB_JOIN_WAIT;
+ (void)Rtm_SetNodeAvailable(self_->rtm_ptr, node_ptr, false);
+ Nobs_NotifyApp(self_, UCS_MGR_REP_NOT_AVAILABLE, signature_ptr->node_address, node_ptr);
+ (void)Nd_Stop(self_->nd_ptr); /* stop node discovery and restart after timeout, */
+ Tm_SetTimer(&self_->base_ptr->tm, &self_->wakeup_timer, &Nobs_OnWakeupTimer, /* transition from node not_available -> available */
+ self, /* needs some time and no callback is provided. */
+ NOBS_WAIT_TIME,
+ 0U
+ );
+ }
+ else if ((code == UCS_ND_RES_MULTI) && (self_->eval_action == UCS_ND_CHK_UNIQUE)) /* is node that causes address conflict */
+ {
+ /* just ignore */
+ TR_INFO((self_->base_ptr->ucs_user_ptr, "[NOBS]", "Nobs_OnNdReport(): ignoring duplicate node=0x%03X", 1U, signature_ptr->node_address));
+ Nobs_NotifyApp(self_, UCS_MGR_REP_IGNORED_DUPLICATE, signature_ptr->node_address, NULL);
+ }
+ else if (code == UCS_ND_RES_UNKNOWN)
+ {
+ /* just ignore */
+ TR_INFO((self_->base_ptr->ucs_user_ptr, "[NOBS]", "Nobs_OnNdReport(): ignoring unknown node=0x%03X", 1U, signature_ptr->node_address));
+ }
+ else
+ {
+ /* just ignore */
+ TR_INFO((self_->base_ptr->ucs_user_ptr, "[NOBS]", "Nobs_OnNdReport(): ignoring node in unexpected, node=0x%03X, code=0x02X ", 2U, signature_ptr->node_address, code));
+ }
+}
+
+static void Nobs_OnWakeupTimer(void *self)
+{
+ CNodeObserver *self_ = (CNodeObserver*)self;
+
+ if (self_->eval_node_ptr != NULL)
+ {
+ if (self_->eval_node_ptr->internal_infos.mgr_joined == NOSB_JOIN_WAIT)
+ {
+ TR_INFO((self_->base_ptr->ucs_user_ptr, "[NOBS]", "Nobs_OnWakeupTimer(): welcome of existing node 0x%03X (RESET -> available)", 1U, self_->eval_node_ptr->signature_ptr->node_address));
+ self_->eval_node_ptr->internal_infos.mgr_joined = NOSB_JOIN_YES;
+ (void)Rtm_SetNodeAvailable(self_->rtm_ptr, self_->eval_node_ptr, true);
+ Nobs_NotifyApp(self_, UCS_MGR_REP_AVAILABLE, self_->eval_signature.node_address, self_->eval_node_ptr);
+ }
+ }
+ (void)Nd_Start(self_->nd_ptr);
+}
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Helper Methods */
+/*------------------------------------------------------------------------------------------------*/
+
+/*! \brief Checks if the node address in signature is in supported address range
+ * \param self The instance
+ * \param signature_ptr Reference to the nodes signature
+ * \return Returns \c true if the address in signature is supported, otherwise \c false.
+ */
+static bool Nobs_CheckAddrRange(CNodeObserver *self, Ucs_Signature_t *signature_ptr)
+{
+ bool ret = false;
+
+ if (((signature_ptr->node_address >= NOBS_ADDR_RANGE1_MIN) && (signature_ptr->node_address <= NOBS_ADDR_RANGE1_MAX)) ||
+ ((signature_ptr->node_address >= NOBS_ADDR_RANGE2_MIN) && (signature_ptr->node_address <= NOBS_ADDR_RANGE2_MAX)))
+ {
+ ret = true;
+ }
+ MISC_UNUSED(self);
+
+ return ret;
+}
+
+static void Nobs_InitAllNodes(CNodeObserver *self)
+{
+ if (self->init_data.nodes_list_ptr != NULL)
+ {
+ uint32_t cnt = 0U;
+
+ for (cnt = 0U; cnt < self->init_data.nodes_list_size; cnt++)
+ {
+ self->init_data.nodes_list_ptr[cnt].internal_infos.available = 0U;
+ self->init_data.nodes_list_ptr[cnt].internal_infos.mgr_joined = NOSB_JOIN_NO;
+ }
+ }
+}
+
+static void Nobs_InvalidateAllNodes(CNodeObserver *self)
+{
+ if (self->init_data.nodes_list_ptr != NULL)
+ {
+ uint32_t cnt = 0U;
+
+ for (cnt = 0U; cnt < self->init_data.nodes_list_size; cnt++)
+ {
+ Nobs_InvalidateNode(self, &self->init_data.nodes_list_ptr[cnt]);
+ }
+ }
+}
+
+static void Nobs_InvalidateNode(CNodeObserver *self, Ucs_Rm_Node_t *node_ptr)
+{
+ if (node_ptr->internal_infos.mgr_joined == NOSB_JOIN_YES) /* notify welcomed nodes as invalid */
+ {
+ Nobs_NotifyApp(self, UCS_MGR_REP_NOT_AVAILABLE, node_ptr->signature_ptr->node_address, node_ptr);
+ }
+
+ node_ptr->internal_infos.mgr_joined = NOSB_JOIN_NO;
+ /* RoutingManagement individually cares for network-not-available event */
+ /* (void)Rtm_SetNodeAvailable(self->rtm_ptr, &self->init_data.nodes_list_ptr[cnt], false); */
+}
+
+static Ucs_Rm_Node_t* Nobs_GetNodeBySignature(CNodeObserver *self, Ucs_Signature_t *signature_ptr)
+{
+ Ucs_Rm_Node_t* ret = NULL;
+
+ if ((signature_ptr != NULL) && (self->init_data.nodes_list_ptr != NULL))
+ {
+ uint32_t cnt = 0U;
+ uint16_t node_addr = signature_ptr->node_address;
+
+ for (cnt = 0U; cnt < self->init_data.nodes_list_size; cnt++)
+ {
+ if (node_addr == self->init_data.nodes_list_ptr[cnt].signature_ptr->node_address)
+ {
+ ret = &self->init_data.nodes_list_ptr[cnt];
+ break;
+ }
+ }
+ }
+
+ return ret;
+}
+
+static void Nobs_NotifyApp(CNodeObserver *self, Ucs_MgrReport_t code, uint16_t node_address, Ucs_Rm_Node_t *node_ptr)
+{
+ if (self->init_data.report_fptr != NULL)
+ {
+ self->init_data.report_fptr(code, node_address, node_ptr, self->base_ptr->ucs_user_ptr);
+ }
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_nsm.c b/ucs2-lib/src/ucs_nsm.c
new file mode 100644
index 0000000..1e3a7e5
--- /dev/null
+++ b/ucs2-lib/src/ucs_nsm.c
@@ -0,0 +1,725 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of the Node Scripting Management.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_NSM
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_nsm.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Service parameters */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief API locking Bitmask for Nsm_SendCurrScriptToTrcv() method. */
+#define NSM_RCMTX_API_LOCK 0x0001U
+
+/*! \brief Priority of the RSM service used by scheduler */
+static const uint8_t NSM_SRV_PRIO = 250U; /* parasoft-suppress MISRA2004-8_7 "Value shall be part of the module, not part of a function." */
+/*! \brief Event for handling the next script */
+static const Srv_Event_t NSM_EVENT_HANDLE_NEXTSCRIPT = 0x01U;
+/*! \brief Event for handling error in scripting */
+static const Srv_Event_t NSM_EVENT_HANDLE_ERROR = 0x02U;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal prototypes */
+/*------------------------------------------------------------------------------------------------*/
+static void Nsm_Service(void *self);
+static Ucs_Return_t Nsm_Start(CNodeScriptManagement * self);
+static void Nsm_HandleApiTimeout(void *self, void *method_mask_ptr);
+static void Nsm_UcsInitSucceededCb(void *self, void *event_ptr);
+static void Nsm_UninitializeService(void *self, void *error_code_ptr);
+static Ucs_Return_t Nsm_HandleNextScript(CNodeScriptManagement * self);
+static Ucs_Return_t Nsm_DeviceSync(CNodeScriptManagement * self);
+static Ucs_Return_t Nsm_SendCurrScriptToTrcv(CNodeScriptManagement * self);
+static void Nsm_HandleError(CNodeScriptManagement * self);
+static void Nsm_Finished(CNodeScriptManagement * self);
+static bool Nsm_IsNextScriptAvailable(CNodeScriptManagement * self);
+static void Nsm_IncrCurrScriptPtr (CNodeScriptManagement * self);
+static void Nsm_MsgTxStatusCb(void *self, Msg_MostTel_t *tel_ptr, Ucs_MsgTxStatus_t status);
+static bool Nsm_IsCurrDeviceSynced(CNodeScriptManagement *self);
+static void Nsm_RmtDevSyncResultCb(void *self, Rsm_Result_t result);
+static Ucs_Return_t Nsm_PauseScript(CNodeScriptManagement * self);
+static void Nsm_ResumeScriptHandling(void* self);
+static void Nsm_ApiLocking(CNodeScriptManagement *self, bool status);
+static bool Nsm_IsApiFree(CNodeScriptManagement *self);
+static void Nsm_SendScriptResult(CNodeScriptManagement *self);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation of class CNodeScriptManagement */
+/*------------------------------------------------------------------------------------------------*/
+/*------------------------------------------------------------------------------------------------*/
+/* Initialization Methods */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Constructor of the Node Script Manager class.
+ * \param self Instance pointer
+ * \param init_ptr init data_ptr
+ */
+void Nsm_Ctor(CNodeScriptManagement *self, Nsm_InitData_t *init_ptr)
+{
+ MISC_MEM_SET(self, 0, sizeof(CNodeScriptManagement));
+
+ /* Init all reference instances */
+ self->base_ptr = init_ptr->base_ptr;
+ self->rcm_ptr = init_ptr->rcm_ptr;
+ self->rsm_ptr = init_ptr->rsm_ptr;
+ self->tm_ptr = &init_ptr->base_ptr->tm;
+ self->target_address = Inic_GetTargetAddress(self->rsm_ptr->inic_ptr);
+
+ /* Initialize NSM service */
+ Srv_Ctor(&self->nsm_srv, NSM_SRV_PRIO, self, &Nsm_Service);
+
+ /* Initialize API locking mechanism */
+ Sobs_Ctor(&self->lock.observer, self, &Nsm_HandleApiTimeout);
+ Al_Ctor(&self->lock.rcm_api, &self->lock.observer, self->base_ptr->ucs_user_ptr);
+ Alm_RegisterApi(&self->base_ptr->alm, &self->lock.rcm_api);
+
+ /* Add NSM service to scheduler */
+ (void)Scd_AddService(&self->base_ptr->scd, &self->nsm_srv);
+
+ /* Inits observer for UCS termination */
+ Mobs_Ctor(&self->ucstermination_observer, self, EH_M_TERMINATION_EVENTS, &Nsm_UninitializeService);
+ Eh_AddObsrvInternalEvent(&self->base_ptr->eh, &self->ucstermination_observer);
+
+ /* Inits observer for UCS initialization */
+ Mobs_Ctor(&self->ucsinit_observer, self, EH_E_INIT_SUCCEEDED, &Nsm_UcsInitSucceededCb);
+ Eh_AddObsrvInternalEvent(&self->base_ptr->eh, &self->ucsinit_observer);
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Service */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Executes the script(s) in the given Node.
+ *
+ * \param self Instance pointer of the CNodeScriptManagement
+ * \param node_ptr Reference to the node instance.
+ * \param pb_result_fptr Reference to the result function pointer
+ * \return Possible return values are:
+ * - \c UCS_RET_ERR_API_LOCKED the API is locked.
+ * - \c UCS_RET_SUCCESS if the execution was started successfully
+ * - \c UCS_RET_ERR_BUFFER_OVERFLOW if no TxHandles available
+ * - \c UCS_RET_ERR_PARAM At least one parameter is NULL
+ * - \c UCS_RET_ERR_NOT_AVAILABLE Timer is not available for pausing the script process
+ */
+Ucs_Return_t Nsm_Run_Pb(CNodeScriptManagement * self, Ucs_Rm_Node_t * node_ptr, Ucs_Ns_ResultCb_t pb_result_fptr)
+{
+ Ucs_Return_t result = UCS_RET_ERR_API_LOCKED;
+
+ if(Nsm_IsApiFree(self) != false)
+ {
+ result = UCS_RET_ERR_PARAM;
+ if ((node_ptr != NULL) && (node_ptr->script_list_ptr != NULL) && (node_ptr->script_list_size > 0U))
+ {
+ /* Locked API */
+ Nsm_ApiLocking(self, true);
+
+ /* Private API is not used */
+ self->is_private_api_used = false;
+
+ /* Sets internal scripts references */
+ self->curr_pb_result_fptr = pb_result_fptr;
+ self->curr_node_ptr = node_ptr;
+ self->curr_sript_ptr = self->curr_node_ptr->script_list_ptr;
+ self->curr_sript_size = self->curr_node_ptr->script_list_size;
+ self->curr_rxfilter_fptr = NULL;
+
+ /* Runs script(s) */
+ result = Nsm_Start(self);
+ }
+
+ /* Release Locking if synchronous result is not successful */
+ if (result != UCS_RET_SUCCESS)
+ {
+ Nsm_ApiLocking(self, false);
+ }
+ }
+
+ return result;
+}
+
+/*! \brief Executes the given script(s).
+ *
+ * \param self Instance pointer of the CNodeScriptManagement
+ * \param script Reference to the scripts table to be executed
+ * \param size Size of the scripts table
+ * \param user_ptr Reference to the caller instance
+ * \param rx_filter_fptr Reference to the optional RX filter callback function pointer
+ * \param result_fptr Reference to the optional result callback function pointer
+ * \return Possible return values are:
+ * - \c UCS_RET_ERR_API_LOCKED the API is locked.
+ * - \c UCS_RET_SUCCESS if the execution was started successfully
+ * - \c UCS_RET_ERR_BUFFER_OVERFLOW if no TxHandles available
+ * - \c UCS_RET_ERR_PARAM At least one parameter is NULL
+ * - \c UCS_RET_ERR_NOT_AVAILABLE Timer is not available for pausing the script process
+ */
+Ucs_Return_t Nsm_Run_Pv(CNodeScriptManagement * self, Ucs_Ns_Script_t * script, uint8_t size, void * user_ptr, Nsm_RxFilterCb_t rx_filter_fptr, Nsm_ResultCb_t result_fptr)
+{
+ Ucs_Return_t result = UCS_RET_ERR_API_LOCKED;
+
+ if(Nsm_IsApiFree(self) != false)
+ {
+ result = UCS_RET_ERR_PARAM;
+ if ((script != NULL) && (size > 0U))
+ {
+ /* Locked API */
+ Nsm_ApiLocking(self, true);
+
+ /* Private API is not used */
+ self->is_private_api_used = true;
+
+ /* Sets internal scripts references */
+ self->curr_sript_ptr = script;
+ self->curr_sript_size = size;
+ self->curr_user_ptr = user_ptr;
+ self->curr_rxfilter_fptr = rx_filter_fptr;
+ self->curr_pv_result_fptr = result_fptr;
+
+ /* Runs script(s) */
+ result = Nsm_Start(self);
+ }
+
+ /* Release Locking if synchronous result is not successful */
+ if (result != UCS_RET_SUCCESS)
+ {
+ Nsm_ApiLocking(self, false);
+ }
+ }
+
+ return result;
+}
+
+/*! \brief Filters RCM Rx messages allotted to NSM.
+ * \details The filter function shall not release the message object
+ * \param self Instance pointer of the CNodeScriptManagement
+ * \param tel_ptr Reference to the RCM Rx message object
+ * \return \c true if message is allotted to NSM, otherwise \c false.
+ */
+bool Nsm_OnRcmRxFilter(void *self, Msg_MostTel_t *tel_ptr)
+{
+ bool ret_val = false;
+ CNodeScriptManagement *self_ = (CNodeScriptManagement *)self;
+
+ if (self_ != NULL)
+ {
+ if (self_->curr_rxfilter_fptr != NULL)
+ {
+ ret_val = self_->curr_rxfilter_fptr(tel_ptr, self_->curr_user_ptr);
+ }
+
+ if (!ret_val)
+ {
+ if ((self_->curr_sript_ptr != NULL) && (self_->curr_sript_ptr->exp_result != NULL))
+ {
+ Ucs_Ns_ConfigMsg_t * tmp_exp_res = self_->curr_sript_ptr->exp_result;
+ if ((tmp_exp_res->FBlockId == tel_ptr->id.fblock_id) &&
+ (tmp_exp_res->FunktId == tel_ptr->id.function_id) &&
+ (tmp_exp_res->OpCode == tel_ptr->id.op_type) &&
+ (tmp_exp_res->InstId == tel_ptr->id.instance_id) &&
+ (tmp_exp_res->DataLen == tel_ptr->tel.tel_len))
+ {
+ uint8_t k = 0U;
+ ret_val = true;
+
+ if ((tmp_exp_res->DataPtr == NULL) && (tmp_exp_res->DataLen > 0U))
+ {
+ ret_val = false;
+ }
+
+ for (; ((k < tmp_exp_res->DataLen) && (ret_val == true)); k++)
+ {
+ if (tmp_exp_res->DataPtr[k] != tel_ptr->tel.tel_data_ptr[k])
+ {
+ ret_val = false;
+ }
+ }
+ }
+ }
+ }
+
+ if (ret_val)
+ {
+ TR_INFO((self_->base_ptr->ucs_user_ptr, "[NSM]", "Transfer of script [0x%X] completed", 1U, self_->curr_sript_ptr));
+ Al_Release(&self_->lock.rcm_api, NSM_RCMTX_API_LOCK);
+ Srv_SetEvent(&self_->nsm_srv, NSM_EVENT_HANDLE_NEXTSCRIPT);
+ Nsm_IncrCurrScriptPtr(self_);
+ }
+ }
+
+ return ret_val;
+}
+
+/*! \brief Checks if the API is locked.
+ * \param self Instance pointer
+ * \return \c true if the API is locked, otherwise \c false.
+ */
+bool Nsm_IsLocked(CNodeScriptManagement * self)
+{
+ bool ret_val = false;
+ if (self != NULL)
+ {
+ ret_val = !Nsm_IsApiFree(self);
+ }
+ return ret_val;
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Private Methods */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Service function of the Node Scripting management.
+ * \param self Instance pointer
+ */
+static void Nsm_Service(void *self)
+{
+ CNodeScriptManagement *self_ = (CNodeScriptManagement *)self;
+ Srv_Event_t event_mask;
+ Srv_GetEvent(&self_->nsm_srv, &event_mask);
+
+ /* Event to process list of routes */
+ if((event_mask & NSM_EVENT_HANDLE_NEXTSCRIPT) == NSM_EVENT_HANDLE_NEXTSCRIPT)
+ {
+ Srv_ClearEvent(&self_->nsm_srv, NSM_EVENT_HANDLE_NEXTSCRIPT);
+ (void)Nsm_HandleNextScript(self_);
+ }
+
+ /* Event to pause processing of routes list */
+ if ((event_mask & NSM_EVENT_HANDLE_ERROR) == NSM_EVENT_HANDLE_ERROR)
+ {
+ Srv_ClearEvent(&self_->nsm_srv, NSM_EVENT_HANDLE_ERROR);
+ Nsm_HandleError(self_);
+ }
+}
+
+/*! \brief Executes the script(s).
+ *
+ * \param self Instance pointer of the CNodeScriptManagement
+ * \return Possible return values are:
+ * - \c UCS_RET_SUCCESS if the execution was started successfully
+ * - \c UCS_RET_ERR_BUFFER_OVERFLOW if no TxHandles available
+ * - \c UCS_RET_ERR_NOT_AVAILABLE Timer is not available for pausing the script process
+ */
+static Ucs_Return_t Nsm_Start(CNodeScriptManagement * self)
+{
+ Ucs_Return_t result;
+
+ /* Inits internal result */
+ MISC_MEM_SET(&self->curr_internal_result, 0, sizeof(Nsm_Result_t));
+
+ /* Sets the pause for the current script */
+ self->curr_pause = self->curr_sript_ptr->pause;
+
+ if (Nsm_IsCurrDeviceSynced(self))
+ {
+ result = Nsm_HandleNextScript(self);
+ }
+ else
+ {
+ result = Nsm_DeviceSync(self);
+ }
+
+ return result;
+}
+
+/*! \brief Handles, if available, the next script in the list.
+ * \param self Instance pointer
+ * \return UCS_RET_SUCCESS script was transmitted successfully
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_PARAM Script to be executed is NULL
+ * \return UCS_RET_ERR_NOT_AVAILABLE Timer is not available for pausing the script process
+ */
+static Ucs_Return_t Nsm_HandleNextScript(CNodeScriptManagement * self)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ if (Nsm_IsNextScriptAvailable(self))
+ {
+ if (self->curr_pause > 0U)
+ {
+ result = Nsm_PauseScript(self);
+ }
+ else
+ {
+ result = Nsm_SendCurrScriptToTrcv(self);
+ if (result != UCS_RET_SUCCESS)
+ {
+ Srv_SetEvent(&self->nsm_srv, NSM_EVENT_HANDLE_ERROR);
+ TR_ERROR((self->base_ptr->ucs_user_ptr, "[NSM]", "Synchronous error occurred while sending script to Transceiver. ErrorCode:0x%02.", 1U, result));
+ }
+ else
+ {
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[NSM]", "Start transfer of script [0x%X] to Trcvr", 1U, self->curr_sript_ptr));
+ if ((self->curr_sript_ptr != NULL) && (self->curr_sript_ptr->exp_result == NULL) &&
+ (!self->is_private_api_used))
+ {
+ TR_ERROR((self->base_ptr->ucs_user_ptr, "[NSM]", "Expected_Result_Ptr is NULL. No expected result specified in the current script [0x%X].", 1U, self->curr_sript_ptr));
+ }
+ }
+ }
+ }
+ else
+ {
+ Nsm_Finished(self);
+ }
+
+ return result;
+}
+
+/*! \brief Checks whether the next script is available.
+ * \param self Instance pointer
+ * \return \c true if script still available otherwise \c false.
+ */
+static bool Nsm_IsNextScriptAvailable(CNodeScriptManagement * self)
+{
+ return (self->curr_sript_size > 0U);
+}
+
+/*! \brief Sets the current script_ptr to the next script if available and decrements the size of script table.
+ * \param self Instance pointer
+ */
+static void Nsm_IncrCurrScriptPtr(CNodeScriptManagement * self)
+{
+ if (self->curr_sript_size > 0U)
+ {
+ self->curr_sript_size--;
+ self->curr_sript_ptr++;
+ if (self->curr_sript_ptr != NULL)
+ {
+ self->curr_pause = self->curr_sript_ptr->pause;
+ }
+ else
+ {
+ TR_ERROR((self->base_ptr->ucs_user_ptr, "[NSM]", "Corrupted data: Next script is NULL although current script size is greater than 0.", 0U));
+ }
+ }
+}
+
+/*! \brief Synchronizes to the remote target device
+ * \param self Instance pointer
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * ------------------------- | ------------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_BUFFER_OVERFLOW | no message buffer available
+ */
+static Ucs_Return_t Nsm_DeviceSync(CNodeScriptManagement * self)
+{
+ Ucs_Return_t result;
+
+ result = Rsm_SyncDev(self->rsm_ptr, self, &Nsm_RmtDevSyncResultCb);
+ if(result == UCS_RET_SUCCESS)
+ {
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[NSM]", "Start Synchronization of remote device", 0U));
+ }
+
+ return result;
+}
+
+/*! \brief Transmits the current script_ptr to the RCM transceiver
+ * \param self Instance pointer
+ * \return UCS_RET_SUCCESS script was transmitted successfully
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW no message buffer available
+ * \return UCS_RET_ERR_PARAM Script to be executed is NULL
+ * \return UCS_RET_ERR_API_LOCKED RCM Transceiver is currently locked
+ */
+static Ucs_Return_t Nsm_SendCurrScriptToTrcv(CNodeScriptManagement * self)
+{
+ Ucs_Return_t result = UCS_RET_ERR_API_LOCKED;
+
+ if (Al_Lock(&self->lock.rcm_api, NSM_RCMTX_API_LOCK) != false)
+ {
+ result = UCS_RET_ERR_PARAM;
+ if ((self->curr_sript_ptr != NULL) && (self->curr_sript_ptr->send_cmd != NULL))
+ {
+ Ucs_Ns_ConfigMsg_t * tmp_snd_cmd = self->curr_sript_ptr->send_cmd;
+ Msg_MostTel_t *msg_ptr = Trcv_TxAllocateMsg(self->rcm_ptr, tmp_snd_cmd->DataLen);
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+
+ if (msg_ptr != NULL)
+ {
+ uint8_t k = 0U;
+ result = UCS_RET_SUCCESS;
+
+ msg_ptr->destination_addr = self->target_address;
+ msg_ptr->id.fblock_id = tmp_snd_cmd->FBlockId;
+ msg_ptr->id.instance_id = tmp_snd_cmd->InstId;
+ msg_ptr->id.function_id = tmp_snd_cmd->FunktId;
+ msg_ptr->id.op_type = (Ucs_OpType_t)tmp_snd_cmd->OpCode;
+
+ if ((tmp_snd_cmd->DataLen > 0U) && (tmp_snd_cmd->DataPtr == NULL))
+ {
+ result = UCS_RET_ERR_PARAM;
+ }
+
+ for (; ((k < tmp_snd_cmd->DataLen) && (result == UCS_RET_SUCCESS)); k++)
+ {
+ msg_ptr->tel.tel_data_ptr[k] = tmp_snd_cmd->DataPtr[k];
+ }
+ Trcv_TxSendMsgExt(self->rcm_ptr, msg_ptr, &Nsm_MsgTxStatusCb, self);
+ }
+ else
+ {
+ result = UCS_RET_ERR_BUFFER_OVERFLOW;
+ }
+ }
+
+ if (result != UCS_RET_SUCCESS)
+ {
+ Al_Release(&self->lock.rcm_api, NSM_RCMTX_API_LOCK);
+ }
+ }
+
+ return result;
+}
+
+/*! \brief Check if the current device is already attached respectively sync'ed.
+ * \param self Instance pointer
+ * \return \c true if no error occurred, otherwise \c false.
+ */
+static bool Nsm_IsCurrDeviceSynced(CNodeScriptManagement *self)
+{
+ bool ret_val = true;
+
+ if (Rsm_GetDevState(self->rsm_ptr) == RSM_DEV_UNSYNCED)
+ {
+ ret_val = false;
+ }
+
+ return ret_val;
+}
+
+/*! \brief Handles the error event
+ * \param self Instance pointer
+ */
+static void Nsm_HandleError(CNodeScriptManagement * self)
+{
+ self->curr_internal_result.code = UCS_NS_RES_ERROR;
+ Nsm_SendScriptResult(self);
+}
+
+/*! \brief Informs user that the transfer of the current script is completed.
+ * \param self Instance pointer
+ */
+static void Nsm_Finished(CNodeScriptManagement * self)
+{
+ self->curr_internal_result.code = UCS_NS_RES_SUCCESS;
+ Nsm_SendScriptResult(self);
+}
+
+/*! \brief Transmits the script result to the user callback.
+ * \param self Instance pointer
+ */
+static void Nsm_SendScriptResult(CNodeScriptManagement *self)
+{
+ Nsm_ApiLocking(self, false);
+ self->curr_rxfilter_fptr = NULL;
+ self->curr_sript_ptr = NULL;
+ if (self->is_private_api_used)
+ {
+ if (self->curr_pv_result_fptr != NULL)
+ {
+ self->curr_pv_result_fptr(self->curr_user_ptr, self->curr_internal_result);
+ }
+ }
+ else
+ {
+ if (self->curr_pb_result_fptr != NULL)
+ {
+ self->curr_pb_result_fptr(self->curr_node_ptr, self->curr_internal_result.code, self->base_ptr->ucs_user_ptr);
+ }
+ }
+}
+
+/*! \brief Starts the timer for pausing the script.
+ * \param self Instance pointer
+ * \return UCS_RET_SUCCESS Timer was started successfully
+ * \return UCS_RET_ERR_NOT_AVAILABLE Timer is not available for pausing the script process
+ */
+static Ucs_Return_t Nsm_PauseScript(CNodeScriptManagement * self)
+{
+ Ucs_Return_t ret_val = UCS_RET_ERR_NOT_AVAILABLE;
+
+ if(T_IsTimerInUse(&self->script_pause) == false)
+ {
+ ret_val = UCS_RET_SUCCESS;
+
+ Tm_SetTimer(self->tm_ptr,
+ &self->script_pause,
+ &Nsm_ResumeScriptHandling,
+ self,
+ self->curr_pause,
+ 0U);
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[NSM]", "Start pause for %d ms", 1U, self->curr_pause));
+ }
+
+ return ret_val;
+}
+
+/*! \brief Locks/Unlocks the RTM API.
+ * \param self Instance pointer
+ * \param status Locking status. \c true = Lock, \c false = Unlock
+ */
+static void Nsm_ApiLocking(CNodeScriptManagement *self, bool status)
+{
+ self->lock.api = status;
+}
+
+/*! \brief Checks if the API is locked.
+ * \param self Instance pointer
+ * \return \c true if the API is not locked, otherwise \c false.
+ */
+static bool Nsm_IsApiFree(CNodeScriptManagement *self)
+{
+ return (self->lock.api == false);
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Callback Functions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Called if UCS initialization has been succeeded.
+ * \param self Instance pointer
+ * \param event_ptr Reference to reported event
+ */
+static void Nsm_UcsInitSucceededCb(void *self, void *event_ptr)
+{
+ CNodeScriptManagement *self_ = (CNodeScriptManagement *)self;
+ MISC_UNUSED(event_ptr);
+
+ /* Remove ucsinit_observer */
+ Eh_DelObsrvInternalEvent(&self_->base_ptr->eh, &self_->ucsinit_observer);
+}
+
+/*! \brief Handles an API timeout
+ * \param self Instance pointer
+ * \param method_mask_ptr Bitmask to signal which API method has caused the timeout
+ */
+static void Nsm_HandleApiTimeout(void *self, void *method_mask_ptr)
+{
+ CNodeScriptManagement *self_ = (CNodeScriptManagement *)self;
+ Alm_ModuleMask_t method_mask = *((Alm_ModuleMask_t *)method_mask_ptr);
+
+ if ((method_mask & NSM_RCMTX_API_LOCK) == NSM_RCMTX_API_LOCK)
+ {
+ Srv_SetEvent(&self_->nsm_srv, NSM_EVENT_HANDLE_ERROR);
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[NSM]", "API locking timeout occurred for Nsm_Start() method.", 0U));
+ }
+}
+
+/*! \brief Handle internal errors and un-initialize NSM service.
+ * \param self Instance pointer
+ * \param error_code_ptr Reference to internal error code
+ */
+static void Nsm_UninitializeService(void *self, void *error_code_ptr)
+{
+ CNodeScriptManagement *self_ = (CNodeScriptManagement *)self;
+ MISC_UNUSED(error_code_ptr);
+
+ /* Remove NSM service from schedulers list */
+ (void)Scd_RemoveService(&self_->base_ptr->scd, &self_->nsm_srv);
+ /* Remove error/event observers */
+ Eh_DelObsrvInternalEvent(&self_->base_ptr->eh, &self_->ucstermination_observer);
+}
+
+/*! \brief Handle message Tx status, Unlock the API and free the message objects
+ * \param self The instance
+ * \param tel_ptr Reference to transmitted message
+ * \param status Status of the transmitted message
+ */
+static void Nsm_MsgTxStatusCb(void *self, Msg_MostTel_t *tel_ptr, Ucs_MsgTxStatus_t status)
+{
+ CNodeScriptManagement *self_ = (CNodeScriptManagement *)self;
+
+ if (status != UCS_MSG_STAT_OK)
+ {
+ /* Set detailed result */
+ self_->curr_internal_result.details.result_type = NS_RESULT_TYPE_TX;
+ self_->curr_internal_result.details.tx_result = status;
+
+ Al_Release(&self_->lock.rcm_api, NSM_RCMTX_API_LOCK);
+ /* Set Handling error */
+ Srv_SetEvent(&self_->nsm_srv, NSM_EVENT_HANDLE_ERROR);
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[NSM]", "Transmission error occurred. ErrorCode:0x%02.", 1U, status));
+ }
+ Trcv_TxReleaseMsg(tel_ptr);
+}
+
+/*! \brief Handles the result of "device.sync" operations.
+ * \param self Instance pointer
+ * \param result RSM result
+ */
+static void Nsm_RmtDevSyncResultCb(void *self, Rsm_Result_t result)
+{
+ CNodeScriptManagement *self_ = (CNodeScriptManagement *)self;
+ if (result.code == RSM_RES_SUCCESS)
+ {
+ Srv_SetEvent(&self_->nsm_srv, NSM_EVENT_HANDLE_NEXTSCRIPT);
+ TR_INFO((self_->base_ptr->ucs_user_ptr, "[NSM]", "Remote device has been successfully synchronized.", 0U));
+ }
+ else
+ {
+ /* Set internal result for private use */
+ self_->curr_internal_result.details.inic_result = result.details.inic_result;
+ self_->curr_internal_result.details.tx_result = result.details.tx_result;
+ if (result.details.tx_result != UCS_MSG_STAT_OK)
+ {
+ self_->curr_internal_result.details.result_type = NS_RESULT_TYPE_TX;
+ }
+ else
+ {
+ self_->curr_internal_result.details.result_type = NS_RESULT_TYPE_TGT_SYNC;
+ }
+
+ Srv_SetEvent(&self_->nsm_srv, NSM_EVENT_HANDLE_ERROR);
+ if (result.details.inic_result.code == UCS_RES_ERR_TRANSMISSION)
+ {
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[NSM]", "Synchronization to the remote device failed due to transmission error. ErrorCode: 0x%02X", 1U, result.details.inic_result.code));
+ }
+ else
+ {
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[NSM]", "Synchronization to the remote device failed due to error on target device. ErrorCode: 0x%02X", 1U, result.details.inic_result.code));
+ }
+ }
+}
+
+/*! \brief Resumes the handling of script. This method is the callback function of the NSM timer.
+ * \param self Instance pointer
+ */
+static void Nsm_ResumeScriptHandling(void* self)
+{
+ CNodeScriptManagement *self_ = (CNodeScriptManagement *)self;
+ self_->curr_pause = 0U;
+ Srv_SetEvent(&self_->nsm_srv, NSM_EVENT_HANDLE_NEXTSCRIPT);
+ TR_INFO((self_->base_ptr->ucs_user_ptr, "[NSM]", "Pause completed. Resume handling of scripts", 0U));
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_obs.c b/ucs2-lib/src/ucs_obs.c
new file mode 100644
index 0000000..d67cd0c
--- /dev/null
+++ b/ucs2-lib/src/ucs_obs.c
@@ -0,0 +1,449 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of the observer library module. The module consists of the two classes
+ * CSubject and CObserver.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_OBS
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_obs.h"
+#include "ucs_misc.h"
+#include "ucs_trace.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal Prototypes */
+/*------------------------------------------------------------------------------------------------*/
+static void Sub_UpdateList(CSubject *self);
+static bool Sub_CheckObserver(void *current_obs_ptr, void *subject_ptr);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation of class CSubject */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Constructor of the subject class. Initializes a subject which distributes its data to
+ * a list of observers.
+ * \param self Instance pointer
+ * \param ucs_user_ptr User reference that needs to be passed in every callback function
+ */
+void Sub_Ctor(CSubject *self, void *ucs_user_ptr)
+{
+ MISC_MEM_SET(self, 0, sizeof(*self));
+ self->ucs_user_ptr = ucs_user_ptr;
+ Dl_Ctor(&self->list, self->ucs_user_ptr);
+ Dl_Ctor(&self->add_list, self->ucs_user_ptr);
+}
+
+/*! \brief Adds an observer to a subjects list.
+ * \param self Instance pointer
+ * \param obs_ptr Pointer to observer instance
+ * \return \c SUB_OK: No error
+ * \return \c SUB_ALREADY_ADDED: Observer is already added
+ * \return \c SUB_UNKNOWN_OBSERVER: Given observer is not valid
+ */
+Sub_Ret_t Sub_AddObserver(CSubject *self, CObserver *obs_ptr)
+{
+ Sub_Ret_t ret_val;
+ if(obs_ptr == NULL)
+ {
+ ret_val = SUB_UNKNOWN_OBSERVER;
+ }
+ else if(obs_ptr->valid != false)
+ {
+ ret_val = SUB_ALREADY_ADDED;
+ }
+ else if((self->notify != false) &&
+ (Dl_IsNodeInList(&self->list, &obs_ptr->node) == false) &&
+ (Dl_IsNodeInList(&self->add_list, &obs_ptr->node) == false))
+ {
+ TR_ASSERT(self->ucs_user_ptr, "[OBS]", (self->num_observers < 0xFFU));
+ Dl_InsertTail(&self->add_list, &obs_ptr->node);
+ obs_ptr->valid = true;
+ self->changed = true;
+ ret_val = SUB_DELAYED;
+ }
+ else if((self->notify == false) && (Dl_IsNodeInList(&self->list, &obs_ptr->node) == false))
+ {
+ TR_ASSERT(self->ucs_user_ptr, "[OBS]", (self->num_observers < 0xFFU));
+ ret_val = SUB_OK;
+ Dl_InsertTail(&self->list, &obs_ptr->node);
+ obs_ptr->valid = true;
+ self->num_observers++;
+ }
+ else
+ {
+ ret_val = SUB_UNKNOWN_OBSERVER;
+ }
+ return ret_val;
+}
+
+/*! \brief Removes an observer from a subjects list.
+ * \param self Instance pointer
+ * \param obs_ptr Pointer to observer instance
+ * \return \c SUB_OK: No error
+ * \return \c SUB_UNKNOWN_OBSERVER: Unknown observer is given
+ * \return \c SUB_UNKNOWN_OBSERVER: Given observer is not valid
+ */
+Sub_Ret_t Sub_RemoveObserver(CSubject *self, CObserver *obs_ptr)
+{
+ Sub_Ret_t ret_val;
+ if(obs_ptr == NULL)
+ {
+ ret_val = SUB_UNKNOWN_OBSERVER;
+ }
+ else if(obs_ptr->valid == false)
+ {
+ ret_val = SUB_UNKNOWN_OBSERVER;
+ }
+ else if((self->notify != false) &&
+ (Dl_IsNodeInList(&self->list, &obs_ptr->node) != false))
+ {
+ TR_ASSERT(self->ucs_user_ptr, "[OBS]", (self->num_observers > 0U));
+ obs_ptr->valid = false;
+ self->changed = true;
+ self->num_observers--;
+ ret_val = SUB_DELAYED;
+ }
+ else if((self->notify == false) &&
+ (Dl_Remove(&self->list, &obs_ptr->node) == DL_OK))
+ {
+ TR_ASSERT(self->ucs_user_ptr, "[OBS]", (self->num_observers > 0U));
+ self->num_observers--;
+ ret_val = SUB_OK;
+ }
+ else
+ {
+ ret_val = SUB_UNKNOWN_OBSERVER;
+ }
+ return ret_val;
+}
+
+/*! \brief Notifies all registered observers of a subject.
+ * \param self Instance pointer
+ * \param data_ptr Reference to value to distribute (optional)
+ */
+void Sub_Notify(CSubject *self, void *data_ptr)
+{
+ if(self != NULL)
+ {
+ CDlNode *n_tmp = self->list.head;
+ self->notify = true;
+ self->changed = false;
+ while(n_tmp != NULL)
+ {
+ CObserver *o_tmp = (CObserver *)n_tmp->data_ptr;
+ if((o_tmp->update_fptr != NULL) && (o_tmp->valid != false))
+ {
+ (o_tmp->update_fptr)(o_tmp->inst_ptr, data_ptr);
+ }
+ n_tmp = n_tmp->next;
+ }
+ if(self->changed != false)
+ {
+ Sub_UpdateList(self);
+ }
+ self->notify = false;
+ }
+}
+
+/*! \brief Updates the list of observers. Delayed remove- and add-operations are processed.
+ * \param self Instance pointer
+ */
+static void Sub_UpdateList(CSubject *self)
+{
+ (void)Dl_Foreach(&self->list, &Sub_CheckObserver, self);
+ Dl_AppendList(&self->list, &self->add_list);
+}
+
+/*! \brief Checks if the given observer is still valid. If the observer is invalid it will be
+ * removed from the list. This function is used by the foreach loop in Sub_UpdateList().
+ * \param current_obs_ptr Reference to the current observer object
+ * \param subject_ptr Reference to the subject object
+ * \return Returns always \c false. Force to process the whole list.
+ */
+static bool Sub_CheckObserver(void *current_obs_ptr, void *subject_ptr)
+{
+ CObserver *current_obs_ptr_ = (CObserver *)current_obs_ptr;
+ CSubject *subject_ptr_ = (CSubject *)subject_ptr;
+
+ if(current_obs_ptr_->valid == false)
+ {
+ (void)Dl_Remove(&subject_ptr_->list, &current_obs_ptr_->node);
+ }
+ return false;
+}
+
+/*! \brief Returns the number of registered observers of a subject.
+ * \param self Instance pointer
+ * \return The number of registered observers
+ */
+uint8_t Sub_GetNumObservers(CSubject *self)
+{
+ return self->num_observers;
+}
+
+/*! \brief Switches all observers of the source-subject to the target-subject.
+ * \param sub_target Target subject
+ * \param sub_source Source subject
+ * \return \c SUB_OK: No error
+ * \return \c SUB_INVALID_OPERATION: Target and source must be different objects
+ */
+Sub_Ret_t Sub_SwitchObservers(CSubject *sub_target, CSubject *sub_source)
+{
+ Sub_Ret_t ret_val;
+
+ if(sub_target == sub_source)
+ {
+ ret_val = SUB_INVALID_OPERATION;
+ }
+ else
+ {
+ Dl_AppendList(&sub_target->list, &sub_source->list);
+ sub_target->num_observers += sub_source->num_observers;
+ sub_source->num_observers = 0U;
+ ret_val = SUB_OK;
+ }
+ return ret_val;
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation of class CObserver */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Constructor of the observer class. Initializes an observer which is notified
+ * by a corresponding subject.
+ * \param self Instance pointer
+ * \param inst_ptr Instance pointer used by update_fptr()
+ * \param update_fptr Callback function to update the observer
+ */
+void Obs_Ctor(CObserver *self, void *inst_ptr, Obs_UpdateCb_t update_fptr)
+{
+ MISC_MEM_SET(self, 0, sizeof(*self));
+ self->inst_ptr = inst_ptr;
+ self->update_fptr = update_fptr;
+ Dln_Ctor(&self->node, self);
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation of class CSingleSubject */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Constructor of the single-subject class. Initializes a single-subject which distributes
+ * its data to the registered single-observer.
+ * \param self Instance pointer
+ * \param ucs_user_ptr User reference that needs to be passed in every callback function
+ */
+void Ssub_Ctor(CSingleSubject *self, void *ucs_user_ptr)
+{
+ self->observer_ptr = NULL;
+ self->ucs_user_ptr = ucs_user_ptr;
+ self->user_mask = 0U;
+}
+
+/*! \brief Adds a single-observer to a single-subject.
+ * \param self Instance pointer
+ * \param obs_ptr Pointer to single-observer instance
+ * \return \c SSUB_OK: No error
+ * \return \c SSUB_ALREADY_ADDED: Observer is already added
+ * \return \c SSUB_UNKNOWN_OBSERVER: Given observer is not valid
+ */
+Ssub_Ret_t Ssub_AddObserver(CSingleSubject *self, CSingleObserver *obs_ptr)
+{
+ Ssub_Ret_t ret_val;
+ if(obs_ptr == NULL)
+ {
+ ret_val = SSUB_UNKNOWN_OBSERVER;
+ }
+ else if(self->observer_ptr != obs_ptr)
+ {
+#ifdef UCS_TR_INFO
+ if(self->observer_ptr != NULL)
+ {
+ TR_INFO((self->ucs_user_ptr, "[SSUB]", "Observer callback has been overwritten", 0U));
+ }
+#endif
+ ret_val = SSUB_OK;
+ self->observer_ptr = obs_ptr;
+ }
+ else
+ {
+ ret_val = SSUB_ALREADY_ADDED;
+ }
+
+ return ret_val;
+}
+
+/*! \brief Removes an single-observer from a single-subject.
+ * \param self Instance pointer
+ */
+void Ssub_RemoveObserver(CSingleSubject *self)
+{
+ self->observer_ptr = NULL;
+}
+
+/*! \brief Notifies the registered single-observer of the given single-subject.
+ * \param self Instance pointer
+ * \param data_ptr Reference to value to distribute (optional)
+ * \param auto_remove If true the observer will be removed
+ */
+void Ssub_Notify(CSingleSubject *self, void *data_ptr, bool auto_remove)
+{
+ void *inst_ptr = NULL;
+ Obs_UpdateCb_t update_fptr = NULL;
+ if(self->observer_ptr != NULL)
+ {
+ inst_ptr = self->observer_ptr->inst_ptr;
+ update_fptr = self->observer_ptr->update_fptr;
+ if(auto_remove != false)
+ {
+ self->observer_ptr = NULL;
+ }
+ }
+ if(update_fptr != NULL)
+ {
+ update_fptr(inst_ptr, data_ptr);
+ }
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation of class CSingleObserver */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Constructor of the single-observer class. Initializes an single-observer which is
+ * notified by a corresponding single-subject.
+ * \param self Instance pointer
+ * \param inst_ptr Instance pointer used by update_fptr()
+ * \param update_fptr Callback function to update the observer
+ */
+void Sobs_Ctor(CSingleObserver *self, void *inst_ptr, Sobs_UpdateCb_t update_fptr)
+{
+ self->inst_ptr = inst_ptr;
+ self->update_fptr = update_fptr;
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation of class CMaskedObserver */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Constructor of the masked-observer class. Initializes an observer which is notified
+ * by a corresponding subject.
+ * \param self Instance pointer
+ * \param inst_ptr Instance pointer used by update_fptr()
+ * \param notification_mask Notification bitmask
+ * \param update_fptr Callback function to update the observer
+ */
+void Mobs_Ctor(CMaskedObserver *self,
+ void *inst_ptr,
+ uint32_t notification_mask,
+ Obs_UpdateCb_t update_fptr)
+{
+ MISC_MEM_SET(self, 0, sizeof(*self));
+ Obs_Ctor(&self->parent, inst_ptr, update_fptr);
+ self->notification_mask = notification_mask;
+}
+
+/*! \brief Sets the notification mask of a masked-observer.
+ * \param self Instance pointer
+ * \param mask Bitmask to set
+ */
+void Mobs_SetNotificationMask(CMaskedObserver *self, uint32_t mask)
+{
+ self->notification_mask = mask;
+}
+
+/*! \brief Retrieves the notification mask of a masked-observer.
+ * \param self Instance pointer
+ * \return Returns the current notification bitmask of the given observer
+ */
+uint32_t Mobs_GetNotificationMask(CMaskedObserver *self)
+{
+ return self->notification_mask;
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Additional methods of class CSubject used in combination with CMaskedObserver */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Adds an masked-observer to a masked-subjects list.
+ * \param self Instance pointer
+ * \param obs_ptr Pointer to observer instance
+ * \return \c SUB_OK: No error
+ * \return \c SUB_ALREADY_ADDED: Observer is already added
+ * \return \c SUB_UNKNOWN_OBSERVER: Given observer is not valid
+ */
+Sub_Ret_t Msub_AddObserver(CSubject *self, CMaskedObserver *obs_ptr)
+{
+ return Sub_AddObserver(self, &obs_ptr->parent);
+}
+
+/*! \brief Removes an masked-observer from a subjects list.
+ * \param self Instance pointer
+ * \param obs_ptr Pointer to observer instance
+ * \return \c SUB_OK: No error
+ * \return \c SUB_UNKNOWN_OBSERVER: Unknown observer is given
+ * \return \c SUB_UNKNOWN_OBSERVER: Given observer is not valid
+ */
+Sub_Ret_t Msub_RemoveObserver(CSubject *self, CMaskedObserver *obs_ptr)
+{
+ return Sub_RemoveObserver(self, &obs_ptr->parent);
+}
+
+/*! \brief Notifies all registered masked-observers of a masked-subject.
+ * \param self Instance pointer
+ * \param data_ptr Reference to value to distribute (optional)
+ * \param notification_mask Bitmask indicates notified observers
+ */
+void Msub_Notify(CSubject *self, void *data_ptr, uint32_t notification_mask)
+{
+ if(self != NULL)
+ {
+ CDlNode *n_tmp = self->list.head;
+ self->notify = true;
+ self->changed = false;
+ while(n_tmp != NULL)
+ {
+ CMaskedObserver *o_tmp = (CMaskedObserver *)n_tmp->data_ptr;
+ if( (o_tmp->parent.update_fptr != NULL) &&
+ (o_tmp->parent.valid != false) &&
+ ((o_tmp->notification_mask & notification_mask) != 0U) )
+ {
+ (o_tmp->parent.update_fptr)(o_tmp->parent.inst_ptr, data_ptr);
+ }
+ n_tmp = n_tmp->next;
+ }
+ if(self->changed != false)
+ {
+ Sub_UpdateList(self);
+ }
+ self->notify = false;
+ }
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_pmchannel.c b/ucs2-lib/src/ucs_pmchannel.c
new file mode 100644
index 0000000..2c6bbba
--- /dev/null
+++ b/ucs2-lib/src/ucs_pmchannel.c
@@ -0,0 +1,307 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of Port Message Channel
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_PMC
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_pmchannel.h"
+#include "ucs_pmp.h"
+#include "ucs_pmcmd.h"
+#include "ucs_misc.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal Constants */
+/*------------------------------------------------------------------------------------------------*/
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal typedefs */
+/*------------------------------------------------------------------------------------------------*/
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal prototypes */
+/*------------------------------------------------------------------------------------------------*/
+/* LLD related interface functions */
+static Ucs_Lld_RxMsg_t* Pmch_RxAllocate(void *self, uint16_t buffer_size);
+static void Pmch_RxUnused(void *self, Ucs_Lld_RxMsg_t *msg_ptr);
+static void Pmch_RxReceive(void *self, Ucs_Lld_RxMsg_t *msg_ptr);
+static void Pmch_TxRelease(void *self, Ucs_Lld_TxMsg_t *msg_ptr);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation */
+/*------------------------------------------------------------------------------------------------*/
+
+/*! \brief Constructor of class CPmChannel
+ * \param self The instance
+ * \param init_ptr Reference to initialization data structure
+ */
+void Pmch_Ctor(CPmChannel *self, const Pmch_InitData_t *init_ptr)
+{
+ uint16_t cnt;
+ MISC_MEM_SET(self, 0, sizeof(*self));
+
+ self->init_data = *init_ptr;
+ self->lld_active = false;
+
+ self->ucs_iface.rx_allocate_fptr = &Pmch_RxAllocate;
+ self->ucs_iface.rx_receive_fptr = &Pmch_RxReceive;
+ self->ucs_iface.rx_free_unused_fptr = &Pmch_RxUnused;
+ self->ucs_iface.tx_release_fptr = &Pmch_TxRelease;
+
+ Pool_Ctor(&self->rx_msgs_pool, self->rx_msgs, /* initialize Rx message pool */
+ PMCH_POOL_SIZE_RX, self->init_data.ucs_user_ptr);
+ for (cnt = 0U; cnt < PMCH_POOL_SIZE_RX; cnt++) /* and assign LLD Rx handles */
+ {
+ Msg_SetLldHandle(&self->rx_msgs[cnt], &self->lld_rx_msgs[cnt]);
+ self->lld_rx_msgs[cnt].msg_ptr = &self->rx_msgs[cnt];
+ }
+}
+
+/*! \brief Registers an Rx callback function dedicated to one FIFO
+ * \param self The instance
+ * \param fifo_id The FIFO identifier
+ * \param rx_fptr The Rx callback function
+ * \param inst_ptr Reference to the instance required to invoke the callback
+ */
+void Pmch_RegisterReceiver(CPmChannel *self, Pmp_FifoId_t fifo_id, Pmch_OnRxMsg_t rx_fptr, void *inst_ptr)
+{
+ TR_ASSERT(self->init_data.ucs_user_ptr, "[PMCH]", (((uint8_t)fifo_id == (uint8_t)PMP_FIFO_ID_ICM)||((uint8_t)fifo_id == (uint8_t)PMP_FIFO_ID_MCM)||((uint8_t)fifo_id == (uint8_t)PMP_FIFO_ID_RCM)));
+
+ self->receivers[fifo_id].rx_fptr = rx_fptr;
+ self->receivers[fifo_id].inst_ptr = inst_ptr;
+}
+
+/*! \brief Un-initializes the LLD interface of the channel
+ * \param self The instance
+ */
+void Pmch_Initialize(CPmChannel *self)
+{
+ if (self->lld_active == false)
+ {
+ self->lld_active = true;
+ TR_INFO((self->init_data.ucs_user_ptr, "[PMCH]", "Pmch_Initialize(): LLD_START()", 0U));
+ self->init_data.lld_iface.start_fptr(&self->ucs_iface, self, self->init_data.lld_iface.lld_user_ptr);
+ }
+}
+
+/*! \brief Un-initializes the LLD interface of the channel
+ * \param self The instance
+ */
+extern void Pmch_Uninitialize(CPmChannel *self)
+{
+ TR_INFO((self->init_data.ucs_user_ptr, "[PMCH]", "Pmch_Uninitialize(): Channel un-synchronization started", 0U));
+
+ if (self->lld_active != false)
+ {
+ self->lld_active = false;
+ TR_INFO((self->init_data.ucs_user_ptr, "[PMCH]", "Pmch_Uninitialize(): LLD_STOP()", 0U));
+ self->init_data.lld_iface.stop_fptr(self->init_data.lld_iface.lld_user_ptr);
+ }
+}
+
+/*! \brief Wrapper for LLD transmit
+ * \details This function which shall be used by all internal classes. No class shall
+ * invoke the LLD transmit function directly. Thus, it might be possible
+ * in future to handle transmission failures and retries.
+ * \param self The instance
+ * \param msg_ptr Reference to the public LLD message structure
+ */
+void Pmch_Transmit(CPmChannel *self, Ucs_Lld_TxMsg_t *msg_ptr)
+{
+ if (self->lld_active != false)
+ {
+ self->init_data.lld_iface.tx_transmit_fptr(msg_ptr, self->init_data.lld_iface.lld_user_ptr);
+ }
+ else
+ {
+ Pmch_TxRelease(self, msg_ptr);
+ }
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* The exposed low-level driver interface */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Allocates an Rx message object
+ * \param self The instance
+ * \param buffer_size Size of the memory chunk in bytes which is needed to
+ * copy the Rx message.
+ * \return Reference to an allocated Rx message object or \c NULL if no message object is available.
+ */
+static Ucs_Lld_RxMsg_t* Pmch_RxAllocate(void *self, uint16_t buffer_size)
+{
+ CMessage *msg_ptr = NULL;
+ Ucs_Lld_RxMsg_t *handle = NULL;
+ CPmChannel *self_ = (CPmChannel*)self;
+
+ if (buffer_size <= MSG_SIZE_RSVD_BUFFER)
+ {
+ msg_ptr = Pool_GetMsg(&self_->rx_msgs_pool);
+
+ if (msg_ptr != NULL)
+ {
+ Msg_Cleanup(msg_ptr);
+ handle = &((Lld_IntRxMsg_t*)Msg_GetLldHandle(msg_ptr))->lld_msg;
+
+ TR_ASSERT(self_->init_data.ucs_user_ptr, "[PMCH]", (handle != NULL));
+
+ handle->data_size = buffer_size;
+ handle->data_ptr = Msg_GetHeader(msg_ptr);
+ }
+ else
+ {
+ self_->rx_trigger_available = true;
+ TR_INFO((self_->init_data.ucs_user_ptr, "[PMCH]", "Pmch_RxAllocate(): Allocation failed, size=%u", 1U, buffer_size));
+ }
+ }
+ else
+ {
+ self_->rx_trigger_available = true;
+ TR_FAILED_ASSERT(self_->init_data.ucs_user_ptr, "[PMCH]");
+ }
+
+ return handle;
+}
+
+/*! \brief Frees an unused Rx message object
+ * \param self The instance
+ * \param msg_ptr Reference to the unused Rx message object
+ */
+static void Pmch_RxUnused(void *self, Ucs_Lld_RxMsg_t *msg_ptr)
+{
+ CPmChannel *self_ = (CPmChannel*)self;
+ CMessage *pb_handle = ((Lld_IntRxMsg_t*)(void*)msg_ptr)->msg_ptr;
+
+ TR_ASSERT(self_->init_data.ucs_user_ptr, "[PMCH]", (pb_handle != NULL));
+ Pmch_ReturnRxToPool(self_, pb_handle);
+}
+
+/*! \brief Pass an Rx message to UNICENS
+ * \param self The instance
+ * \param msg_ptr Reference to the Rx message object containing the received
+ * message.
+ */
+static void Pmch_RxReceive(void *self, Ucs_Lld_RxMsg_t *msg_ptr)
+{
+ bool found = false;
+ CPmChannel *self_ = (CPmChannel*)self;
+
+ if (msg_ptr->data_ptr != NULL)
+ {
+ if (msg_ptr->data_size >= PMP_PM_MIN_SIZE_HEADER) /* ignore incomplete messages */
+ {
+ uint8_t fifo_no = (uint8_t)Pmp_GetFifoId(msg_ptr->data_ptr); /* get channel id (FIFO number) */
+
+ if ((fifo_no < PMP_MAX_NUM_FIFOS) && (self_->receivers[fifo_no].inst_ptr != NULL))
+ {
+ CMessage *handle = ((Lld_IntRxMsg_t*)(void*)msg_ptr)->msg_ptr;
+ /* forward message to the respective FIFO/channel */
+ self_->receivers[fifo_no].rx_fptr(self_->receivers[fifo_no].inst_ptr, handle);
+ found = true;
+ }
+ else
+ {
+ TR_ERROR((self_->init_data.ucs_user_ptr, "[PMCH]", "Pmch_RxReceive(): received message for unregistered FIFO no=%u", 1U, fifo_no));
+ }
+ }
+ else
+ {
+ TR_ERROR((self_->init_data.ucs_user_ptr, "[PMCH]", "Pmch_RxReceive(): received incomplete message of size=%u", 1U, msg_ptr->data_size));
+ }
+ }
+ else
+ {
+ TR_ERROR((self_->init_data.ucs_user_ptr, "[PMCH]", "Pmch_RxReceive(): message data is not valid", 0U));
+ }
+
+ if (found == false)
+ {
+ Pmch_RxUnused(self_, msg_ptr); /* Just return message to pool until PMC is implemented */
+ }
+}
+
+/*! \brief Notifies that the LLD no longer needs to access the Tx message object
+ * \param self The instance
+ * \param msg_ptr Reference to the Tx message object which is no longer accessed
+ * by the low-level driver
+ */
+static void Pmch_TxRelease(void *self, Ucs_Lld_TxMsg_t *msg_ptr)
+{
+ CPmChannel *self_ = (CPmChannel*)self;
+ Lld_IntTxMsg_t *tx_ptr = (Lld_IntTxMsg_t*)(void*)msg_ptr;
+
+ if ((tx_ptr->owner_ptr == NULL) && (tx_ptr->msg_ptr == NULL)) /* tx_ptr is command */
+ {
+ Pmcmd_Release((CPmCommand*)(void*)tx_ptr);
+ }
+ else if (tx_ptr->owner_ptr != NULL) /* release message to FIFO */
+ {
+ self_->init_data.tx_release_fptr(tx_ptr->owner_ptr, msg_ptr);
+ }
+ else
+ {
+ TR_FAILED_ASSERT(self_->init_data.ucs_user_ptr, "[PMCH]"); /* unknown FIFO - invalid message object */
+ }
+
+ TR_ASSERT(self_->init_data.ucs_user_ptr, "[PMCH]", (msg_ptr->custom_next_msg_ptr == NULL) ); /* concatenation destroyed by the LLD */
+
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* FIFO Related Callback Functions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Returns an unused Rx message object back to the pool
+ * \param self The instance
+ * \param msg_ptr The unused Rx message object
+ */
+void Pmch_ReturnRxToPool(void *self, CMessage *msg_ptr)
+{
+ CPmChannel *self_ = (CPmChannel*)self;
+
+ Pool_ReturnMsg(msg_ptr);
+
+ if (self_->rx_trigger_available == true)
+ {
+ self_->rx_trigger_available = false;
+
+ if (self_->init_data.lld_iface.rx_available_fptr != NULL)
+ {
+ self_->init_data.lld_iface.rx_available_fptr(self_->init_data.lld_iface.lld_user_ptr);
+ }
+ }
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_pmcmd.c b/ucs2-lib/src/ucs_pmcmd.c
new file mode 100644
index 0000000..d4055b0
--- /dev/null
+++ b/ucs2-lib/src/ucs_pmcmd.c
@@ -0,0 +1,155 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of class CPmCommand
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_PM_CMD
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_pmcmd.h"
+#include "ucs_misc.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Constructor of CPmCommand class
+ * \param self The instance
+ * \param fifo The dedicated FIFO
+ * \param type The port message type
+ */
+void Pmcmd_Ctor(CPmCommand *self, Pmp_FifoId_t fifo, Pmp_MsgType_t type)
+{
+ MISC_MEM_SET(self, 0, sizeof(*self)); /* setup attributes */
+ self->memory.data_ptr = &self->data[0];
+ self->tx_obj.lld_msg.memory_ptr = &self->memory;
+ self->tx_obj.msg_ptr = NULL; /* label message as command by setting */
+ self->tx_obj.owner_ptr = NULL; /* msg_ptr and owner_ptr to NULL */
+ self->trigger = false;
+
+ Pmp_SetPmhl(self->data, 3U); /* PMHL is always "3" for control/status messages */
+ Pmp_SetFph(self->data, fifo, type);
+}
+
+/*! \brief Retrieves reference to the LLD Tx message object required to call Pmch_Transmit()
+ * \param self The instance
+ * \return Returns a reference to the LLD Tx message object
+ */
+Ucs_Lld_TxMsg_t* Pmcmd_GetLldTxObject(CPmCommand *self)
+{
+ return (Ucs_Lld_TxMsg_t*)(void*)self;
+}
+
+/*! \brief Sets the content of a command/status message
+ * \param self The instance
+ * \param sid The sequence id
+ * \param ext_type The ExtType type
+ * \param ext_code The ExtType code
+ * \param add_data_ptr Additional payload data
+ * \param add_data_sz The size of additional payload data, valid values: 0..4
+ */
+void Pmcmd_SetContent(CPmCommand *self, uint8_t sid, uint8_t ext_type, uint8_t ext_code, uint8_t add_data_ptr[], uint8_t add_data_sz)
+{
+ if ((add_data_ptr != NULL) && (add_data_sz != 0U))
+ {
+ MISC_MEM_CPY(&self->data[6U], add_data_ptr, (size_t)add_data_sz);
+ }
+
+ self->memory.data_size = 6U + (uint16_t)add_data_sz;
+ self->memory.total_size = 6U + (uint16_t)add_data_sz;
+
+ Pmp_SetPml(self->data, 4U + add_data_sz);
+ Pmp_SetSid(self->data, sid);
+ Pmp_SetExtType(self->data, ext_type, ext_code);
+}
+
+/*! \brief Updates the content of a command/status message
+ * \details The length and the content of the payload is not modified.
+ * It is important to call Pmcmd_SetContent() before.
+ * \param self The instance
+ * \param sid The sequence id
+ * \param ext_type The ExtType type
+ * \param ext_code The ExtType code
+ */
+void Pmcmd_UpdateContent(CPmCommand *self, uint8_t sid, uint8_t ext_type, uint8_t ext_code)
+{
+ Pmp_SetSid(self->data, sid);
+ Pmp_SetExtType(self->data, ext_type, ext_code);
+}
+
+/*! \brief Reserves the command object if it is available
+ * \param self The instance
+ * \return \c true if the command object is available, \c false
+ * if the command object is (still) in usage
+ */
+bool Pmcmd_Reserve(CPmCommand *self)
+{
+ bool succ = false;
+
+ if (self->reserved == false)
+ {
+ self->reserved = true;
+ succ = true;
+ }
+ return succ;
+}
+
+/*! \brief Releases the command object after usage
+ * \param self The instance
+ */
+void Pmcmd_Release(CPmCommand *self)
+{
+ self->reserved = false;
+}
+
+/*! \brief Sets or resets the trigger attribute
+ * \param self The instance
+ * \param trigger The trigger value
+ */
+void Pmcmd_SetTrigger(CPmCommand *self, bool trigger)
+{
+ self->trigger = trigger;
+}
+
+/*! \brief Returns the trigger value
+ * \param self The instance
+ * \return Returns \c true if the trigger attribute is set, otherwise \c false.
+ */
+bool Pmcmd_IsTriggered(CPmCommand *self)
+{
+ return self->trigger;
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_pmevent.c b/ucs2-lib/src/ucs_pmevent.c
new file mode 100644
index 0000000..cc3d1d1
--- /dev/null
+++ b/ucs2-lib/src/ucs_pmevent.c
@@ -0,0 +1,130 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of Port Message Event Handler
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_PMEH
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_pmevent.h"
+#include "ucs_misc.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal prototypes */
+/*------------------------------------------------------------------------------------------------*/
+static void Pmev_OnFifosEvent(void *self, void *data_ptr);
+static void Pmev_OnSystemEvent(void *self, void *data_ptr);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation */
+/*------------------------------------------------------------------------------------------------*/
+
+/*! \brief Constructor of class CPmEventHandler
+ * \param self The instance
+ * \param base_ptr Reference to base object
+ * \param fifos_ptr Reference to CPmFifos object
+ */
+void Pmev_Ctor(CPmEventHandler *self, CBase *base_ptr, CPmFifos *fifos_ptr)
+{
+ self->base_ptr = base_ptr;
+ self->fifos_ptr = fifos_ptr;
+
+ Obs_Ctor(&self->observer, self, &Pmev_OnFifosEvent);
+
+ Mobs_Ctor(&self->sys_observer, self, (EH_E_BIST_FAILED | EH_E_INIT_FAILED), &Pmev_OnSystemEvent);
+ Eh_AddObsrvInternalEvent(&self->base_ptr->eh, &self->sys_observer);
+}
+
+/*! \brief Start reporting events to EH
+ * \param self The instance
+ */
+void Pmev_Start(CPmEventHandler *self)
+{
+ Fifos_AddEventObserver(self->fifos_ptr, &self->observer);
+}
+
+/*! \brief Stops reporting events to EH
+ * \param self The instance
+ */
+void Pmev_Stop(CPmEventHandler *self)
+{
+ Fifos_RemoveEventObserver(self->fifos_ptr, &self->observer);
+}
+
+/*! \brief Callback function to handle a PMS event
+ * \param self The instance
+* \param data_ptr Reference to the PMS event
+ */
+static void Pmev_OnFifosEvent(void *self, void *data_ptr)
+{
+ CPmEventHandler *self_ = (CPmEventHandler*)self;
+ Fifos_Event_t *event_ptr = (Fifos_Event_t*)data_ptr;
+
+ switch (*event_ptr)
+ {
+ case FIFOS_EV_SYNC_LOST:
+ Eh_ReportEvent(&self_->base_ptr->eh, EH_E_SYNC_LOST);
+ break;
+ case FIFOS_EV_SYNC_ESTABLISHED:
+ /* not relevant */
+ break;
+ case FIFOS_EV_SYNC_FAILED:
+ /* not relevant */
+ break;
+ case FIFOS_EV_UNSYNC_COMPLETE:
+ Eh_ReportEvent(&self_->base_ptr->eh, EH_E_UNSYNC_COMPLETE);
+ break;
+ case FIFOS_EV_UNSYNC_FAILED:
+ Eh_ReportEvent(&self_->base_ptr->eh, EH_E_UNSYNC_FAILED);
+ break;
+ default:
+ /* not relevant */
+ break;
+ }
+}
+
+/*! \brief Callback function to handle an UCS system events
+ * \param self The instance
+* \param data_ptr Reference to the system event event
+ */
+static void Pmev_OnSystemEvent(void *self, void *data_ptr)
+{
+ CPmEventHandler *self_ = (CPmEventHandler*)self;
+ Fifos_ForceTermination(self_->fifos_ptr);
+ MISC_UNUSED(data_ptr);
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_pmfifo.c b/ucs2-lib/src/ucs_pmfifo.c
new file mode 100644
index 0000000..90f8db7
--- /dev/null
+++ b/ucs2-lib/src/ucs_pmfifo.c
@@ -0,0 +1,1366 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of Port Message FIFO
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_PMF
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_pmfifo.h"
+#include "ucs_pmp.h"
+#include "ucs_pmcmd.h"
+#include "ucs_misc.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal macros */
+/*------------------------------------------------------------------------------------------------*/
+/*------------------------------------------------------------------------------------------------*/
+/* Internal Constants */
+/*------------------------------------------------------------------------------------------------*/
+static const uint8_t FIFO_SRV_PRIO = 252U; /* parasoft-suppress MISRA2004-8_7 "configuration property" */
+static const Srv_Event_t FIFO_SE_RX_SERVICE = 1U; /*!< \brief Event which triggers the Rx service */
+static const Srv_Event_t FIFO_SE_TX_SERVICE = 2U; /*!< \brief Event which triggers the Rx service */
+static const Srv_Event_t FIFO_SE_TX_APPLY_STATUS = 4U; /*!< \brief Event which triggers to apply the current INIC status */
+static const Srv_Event_t FIFO_SE_ALL = 7U; /* parasoft-suppress MISRA2004-8_7 "configuration property" */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal prototypes */
+/*------------------------------------------------------------------------------------------------*/
+static void Fifo_InitCounters(CPmFifo *self, uint8_t tx_sid_complete, uint8_t tx_credits);
+static void Fifo_Service(void *self);
+
+static void Fifo_RxService(CPmFifo *self);
+static void Fifo_RxCheckStatusTrigger(CPmFifo *self);
+static void Fifo_RxGetCredit(CPmFifo *self);
+static void Fifo_RxReleaseCredit(CPmFifo *self);
+static bool Fifo_RxProcessData(CPmFifo *self, CMessage *msg_ptr);
+static void Fifo_RxProcessStatus(CPmFifo *self, CMessage *msg_ptr);
+static void Fifo_RxProcessCommand(CPmFifo *self, CMessage *msg_ptr);
+static void Fifo_RxProcessSyncStatus(CPmFifo *self, uint8_t sid, uint8_t type, uint8_t code, uint8_t *header_ptr);
+static uint8_t Fifo_RxCheckFailureCode(CPmFifo *self, uint8_t failure_code);
+static void Fifo_OnRx(void *self, CMessage *msg_ptr);
+
+static void Fifo_TxService(CPmFifo *self);
+static void Fifo_TxProcessData(CPmFifo *self);
+static void Fifo_TxProcessStatus(CPmFifo *self);
+static void Fifo_TxProcessCommand(CPmFifo *self);
+
+static void Fifo_TxEnqueueBypassMsg(CPmFifo *self, CDlList *q_ptr, CMessage *msg_ptr);
+static bool Fifo_FindFirstRegularMsg(void *d_ptr, void *ud_ptr);
+
+static void Fifo_TxExecuteCancel(CPmFifo *self, uint8_t failure_sid, uint8_t failure_code);
+static void Fifo_TxExecuteCancelAll(CPmFifo *self, uint8_t failure_sid, uint8_t failure_code);
+static void Fifo_TxFinishedCancelAll(CPmFifo *self);
+static uint8_t Fifo_TxPendingGetFollowerId(CPmFifo *self);
+static void Fifo_TxCancelFollowers(CPmFifo *self, uint8_t follower_id, Ucs_MsgTxStatus_t status);
+
+static bool Fifo_TxHasAccessPending(CPmFifo *self);
+static void Fifo_TxRestorePending(CPmFifo *self);
+
+static void Fifo_TxOnWatchdogTimer(void *self);
+static void Fifo_TxStartWatchdog(CPmFifo *self);
+
+static uint8_t Fifo_TxGetValidAcknowledges(CPmFifo *self, uint8_t sid);
+static bool Fifo_TxNotifyStatus(CPmFifo *self, uint8_t sid, Ucs_MsgTxStatus_t status);
+static void Fifo_TxApplyCurrentStatus(CPmFifo *self);
+static void Fifo_TxUpdateCurrentStatus(CPmFifo *self, uint8_t sid, uint8_t type, uint8_t code);
+static bool Fifo_TxIsIncomingSidValid(CPmFifo *self, uint8_t sid);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Constructor of message FIFO
+ * \param self The instance
+ * \param init_ptr Reference to initialization data
+ * \param config_ptr Reference to configuration
+ */
+void Fifo_Ctor(CPmFifo *self, const Fifo_InitData_t *init_ptr, const Fifo_Config_t *config_ptr)
+{
+ MISC_MEM_SET(self, 0, sizeof(*self));
+
+ self->init = *init_ptr;
+ self->config = *config_ptr;
+
+ self->sync_state = FIFO_S_UNSYNCED_INIT; /* initialize members */
+ Sub_Ctor(&self->sync_state_subject, self->init.base_ptr->ucs_user_ptr);
+
+ TR_INFO((self->init.base_ptr->ucs_user_ptr, "[FIFO]", "Fifo_Ctor(): state: %u", 1U, self->sync_state));
+
+ Srv_Ctor(&self->service, FIFO_SRV_PRIO, self, &Fifo_Service); /* registration of service */
+ (void)Scd_AddService(&self->init.base_ptr->scd, &self->service);
+
+ T_Ctor(&self->wd.timer); /* setup watchdog */
+ self->wd.timer_value = self->config.tx_wd_timer_value;
+ Pmcmd_Ctor(&self->wd.wd_cmd, self->config.fifo_id, PMP_MSG_TYPE_CMD);
+ Pmcmd_SetContent(&self->wd.wd_cmd, 0U, PMP_CMD_TYPE_REQ_STATUS, PMP_CMD_CODE_REQ_STATUS, NULL, 0U);
+
+ /* init Rx part */
+ Dl_Ctor(&self->rx.queue, self->init.base_ptr->ucs_user_ptr);
+ self->rx.encoder_ptr = self->init.rx_encoder_ptr;
+ self->rx.on_complete_fptr = self->init.rx_cb_fptr;
+ self->rx.on_complete_inst = self->init.rx_cb_inst;
+
+ self->rx.ack_threshold = self->config.rx_threshold;
+
+ if (self->config.rx_threshold > self->config.rx_credits)/* configuration error - use single acknowledge */
+ {
+ self->rx.ack_threshold = 1U;
+ TR_FAILED_ASSERT(self->init.base_ptr->ucs_user_ptr, "[FIFO]");
+ }
+
+ self->rx.wait_processing = false;
+ Pmcmd_Ctor(&self->rx.status, self->config.fifo_id, PMP_MSG_TYPE_STATUS);
+ Pmcmd_SetContent(&self->rx.status, 0U, PMP_STATUS_TYPE_FLOW, PMP_STATUS_CODE_SUCCESS, NULL, 0U);
+
+ /* init Tx part */
+ Dl_Ctor(&self->tx.waiting_queue, self->init.base_ptr->ucs_user_ptr);
+ Dl_Ctor(&self->tx.pending_q, self->init.base_ptr->ucs_user_ptr);
+
+ Pmcmd_Ctor(&self->tx.cancel_cmd, self->config.fifo_id, PMP_MSG_TYPE_CMD);
+ Pmcmd_SetContent(&self->tx.cancel_cmd, 0U, PMP_CMD_TYPE_MSG_ACTION, PMP_CMD_CODE_ACTION_CANCEL, NULL, 0U);
+
+ Fifo_InitCounters(self, 0U, 0U); /* values are incremented on each sync attempt */
+ self->tx.encoder_ptr = init_ptr->tx_encoder_ptr;
+
+ /* FIFO synchronization command */
+ self->sync_cnt = 0xFFU;
+ self->sync_params[0] = config_ptr->rx_credits;
+ self->sync_params[1] = config_ptr->rx_busy_allowed;
+ self->sync_params[2] = config_ptr->rx_ack_timeout;
+ self->sync_params[3] = config_ptr->tx_wd_timeout;
+ Pmcmd_Ctor(&self->tx.sync_cmd, self->config.fifo_id, PMP_MSG_TYPE_CMD);
+ Pmcmd_SetContent(&self->tx.sync_cmd, 0U, PMP_CMD_TYPE_SYNCHRONIZATION, PMP_CMD_CODE_SYNC, self->sync_params, 4U);
+
+ /* default PM header for Tx */
+ self->tx.pm_header.pml = 6U;
+ self->tx.pm_header.pmhl = self->tx.encoder_ptr->pm_hdr_sz - 3U;
+ Pmh_SetFph(&self->tx.pm_header, self->config.fifo_id, PMP_MSG_TYPE_DATA);
+ self->tx.pm_header.sid = 0U;
+ self->tx.pm_header.ext_type = (uint8_t)self->tx.encoder_ptr->content_type;
+
+ Lldp_Ctor(&self->tx.lld_pool, self, self->init.base_ptr->ucs_user_ptr);
+
+ Pmch_RegisterReceiver(self->init.channel_ptr, self->config.fifo_id, &Fifo_OnRx, self);
+}
+
+/*! \brief Initializes flow control and related counters
+ * \param self The instance
+ * \param tx_sid_complete Reference to initialization data
+ * \param tx_credits Number of credits for Tx
+ */
+static void Fifo_InitCounters(CPmFifo *self, uint8_t tx_sid_complete, uint8_t tx_credits)
+{
+ self->rx.busy_num = 0U;
+ self->rx.expected_sid = tx_sid_complete + 1U;
+ self->rx.ack_last_ok_sid = tx_sid_complete;
+
+ self->tx.credits = tx_credits;
+ self->tx.sid_next_to_use = tx_sid_complete +1U;
+ self->tx.sid_last_completed = tx_sid_complete;
+
+ self->tx.failure_status = 0U;
+ self->tx.failure_sid = 0U;
+
+ self->tx.current_sid = tx_sid_complete;
+ self->tx.current_type = PMP_STATUS_TYPE_FLOW;
+ self->tx.current_code = (uint8_t)PMP_STATUS_CODE_SUCCESS;
+}
+
+/*! \brief Adds an observer of synchronization state changes
+ * \param self The instance
+ * \param obs_ptr The observer. The notification result type is \ref Pmp_FifoId_t.
+ */
+void Fifo_AddStateObserver(CPmFifo *self, CObserver *obs_ptr)
+{
+ (void)Sub_AddObserver(&self->sync_state_subject, obs_ptr);
+}
+
+/*! \brief Removes an observer of synchronization state changes
+ * \param self The instance
+ * \param obs_ptr The observer.
+ */
+void Fifo_RemoveStateObserver(CPmFifo *self, CObserver *obs_ptr)
+{
+ (void)Sub_RemoveObserver(&self->sync_state_subject, obs_ptr);
+}
+
+/*! \brief Stops execution of a FIFO and notifies sync lost if necessary
+ * \param self The instance
+ * \param new_state The new synchronization state
+ * \param allow_notification Set to \c false in order to avoid recursion
+ */
+void Fifo_Stop(CPmFifo *self, Fifo_SyncState_t new_state, bool allow_notification)
+{
+ bool notify = false;
+
+ TR_INFO((self->init.base_ptr->ucs_user_ptr, "[FIFO]", "Fifo_Stop(): FIFO: %u, state: %u, new_state: %u", 3U, self->config.fifo_id, self->sync_state, new_state));
+
+ if (self->sync_state != new_state)
+ {
+ notify = true;
+ }
+
+ self->sync_state = new_state;
+ self->tx.credits = 0U;
+
+ if (self->wd.timer_value != 0U)
+ {
+ Tm_ClearTimer(&self->init.base_ptr->tm, &self->wd.timer);
+ }
+
+ if ((notify != false) && (allow_notification != false))
+ {
+ Sub_Notify(&self->sync_state_subject, &self->config.fifo_id);
+ }
+}
+
+/*! \brief Releases all external references
+ * \details It is important to call Fifo_Stop() prior to this functions. The low-level driver
+ * must be stopped as well to avoid concurrent access to message objects.
+ * \param self The instance
+ */
+void Fifo_Cleanup(CPmFifo *self)
+{
+ CMessage *msg_ptr = NULL;
+ CDlNode *node_ptr = NULL;
+
+ TR_ASSERT(self->init.base_ptr->ucs_user_ptr, "[FIFO]", (self->sync_state == FIFO_S_UNSYNCED_INIT));
+ TR_INFO((self->init.base_ptr->ucs_user_ptr, "[FIFO]", "Fifo_Cleanup(): FIFO: %u", 1U, self->config.fifo_id));
+
+ /* cleanup pending queue */
+ for (node_ptr = Dl_PopHead(&self->tx.pending_q); node_ptr != NULL; node_ptr = Dl_PopHead(&self->tx.pending_q))
+ {
+ msg_ptr = (CMessage*)Dln_GetData(node_ptr);
+
+ Msg_NotifyTxStatus(msg_ptr, UCS_MSG_STAT_ERROR_SYNC);
+ Lldp_ReturnTxToPool(&self->tx.lld_pool, (Lld_IntTxMsg_t*)Msg_GetLldHandle(msg_ptr));
+ Msg_SetLldHandle(msg_ptr, NULL); /* remove link to LLD message object */
+ }
+
+ /* cleanup waiting queue */
+ for (node_ptr = Dl_PopHead(&self->tx.waiting_queue); node_ptr != NULL; node_ptr = Dl_PopHead(&self->tx.waiting_queue))
+ {
+ msg_ptr = (CMessage*)Dln_GetData(node_ptr);
+
+ Msg_NotifyTxStatus(msg_ptr, UCS_MSG_STAT_ERROR_SYNC);
+ }
+
+ /* cleanup Rx queue */
+ for (node_ptr = Dl_PopHead(&self->rx.queue); node_ptr != NULL; node_ptr = Dl_PopHead(&self->rx.queue))
+ {
+ msg_ptr = (CMessage*)Dln_GetData(node_ptr);
+
+ Pmch_ReturnRxToPool(self->init.channel_ptr, msg_ptr);
+ }
+
+ Srv_ClearEvent(&self->service, FIFO_SE_ALL);
+}
+
+
+/*! \brief Service function of FIFO
+ * \details The processing order of Rx followed by Tx is important for Fifo_RxProcessCommand()
+ * \param self The instance
+ */
+static void Fifo_Service(void *self)
+{
+ CPmFifo *self_ = (CPmFifo*)self;
+ Srv_Event_t event_mask;
+
+ Srv_GetEvent(&self_->service, &event_mask);
+
+ if(FIFO_SE_RX_SERVICE == (event_mask & FIFO_SE_RX_SERVICE)) /* Is event pending? */
+ {
+ Srv_ClearEvent(&self_->service, FIFO_SE_RX_SERVICE);
+ Fifo_RxService(self_);
+ }
+
+ if((event_mask & FIFO_SE_TX_APPLY_STATUS) == FIFO_SE_TX_APPLY_STATUS)
+ {
+ Srv_ClearEvent(&self_->service, FIFO_SE_TX_APPLY_STATUS);
+ Fifo_TxApplyCurrentStatus(self_);
+ }
+
+ if(FIFO_SE_TX_SERVICE == (event_mask & FIFO_SE_TX_SERVICE)) /* Is event pending? */
+ {
+ Srv_ClearEvent(&self_->service, FIFO_SE_TX_SERVICE);
+ Fifo_TxService(self_);
+ }
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Tx Implementation */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Enqueues a message for transmission
+ * \param self The instance
+ * \param msg_ptr The Tx message object
+ * \param bypass Use \c true if the message shall bypass all other messages
+ * in the FIFO. Otherwise \c false.
+ */
+void Fifo_Tx(CPmFifo *self, CMessage *msg_ptr, bool bypass)
+{
+ uint8_t *msg_hdr_ptr = NULL;
+
+ TR_ASSERT(self->init.base_ptr->ucs_user_ptr, "[FIFO]", (msg_ptr != NULL));
+ TR_INFO((self->init.base_ptr->ucs_user_ptr, "[FIFO]", "Fifo_Tx(): FIFO: %u, msg_ptr: 0x%p, FuncId: 0x%X, queued Tx message", 3U, self->config.fifo_id, msg_ptr, msg_ptr->pb_msg.id.function_id));
+
+ Msg_PullHeader(msg_ptr, self->tx.encoder_ptr->msg_hdr_sz);
+ msg_hdr_ptr = Msg_GetHeader(msg_ptr);
+ self->tx.encoder_ptr->encode_fptr(Msg_GetMostTel(msg_ptr), msg_hdr_ptr);
+
+ if (bypass == false)
+ {
+ Dl_InsertTail(&self->tx.waiting_queue, Msg_GetNode(msg_ptr)); /* enqueue message for asynchronous transmission */
+ }
+ else
+ {
+ Fifo_TxEnqueueBypassMsg(self, &self->tx.waiting_queue, msg_ptr); /* queue before first non-bypass message */
+ }
+
+ Srv_SetEvent(&self->service, FIFO_SE_TX_SERVICE);
+}
+
+/*! \brief Enqueues a bypass message between the last bypass and the first regular message in a queue
+ * \param self The instance
+ * \param q_ptr The message queue
+ * \param msg_ptr The Tx message object
+ */
+static void Fifo_TxEnqueueBypassMsg(CPmFifo *self, CDlList *q_ptr, CMessage *msg_ptr)
+{
+ CDlNode *node_ptr = Dl_Foreach(q_ptr, &Fifo_FindFirstRegularMsg, NULL); /* find first "non-bypass" message */
+ Msg_SetTxBypass(msg_ptr, true); /* mark new message as bypass message */
+
+ if (node_ptr == NULL) /* no message or only bypass messages found */
+ {
+ Dl_InsertTail(&self->tx.waiting_queue, Msg_GetNode(msg_ptr)); /* enqueue message to tail */
+ }
+ else /* first "non-bypass" message is found */
+ { /* insert the bypass message before the first regular message found */
+ Dl_InsertBefore(&self->tx.waiting_queue, node_ptr, Msg_GetNode(msg_ptr));
+ }
+}
+
+/*! \brief Required as "for-each" function to find the first "regular message"
+ * \param d_ptr Points to a message object in the queue
+ * \param ud_ptr Unused data reference, always \c NULL
+ * \return Returns \c true if a regular (non-bypass) message is found.
+ */
+static bool Fifo_FindFirstRegularMsg(void *d_ptr, void *ud_ptr)
+{
+ bool ret = true;
+ MISC_UNUSED(ud_ptr);
+
+ if (Msg_IsTxBypass((CMessage*)d_ptr))
+ {
+ ret = false;
+ }
+
+ return ret;
+}
+
+/*! \brief Processing of data, status and command messages
+ * \param self The instance
+ */
+static void Fifo_TxService(CPmFifo *self)
+{
+ Fifo_TxProcessCommand(self);
+ Fifo_TxProcessStatus(self);
+ Fifo_TxProcessData(self);
+}
+
+/*! \brief Processing of status messages
+ * \param self The instance
+ */
+static void Fifo_TxProcessStatus(CPmFifo *self)
+{
+ if (Pmcmd_IsTriggered(&self->rx.status) != false)
+ {
+ if (Pmcmd_Reserve(&self->rx.status) != false)
+ {
+ Pmcmd_SetTrigger(&self->rx.status, false);
+ self->rx.ack_last_ok_sid = (self->rx.expected_sid - self->rx.busy_num) - 1U;
+ self->rx.wait_processing = false;
+
+ if (self->rx.busy_num == 0U) /* currently no processing of data messages active */
+ { /* notify the latest with SUCCESS */
+ Pmcmd_UpdateContent(&self->rx.status, self->rx.expected_sid - 1U, PMP_STATUS_TYPE_FLOW, PMP_STATUS_CODE_SUCCESS);
+ }
+ else /* message processing is active */
+ { /* notify code busy according to remaining credits */
+ Pmcmd_UpdateContent(&self->rx.status, self->rx.expected_sid - self->rx.busy_num, PMP_STATUS_TYPE_FLOW, PMP_STATUS_CODE_BUSY);
+ }
+
+ Pmch_Transmit(self->init.channel_ptr, Pmcmd_GetLldTxObject(&self->rx.status));
+ }
+ }
+}
+
+/*! \brief Processing of queued data messages
+ * \param self The instance
+ */
+static void Fifo_TxProcessData(CPmFifo *self)
+{
+ /* process all queued messages as long as credits are available,
+ * process all queued messages if FIFO is not synced
+ */
+ while ((self->tx.cancel_all_running == false) && (self->tx.credits > 0U))
+ {
+ CMessage *msg_ptr = NULL;
+ CDlNode *node_ptr = NULL;
+ uint8_t *msg_hdr_ptr = NULL;
+ Lld_IntTxMsg_t *lld_tx_ptr = NULL;
+
+ node_ptr = Dl_PopHead(&self->tx.waiting_queue); /* get message node */
+ if (node_ptr == NULL)
+ {
+ msg_ptr = NULL; /* stop processing - no further messages in queue */
+ break;
+ }
+
+ msg_ptr = (CMessage*)Dln_GetData(node_ptr); /* get message object */
+
+ if (self->sync_state != FIFO_S_SYNCED)
+ {
+ Msg_NotifyTxStatus(msg_ptr, UCS_MSG_STAT_ERROR_SYNC); /* notify sync error while not synced */
+ }
+ else
+ {
+ lld_tx_ptr = Lldp_GetTxFromPool(&self->tx.lld_pool);
+ TR_ASSERT(self->init.base_ptr->ucs_user_ptr, "[FIFO]", (msg_ptr != NULL));
+ TR_ASSERT(self->init.base_ptr->ucs_user_ptr, "[FIFO]", (lld_tx_ptr != NULL));
+ TR_INFO((self->init.base_ptr->ucs_user_ptr, "[FIFO]", "Fifo_TxProcessData(): FIFO: %u, msg_ptr: 0x%p, FuncId: 0x%X, SID: 0x%02X, queued Tx message", 4U, self->config.fifo_id, msg_ptr, msg_ptr->pb_msg.id.function_id, self->tx.sid_next_to_use));
+
+ Msg_SetLldHandle(msg_ptr, lld_tx_ptr); /* link message objects */
+ lld_tx_ptr->msg_ptr = msg_ptr;
+
+ Msg_PullHeader(msg_ptr, self->tx.encoder_ptr->pm_hdr_sz); /* get PM header pointer */
+ msg_hdr_ptr = Msg_GetHeader(msg_ptr);
+
+ {
+ uint8_t tel_length = Msg_GetMostTel(msg_ptr)->tel.tel_len;
+ self->tx.pm_header.pml = (Msg_GetHeaderSize(msg_ptr) + tel_length) - 2U;
+ }
+
+ self->tx.pm_header.sid = self->tx.sid_next_to_use; /* assign SeqID */
+ self->tx.sid_next_to_use++;
+
+ Pmh_BuildHeader(&self->tx.pm_header, msg_hdr_ptr); /* build PM header */
+ lld_tx_ptr->lld_msg.memory_ptr = Msg_GetMemTx(msg_ptr);
+
+ Msg_SetTxActive(msg_ptr, true);
+ Dl_InsertTail(&self->tx.pending_q, Msg_GetNode(msg_ptr));
+
+ Pmch_Transmit(self->init.channel_ptr, (Ucs_Lld_TxMsg_t*)(void*)lld_tx_ptr);
+
+ self->tx.credits--;
+ }
+ }
+}
+
+/*! \brief Processing of status messages
+ * \param self The instance
+ */
+static void Fifo_TxProcessCommand(CPmFifo *self)
+{
+ if (Pmcmd_IsTriggered(&self->tx.sync_cmd) != false)
+ {
+ if (Pmcmd_Reserve(&self->tx.sync_cmd) != false)
+ {
+ Pmcmd_SetTrigger(&self->tx.sync_cmd, false);
+
+ if (self->sync_state == FIFO_S_SYNCING)
+ {
+ self->sync_cnt++;
+ Pmcmd_SetContent(&self->tx.sync_cmd, self->sync_cnt, PMP_CMD_TYPE_SYNCHRONIZATION, PMP_CMD_CODE_SYNC, self->sync_params, 4U);
+ Pmch_Transmit(self->init.channel_ptr, Pmcmd_GetLldTxObject(&self->tx.sync_cmd));
+ }
+ else if (self->sync_state == FIFO_S_UNSYNCING)
+ {
+ Pmcmd_SetContent(&self->tx.sync_cmd, 0U, PMP_CMD_TYPE_SYNCHRONIZATION, PMP_CMD_CODE_UNSYNC, NULL, 0U);
+ Pmch_Transmit(self->init.channel_ptr, Pmcmd_GetLldTxObject(&self->tx.sync_cmd));
+ }
+ else
+ {
+ Pmcmd_Release(&self->tx.sync_cmd);
+ TR_FAILED_ASSERT(self->init.base_ptr->ucs_user_ptr, "[FIFO]");
+ }
+ }
+ else
+ {
+ TR_FAILED_ASSERT(self->init.base_ptr->ucs_user_ptr, "[FIFO]");
+ }
+ }
+}
+
+/*! \brief Releases a LLD Tx message object
+ * \param self The instance
+ * \param handle_ptr The unused LLD Tx message object
+ * \details If Fifo_TxApplyStatus() is waiting for a message object
+ * being released
+ */
+void Fifo_TxOnRelease(void *self, Ucs_Lld_TxMsg_t *handle_ptr)
+{
+ CPmFifo *self_ = (CPmFifo*)self;
+ Lld_IntTxMsg_t *tx_ptr = (Lld_IntTxMsg_t*)(void*)handle_ptr;
+
+ if (tx_ptr->msg_ptr != NULL)
+ {
+ Msg_SetTxActive(tx_ptr->msg_ptr, false);
+ }
+ else
+ {
+ TR_FAILED_ASSERT(self_->init.base_ptr->ucs_user_ptr, "[FIFO]");
+ }
+
+ if (self_->tx.status_waiting_release != false)
+ {
+ self_->tx.status_waiting_release = false;
+ Srv_SetEvent(&self_->service, (FIFO_SE_TX_APPLY_STATUS | FIFO_SE_TX_SERVICE));
+ }
+}
+
+/*! \brief Triggers a command CANCEL_ALL and stops further Tx processing
+ * \details CANCEL_ALL shall be called only, if the front-most pending message
+ * has followers (is segmented, i.e. \c cancel_id > 0). Use command CANCEL
+ * if the front-most message has no followers (\c cancel_id == NULL).
+ * \param self The instance
+ * \param failure_sid The failure sid
+ * \param failure_code The failure code reported by the INIC
+ */
+static void Fifo_TxExecuteCancelAll(CPmFifo *self, uint8_t failure_sid, uint8_t failure_code)
+{
+ TR_INFO((self->init.base_ptr->ucs_user_ptr, "[FIFO]", "Fifo_TxExecuteCancelAll(): FIFO: %u, SID: %u, Code: %u", 3U, self->config.fifo_id, failure_sid, failure_code));
+
+ if (Pmcmd_Reserve(&self->tx.cancel_cmd) != false) /* prepare cancel command */
+ {
+ Pmcmd_UpdateContent(&self->tx.cancel_cmd, self->tx.current_sid,
+ PMP_CMD_TYPE_MSG_ACTION, PMP_CMD_CODE_ACTION_CANCEL_ALL);
+ Pmch_Transmit(self->init.channel_ptr, Pmcmd_GetLldTxObject(&self->tx.cancel_cmd));
+ }
+ else
+ {
+ TR_FAILED_ASSERT(self->init.base_ptr->ucs_user_ptr, "[FIFO]"); /* Unable to reserve cancel command */
+ }
+
+ self->tx.cancel_all_running = true;
+ self->tx.failure_sid = failure_sid;
+ self->tx.failure_status = failure_code;
+}
+
+/*! \brief Shall be called if the command CANCEL_ALL was processed completely
+ * \param self The instance
+ * \details Since the CANCEL_ALL is used to cancel the front-most message and
+ * all of its followers (same cancel_id)
+
+ for mid-level retries, the canceled messages
+ * are moved from the processing_q to the waiting_q again. The MLR timer is
+ * started. As soon as the timer elapses, Tx processing is continued again.
+ * If the front-most message has a follower id, all pending messages are
+ * moved to the waiting queue and all messages with the same follower id
+ * are notified as failed.
+ */
+static void Fifo_TxFinishedCancelAll(CPmFifo *self)
+{
+ TR_INFO((self->init.base_ptr->ucs_user_ptr, "[FIFO]", "Fifo_TxFinishedCancelAll(): FIFO: %u, FailureStatus: %u,", 2U, self->config.fifo_id, self->tx.failure_status));
+
+ if (self->tx.failure_status != 0U) /* avoid multiple execution of the same CANCELED status */
+ { /* and all of its followers */
+ uint8_t follower_id = Fifo_TxPendingGetFollowerId(self);
+ Fifo_TxRestorePending(self); /* move remaining messages to waiting_q */
+ Fifo_TxCancelFollowers(self, follower_id, (Ucs_MsgTxStatus_t)self->tx.failure_status);
+ /* notify front-most and message and all of its followers */
+ self->tx.cancel_all_running = false; /* continue with Tx processing */
+ self->tx.failure_sid = 0U;
+ self->tx.failure_status = 0U;
+ Srv_SetEvent(&self->service, FIFO_SE_TX_SERVICE);
+ }
+}
+
+/*! \brief Triggers a command CANCEL while Tx processing continues
+ * \param self The instance
+ * \param failure_sid The failure sid
+ * \param failure_code The failure code reported by the INIC
+ */
+static void Fifo_TxExecuteCancel(CPmFifo *self, uint8_t failure_sid, uint8_t failure_code)
+{
+ TR_INFO((self->init.base_ptr->ucs_user_ptr, "[FIFO]", "Fifo_TxExecuteCancel(): FIFO: %u, SID: %u, Code: %u", 3U, self->config.fifo_id, failure_sid, failure_code));
+
+ if (Pmcmd_Reserve(&self->tx.cancel_cmd) != false)
+ {
+ Pmcmd_UpdateContent(&self->tx.cancel_cmd, self->tx.current_sid,
+ PMP_CMD_TYPE_MSG_ACTION, PMP_CMD_CODE_ACTION_CANCEL);
+ Pmch_Transmit(self->init.channel_ptr, Pmcmd_GetLldTxObject(&self->tx.cancel_cmd));
+ }
+ else
+ {
+ TR_FAILED_ASSERT(self->init.base_ptr->ucs_user_ptr, "[FIFO]"); /* Unable to reserve cancel command */
+ }
+
+ self->tx.cancel_all_running = false;
+ self->tx.failure_sid = failure_sid;
+ self->tx.failure_status = failure_code;
+}
+
+/*! \brief Checks if the LLD has released all messages in the pending_q
+ * \param self The instance
+ * \return Returns \c true if all messages are released by the LLD, otherwise \c false.
+ */
+static bool Fifo_TxHasAccessPending(CPmFifo *self)
+{
+ bool ret = true;
+ CDlNode *node_ptr = Dl_PeekTail(&self->tx.pending_q); /* if the tail is not active, then all */
+ /* pending message are not active */
+ if (node_ptr != NULL)
+ {
+ CMessage *msg_ptr = (CMessage*)Dln_GetData(node_ptr);
+
+ if (Msg_IsTxActive(msg_ptr) != false)
+ {
+ TR_INFO((self->init.base_ptr->ucs_user_ptr, "[FIFO]", "Fifo_TxHasAccessPending(): FIFO: %u, msg_ptr: 0x%p, still in use", 2U, self->config.fifo_id, msg_ptr));
+ self->tx.status_waiting_release = true;
+ ret = false;
+ }
+ }
+
+ return ret;
+}
+
+/*! \brief Moves all pending messages to the waiting_q
+ * \details All messages from pending_q will be moved to the waiting_g and
+ * all consumed credits are restored. The message objects are restored
+ * to the queue in the same order as they have been forwarded to the LLD.
+ * This method is typically called to restore the waiting_q in the correct
+ * order before notifying a
+ * \param self The instance
+ */
+static void Fifo_TxRestorePending(CPmFifo *self)
+{
+ /* take tail from pending_q to the head of waiting_q */
+ CMessage *msg_ptr = NULL;
+ CDlNode *node_ptr = NULL;
+
+ /* cleanup pending queue */
+ for (node_ptr = Dl_PopTail(&self->tx.pending_q); node_ptr != NULL; node_ptr = Dl_PopTail(&self->tx.pending_q))
+ {
+ msg_ptr = (CMessage*)Dln_GetData(node_ptr);
+
+ TR_INFO((self->init.base_ptr->ucs_user_ptr, "[FIFO]", "Fifo_TxRestorePending(): FIFO: %u, msg_ptr: 0x%p", 2U, self->config.fifo_id, msg_ptr));
+ TR_ASSERT(self->init.base_ptr->ucs_user_ptr, "[FIFO]", (Msg_IsTxActive(msg_ptr) == false));
+
+ self->tx.sid_last_completed++;
+ self->tx.credits++;
+ Lldp_ReturnTxToPool(&self->tx.lld_pool, (Lld_IntTxMsg_t*)Msg_GetLldHandle(msg_ptr));
+ Msg_SetLldHandle(msg_ptr, NULL); /* remove link to LLD message object */
+ Msg_PushHeader(msg_ptr, self->tx.encoder_ptr->pm_hdr_sz); /* set index to position of message header */
+ Dl_InsertHead(&self->tx.waiting_queue, node_ptr); /* enqueue message to waiting_q */
+ }
+}
+
+/*! \brief Retrieves the follower id of the front-most pending message
+ * \param self The instance
+ * \return Returns the follower id of the front-most pending message.
+ */
+static uint8_t Fifo_TxPendingGetFollowerId(CPmFifo *self)
+{
+ CDlNode *node_ptr;
+ CMessage *tx_ptr;
+ uint8_t ret = 0U;
+
+ node_ptr = Dl_PeekHead(&self->tx.pending_q);
+ TR_ASSERT(self->init.base_ptr->ucs_user_ptr, "[FIFO]", (node_ptr != NULL));
+
+ if (node_ptr != NULL)
+ {
+ tx_ptr = (CMessage*)Dln_GetData(node_ptr);
+ ret = tx_ptr->pb_msg.opts.cancel_id;
+ }
+
+ return ret;
+}
+
+/*! \brief Aborts the transmission of all messages in the waiting_q with a given follower id
+ * \param self The instance
+ * \param follower_id The follower id a message needs to have to be canceled
+ * \param status The transmission status that shall be notified
+ */
+static void Fifo_TxCancelFollowers(CPmFifo *self, uint8_t follower_id, Ucs_MsgTxStatus_t status)
+{
+ CDlNode *node_ptr;
+ CDlList temp_queue;
+
+ Dl_Ctor(&temp_queue, self->init.base_ptr->ucs_user_ptr);
+ TR_INFO((self->init.base_ptr->ucs_user_ptr, "[FIFO]", "Fifo_TxCancelFollowers(): FIFO: %u: FollowerId: %u", 2U, self->config.fifo_id, follower_id));
+
+ for (node_ptr = Dl_PopHead(&self->tx.waiting_queue); node_ptr != NULL; node_ptr = Dl_PopHead(&self->tx.waiting_queue))
+ {
+ CMessage *tx_ptr = (CMessage*)Dln_GetData(node_ptr);
+
+ TR_ASSERT(self->init.base_ptr->ucs_user_ptr, "[FIFO]", (Msg_GetLldHandle(tx_ptr) == NULL));
+
+ if (tx_ptr->pb_msg.opts.cancel_id == follower_id)
+ {
+ Msg_NotifyTxStatus(tx_ptr, status); /* notify failed transmission of message and all followers */
+ }
+ else
+ {
+ Dl_InsertTail(&temp_queue, node_ptr); /* add to temporary queue and keep order of messages */
+ }
+ }
+
+ if (Dl_GetSize(&temp_queue) > 0U) /* restore temp_queue to waiting_q */
+ {
+ Dl_AppendList(&self->tx.waiting_queue, &temp_queue);/* temp_queue will be empty now */
+ }
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Tx Message Processing */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Retrieves the number of (implicit) acknowledges that are related to one SID
+ * \param self The instance
+ * \param sid The sequence ID
+ * \return The number of implicit acknowledges that are related to the SID
+ */
+static uint8_t Fifo_TxGetValidAcknowledges(CPmFifo *self, uint8_t sid)
+{
+ uint8_t diff_s = (uint8_t)(sid - self->tx.sid_last_completed); /* number of implicit acknowledged data */
+ uint8_t diff_b = (uint8_t)(self->tx.sid_next_to_use - self->tx.sid_last_completed); /* number of "sent but un-acknowledged data" + 1 */
+
+ if (diff_b <= diff_s) /* check valid acknowledges */
+ {
+ diff_s = 0U;
+ }
+
+ return diff_s;
+}
+
+
+/*! \brief Checks id an incoming SID of a status message is valid.
+ * \param self The instance
+ * \param sid The sequence ID
+ * \return Returns \c true if the SID is valid, otherwise \c false.
+ */
+static bool Fifo_TxIsIncomingSidValid(CPmFifo *self, uint8_t sid)
+{
+ bool ret = false;
+ uint8_t diff_s = (uint8_t)(sid - self->tx.sid_last_completed); /* number of implicit acknowledged data */
+ uint8_t diff_b = (uint8_t)(self->tx.sid_next_to_use - self->tx.sid_last_completed); /* number of "sent but un-acknowledged data" + 1 */
+ uint8_t diff_p = (uint8_t)(self->tx.current_sid - self->tx.sid_last_completed); /* pending/known acknowledges */
+
+ if (diff_b > diff_s) /* check if SID fits in valid range */
+ {
+ if (diff_s >= diff_p) /* avoid overwriting with smaller values */
+ {
+ ret = true;
+ }
+ }
+
+ return ret;
+}
+
+/*! \brief Implicitly notifies transmission status to calling classes
+ * \param self The instance
+ * \param sid The sequence ID until the status shall be notified
+ * \param status The status which is notified
+ * \return Returns \c true if all desired messages had been notified,
+ * otherwise \c false.
+ */
+static bool Fifo_TxNotifyStatus(CPmFifo *self, uint8_t sid, Ucs_MsgTxStatus_t status)
+{
+ bool ret = true;
+ uint8_t acks = Fifo_TxGetValidAcknowledges(self, sid);
+
+ TR_INFO((self->init.base_ptr->ucs_user_ptr, "[FIFO]", "Fifo_TxNotifyStatus(): FIFO: %u, calculated_acks: %u", 2U, self->config.fifo_id, acks));
+
+ while (acks > 0U)
+ {
+ CDlNode *node_ptr = Dl_PopHead(&self->tx.pending_q);
+
+ if (node_ptr != NULL)
+ {
+ CMessage *tx_ptr = (CMessage*)node_ptr->data_ptr;
+
+ if (!Msg_IsTxActive(tx_ptr))
+ {
+ TR_ASSERT(self->init.base_ptr->ucs_user_ptr, "[FIFO]", (tx_ptr != NULL));
+ TR_INFO((self->init.base_ptr->ucs_user_ptr, "[FIFO]", "Fifo_TxNotifyStatus(): FIFO: %u, FuncId: 0x%X, notified status: %u", 3U, self->config.fifo_id, tx_ptr->pb_msg.id.function_id, status));
+ Msg_NotifyTxStatus(tx_ptr, status);
+ Lldp_ReturnTxToPool(&self->tx.lld_pool, (Lld_IntTxMsg_t*)Msg_GetLldHandle(tx_ptr));
+ Msg_SetLldHandle(tx_ptr, NULL); /* remove link to LLD message object */
+
+ self->tx.credits++; /* increment credits */
+ self->tx.sid_last_completed++; /* update last acknowledge SID */
+ }
+ else
+ {
+ TR_INFO((self->init.base_ptr->ucs_user_ptr, "[FIFO]", "Fifo_TxNotifyStatus(): FIFO: %u, LLD objects still occupied", 1U, self->config.fifo_id));
+ Dl_InsertHead(&self->tx.pending_q, node_ptr);
+ self->tx.status_waiting_release = true;
+ ret = false;
+ break;
+ }
+ }
+ else
+ {
+ TR_FAILED_ASSERT(self->init.base_ptr->ucs_user_ptr, "[FIFO]"); /* not yet handled */
+ /* trigger sync again */
+ }
+
+ acks--;
+ }
+
+ return ret;
+}
+
+/*! \brief Updates the current Tx status with the content of a received FIFO status
+ * \param self The instance
+ * \param sid The sequence id of the FIFO status
+ * \param type The type of the FIFO status. Valid types are only:
+ * - PMP_STATUS_TYPE_FLOW
+ * - PMP_STATUS_TYPE_FAILURE
+ * \param code The code of the FIFO status
+ */
+static void Fifo_TxUpdateCurrentStatus(CPmFifo *self, uint8_t sid, uint8_t type, uint8_t code)
+{
+ TR_ASSERT(self->init.base_ptr->ucs_user_ptr, "[FIFO]", (type == (uint8_t)PMP_STATUS_TYPE_FAILURE) || (type == (uint8_t)PMP_STATUS_TYPE_FLOW));
+ if (Fifo_TxIsIncomingSidValid(self, sid)) /* is new or updating status */
+ {
+ self->tx.current_sid = sid; /* update current status */
+ self->tx.current_type = (Pmp_StatusType_t)type;
+ self->tx.current_code = code;
+ }
+ else
+ {
+ TR_ERROR((self->init.base_ptr->ucs_user_ptr, "[FIFO]", "Fifo_TxUpdateCurrentStatus(): FIFO: %u, sid: %u, type: %u, code: %u, INVALID SID", 4U, self->config.fifo_id, sid, type, code));
+ }
+}
+
+/*! \brief Analyses the current Tx status, tries to notify statuses to the transmitter and triggers
+ * retry/cancel actions.
+ * \param self The instance
+ */
+static void Fifo_TxApplyCurrentStatus(CPmFifo *self)
+{
+ if ((self->tx.cancel_all_running == false) && (self->tx.failure_status != 0U)) /* Command(CANCEL) is pending */
+ {
+ if (Fifo_TxGetValidAcknowledges(self, self->tx.current_sid) > 1U) /* ?>=1? "single cancel" is valid and implicit */
+ {
+ if (Fifo_TxNotifyStatus(self, self->tx.failure_sid, (Ucs_MsgTxStatus_t)self->tx.failure_status))
+ {
+ self->tx.failure_status = 0U; /* implicit canceled stops retries */
+ self->tx.failure_sid = 0U;
+ }
+ }
+ }
+
+ if ((self->tx.current_type == PMP_STATUS_TYPE_FAILURE) && (self->tx.status_waiting_release == false))
+ {
+ if (self->tx.cancel_all_running == false)
+ {
+ if (Fifo_TxNotifyStatus(self, self->tx.current_sid - 1U, UCS_MSG_STAT_OK) != false)
+ {
+ /* important: failed message now is front-most message in the tx.pending_q, */
+ /* any implicit acknowledge was done before */
+ if (self->tx.failure_status == 0U) /* failure not yet handled - avoid multiple calls */
+ {
+ if (Fifo_TxPendingGetFollowerId(self) == 0U)
+ {
+ Fifo_TxExecuteCancel(self, self->tx.current_sid, self->tx.current_code); /* execute simple cancel */
+ }
+ else
+ {
+ Fifo_TxExecuteCancelAll(self, self->tx.current_sid, self->tx.current_code); /* execute cancel all */
+ /* self->tx.cancel_all_running now is 'true' and Tx is stopped */
+ }
+ }
+ }
+ }
+ }
+
+ if ((self->tx.current_type == PMP_STATUS_TYPE_FLOW) && (self->tx.status_waiting_release == false))
+ {
+ if ((uint8_t)PMP_STATUS_CODE_SUCCESS == self->tx.current_code) /* acknowledge pending messages */
+ {
+ /* no further retries possible */
+ (void)Fifo_TxNotifyStatus(self, self->tx.current_sid, UCS_MSG_STAT_OK);
+ }
+ else if ((uint8_t)PMP_STATUS_CODE_CANCELED == self->tx.current_code)
+ {
+ if (self->tx.cancel_all_running != false)
+ {
+ /* wait until the last SID is notified */
+ if (self->tx.current_sid == (uint8_t)(self->tx.sid_next_to_use - (uint8_t)1U))
+ {
+ /* cancel done if none of pending messages is active */
+ if (Fifo_TxHasAccessPending(self) != false)
+ {
+ Fifo_TxFinishedCancelAll(self);
+ }
+ }
+ }
+ else if (Fifo_TxNotifyStatus(self, self->tx.current_sid, (Ucs_MsgTxStatus_t)self->tx.failure_status))
+ {
+ self->tx.failure_status = 0U;
+ self->tx.failure_sid = 0U;
+ }
+ }
+ else
+ {
+ if (Fifo_TxNotifyStatus(self, self->tx.current_sid - 1U, UCS_MSG_STAT_OK)) /* just implicitly acknowledge preceding message */
+ {
+ if ((uint8_t)PMP_STATUS_CODE_NACK == self->tx.current_code)
+ {
+ Fifo_Stop(self, FIFO_S_UNSYNCED_INIT, true);
+ TR_FAILED_ASSERT(self->init.base_ptr->ucs_user_ptr, "[FIFO]");
+ }
+ }
+ }
+ }
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Rx Implementation */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Receives a message on the respective FIFO
+ * \param self The instance
+ * \param msg_ptr Reference to the Rx message
+ */
+static void Fifo_OnRx(void *self, CMessage *msg_ptr)
+{
+ CPmFifo *self_ = (CPmFifo*)self;
+ Dl_InsertTail(&self_->rx.queue, Msg_GetNode(msg_ptr)); /* enqueue in rx_queue */
+ Srv_SetEvent(&self_->service, (FIFO_SE_RX_SERVICE | FIFO_SE_TX_APPLY_STATUS | FIFO_SE_TX_SERVICE));
+}
+
+/*! \brief Processes the Rx queue completely and triggers possible Tx events
+ * \param self The instance
+ */
+static void Fifo_RxService(CPmFifo *self)
+{
+ while (self->rx.wait_processing == false) /* process all Rx messages if possible */
+ {
+ CMessage *msg_ptr;
+ uint8_t *header_ptr;
+ Pmp_MsgType_t type;
+ bool ok;
+
+ bool free_msg = true; /* default: free every status or command message */
+ CDlNode *node_ptr = Dl_PopHead(&self->rx.queue);
+
+ if (node_ptr == NULL)
+ {
+ msg_ptr = NULL; /* stop processing - no further messages in queue */
+ break;
+ }
+
+ msg_ptr = (CMessage*)node_ptr->data_ptr;
+ header_ptr = Msg_GetHeader(msg_ptr);
+ type = Pmp_GetMsgType(header_ptr);
+ ok = Pmp_VerifyHeader(header_ptr, MSG_SIZE_RSVD_BUFFER);
+
+ if (ok != false)
+ {
+ switch (type)
+ {
+ case PMP_MSG_TYPE_CMD:
+ Fifo_RxProcessCommand(self, msg_ptr);
+ break;
+ case PMP_MSG_TYPE_STATUS:
+ Fifo_RxProcessStatus(self, msg_ptr);
+ break;
+ case PMP_MSG_TYPE_DATA:
+ free_msg = Fifo_RxProcessData(self, msg_ptr); /* important: message can be freed */
+ break; /* synchronously */
+ default:
+ TR_FAILED_ASSERT(self->init.base_ptr->ucs_user_ptr, "[FIFO]"); /* unknown FIFO message type */
+ break;
+ }
+ }
+ else
+ {
+ TR_FAILED_ASSERT(self->init.base_ptr->ucs_user_ptr, "[FIFO]"); /* invalid message header */
+ }
+
+ if (free_msg != false)
+ {
+ Pmch_ReturnRxToPool(self->init.channel_ptr, msg_ptr);
+ }
+ }
+}
+
+/*! \brief Evaluates the trigger condition to transmit a Rx status
+ * \details Needs to be called before and after processing Rx data messages
+ * \param self The instance
+ */
+static void Fifo_RxCheckStatusTrigger(CPmFifo *self)
+{
+ /* calculate the number of credits the INIC has consumed */
+ /* if less messages are processing, the freed can be acknowledged */
+ uint8_t consumed_inic_credits = (self->rx.expected_sid - self->rx.ack_last_ok_sid) - 1U;
+ uint8_t possible_acks = consumed_inic_credits - self->rx.busy_num;
+
+ if ((consumed_inic_credits >= self->rx.ack_threshold) && (possible_acks > 0U))
+ {
+ if (Pmcmd_IsTriggered(&self->rx.status) == false)
+ {
+ Pmcmd_SetTrigger(&self->rx.status, true); /* INIC might run out of credits */
+ Srv_SetEvent(&self->service, FIFO_SE_TX_SERVICE);
+ }
+ }
+}
+
+/*! \brief This function shall be called before processing a valid FIFO data message
+ * \param self The instance
+ */
+static void Fifo_RxGetCredit(CPmFifo *self)
+{
+ self->rx.busy_num++;
+ Fifo_RxCheckStatusTrigger(self);
+}
+
+/*! \brief This function shall be called after processing a valid FIFO data message
+ * \details It is important to call this function after the message object is freed,
+ * so that the flow control can be updated.
+ * \param self The instance
+ */
+static void Fifo_RxReleaseCredit(CPmFifo *self)
+{
+ self->rx.busy_num--;
+ Fifo_RxCheckStatusTrigger(self);
+}
+
+/*! \brief Releases a FIFO data message which was received and forwarded by the FIFO
+ * \details The function returns the message to the channel's Rx message pool and
+ * has to update the number of credits (processing handles).
+ * A FIFO data message is initially allocated from the channel's Rx message pool.
+ * When processing the handle the determined FIFO need to calculate the amount of
+ * credits. When freeing the message the handle needs to be returned to the channel's
+ * Rx pool again and the FIFO needs to refresh the status and credits calculation.
+ * Therefore the message has to be freed to the respective FIFO again.
+ * \param self The instance
+ * \param msg_ptr The Rx data message
+ */
+void Fifo_RxReleaseMsg(CPmFifo *self, CMessage *msg_ptr)
+{
+ Pmch_ReturnRxToPool(self->init.channel_ptr, msg_ptr);
+ Fifo_RxReleaseCredit(self);
+}
+
+/*! \brief Processes an Rx data message
+ * \param self The instance
+ * \param msg_ptr The Rx data message
+ * \return \c true if the message object is no longer needed.
+ * Otherwise \c false.
+ */
+static bool Fifo_RxProcessData(CPmFifo *self, CMessage *msg_ptr)
+{
+ bool free_msg = true;
+ uint8_t content_header_sz = 0U;
+ uint8_t sid = 0U;
+ uint8_t *header_ptr = Msg_GetHeader(msg_ptr);
+ sid = Pmp_GetSid(header_ptr);
+
+ if (self->sync_state != FIFO_S_SYNCED)
+ { /* discard Rx messages while FIFO is not synced */
+ TR_ERROR((self->init.base_ptr->ucs_user_ptr, "[FIFO]", "Fifo_RxProcessData(): FIFO: %u, state: %u, discards Rx message with SID=0x%02X while not synced (warning)", 3U, self->config.fifo_id, self->sync_state, sid));
+ }
+ else if (sid == self->rx.expected_sid) /* check if SID is ok */
+ {
+ uint8_t pm_header_sz = Pmp_GetPmhl(header_ptr) + 3U;
+ TR_ASSERT(self->init.base_ptr->ucs_user_ptr, "[FIFO]", (pm_header_sz == self->rx.encoder_ptr->pm_hdr_sz));
+
+ self->rx.expected_sid++; /* update SID */
+ content_header_sz = self->rx.encoder_ptr->msg_hdr_sz;
+
+ /* parasoft suppress item MISRA2004-17_4 reason "necessary offset usage" */
+ self->rx.encoder_ptr->decode_fptr(Msg_GetMostTel(msg_ptr), &(header_ptr[pm_header_sz]));
+ /* parasoft unsuppress item MISRA2004-17_4 reason "necessary offset usage" */
+
+ Msg_ReserveHeader(msg_ptr, content_header_sz + pm_header_sz);
+ Msg_PullHeader(msg_ptr, content_header_sz + pm_header_sz);
+
+ if (Msg_VerifyContent(msg_ptr))
+ {
+ if (self->rx.on_complete_fptr != NULL)
+ {
+ (void)Fifo_RxGetCredit(self);
+ free_msg = false; /* callback is responsible to free the message */
+ self->rx.on_complete_fptr(self->rx.on_complete_inst, msg_ptr);
+ /* Fifo_RxReleaseCredit() is called when message is freed */
+ }
+ }
+ }
+ else
+ {
+ TR_ERROR((self->init.base_ptr->ucs_user_ptr, "[FIFO]", "Fifo_RxProcessData(): FIFO: %u, state: %u, discards Rx message with unexpected SID=0x%02X (warning)", 3U, self->config.fifo_id, self->sync_state, sid));
+ }
+
+ return free_msg;
+}
+
+/*! \brief Processes an Rx status message
+ * \param self The instance
+ * \param msg_ptr The Rx status message
+ */
+static void Fifo_RxProcessStatus(CPmFifo *self, CMessage *msg_ptr)
+{
+ CPmh pm_header;
+ uint8_t current_sid;
+ uint8_t current_type;
+ uint8_t current_code;
+ uint8_t *header_ptr = Msg_GetHeader(msg_ptr);
+
+ Pmh_DecodeHeader(&pm_header, header_ptr);
+ current_sid = pm_header.sid;
+ current_type = (uint8_t)Pmh_GetExtStatusType(&pm_header);
+ current_code = (uint8_t)Pmh_GetExtStatusCode(&pm_header);
+
+ self->wd.request_started = false; /* status finishes a wd request */
+
+ switch ((Pmp_StatusType_t)current_type)
+ {
+ case PMP_STATUS_TYPE_FAILURE:
+ Fifo_TxUpdateCurrentStatus(self, current_sid, current_type, Fifo_RxCheckFailureCode(self, current_code)); /* just update status type FAILURE */
+ break;
+ case PMP_STATUS_TYPE_FLOW:
+ Fifo_TxUpdateCurrentStatus(self, current_sid, current_type, current_code); /* just update status type FLOW (codes: BUSY, NACK, SUCCESS, CANCELED) */
+ break;
+ case PMP_STATUS_TYPE_SYNCED:
+ Fifo_RxProcessSyncStatus(self, current_sid, current_type, current_code, header_ptr);
+ break;
+ case PMP_STATUS_TYPE_UNSYNCED_BSY:
+ TR_INFO((self->init.base_ptr->ucs_user_ptr, "[FIFO]", "Fifo_RxProcessStatus(): FIFO: %u, state: %u, received UNSYNCED_BSY", 2U, self->config.fifo_id, self->sync_state));
+ if (self->sync_state != FIFO_S_SYNCING)
+ {
+ Fifo_Stop(self, FIFO_S_UNSYNCED_BUSY, true);
+ }
+ break;
+ case PMP_STATUS_TYPE_UNSYNCED_RDY:
+ TR_INFO((self->init.base_ptr->ucs_user_ptr, "[FIFO]", "Fifo_RxProcessStatus(): FIFO: %u, state: %u, received UNSYNCED_RDY", 2U, self->config.fifo_id, self->sync_state));
+ if (self->sync_state == FIFO_S_SYNCING)
+ {
+ if (current_code == (uint8_t)PMP_UNSYNC_R_COMMAND)
+ {
+ Fifo_Synchronize(self); /* retry synchronization */
+ }
+ }
+ else
+ {
+ Fifo_Stop(self, FIFO_S_UNSYNCED_READY, true);
+ }
+ break;
+ default:
+ /* ignore status */
+ TR_INFO((self->init.base_ptr->ucs_user_ptr, "[FIFO]", "Fifo_RxProcessStatus(): FIFO: %u, state: %u, received UNKNOWN TYPE: %u", 3U, self->config.fifo_id, self->sync_state, current_type));
+ break;
+ }
+}
+
+/*! \brief Checks failure_code and sets invalid code to UCS_MSG_STAT_ERROR_UNKNOWN
+ * \param self The instance
+ * \param failure_code The INIC failure code
+ * \return Returns the checked failure code
+ */
+static uint8_t Fifo_RxCheckFailureCode(CPmFifo *self, uint8_t failure_code)
+{
+ uint8_t ret;
+ MISC_UNUSED(self);
+
+ switch (failure_code)
+ {
+ case (uint8_t)UCS_MSG_STAT_ERROR_CFG_NO_RCVR:
+ case (uint8_t)UCS_MSG_STAT_ERROR_BF:
+ case (uint8_t)UCS_MSG_STAT_ERROR_CRC:
+ case (uint8_t)UCS_MSG_STAT_ERROR_ID:
+ case (uint8_t)UCS_MSG_STAT_ERROR_ACK:
+ case (uint8_t)UCS_MSG_STAT_ERROR_TIMEOUT:
+ case (uint8_t)UCS_MSG_STAT_ERROR_FATAL_WT:
+ case (uint8_t)UCS_MSG_STAT_ERROR_FATAL_OA:
+ case (uint8_t)UCS_MSG_STAT_ERROR_NA_TRANS:
+ case (uint8_t)UCS_MSG_STAT_ERROR_NA_OFF:
+ ret = failure_code;
+ break;
+ default:
+ ret = (uint8_t)UCS_MSG_STAT_ERROR_UNKNOWN;
+ break;
+ }
+
+ return ret;
+}
+
+/*! \brief Processes an Rx command message
+ * \param self The instance
+ * \param msg_ptr The Rx command message
+ */
+static void Fifo_RxProcessCommand(CPmFifo *self, CMessage *msg_ptr)
+{
+ MISC_UNUSED(msg_ptr);
+ /* be aware that PMHL might vary */
+ Pmcmd_SetTrigger(&self->rx.status, true); /* just trigger latest Rx status now */
+}
+
+/*! \brief Processes a status SYNCED from the INIC
+ * \param self The instance
+ * \param sid The sid of the sync status
+ * \param type The type of the sync status
+ * \param code The code of the sync status
+ * \param header_ptr Pointer to the raw port message
+ * \return The current synchronization state
+ */
+static void Fifo_RxProcessSyncStatus(CPmFifo *self, uint8_t sid, uint8_t type, uint8_t code, uint8_t *header_ptr)
+{
+ bool check = false;
+ uint8_t tx_credits = 0U;
+
+ TR_ASSERT(self->init.base_ptr->ucs_user_ptr, "[FIFO]", (type==(uint8_t)PMP_STATUS_TYPE_SYNCED));
+ MISC_UNUSED(type);
+ MISC_UNUSED(code);
+
+ if (Pmp_GetDataSize(header_ptr) == 4U)
+ {
+ tx_credits = Pmp_GetData(header_ptr, 0U) & (uint8_t)PMP_CREDITS_MASK;
+
+ if ((tx_credits >= PMP_CREDITS_MIN) &&
+ (Pmp_GetData(header_ptr, 1U) == self->sync_params[1]) &&
+ (Pmp_GetData(header_ptr, 2U) == self->sync_params[2]) &&
+ (Pmp_GetData(header_ptr, 3U) == self->sync_params[3]) &&
+ (sid == (self->sync_cnt)))
+ {
+ check = true; /* the sync status parameters are correct */
+ }
+ }
+
+ if ((check != false) && (self->sync_state == FIFO_S_SYNCING))
+ {
+ Fifo_InitCounters(self, sid, tx_credits); /* values are incremented on each sync attempt */
+ self->sync_state = FIFO_S_SYNCED; /* sync status shall have 4 bytes message body */
+ self->rx.wait_processing = false;
+ Fifo_TxStartWatchdog(self);
+ Sub_Notify(&self->sync_state_subject, &self->config.fifo_id);
+ }
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Synchronization */
+/*------------------------------------------------------------------------------------------------*/
+
+/*! \brief Synchronizes the FIFO
+ * \param self The instance
+ */
+void Fifo_Synchronize(CPmFifo *self)
+{
+ TR_INFO((self->init.base_ptr->ucs_user_ptr, "[FIFO]", "Fifo_Synchronize(): FIFO: %u, state: %u", 2U, self->config.fifo_id, self->sync_state));
+ self->sync_state = FIFO_S_SYNCING;
+ Pmcmd_SetTrigger(&self->tx.sync_cmd, true);
+ Srv_SetEvent(&self->service, FIFO_SE_TX_SERVICE);
+}
+
+/*! \brief Un-synchronizes the FIFO
+ * \param self The instance
+ */
+void Fifo_Unsynchronize(CPmFifo *self)
+{
+ TR_INFO((self->init.base_ptr->ucs_user_ptr, "[FIFO]", "Fifo_Unsynchronize(): FIFO: %u, state: %u", 2U, self->config.fifo_id, self->sync_state));
+ if (self->sync_state != FIFO_S_UNSYNCED_READY)
+ {
+ self->sync_state = FIFO_S_UNSYNCING;
+ Pmcmd_SetTrigger(&self->tx.sync_cmd, true);
+ Srv_SetEvent(&self->service, FIFO_SE_TX_SERVICE);
+ }
+}
+
+/*! \brief Retrieves the current synchronization state
+ * \param self The instance
+ * \return The current synchronization state
+ */
+Fifo_SyncState_t Fifo_GetState(CPmFifo *self)
+{
+ return self->sync_state;
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Watchdog */
+/*------------------------------------------------------------------------------------------------*/
+
+/*! \brief Starts the watchdog handling
+ * \param self The instance
+ */
+static void Fifo_TxStartWatchdog(CPmFifo *self)
+{
+ self->wd.request_started = false;
+
+ TR_INFO((self->init.base_ptr->ucs_user_ptr, "[FIFO]", "Fifo_TxStartWatchdog(): fifo_id: %u, timeout: %u", 2U, self->config.fifo_id, self->wd.timer_value));
+
+ if (self->wd.timer_value != 0U)
+ {
+ Tm_SetTimer(&self->init.base_ptr->tm, &self->wd.timer, &Fifo_TxOnWatchdogTimer,
+ self,
+ self->wd.timer_value,
+ self->wd.timer_value
+ );
+ }
+}
+
+/*! \brief Callback function which is invoked if the watchdog timer expires
+ * \param self The instance
+ */
+static void Fifo_TxOnWatchdogTimer(void *self)
+{
+ CPmFifo *self_ = (CPmFifo*)self;
+
+ TR_INFO((self_->init.base_ptr->ucs_user_ptr, "[FIFO]", "Fifo_TxOnWatchdogTimer(): FIFO: %u, state: %u", 2U, self_->config.fifo_id, self_->sync_state));
+
+ if (self_->wd.request_started == false)
+ {
+ if (Pmcmd_Reserve(&self_->wd.wd_cmd) != false)
+ {
+ self_->wd.request_started = true; /* indicate that a status is expected */
+ Pmcmd_UpdateContent(&self_->wd.wd_cmd, self_->tx.sid_next_to_use - 1U, PMP_CMD_TYPE_REQ_STATUS, PMP_CMD_CODE_REQ_STATUS);
+ Pmch_Transmit(self_->init.channel_ptr, Pmcmd_GetLldTxObject(&self_->wd.wd_cmd));
+ }
+ else
+ {
+ TR_ERROR((self_->init.base_ptr->ucs_user_ptr, "[FIFO]", "Fifo_TxOnWatchdogTimer(): Unable to reserve watchdog command ", 0U));
+ Fifo_Stop(self_, FIFO_S_UNSYNCED_INIT, true);
+ }
+ }
+ else /* status not received in time - notify communication error */
+ {
+ TR_ERROR((self_->init.base_ptr->ucs_user_ptr, "[FIFO]", "Fifo_TxOnWatchdogTimer(): Missing response on status request", 0U));
+ Fifo_Stop(self_, FIFO_S_UNSYNCED_INIT, true);
+ }
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_pmfifos.c b/ucs2-lib/src/ucs_pmfifos.c
new file mode 100644
index 0000000..347c1b9
--- /dev/null
+++ b/ucs2-lib/src/ucs_pmfifos.c
@@ -0,0 +1,448 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of class CPmFifos
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_PMFIFOS
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_pmfifos.h"
+#include "ucs_misc.h"
+#include "ucs_trace.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal Constants */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief The initialization value of sync_count. It is incremented for each sync or un-sync attempt. */
+static const uint8_t FIFOS_SYNC_CNT_INITIAL = 0xFFU;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal typedefs */
+/*------------------------------------------------------------------------------------------------*/
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal prototypes */
+/*------------------------------------------------------------------------------------------------*/
+static void Fifos_Cleanup(CPmFifos *self);
+static void Fifos_OnSyncTimeout(void *self);
+static void Fifos_OnUnsyncTimeout(void *self);
+static void Fifos_OnFifoEvent(void *self, void *fifo_id_ptr);
+
+static void Fifos_HandleFifoStateChange(CPmFifos *self, Pmp_FifoId_t fifo_id);
+static bool Fifos_AreAllFifosInState(CPmFifos *self, Fifo_SyncState_t target_state);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Constructor of class CPmFifos
+ * \param self The instance
+ * \param base_ptr Reference to basic services
+ * \param channel_ptr Reference to the port message channel
+ * \param icm_fifo_ptr Reference to ICM FIFO, or NULL.
+ * \param mcm_fifo_ptr Reference to MCM FIFO, or NULL.
+ * \param rcm_fifo_ptr Reference to RCM FIFO, or NULL.
+ * \details At least one FIFO (MCM or ICM) must be provided.
+ */
+void Fifos_Ctor(CPmFifos *self, CBase *base_ptr, CPmChannel *channel_ptr, CPmFifo *icm_fifo_ptr, CPmFifo *mcm_fifo_ptr, CPmFifo *rcm_fifo_ptr)
+{
+ MISC_MEM_SET(self, 0, sizeof(*self));
+
+ self->base_ptr = base_ptr;
+ self->channel_ptr = channel_ptr;
+ self->state = FIFOS_S_UNSYNCED;
+
+ self->unsync_initial = false;
+ Fifos_ConfigureSyncParams(self, FIFOS_SYNC_RETRIES, FIFOS_SYNC_TIMEOUT);
+
+ self->fifos[PMP_FIFO_ID_ICM] = icm_fifo_ptr;
+ self->fifos[PMP_FIFO_ID_RCM] = rcm_fifo_ptr;
+ self->fifos[PMP_FIFO_ID_MCM] = mcm_fifo_ptr;
+
+ T_Ctor(&self->init_timer);
+ Sub_Ctor(&self->event_subject, self->base_ptr->ucs_user_ptr);
+ Obs_Ctor(&self->obs_icm, self, &Fifos_OnFifoEvent);
+ Obs_Ctor(&self->obs_rcm, self, &Fifos_OnFifoEvent);
+ Obs_Ctor(&self->obs_mcm, self, &Fifos_OnFifoEvent);
+
+ TR_ASSERT(self->base_ptr->ucs_user_ptr, "[FIFOS]", (!((icm_fifo_ptr == NULL) && (mcm_fifo_ptr == NULL))));
+
+ if (icm_fifo_ptr != NULL)
+ {
+ Fifo_AddStateObserver(icm_fifo_ptr, &self->obs_icm);
+ }
+
+ if (rcm_fifo_ptr != NULL)
+ {
+ Fifo_AddStateObserver(rcm_fifo_ptr, &self->obs_rcm);
+ }
+
+ if (mcm_fifo_ptr != NULL)
+ {
+ Fifo_AddStateObserver(mcm_fifo_ptr, &self->obs_mcm);
+ }
+
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[FIFOS]", "Fifos_Ctor(): FIFOS created, state %d", 1U, self->state));
+}
+
+/*! \brief Adds an observer of synchronization events
+ * \param self The instance
+ * \param obs_ptr The observer. The notification result type is Fifos_Event_t.
+ */
+void Fifos_AddEventObserver(CPmFifos *self, CObserver *obs_ptr)
+{
+ TR_ASSERT(self->base_ptr->ucs_user_ptr, "[FIFOS]", (obs_ptr != 0));
+ (void)Sub_AddObserver(&self->event_subject, obs_ptr);
+}
+
+/*! \brief Removes an observer of synchronization events
+ * \param self The instance
+ * \param obs_ptr The observer.
+ */
+void Fifos_RemoveEventObserver(CPmFifos *self, CObserver *obs_ptr)
+{
+ TR_ASSERT(self->base_ptr->ucs_user_ptr, "[FIFOS]", (obs_ptr != 0));
+ (void)Sub_RemoveObserver(&self->event_subject, obs_ptr);
+}
+
+/*! \brief Forces all FIFOs to state UNSYNCED without waiting for INIC responses and
+ * without throwing events
+ * \details Stops the LLD interface and releases all pending message resources.
+ * This function shall be called if the UCS requires a un-normal termination
+ * which is not detected by port message protocol.
+ * \param self The instance
+ */
+void Fifos_ForceTermination(CPmFifos *self)
+{
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[FIFOS]", "Fifos_ForceTermination(): Termination started, state: %d", 1U, self->state));
+ Fifos_Cleanup(self);
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[FIFOS]", "Fifos_ForceTermination(): Termination done, state: %d", 1U, self->state));
+}
+
+/*! \brief Configures retries and timeout for synchronize or un-synchronize
+ * operation
+ * \details This method shall be called before starting a synchronization or un-synchronization
+ * or after it has finished. The current counter of synchronization attempts is reset.
+ * \param self The instance
+ * \param retries The number of retries until event FIFOS_EV_SYNC_FAILED or
+ * FIFOS_EV_UNSYNC_FAILED will be notified
+ * \param timeout The timeout in milliseconds when the retry is performed
+ */
+void Fifos_ConfigureSyncParams(CPmFifos *self, uint8_t retries, uint16_t timeout)
+{
+ self->cmd_retries = retries;
+ self->cmd_timeout = timeout;
+ self->sync_cnt = FIFOS_SYNC_CNT_INITIAL;
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Synchronization */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Initializes all port message FIFOs
+ * \details Possible results of the operation are the following events which are fired
+ * asynchronously. Refer also Fifos_AddEventObserver() and \ref Fifos_Event_t.
+ * - \ref FIFOS_EV_SYNC_ESTABLISHED
+ * - \ref FIFOS_EV_SYNC_FAILED
+ * \param self The instance
+ * \param reset_cnt If \c true resets the synchronization counter. In this case an automatic
+ * retries will be done after the first synchronization timeout.
+ * \param force_sync If \c true the method will also trigger the synchronization of already
+ * synced \ref CPmFifo objects.
+ */
+void Fifos_Synchronize(CPmFifos *self, bool reset_cnt, bool force_sync)
+{
+ uint8_t cnt;
+ self->state = FIFOS_S_SYNCING;
+ self->unsync_initial = false;
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[FIFOS]", "Fifos_Synchronize(): Synchronization started, state: %d", 1U, self->state));
+
+ if (reset_cnt)
+ {
+ self->sync_cnt = FIFOS_SYNC_CNT_INITIAL;
+ }
+
+ self->sync_cnt++;
+ Pmch_Initialize(self->channel_ptr); /* Start LLD if not already done */
+
+ for (cnt = 0U; cnt < PMP_MAX_NUM_FIFOS; cnt++)
+ {
+ if (self->fifos[cnt] != NULL)
+ {
+ if (force_sync || (Fifo_GetState(self->fifos[cnt]) != FIFO_S_SYNCED))
+ {
+ Fifo_Synchronize(self->fifos[cnt]);
+ }
+ }
+ }
+
+ Tm_SetTimer(&self->base_ptr->tm, &self->init_timer,
+ &Fifos_OnSyncTimeout, self,
+ self->cmd_timeout, 0U);
+}
+
+/*! \brief Un-initializes all port message FIFOs
+ * \details Possible results of the operation are the following events which are fired
+ * asynchronously. Refer also Fifos_AddEventObserver() and \ref Fifos_Event_t.
+ * - \ref FIFOS_EV_UNSYNC_COMPLETE
+ * - \ref FIFOS_EV_UNSYNC_FAILED
+ * \param self The instance
+ * \param reset_cnt If \c true resets the synchronization counter. In this case an automatic
+ * retries will be done after the first synchronization timeout.
+ * \param initial If the un-synchronization shall be executed prior to a initial synchronization
+ * it is recommended to set the argument to \c true. After notifying the event
+ * FIFOS_EV_UNSYNC_COMPLETE the LLD interface will not be stopped. The subsequent
+ * call of Fifos_Synchronize() will not start the LLD interface un-necessarily.
+ * To trigger a final un-synchronization \c initial shall be set to \c false.
+ * I.e., FIFOS_EV_UNSYNC_COMPLETE stops the LLD interface.
+ */
+void Fifos_Unsynchronize(CPmFifos *self, bool reset_cnt, bool initial)
+{
+ uint8_t cnt;
+ self->state = FIFOS_S_UNSYNCING;
+ self->unsync_initial = initial;
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[FIFOS]", "Fifos_Unsynchronize(): Un-synchronization started, state: %d", 1U, self->state));
+
+ if (reset_cnt)
+ {
+ self->sync_cnt = FIFOS_SYNC_CNT_INITIAL;
+ }
+
+ self->sync_cnt++;
+ Pmch_Initialize(self->channel_ptr); /* Start LLD if not already done */
+
+ for (cnt = 0U; cnt < PMP_MAX_NUM_FIFOS; cnt++)
+ {
+ if (self->fifos[cnt] != NULL)
+ {
+ if (initial || (Fifo_GetState(self->fifos[cnt]) != FIFO_S_UNSYNCED_READY))
+ {
+ Fifo_Unsynchronize(self->fifos[cnt]);
+ }
+ }
+ }
+
+ Tm_SetTimer(&self->base_ptr->tm, &self->init_timer,
+ &Fifos_OnUnsyncTimeout, self,
+ self->cmd_timeout, 0U);
+}
+
+/*! \brief Handles the synchronization timeout
+ * \param self The instance
+ */
+static void Fifos_OnSyncTimeout(void *self)
+{
+ CPmFifos *self_ = (CPmFifos*)self;
+ Fifos_Event_t the_event = FIFOS_EV_SYNC_FAILED;
+
+ self_->state = FIFOS_S_UNSYNCED;
+
+ TR_INFO((self_->base_ptr->ucs_user_ptr, "[FIFOS]", "Fifos_OnSyncTimeout(): state: %d", 1U, self_->state));
+
+ if (self_->sync_cnt < self_->cmd_retries)
+ {
+ Fifos_Synchronize(self_, false, false); /* retry synchronization after first timeout */
+ }
+ else
+ {
+ Fifos_Cleanup(self_);
+ Sub_Notify(&self_->event_subject, &the_event);
+ }
+}
+
+/*! \brief Handles the un-synchronization timeout
+ * \param self The instance
+ */
+static void Fifos_OnUnsyncTimeout(void *self)
+{
+ CPmFifos *self_ = (CPmFifos*)self;
+ Fifos_Event_t the_event = FIFOS_EV_UNSYNC_FAILED;
+
+ self_->state = FIFOS_S_UNSYNCED;
+ TR_INFO((self_->base_ptr->ucs_user_ptr, "[FIFOS]", "Fifos_OnUnsyncTimeout(): state: %d", 1U, self_->state));
+
+ if (self_->sync_cnt < self_->cmd_retries)
+ {
+ Fifos_Unsynchronize(self_, false, self_->unsync_initial); /* retry synchronization after first timeout */
+ }
+ else
+ {
+ self_->unsync_initial = false; /* un-sync timeout will lead to termination - stop LLD */
+ Fifos_Cleanup(self_);
+ Sub_Notify(&self_->event_subject, &the_event);
+ }
+}
+
+/*! \brief Performs a cleanup of the Port Message Channel and the dedicated FIFOs
+ * \details Releases all message objects which are currently in use.
+ * \param self The instance
+ */
+static void Fifos_Cleanup(CPmFifos *self)
+{
+ uint8_t count;
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[FIFOS]", "Fifos_Cleanup(): Channel cleanup started", 0U));
+
+ if (self->unsync_initial == false)
+ {
+ Pmch_Uninitialize(self->channel_ptr);
+ }
+
+ for (count = 0U; count < PMP_MAX_NUM_FIFOS; count++) /* stop & cleanup all FIFOs */
+ {
+ if (self->fifos[count] != NULL)
+ { /* stop and avoid recursion */
+ Fifo_Stop(self->fifos[count], FIFO_S_UNSYNCED_INIT, false);
+ Fifo_Cleanup(self->fifos[count]);
+ }
+ }
+
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[FIFOS]", "Fifos_Cleanup(): Channel cleanup completed", 0U));
+
+ /* notify external event after message objects were released */
+ self->state = FIFOS_S_UNSYNCED;
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* FIFO observation */
+/*------------------------------------------------------------------------------------------------*/
+
+/*! \brief Notifies an event to the host class
+ * \param self The instance
+ * \param fifo_id_ptr Specific event identifier, pointer to "fifo_id"
+ */
+static void Fifos_OnFifoEvent(void *self, void *fifo_id_ptr)
+{
+ CPmFifos *self_ = (CPmFifos*)self;
+ Fifos_HandleFifoStateChange(self_, *((Pmp_FifoId_t*)fifo_id_ptr));
+}
+
+/*! \brief Executes transition to new synchronization states
+ * \param self The instance
+ * \param fifo_id The FIFO identifier
+ */
+static void Fifos_HandleFifoStateChange(CPmFifos *self, Pmp_FifoId_t fifo_id)
+{
+ Fifos_Event_t the_event;
+
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[FIFOS]", "Fifos_HandleFifoStateChange(): FIFOs state: %d, FIFO: %d, FIFO State: %d", 3U,
+ self->state, fifo_id, Fifo_GetState(self->fifos[fifo_id])));
+
+ switch (self->state)
+ {
+ case FIFOS_S_SYNCING:
+ if (Fifos_AreAllFifosInState(self, FIFO_S_SYNCED))
+ {
+ self->state = FIFOS_S_SYNCED; /* now the complete channel is synced */
+ Tm_ClearTimer(&self->base_ptr->tm, &self->init_timer);
+ Fifos_ConfigureSyncParams(self, FIFOS_UNSYNC_RETRIES, FIFOS_UNSYNC_TIMEOUT);
+ the_event = FIFOS_EV_SYNC_ESTABLISHED;
+ Sub_Notify(&self->event_subject, &the_event);
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[FIFOS]", "Fifos_HandleFifoStateChange(): Synchronization of Port Message channel completed", 0U));
+ }
+ break;
+
+ case FIFOS_S_UNSYNCING:
+ if (Fifos_AreAllFifosInState(self, FIFO_S_UNSYNCED_READY))
+ {
+ Fifos_Cleanup(self);
+ self->state = FIFOS_S_UNSYNCED; /* now the complete channel is un-synced */
+ Tm_ClearTimer(&self->base_ptr->tm, &self->init_timer);
+ the_event = FIFOS_EV_UNSYNC_COMPLETE;
+ Sub_Notify(&self->event_subject, &the_event);
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[FIFOS]", "Fifos_HandleFifoStateChange(): Un-synchronization of Port Message channel completed", 0U));
+ }
+ break;
+
+ case FIFOS_S_SYNCED:
+ if (!Fifos_AreAllFifosInState(self, FIFO_S_SYNCED))
+ {
+ self->state = FIFOS_S_UNSYNCING; /* set state to 'unsyncing' and wait until all FIFOs are unsynced */
+ self->sync_cnt = 0U; /* pretend having triggered an un-sync which starts the timer */
+ Tm_SetTimer(&self->base_ptr->tm, &self->init_timer,
+ &Fifos_OnUnsyncTimeout, self,
+ FIFOS_UNSYNC_TIMEOUT, 0U);
+ the_event = FIFOS_EV_SYNC_LOST;
+ Sub_Notify(&self->event_subject, &the_event);
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[FIFOS]", "Fifos_HandleFifoStateChange(): Lost synchronization of Port Message channel", 0U));
+ }
+ if (Fifos_AreAllFifosInState(self, FIFO_S_UNSYNCED_READY))
+ {
+ Fifos_Cleanup(self);
+ self->state = FIFOS_S_UNSYNCED; /* the complete channel suddenly goes unsynced_complete */
+ Tm_ClearTimer(&self->base_ptr->tm, &self->init_timer);
+ the_event = FIFOS_EV_UNSYNC_COMPLETE;
+ Sub_Notify(&self->event_subject, &the_event);
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[FIFOS]", "Fifos_HandleFifoStateChange(): Sudden un-synchronization of Port Message channel completed", 0U));
+ }
+ break;
+
+ case FIFOS_S_UNSYNCED:
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[FIFOS]", "Fifos_HandleFifoStateChange(): Unexpected FIFO event in state unsynced", 0U));
+ break;
+
+ default:
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[FIFOS]", "Fifos_HandleFifoStateChange(): Unexpected FIFOs state", 0U));
+ break;
+ }
+
+ MISC_UNUSED(fifo_id);
+}
+
+/*! \brief Helper function that evaluates if all configured FIFOs are in a given state
+ * \param self The instance
+ * \param target_state The required state that is evaluated for all FIFOs
+ * \return \c true if all FIFOs are in the given \c target_state, otherwise \c false.
+ */
+static bool Fifos_AreAllFifosInState(CPmFifos *self, Fifo_SyncState_t target_state)
+{
+ bool ret = true;
+ uint8_t cnt;
+
+ for (cnt = 0U; cnt < PMP_MAX_NUM_FIFOS; cnt++)
+ {
+ if (self->fifos[cnt] != NULL)
+ {
+ Fifo_SyncState_t state = Fifo_GetState(self->fifos[cnt]);
+
+ if (state != target_state)
+ {
+ ret = false;
+ }
+ }
+ }
+
+ return ret;
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_pmp.c b/ucs2-lib/src/ucs_pmp.c
new file mode 100644
index 0000000..ae33306
--- /dev/null
+++ b/ucs2-lib/src/ucs_pmp.c
@@ -0,0 +1,350 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of Port Message Protocol
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_PMH
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_pmp.h"
+#include "ucs_misc.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* PMP Indexes */
+/*------------------------------------------------------------------------------------------------*/
+#define PMP_IDX_PML_H 0U
+#define PMP_IDX_PML_L 1U
+#define PMP_IDX_PMHL 2U
+#define PMP_IDX_FPH 3U
+#define PMP_IDX_SID 4U
+#define PMP_IDX_EXT_TYPE 5U
+
+/*------------------------------------------------------------------------------------------------*/
+/* Masks and shifts for bit fields */
+/*------------------------------------------------------------------------------------------------*/
+#define PMP_PMHL_MASK 0x1FU /* 0b00011111 */
+#define PMP_VERSION_MASK 0xE0U /* 0b11100000 */
+#define PMP_VERSION 0x40U /* Version: "2" */
+#define PMP_FPH_TYPE_POS 1U
+#define PMP_FPH_TYPE_MASK 0x06U /* 0b00000110 */
+#define PMP_FPH_ID_POS 3U
+#define PMP_FPH_ID_MASK 0x38U /* 0b00111000 */
+#define PMP_FPH_DIR_RX 0x01U /* RX: "1" */
+#define PMP_FPH_DIR_MASK 0x01U /* 0b00000001 */
+#define PMP_EXT_TYPE_POS 5U
+#define PMP_EXT_TYPE_MASK 0xE0U /* 0b11100000 */
+#define PMP_EXT_CODE_MASK 0x1FU /* 0b00011111 */
+
+/*------------------------------------------------------------------------------------------------*/
+/* PMP Verification */
+/*------------------------------------------------------------------------------------------------*/
+#define PMP_PML_MAX_SIZE_CTRL 69U
+#define PMP_PMHL_MIN_SIZE 3U
+#define PMP_PMHL_MAX_SIZE 5U
+
+/*------------------------------------------------------------------------------------------------*/
+/* Macro like functions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Sets the port message length within a given message header
+ * \param header The message header
+ * \param length The port message length
+ */
+void Pmp_SetPml(uint8_t header[], uint8_t length)
+{
+ header[PMP_IDX_PML_H] = 0U;
+ header[PMP_IDX_PML_L] = length;
+}
+
+/*! \brief Sets the port message header length within a given message header
+ * \param header The message header
+ * \param length The port message header length. Valid values: 3..5.
+ * Invalid values will set the PMHL to \c 0.
+ */
+void Pmp_SetPmhl(uint8_t header[], uint8_t length)
+{
+ if ((length < PMP_PMHL_MIN_SIZE) || (length > PMP_PMHL_MAX_SIZE))
+ {
+ length = 0U;
+ }
+
+ header[PMP_IDX_PMHL] = length | PMP_VERSION;
+}
+
+/*! \brief Sets the FIFO protocol header within a given message header
+ * \param header The message header
+ * \param id The FIFO id
+ * \param type The port message type
+ */
+void Pmp_SetFph(uint8_t header[], Pmp_FifoId_t id, Pmp_MsgType_t type)
+{
+ header[PMP_IDX_FPH] = (uint8_t)((uint8_t)type << PMP_FPH_TYPE_POS) | (uint8_t)((uint8_t)id << PMP_FPH_ID_POS) | (uint8_t)PMP_DIR_TX;
+}
+
+/*! \brief Sets the field ExtType within a given message header
+ * \param header The message header
+ * \param type The command or status type
+ * \param code The command or status code
+ */
+void Pmp_SetExtType(uint8_t header[], uint8_t type, uint8_t code)
+{
+ header[PMP_IDX_EXT_TYPE] = (uint8_t)((type << PMP_EXT_TYPE_POS) & PMP_EXT_TYPE_MASK) | (uint8_t)(code & PMP_EXT_CODE_MASK);
+}
+
+/*! \brief Sets the sequence id within a given message header
+ * \param header The message header
+ * \param sid The sequence id
+ */
+void Pmp_SetSid(uint8_t header[], uint8_t sid)
+{
+ header[PMP_IDX_SID] = sid;
+}
+
+/*! \brief Retrieves the port message length of a given port message buffer
+ * \param header Data buffer containing the port message.
+ * The required size of this buffer is 6 bytes.
+ * \return The port message length in bytes or 0 if the PML is greater than 255.
+ */
+uint8_t Pmp_GetPml(uint8_t header[])
+{
+ uint8_t pml;
+ if (header[PMP_IDX_PML_H] != 0U)
+ {
+ pml = 0U;
+ }
+ else
+ {
+ pml = header[PMP_IDX_PML_L];
+ }
+
+ return pml;
+}
+
+/*! \brief Retrieves the port message header length of a given port message buffer
+ * \param header Data buffer containing the port message.
+ * The required size of this buffer is 6 bytes.
+ * \return The port message header length in bytes
+ */
+uint8_t Pmp_GetPmhl(uint8_t header[])
+{
+ return ((uint8_t)(header[PMP_IDX_PMHL] & (uint8_t)PMP_PMHL_MASK));
+}
+
+/*! \brief Retrieves the FIFO number of a given port message buffer
+ * \param header Data buffer containing the port message.
+ * The required size of this buffer is 6 bytes.
+ * \return The FIFO number
+ */
+Pmp_FifoId_t Pmp_GetFifoId(uint8_t header[])
+{
+ return (Pmp_FifoId_t)(((uint8_t)PMP_FPH_ID_MASK & (header)[PMP_IDX_FPH]) >> PMP_FPH_ID_POS);
+}
+
+/*! \brief Retrieves the FIFO Type of a given port message buffer
+ * \param header Data buffer containing the port message.
+ * The required size of this buffer is 6 bytes.
+ * \return The FIFO type
+ */
+Pmp_MsgType_t Pmp_GetMsgType(uint8_t header[])
+{
+ return ((Pmp_MsgType_t)((PMP_FPH_TYPE_MASK & (header)[PMP_IDX_FPH]) >> PMP_FPH_TYPE_POS));
+}
+
+/*! \brief Retrieves the SequenceID of a given port message buffer
+ * \param header Data buffer containing the port message.
+ * The required size of this buffer is 6 bytes.
+ * \return The SequenceID
+ */
+uint8_t Pmp_GetSid(uint8_t header[])
+{
+ return ((header)[PMP_IDX_SID]);
+}
+
+/*! \brief Retrieves payload data of a port message
+ * \param header Data buffer containing the port message.
+ * The required size of this buffer is 6 bytes.
+ * \param index The index of the payload byte starting with '0'
+ * \return The content of a payload data byte
+ */
+uint8_t Pmp_GetData(uint8_t header[], uint8_t index)
+{
+ return header[Pmp_GetPmhl(header) + 3U + index];
+}
+
+/*! \brief Retrieves the payload size of the port message
+ * \param header Data buffer containing the port message.
+ * The required size of this buffer is 6 bytes.
+ * \details The function Pmp_VerifyHeader() must be called before
+ * to verify that the port message fields are consistent.
+ * \return The payload size of a port message
+ */
+uint8_t Pmp_GetDataSize(uint8_t header[])
+{
+ return Pmp_GetPml(header) - (Pmp_GetPmhl(header) + 1U);
+}
+
+/*! \brief Checks if header length fields are set to valid values
+ * \param header Data buffer containing the port message.
+ * The required size of this buffer is 6 bytes.
+ * \param buf_len Length of the complete port message in bytes
+ * \return Returns \c true if the header was checked successfully,
+ * otherwise \c false.
+ */
+bool Pmp_VerifyHeader(uint8_t header[], uint8_t buf_len)
+{
+ uint8_t pml = Pmp_GetPml(header);
+ uint8_t pmhl = Pmp_GetPmhl(header);
+ bool ok = true;
+
+ ok = ((pmhl >= 3U)&&(pmhl <= 5U)) ? ok : false;
+ ok = ((header[PMP_IDX_PMHL] & PMP_VERSION_MASK) == PMP_VERSION) ? ok : false;
+ ok = (pml >= (pmhl + 1U)) ? ok : false;
+ ok = ((pml + 2U) <= buf_len) ? ok : false;
+ ok = (pml <= PMP_PML_MAX_SIZE_CTRL) ? ok : false;
+ ok = ((header[PMP_IDX_FPH] & PMP_FPH_DIR_MASK) == PMP_FPH_DIR_RX) ? ok : false;
+
+ return ok;
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Creates a Port Message Header instance
+ * \param self The instance
+ */
+void Pmh_Ctor(CPmh *self)
+{
+ MISC_MEM_SET(self, 0, sizeof(*self));
+}
+
+/*! \brief Inserts a port message header of the specified size into a given buffer
+ * \param self Header content to be written to the buffer (source)
+ * \param data Data buffer the header shall be written to (target)
+ */
+void Pmh_BuildHeader(CPmh *self, uint8_t data[])
+{
+ uint8_t cnt;
+
+ data[PMP_IDX_PML_H] = 0U;
+ data[PMP_IDX_PML_L] = (uint8_t)self->pml;
+ data[PMP_IDX_PMHL] = (uint8_t)PMP_VERSION | self->pmhl;
+ data[PMP_IDX_FPH] = (uint8_t)PMP_DIR_TX | ((uint8_t)((self->fifo_id) << PMP_FPH_ID_POS)) |
+ ((uint8_t)((self->msg_type) << PMP_FPH_TYPE_POS));
+
+ data[PMP_IDX_SID] = self->sid;
+ data[PMP_IDX_EXT_TYPE]= self->ext_type;
+
+ for (cnt=3U; cnt < self->pmhl; cnt++)
+ {
+ data[3U + cnt] = 0U; /* add stuffing bytes */
+ }
+}
+
+/*! \brief Decodes a given data buffer into a provided port message header structure
+ * \param self Header content structure (target)
+ * \param data Data buffer containing the port message with a minimum size
+ * of 6 bytes (source)
+ */
+void Pmh_DecodeHeader(CPmh *self, uint8_t data[])
+{
+ self->pml = Pmp_GetPml(data);
+ self->pmhl = data[PMP_IDX_PMHL] & PMP_PMHL_MASK; /* ignore version */
+
+ self->fifo_id = Pmp_GetFifoId(data);
+ self->msg_type = Pmp_GetMsgType(data);
+ self->sid = data[PMP_IDX_SID];
+ self->ext_type = data[PMP_IDX_EXT_TYPE];
+}
+
+/*! \brief Setter function for FIFO protocol header which contains several subfields
+ * \details The "retransmitted" flag is currently not supported (always Tx)
+ * \param self Reference to the PM content structure that shall be modified
+ * \param fifo_id Id of the PM FIFO
+ * \param msg_type PM type
+ */
+void Pmh_SetFph(CPmh *self, Pmp_FifoId_t fifo_id, Pmp_MsgType_t msg_type)
+{
+ self->msg_type = msg_type;
+ self->fifo_id = fifo_id;
+}
+
+/*! \brief Retrieves the ExtType StatusType
+ * \param self The instance
+ * \return Returns The Status Type
+ */
+Pmp_StatusType_t Pmh_GetExtStatusType(CPmh *self)
+{
+ return ((Pmp_StatusType_t)((uint8_t)(PMP_EXT_TYPE_MASK & self->ext_type) >> PMP_EXT_TYPE_POS));
+}
+
+/*! \brief Retrieves the ExtType StatusCode
+ * \param self The instance
+ * \return Returns The Status Code
+ */
+Pmp_CommandCode_t Pmh_GetExtCommandCode(CPmh *self)
+{
+ return ((Pmp_CommandCode_t)(uint8_t)(PMP_EXT_CODE_MASK & self->ext_type));
+}
+
+/*! \brief Retrieves the ExtType StatusType
+ * \param self The instance
+ * \return Returns The Status Type
+ */
+Pmp_CommandType_t Pmh_GetExtCommandType(CPmh *self)
+{
+ return ((Pmp_CommandType_t)((uint8_t)(PMP_EXT_TYPE_MASK & self->ext_type) >> PMP_EXT_TYPE_POS));
+}
+
+/*! \brief Retrieves the ExtType StatusCode
+ * \param self The instance
+ * \return Returns The Status Code
+ */
+Pmp_StatusCode_t Pmh_GetExtStatusCode(CPmh *self)
+{
+ return ((Pmp_StatusCode_t)(uint8_t)(PMP_EXT_CODE_MASK & self->ext_type));
+}
+
+/*! \brief Sets the ExtType field by passing the values for type and code
+ * \details The function is applicable for status and command
+ * \param self The Instance
+ * \param type The status or command type
+ * \param code The status or command code
+ */
+void Pmh_SetExtType(CPmh *self, uint8_t type, uint8_t code)
+{
+ self->ext_type = (uint8_t)((type << PMP_EXT_TYPE_POS) & PMP_EXT_TYPE_MASK) | (uint8_t)(code & PMP_EXT_CODE_MASK);
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_pool.c b/ucs2-lib/src/ucs_pool.c
new file mode 100644
index 0000000..1824b27
--- /dev/null
+++ b/ucs2-lib/src/ucs_pool.c
@@ -0,0 +1,126 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of message pool class
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_POOL
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_pool.h"
+#include "ucs_misc.h"
+#include "ucs_trace.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal constants */
+/*------------------------------------------------------------------------------------------------*/
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Constructor of message pool class
+ * \param self The instance
+ * \param messages Reference to an array of message objects
+ * \param size Number of message objects the \c messages array is comprising.
+ * \param ucs_user_ptr User reference that needs to be passed in every callback function
+ */
+void Pool_Ctor(CPool *self, CMessage messages[], uint16_t size, void *ucs_user_ptr)
+{
+ uint16_t index;
+
+ MISC_MEM_SET(self, 0, sizeof(*self));
+ self->ucs_user_ptr = ucs_user_ptr;
+ self->initial_size = size;
+ self->messages = messages;
+
+ Dl_Ctor(&self->message_list, self->ucs_user_ptr);
+
+ for (index = 0U; index < size; index++)
+ {
+ Msg_Ctor(&messages[index]);
+ Msg_SetPoolReference(&messages[index], self);
+ Dl_InsertTail(&self->message_list, Msg_GetNode(&messages[index]));
+ }
+}
+
+/*! \brief Retrieves a message object from the pool
+ * \param self The instance
+ * \return Reference to the CMessage structure if a message is available.
+ * Otherwise \c NULL.
+ */
+CMessage* Pool_GetMsg(CPool *self)
+{
+ CMessage *msg = NULL;
+ CDlNode *node = Dl_PopHead(&self->message_list);
+
+ if (node != NULL)
+ {
+ msg = (CMessage*)node->data_ptr;
+ }
+
+ return msg;
+}
+
+/*! \brief Returns a message object to the pool pre-assigned pool
+ * \param msg_ptr Reference to the message object which needs
+ * to be returned to the pool.
+ */
+void Pool_ReturnMsg(CMessage *msg_ptr)
+{
+ CPool *pool_ptr = (CPool*)Msg_GetPoolReference(msg_ptr);
+
+ if (pool_ptr != NULL)
+ {
+ TR_ASSERT(pool_ptr->ucs_user_ptr, "[POOL]", (Pool_GetCurrentSize(pool_ptr) < pool_ptr->initial_size));
+ Dl_InsertTail(&pool_ptr->message_list, Msg_GetNode(msg_ptr));
+ }
+ else
+ {
+ TR_ERROR((0U, "[POOL]", "Pool_ReturnMsg(): released msg_ptr=0x%p without pool reference", 1U, msg_ptr));
+ }
+}
+
+/*! \brief Retrieves the current number of available message objects in the pool
+ * \param self The instance
+ * \return The current number of available message objects in the pool
+ */
+uint16_t Pool_GetCurrentSize(CPool *self)
+{
+ uint16_t list_size = Dl_GetSize(&self->message_list);
+
+ return list_size;
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_prog.c b/ucs2-lib/src/ucs_prog.c
new file mode 100644
index 0000000..e64d519
--- /dev/null
+++ b/ucs2-lib/src/ucs_prog.c
@@ -0,0 +1,957 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of the Programming Service.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_PROG_MODE
+ * @{
+
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_inic_pb.h"
+#include "ucs_prog.h"
+#include "ucs_misc.h"
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal constants */
+/*------------------------------------------------------------------------------------------------*/
+#define PRG_NUM_STATES 6U /*!< \brief Number of state machine states */
+#define PRG_NUM_EVENTS 13U /*!< \brief Number of state machine events */
+
+#define PRG_TIMEOUT_COMMAND 100U /*!< \brief supervise EXC commands */
+
+#define PRG_SIGNATURE_VERSION 1U /*!< \brief signature version used for Node Discovery */
+
+#define PRG_ADMIN_BASE_ADDR 0x0F00U /*!< \brief bas admin address */
+
+
+/* Error values */
+#define PRG_HW_RESET_REQ 0x200110U /* HW reset required */
+#define PRG_SESSION_ACTIVE 0x200111U /* Session already active */
+#define PRG_CFG_STRING_ERROR 0x200220U /* A configuration string erase error has occurred. */
+#define PRG_MEM_ERASE_ERROR 0x200221U /* An error memory erase error has occurred.*/
+#define PRG_CFG_WRITE_ERROR 0x200225U /* Configuration memory write error. */
+#define PRG_CFG_FULL_ERROR 0x200226U /* Configuration memory is full. */
+#define PRG_HDL_MATCH_ERROR 0x200330U /* The SessionHandle does not match the current memory session. */
+#define PRG_MEMID_ERROR 0x200331U /* The memory session does not support the requested MemID. */
+#define PRG_ADDR_EVEN_ERROR 0x200332U /* The Address is not even when writing the configuration memory. */
+#define PRG_LEN_EVEN_ERROR 0x200333U /* The UnitLen is not even when writing the configuration memory. */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Service parameters */
+/*------------------------------------------------------------------------------------------------*/
+/*! Priority of the Programming service used by scheduler */
+static const uint8_t PRG_SRV_PRIO = 248U; /* parasoft-suppress MISRA2004-8_7 "Value shall be part of the module, not part of a function." */
+/*! Main event for the Programming service */
+static const Srv_Event_t PRG_EVENT_SERVICE = 1U;
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal enumerators */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Possible events of the system diagnosis state machine */
+typedef enum Prg_Events_
+{
+ PRG_E_NIL = 0U, /*!< \brief NIL Event */
+ PRG_E_START = 1U, /*!< \brief API start command was called. */
+ PRG_E_STOP = 2U, /*!< \brief Stop request occurred. */
+ PRG_E_WELCOME_SUCCESS = 3U, /*!< \brief Welcome command was successful. */
+ PRG_E_WELCOME_NOSUCCESS = 4U, /*!< \brief Welcome command was not successful. */
+ PRG_E_MEM_WRITE_CMD = 5U, /*!< \brief MemorySessionOpen command was succcessful */
+ PRG_E_MEM_WRITE_FINISH = 6U, /*!< \brief MemoryWrite command was succcessful */
+ PRG_E_MEM_CLOSE_SUCCESS = 7U, /*!< \brief MemorySessionClose command was succcessful */
+ PRG_E_NET_OFF = 8U, /*!< \brief NetOff occurred. */
+ PRG_E_TIMEOUT = 9U, /*!< \brief Timeout occurred. */
+ PRG_E_ERROR = 10U, /*!< \brief An error occurred which requires no command to be sent to the INIC. */
+ PRG_E_ERROR_INIT = 11U, /*!< \brief Error requires Init.Start to be sent. */
+ PRG_E_ERROR_CLOSE_INIT = 12U /*!< \brief Error requires MemorySessionClose.SR and Init.Start to be sent. */
+} Prg_Events_t;
+
+
+/*! \brief States of the node discovery state machine */
+typedef enum Prg_State_
+{
+ PRG_S_IDLE = 0U, /*!< \brief Idle state. */
+ PRG_S_WAIT_WELCOME = 1U, /*!< \brief Programming started. */
+ PRG_S_WAIT_MEM_OPEN = 2U, /*!< \brief Wait for MemorySessionOpen result. */
+ PRG_S_WAIT_MEM_WRITE = 3U, /*!< \brief Wait for MemoryWrite result. */
+ PRG_S_WAIT_MEM_CLOSE = 4U, /*!< \brief Wait for MemorySessionClose result. */
+ PRG_S_WAIT_MEM_ERR_CLOSE = 5U /*!< \brief Wait for MemorySessionClose result in error case. */
+} Prg_State_t;
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal prototypes */
+/*------------------------------------------------------------------------------------------------*/
+static void Prg_Service(void *self);
+
+static void Prg_WelcomeResultCb(void *self, void *result_ptr);
+static void Prg_MemOpenResultCb(void *self, void *result_ptr);
+static void Prg_MemWriteResultCb(void *self, void *result_ptr);
+static void Prg_MemCloseResultCb(void *self, void *result_ptr);
+
+static void Prg_OnTerminateEventCb(void *self, void *result_ptr);
+static void Prg_NetworkStatusCb(void *self, void *result_ptr);
+
+static void Prg_A_Start(void *self);
+static void Prg_A_MemOpen(void *self);
+static void Prg_A_MemWrite(void *self);
+static void Prg_A_MemClose(void *self);
+static void Prg_A_InitDevice(void *self);
+static void Prg_A_NetOff(void *self);
+static void Prg_A_Timeout(void *self);
+static void Prg_A_Error(void *self);
+static void Prg_A_Error_Init(void *self);
+static void Prg_A_Error_Close_Init(void *self);
+
+
+static void Prg_Check_RetVal(CProgramming *self, Ucs_Return_t ret_val);
+static uint32_t Prg_CalcError(uint8_t val[]);
+
+static void Prg_TimerCb(void *self);
+
+/*------------------------------------------------------------------------------------------------*/
+/* State transition table (used by finite state machine) */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief State transition table */
+static const Fsm_StateElem_t prg_trans_tab[PRG_NUM_STATES][PRG_NUM_EVENTS] = /* parasoft-suppress MISRA2004-8_7 "Value shall be part of the module, not part of a function." */
+{
+ { /* State PRG_S_IDLE */
+ /* PRG_E_NIL */ {NULL, PRG_S_IDLE },
+ /* PRG_E_START */ {Prg_A_Start, PRG_S_WAIT_WELCOME },
+ /* PRG_E_STOP */ {NULL, PRG_S_IDLE },
+ /* PRG_E_WELCOME_SUCCESS */ {NULL, PRG_S_IDLE },
+ /* PRG_E_WELCOME_NOSUCCESS */ {NULL, PRG_S_IDLE },
+ /* PRG_E_MEM_WRITE_CMD */ {NULL, PRG_S_IDLE },
+ /* PRG_E_MEM_WRITE_FINISH */ {NULL, PRG_S_IDLE },
+ /* PRG_E_MEM_CLOSE_SUCCESS */ {NULL, PRG_S_IDLE },
+ /* PRG_E_NET_OFF */ {Prg_A_NetOff, PRG_S_IDLE },
+ /* PRG_E_TIMEOUT */ {Prg_A_Timeout, PRG_S_IDLE },
+ /* PRG_E_ERROR */ {Prg_A_Error, PRG_S_IDLE },
+ /* PRG_E_ERROR_INIT */ {NULL, PRG_S_IDLE },
+ /* PRG_E_ERROR_CLOSE_INIT */ {NULL, PRG_S_IDLE },
+ },
+ { /* State PRG_S_WAIT_WELCOME */
+ /* PRG_E_NIL */ {NULL, PRG_S_WAIT_WELCOME },
+ /* PRG_E_START */ {NULL, PRG_S_WAIT_WELCOME },
+ /* PRG_E_STOP */ {NULL, PRG_S_WAIT_WELCOME },
+ /* PRG_E_WELCOME_SUCCESS */ {Prg_A_MemOpen, PRG_S_WAIT_MEM_OPEN },
+ /* PRG_E_WELCOME_NOSUCCESS */ {Prg_A_Error, PRG_S_IDLE },
+ /* PRG_E_MEM_WRITE_CMD */ {NULL, PRG_S_WAIT_WELCOME },
+ /* PRG_E_MEM_WRITE_FINISH */ {NULL, PRG_S_WAIT_WELCOME },
+ /* PRG_E_MEM_CLOSE_SUCCESS */ {NULL, PRG_S_WAIT_WELCOME },
+ /* PRG_E_NET_OFF */ {Prg_A_NetOff, PRG_S_IDLE },
+ /* PRG_E_TIMEOUT */ {Prg_A_Timeout, PRG_S_IDLE },
+ /* PRG_E_ERROR */ {Prg_A_Error, PRG_S_IDLE },
+ /* PRG_E_ERROR_INIT */ {NULL, PRG_S_WAIT_WELCOME },
+ /* PRG_E_ERROR_CLOSE_INIT */ {NULL, PRG_S_WAIT_WELCOME }
+ },
+ { /* State PRG_S_WAIT_MEM_OPEN */
+ /* PRG_E_NIL */ {NULL, PRG_S_WAIT_MEM_OPEN },
+ /* PRG_E_START */ {NULL, PRG_S_WAIT_MEM_OPEN },
+ /* PRG_E_STOP */ {NULL, PRG_S_WAIT_MEM_OPEN },
+ /* PRG_E_WELCOME_SUCCESS */ {NULL, PRG_S_WAIT_MEM_OPEN },
+ /* PRG_E_WELCOME_NOSUCCESS */ {NULL, PRG_S_WAIT_MEM_OPEN },
+ /* PRG_E_MEM_WRITE_CMD */ {Prg_A_MemWrite, PRG_S_WAIT_MEM_WRITE },
+ /* PRG_E_MEM_WRITE_FINISH */ {Prg_A_MemClose, PRG_S_WAIT_MEM_CLOSE },
+ /* PRG_E_MEM_CLOSE_SUCCESS */ {NULL, PRG_S_WAIT_MEM_OPEN },
+ /* PRG_E_NET_OFF */ {Prg_A_NetOff, PRG_S_IDLE },
+ /* PRG_E_TIMEOUT */ {Prg_A_Timeout, PRG_S_IDLE },
+ /* PRG_E_ERROR */ {Prg_A_Error, PRG_S_IDLE },
+ /* PRG_E_ERROR_INIT */ {Prg_A_Error_Init, PRG_S_IDLE },
+ /* PRG_E_ERROR_CLOSE_INIT */ {Prg_A_Error_Close_Init, PRG_S_WAIT_MEM_ERR_CLOSE }
+ },
+ { /* State PRG_S_WAIT_MEM_WRITE */
+ /* PRG_E_NIL */ {NULL, PRG_S_WAIT_MEM_WRITE },
+ /* PRG_E_START */ {NULL, PRG_S_WAIT_MEM_WRITE },
+ /* PRG_E_STOP */ {NULL, PRG_S_WAIT_MEM_WRITE },
+ /* PRG_E_WELCOME_SUCCESS */ {NULL, PRG_S_WAIT_MEM_WRITE },
+ /* PRG_E_WELCOME_NOSUCCESS */ {NULL, PRG_S_WAIT_MEM_WRITE },
+ /* PRG_E_MEM_WRITE_CMD */ {NULL, PRG_S_WAIT_MEM_WRITE },
+ /* PRG_E_MEM_WRITE_FINISH */ {Prg_A_MemClose, PRG_S_WAIT_MEM_CLOSE },
+ /* PRG_E_MEM_CLOSE_SUCCESS */ {NULL, PRG_S_WAIT_MEM_WRITE },
+ /* PRG_E_NET_OFF */ {Prg_A_NetOff, PRG_S_IDLE },
+ /* PRG_E_TIMEOUT */ {Prg_A_Timeout, PRG_S_IDLE },
+ /* PRG_E_ERROR */ {Prg_A_Error, PRG_S_IDLE },
+ /* PRG_E_ERROR_INIT */ {Prg_A_Error_Init, PRG_S_IDLE },
+ /* PRG_E_ERROR_CLOSE_INIT */ {Prg_A_Error_Close_Init, PRG_S_WAIT_MEM_ERR_CLOSE }
+ },
+ { /* State PRG_S_WAIT_MEM_CLOSE */
+ /* PRG_E_NIL */ {NULL, PRG_S_WAIT_MEM_CLOSE },
+ /* PRG_E_START */ {NULL, PRG_S_WAIT_MEM_CLOSE },
+ /* PRG_E_STOP */ {NULL, PRG_S_WAIT_MEM_CLOSE },
+ /* PRG_E_WELCOME_SUCCESS */ {NULL, PRG_S_WAIT_MEM_CLOSE },
+ /* PRG_E_WELCOME_NOSUCCESS */ {NULL, PRG_S_WAIT_MEM_CLOSE },
+ /* PRG_E_MEM_WRITE_CMD */ {NULL, PRG_S_WAIT_MEM_CLOSE },
+ /* PRG_E_MEM_WRITE_FINISH */ {NULL, PRG_S_WAIT_MEM_CLOSE },
+ /* PRG_E_MEM_CLOSE_SUCCESS */ {Prg_A_InitDevice, PRG_S_IDLE },
+ /* PRG_E_NET_OFF */ {Prg_A_NetOff, PRG_S_IDLE },
+ /* PRG_E_TIMEOUT */ {Prg_A_Timeout, PRG_S_IDLE },
+ /* PRG_E_ERROR */ {Prg_A_Error, PRG_S_IDLE },
+ /* PRG_E_ERROR_INIT */ {Prg_A_Error_Init, PRG_S_IDLE },
+ /* PRG_E_ERROR_CLOSE_INIT */ {Prg_A_Error, PRG_S_IDLE },
+ },
+ { /* State PRG_S_WAIT_MEM_ERR_CLOSE */
+ /* PRG_E_NIL */ {NULL, PRG_S_WAIT_MEM_ERR_CLOSE },
+ /* PRG_E_START */ {NULL, PRG_S_WAIT_MEM_ERR_CLOSE },
+ /* PRG_E_STOP */ {NULL, PRG_S_WAIT_MEM_ERR_CLOSE },
+ /* PRG_E_WELCOME_SUCCESS */ {NULL, PRG_S_WAIT_MEM_ERR_CLOSE },
+ /* PRG_E_WELCOME_NOSUCCESS */ {NULL, PRG_S_WAIT_MEM_ERR_CLOSE },
+ /* PRG_E_MEM_WRITE_CMD */ {NULL, PRG_S_WAIT_MEM_ERR_CLOSE },
+ /* PRG_E_MEM_WRITE_FINISH */ {NULL, PRG_S_WAIT_MEM_ERR_CLOSE },
+ /* PRG_E_MEM_CLOSE_SUCCESS */ {Prg_A_Error_Init, PRG_S_IDLE },
+ /* PRG_E_NET_OFF */ {Prg_A_NetOff, PRG_S_IDLE },
+ /* PRG_E_TIMEOUT */ {Prg_A_Timeout, PRG_S_IDLE },
+ /* PRG_E_ERROR */ {Prg_A_Error, PRG_S_IDLE },
+ /* PRG_E_ERROR_INIT */ {Prg_A_Error_Init, PRG_S_IDLE },
+ /* PRG_E_ERROR_CLOSE_INIT */ {Prg_A_Error, PRG_S_IDLE },
+ }
+
+};
+
+
+/*! \brief Constructor of class CProgramming.
+ * \param self Reference to CProgramming instance
+ * \param inic Reference to CInic instance
+ * \param base Reference to CBase instance
+ * \param exc Reference to CExc instance
+ */
+ /* \param init_ptr Report callback function*/
+void Prg_Ctor(CProgramming *self, CInic *inic, CBase *base, CExc *exc)
+{
+ MISC_MEM_SET((void *)self, 0, sizeof(*self));
+
+ self->inic = inic;
+ self->exc = exc;
+ self->base = base;
+
+ Fsm_Ctor(&self->fsm, self, &(prg_trans_tab[0][0]), PRG_NUM_EVENTS, PRG_E_NIL);
+
+ Sobs_Ctor(&self->prg_welcome, self, &Prg_WelcomeResultCb);
+ Sobs_Ctor(&self->prg_memopen, self, &Prg_MemOpenResultCb);
+ Sobs_Ctor(&self->prg_memwrite, self, &Prg_MemWriteResultCb);
+ Sobs_Ctor(&self->prg_memclose, self, &Prg_MemCloseResultCb);
+
+ /* register termination events */
+ Mobs_Ctor(&self->prg_terminate, self, EH_M_TERMINATION_EVENTS, &Prg_OnTerminateEventCb);
+ Eh_AddObsrvInternalEvent(&self->base->eh, &self->prg_terminate);
+
+ /* Register NetOn and MPR events */
+ Obs_Ctor(&self->prg_nwstatus, self, &Prg_NetworkStatusCb);
+ Inic_AddObsrvNwStatus(self->inic, &self->prg_nwstatus);
+ self->neton = false;
+
+ /* Initialize Programming service */
+ Srv_Ctor(&self->service, PRG_SRV_PRIO, self, &Prg_Service);
+ /* Add Programming service to scheduler */
+ (void)Scd_AddService(&self->base->scd, &self->service);
+
+}
+
+
+/*! \brief Service function of the Node Discovery service.
+ * \param self Reference to Programming service object
+ */
+static void Prg_Service(void *self)
+{
+ CProgramming *self_ = (CProgramming *)self;
+ Srv_Event_t event_mask;
+ Srv_GetEvent(&self_->service, &event_mask);
+ if(PRG_EVENT_SERVICE == (event_mask & PRG_EVENT_SERVICE)) /* Is event pending? */
+ {
+ Fsm_State_t result;
+ Srv_ClearEvent(&self_->service, PRG_EVENT_SERVICE);
+ TR_INFO((self_->base->ucs_user_ptr, "[PRG]", "FSM __ %d %d", 2U, self_->fsm.current_state, self_->fsm.event_occured));
+ result = Fsm_Service(&self_->fsm);
+ TR_ASSERT(self_->base->ucs_user_ptr, "[PRG]", (result != FSM_STATE_ERROR));
+ TR_INFO((self_->base->ucs_user_ptr, "[PRG]", "FSM -> %d", 1U, self_->fsm.current_state));
+ MISC_UNUSED(result);
+ }
+}
+
+
+
+/**************************************************************************************************/
+/* API functions */
+/**************************************************************************************************/
+/*!
+ *
+ * \param *self Reference to Programming service object
+ */
+/*! \brief Program a node
+ *
+ * \param *self Reference to Programming service object
+ * \param node_id Node position address of the node to be programmed
+ * \param *signature Signature of the node to be programmed
+ * \param session_type Defines the memory access type.
+ * \param command_list Refers to array of programming tasks.
+ * \param report_fptr Report callback function
+ */
+void Prg_Start(CProgramming *self,
+ uint16_t node_id,
+ Ucs_Signature_t *signature,
+ Ucs_Prg_SessionType_t session_type,
+ Ucs_Prg_Command_t* command_list,
+ Ucs_Prg_ReportCb_t report_fptr)
+{
+
+
+ self->node_id = node_id;
+ self->signature = *signature;
+ self->session_type = session_type;
+ self->command_list = command_list;
+ self->report_fptr = report_fptr;
+ self->current_function = UCS_PRG_FKT_DUMMY;
+
+ if (self->neton == true)
+ {
+ Fsm_SetEvent(&self->fsm, PRG_E_START);
+ Srv_SetEvent(&self->service, PRG_EVENT_SERVICE);
+
+ TR_INFO((self->base->ucs_user_ptr, "[PRG]", "Prg_Start", 0U));
+ }
+ else
+ {
+ if (self->report_fptr != NULL)
+ {
+ self->report_fptr(UCS_PRG_RES_NET_OFF,
+ self->current_function,
+ 0U,
+ NULL,
+ self->base->ucs_user_ptr);
+ }
+ TR_INFO((self->base->ucs_user_ptr, "[PRG]", "Prg_Start failed: NET_OFF", 0U));
+ }
+}
+
+
+
+/**************************************************************************************************/
+/* FSM Actions */
+/**************************************************************************************************/
+/*! Action on Start command
+ *
+ * \param *self Reference to Node Discovery object
+ */
+static void Prg_A_Start(void *self)
+{
+ CProgramming *self_ = (CProgramming *)self;
+ Ucs_Return_t ret_val;
+
+ if (self_->node_id == 0x0400U)
+ {
+ self_->target_address = UCS_ADDR_LOCAL_INIC;
+ }
+ else
+ {
+ self_->target_address = self_->node_id;
+ }
+
+ self_->admin_node_address = PRG_ADMIN_BASE_ADDR + ((self_->node_id) & 0x00FFU);
+ self_->current_function = UCS_PRG_FKT_WELCOME;
+
+ ret_val = Exc_Welcome_Sr(self_->exc,
+ self_->target_address,
+ self_->admin_node_address,
+ PRG_SIGNATURE_VERSION,
+ self_->signature,
+ &self_->prg_welcome);
+ Prg_Check_RetVal(self_, ret_val);
+}
+
+static void Prg_A_MemOpen(void *self)
+{
+ CProgramming *self_ = (CProgramming *)self;
+ Ucs_Return_t ret_val;
+
+ self_->current_function = UCS_PRG_FKT_MEM_OPEN;
+
+ ret_val = Exc_MemSessionOpen_Sr(self_->exc,
+ self_->admin_node_address,
+ self_->session_type,
+ &self_->prg_memopen);
+ Prg_Check_RetVal(self_, ret_val);
+}
+
+static void Prg_A_MemWrite(void *self)
+{
+ CProgramming *self_ = (CProgramming *)self;
+ Ucs_Return_t ret_val;
+
+ self_->current_function = UCS_PRG_FKT_MEM_WRITE;
+
+ ret_val = Exc_MemoryWrite_Sr(self_->exc,
+ self_->admin_node_address,
+ self_->session_handle,
+ self_->command_list[self_->command_index].mem_id,
+ self_->command_list[self_->command_index].address,
+ self_->command_list[self_->command_index].unit_length,
+ self_->command_list[self_->command_index].data,
+ &self_->prg_memwrite);
+ Prg_Check_RetVal(self_, ret_val);
+}
+
+static void Prg_A_MemClose(void *self)
+{
+ CProgramming *self_ = (CProgramming *)self;
+ Ucs_Return_t ret_val;
+
+ self_->current_function = UCS_PRG_FKT_MEM_CLOSE;
+ ret_val = Exc_MemSessionClose_Sr(self_->exc,
+ self_->admin_node_address,
+ self_->session_handle,
+ &self_->prg_memclose);
+ Prg_Check_RetVal(self_, ret_val);
+}
+
+static void Prg_A_InitDevice(void *self)
+{
+ CProgramming *self_ = (CProgramming *)self;
+ Ucs_Return_t ret_val;
+
+ self_->current_function = UCS_PRG_FKT_INIT;
+ ret_val = Exc_DeviceInit_Start(self_->exc,
+ self_->admin_node_address,
+ NULL);
+ Prg_Check_RetVal(self_, ret_val);
+
+ if (ret_val == UCS_RET_SUCCESS)
+ {
+ if (self_->report_fptr != NULL)
+ {
+ self_->report_fptr(UCS_PRG_RES_SUCCESS,
+ UCS_PRG_FKT_DUMMY,
+ 0U,
+ NULL,
+ self_->base->ucs_user_ptr);
+ }
+ }
+}
+
+static void Prg_A_NetOff(void *self)
+{
+ CProgramming *self_ = (CProgramming *)self;
+
+ if (self_->report_fptr != NULL)
+ {
+ self_->report_fptr(UCS_PRG_RES_NET_OFF,
+ self_->current_function,
+ 0U,
+ NULL,
+ self_->base->ucs_user_ptr);
+ }
+}
+
+static void Prg_A_Timeout(void *self)
+{
+ CProgramming *self_ = (CProgramming *)self;
+
+ if (self_->report_fptr != NULL)
+ {
+ self_->report_fptr(UCS_PRG_RES_TIMEOUT,
+ self_->current_function,
+ 0U,
+ NULL,
+ self_->base->ucs_user_ptr);
+ }
+}
+
+static void Prg_A_Error(void *self)
+{
+ CProgramming *self_ = (CProgramming *)self;
+ uint8_t *data_ptr = NULL;
+
+ if ( (self_->error.code == UCS_PRG_RES_FKT_ASYNCH)
+ && (self_->error.ret_len != 0U))
+ {
+ data_ptr = &(self_->error.parm[0]);
+ }
+
+ if (self_->report_fptr != NULL)
+ {
+ self_->report_fptr(self_->error.code,
+ self_->error.function,
+ self_->error.ret_len,
+ data_ptr,
+ self_->base->ucs_user_ptr);
+ }
+}
+
+
+static void Prg_A_Error_Init(void *self)
+{
+ CProgramming *self_ = (CProgramming *)self;
+ uint8_t *data_ptr = NULL;
+ Ucs_Return_t ret_val;
+
+ ret_val = Exc_DeviceInit_Start(self_->exc,
+ self_->admin_node_address,
+ NULL);
+ Prg_Check_RetVal(self_, ret_val);
+
+ if ( (self_->error.code == UCS_PRG_RES_FKT_ASYNCH)
+ && (self_->error.ret_len != 0U))
+ {
+ data_ptr = &(self_->error.parm[0]);
+ }
+
+ if (self_->report_fptr != NULL)
+ {
+ self_->report_fptr(self_->error.code,
+ self_->error.function,
+ self_->error.ret_len,
+ data_ptr,
+ self_->base->ucs_user_ptr);
+ }
+}
+
+static void Prg_A_Error_Close_Init(void *self)
+{
+ CProgramming *self_ = (CProgramming *)self;
+ uint8_t *data_ptr = NULL;
+ Ucs_Return_t ret_val;
+
+ ret_val = Exc_DeviceInit_Start(self_->exc,
+ self_->admin_node_address,
+ NULL);
+ Prg_Check_RetVal(self_, ret_val);
+
+
+ if ( (self_->error.code == UCS_PRG_RES_FKT_ASYNCH)
+ && (self_->error.ret_len != 0U))
+ {
+ data_ptr = &(self_->error.parm[0]);
+ }
+
+ if (self_->report_fptr != NULL)
+ {
+ self_->report_fptr(self_->error.code,
+ self_->error.function,
+ self_->error.ret_len,
+ data_ptr,
+ self_->base->ucs_user_ptr);
+ }
+}
+
+
+/**************************************************************************************************/
+/* Callback functions */
+/**************************************************************************************************/
+
+/*! \brief Function is called on reception of the Welcome.Result messsage
+ * \param self Reference to Programming service object
+ * \param result_ptr Pointer to the result of the Welcome message
+ */
+static void Prg_WelcomeResultCb(void *self, void *result_ptr)
+{
+ CProgramming *self_ = (CProgramming *)self;
+ Exc_StdResult_t *result_ptr_ = (Exc_StdResult_t *)result_ptr;
+
+ Tm_ClearTimer(&self_->base->tm, &self_->timer);
+
+ if (result_ptr_->result.code == UCS_RES_SUCCESS)
+ {
+ Exc_WelcomeResult_t welcome_result;
+ /* read signature and store it */
+ welcome_result = *(Exc_WelcomeResult_t *)(result_ptr_->data_info);
+ if (welcome_result.res == EXC_WELCOME_SUCCESS)
+ {
+ Fsm_SetEvent(&self_->fsm, PRG_E_WELCOME_SUCCESS);
+ TR_INFO((self_->base->ucs_user_ptr, "[PRG]", "Prg_WelcomeResultCb PRG_E_WELCOME_SUCCESS", 0U));
+ }
+ else
+ {
+ /* store error paramters */
+ self_->error.code = UCS_PRG_RES_FKT_ASYNCH;
+ self_->error.function = UCS_PRG_FKT_WELCOME_NOSUCCESS;
+ self_->error.ret_len = 0U;
+
+ Fsm_SetEvent(&self_->fsm, PRG_E_WELCOME_NOSUCCESS);
+ TR_INFO((self_->base->ucs_user_ptr, "[PRG]", "Prg_WelcomeResultCb PRG_E_WELCOME_NOSUCCESS", 0U));
+ }
+ }
+ else
+ {
+ uint8_t i;
+ /* store error paramters */
+ self_->error.code = UCS_PRG_RES_FKT_ASYNCH;
+ self_->error.function = UCS_PRG_FKT_WELCOME;
+ self_->error.ret_len = result_ptr_->result.info_size;
+ for (i=0U; i< result_ptr_->result.info_size; ++i)
+ {
+ self_->error.parm[i] = result_ptr_->result.info_ptr[i];
+ }
+
+ Fsm_SetEvent(&self_->fsm, PRG_E_ERROR);
+
+ TR_INFO((self_->base->ucs_user_ptr, "[PRG]", "Prg_WelcomeResultCb Error (code) 0x%x", 1U, result_ptr_->result.code));
+ for (i=0U; i< result_ptr_->result.info_size; ++i)
+ {
+ TR_INFO((self_->base->ucs_user_ptr, "[PRG]", "Prg_WelcomeResultCb Error (info) 0x%x", 1U, result_ptr_->result.info_ptr[i]));
+ }
+ }
+
+ Srv_SetEvent(&self_->service, PRG_EVENT_SERVICE);
+}
+
+
+
+/*! \brief Function is called on reception of the MemorySessionOpen.Result messsage
+ * \param self Reference to Programming service object
+ * \param result_ptr Pointer to the result of the Welcome message
+ */
+static void Prg_MemOpenResultCb(void *self, void *result_ptr)
+{
+ CProgramming *self_ = (CProgramming *)self;
+ Exc_StdResult_t *result_ptr_ = (Exc_StdResult_t *)result_ptr;
+
+ Tm_ClearTimer(&self_->base->tm, &self_->timer);
+
+ if (result_ptr_->result.code == UCS_RES_SUCCESS)
+ {
+ self_->session_handle = *(uint16_t *)(result_ptr_->data_info);
+ self_->command_index = 0U;
+
+ if ( (self_->command_list[self_->command_index].data_length == 0U)
+ || (self_->command_list[self_->command_index].data == NULL))
+ {
+ Fsm_SetEvent(&self_->fsm, PRG_E_MEM_WRITE_FINISH);
+ TR_INFO((self_->base->ucs_user_ptr, "[PRG]", "Prg_MemOpenResultCb No Tasks", 0U));
+ }
+ else
+ {
+ Fsm_SetEvent(&self_->fsm, PRG_E_MEM_WRITE_CMD);
+ TR_INFO((self_->base->ucs_user_ptr, "[PRG]", "Prg_MemOpenResultCb successful", 0U));
+ }
+ }
+ else
+ {
+ uint8_t i;
+ uint32_t fs_error;
+
+ /* store error paramters */
+ self_->error.code = UCS_PRG_RES_FKT_ASYNCH;
+ self_->error.function = UCS_PRG_FKT_MEM_OPEN;
+ self_->error.ret_len = result_ptr_->result.info_size;
+ for (i=0U; i< result_ptr_->result.info_size; ++i)
+ {
+ self_->error.parm[i] = result_ptr_->result.info_ptr[i];
+ }
+
+ fs_error = Prg_CalcError(&(self_->error.parm[0]));
+
+ switch (fs_error)
+ {
+ case PRG_HW_RESET_REQ:
+ Fsm_SetEvent(&self_->fsm, PRG_E_ERROR_INIT);
+ break;
+
+ case PRG_SESSION_ACTIVE:
+ self_->session_handle = (uint16_t)(((uint16_t)(self_->error.parm[3])) << 8U) + self_->error.parm[4]; /* get correct session handle */
+ Fsm_SetEvent(&self_->fsm, PRG_E_ERROR_CLOSE_INIT);
+ break;
+
+ default:
+ Fsm_SetEvent(&self_->fsm, PRG_E_ERROR);
+ break;
+ }
+
+ TR_INFO((self_->base->ucs_user_ptr, "[PRG]", "Prg_MemOpenResultCb Error 0x%x", 1U, result_ptr_->result.code));
+ }
+
+ Srv_SetEvent(&self_->service, PRG_EVENT_SERVICE);
+}
+
+
+/*! \brief Function is called on reception of the MemoryWrite.Result messsage
+ * \param self Reference to Programming service object
+ * \param result_ptr Pointer to the result of the Welcome message
+ */
+static void Prg_MemWriteResultCb(void *self, void *result_ptr)
+{
+ CProgramming *self_ = (CProgramming *)self;
+ Exc_StdResult_t *result_ptr_ = (Exc_StdResult_t *)result_ptr;
+
+ Tm_ClearTimer(&self_->base->tm, &self_->timer);
+
+ if (result_ptr_->result.code == UCS_RES_SUCCESS)
+ {
+ self_->command_index++;
+ if ( (self_->command_list[self_->command_index].data_length == 0U)
+ || (self_->command_list[self_->command_index].data == NULL))
+ {
+ Fsm_SetEvent(&self_->fsm, PRG_E_MEM_WRITE_FINISH);
+ TR_INFO((self_->base->ucs_user_ptr, "[PRG]", "Prg_MemWriteResultCb PRG_E_MEM_WRITE_FINISH", 0U));
+ }
+ else
+ {
+ Fsm_SetEvent(&self_->fsm, PRG_E_MEM_WRITE_CMD);
+ TR_INFO((self_->base->ucs_user_ptr, "[PRG]", "Prg_MemWriteResultCb successful", 0U));
+ }
+ }
+ else
+ {
+ uint8_t i;
+ uint32_t fs_error;
+
+ /* store error paramters */
+ self_->error.code = UCS_PRG_RES_FKT_ASYNCH;
+ self_->error.function = UCS_PRG_FKT_MEM_WRITE;
+ self_->error.ret_len = result_ptr_->result.info_size;
+ for (i=0U; i< result_ptr_->result.info_size; ++i)
+ {
+ self_->error.parm[i] = result_ptr_->result.info_ptr[i];
+ }
+
+ fs_error = Prg_CalcError(&(self_->error.parm[0]));
+
+ switch (fs_error)
+ {
+ case PRG_CFG_WRITE_ERROR:
+ Fsm_SetEvent(&self_->fsm, PRG_E_ERROR_CLOSE_INIT);
+ break;
+
+ case PRG_CFG_FULL_ERROR:
+ Fsm_SetEvent(&self_->fsm, PRG_E_ERROR_CLOSE_INIT);
+ break;
+
+ case PRG_HDL_MATCH_ERROR:
+ Fsm_SetEvent(&self_->fsm, PRG_E_ERROR_INIT);
+ break;
+
+ case PRG_MEMID_ERROR:
+ Fsm_SetEvent(&self_->fsm, PRG_E_ERROR_CLOSE_INIT);
+ break;
+
+ case PRG_ADDR_EVEN_ERROR:
+ Fsm_SetEvent(&self_->fsm, PRG_E_ERROR_CLOSE_INIT);
+ break;
+
+ case PRG_LEN_EVEN_ERROR:
+ Fsm_SetEvent(&self_->fsm, PRG_E_ERROR_CLOSE_INIT);
+ break;
+
+ default:
+ Fsm_SetEvent(&self_->fsm, PRG_E_ERROR);
+ break;
+ }
+ TR_INFO((self_->base->ucs_user_ptr, "[PRG]", "Prg_MemWriteResultCb Error 0x%x", 1U, result_ptr_->result.code));
+ }
+
+ Srv_SetEvent(&self_->service, PRG_EVENT_SERVICE);
+}
+
+
+/*! \brief Function is called on reception of the MemorySessionClose.Result messsage
+ * \param self Reference to Programming service object
+ * \param result_ptr Pointer to the result of the Welcome message
+ */
+static void Prg_MemCloseResultCb(void *self, void *result_ptr)
+{
+ CProgramming *self_ = (CProgramming *)self;
+ Exc_StdResult_t *result_ptr_ = (Exc_StdResult_t *)result_ptr;
+
+ Tm_ClearTimer(&self_->base->tm, &self_->timer);
+
+ if (result_ptr_->result.code == UCS_RES_SUCCESS)
+ {
+ uint8_t session_result = *(uint8_t *)(result_ptr_->data_info);
+
+ if (session_result == 0U)
+ {
+ Fsm_SetEvent(&self_->fsm, PRG_E_MEM_CLOSE_SUCCESS);
+ TR_INFO((self_->base->ucs_user_ptr, "[PRG]", "Prg_MemCloseResultCb PRG_E_MEM_CLOSE_SUCCESS", 0U));
+ }
+ else
+ {
+ Fsm_SetEvent(&self_->fsm, PRG_E_ERROR_INIT);
+ TR_INFO((self_->base->ucs_user_ptr, "[PRG]", "Prg_MemCloseResultCb ErrResult PRG_E_ERROR_INIT", 0U));
+ }
+ }
+ else
+ {
+ uint8_t i;
+ uint32_t fs_error;
+
+ /* store error paramters */
+ self_->error.code = UCS_PRG_RES_FKT_ASYNCH;
+ self_->error.function = UCS_PRG_FKT_MEM_CLOSE;
+ self_->error.ret_len = result_ptr_->result.info_size;
+ for (i=0U; i< result_ptr_->result.info_size; ++i)
+ {
+ self_->error.parm[i] = result_ptr_->result.info_ptr[i];
+ }
+
+ fs_error = Prg_CalcError(&(self_->error.parm[0]));
+
+ if (fs_error == PRG_HDL_MATCH_ERROR)
+ {
+ Fsm_SetEvent(&self_->fsm, PRG_E_ERROR_INIT);
+ }
+ else
+ {
+ Fsm_SetEvent(&self_->fsm, PRG_E_ERROR);
+ }
+
+ TR_INFO((self_->base->ucs_user_ptr, "[PRG]", "Prg_MemCloseResultCb Error 0x%x", 1U, result_ptr_->result.code));
+ }
+
+ Srv_SetEvent(&self_->service, PRG_EVENT_SERVICE);
+}
+
+
+
+
+/*! Function is called on severe internal errors
+ *
+ * \param *self Reference to Programming object
+ * \param *result_ptr Reference to data
+ */
+static void Prg_OnTerminateEventCb(void *self, void *result_ptr)
+{
+ CProgramming *self_ = (CProgramming *)self;
+
+ MISC_UNUSED(result_ptr);
+
+ if (self_->fsm.current_state != PRG_S_IDLE)
+ {
+ Tm_ClearTimer(&self_->base->tm, &self_->timer);
+ if (self_->report_fptr != NULL)
+ {
+ self_->report_fptr(UCS_PRG_RES_ERROR,
+ self_->current_function,
+ 0U,
+ NULL,
+ self_->base->ucs_user_ptr);
+ }
+
+ /* reset FSM */
+ self_->fsm.current_state = PRG_S_IDLE;
+ }
+}
+
+
+/*! \brief Callback function for the INIC.NetworkStatus status and error messages
+ *
+ * \param *self Reference to Node Discovery object
+ * \param *result_ptr Pointer to the result of the INIC.NetworkStatus message
+ */
+static void Prg_NetworkStatusCb(void *self, void *result_ptr)
+{
+ CProgramming *self_ = (CProgramming *)self;
+ Inic_StdResult_t *result_ptr_ = (Inic_StdResult_t *)result_ptr;
+
+ if (result_ptr_->result.code == UCS_RES_SUCCESS)
+ {
+ TR_INFO((self_->base->ucs_user_ptr, "[PRG]", "Prg_NetworkStatusCb 0x%x", 1U, result_ptr_->result.code));
+ /* check for NetOn/NetOff events */
+ if ( (self_->neton == true)
+ && ((((Inic_NetworkStatus_t *)(result_ptr_->data_info))->availability) == UCS_NW_NOT_AVAILABLE) )
+ {
+ self_->neton = false;
+ Fsm_SetEvent(&self_->fsm, PRG_E_NET_OFF);
+ }
+ else if ( (self_->neton == false)
+ && ((((Inic_NetworkStatus_t *)(result_ptr_->data_info))->availability) == UCS_NW_AVAILABLE) )
+ {
+ self_->neton = true;
+ }
+ }
+
+ Srv_SetEvent(&self_->service, PRG_EVENT_SERVICE);
+}
+
+
+
+/*! \brief Timer callback used for supervising INIC command timeouts.
+ * \param self Reference to System Diagnosis object
+ */
+static void Prg_TimerCb(void *self)
+{
+ CProgramming *self_ = (CProgramming *)self;
+
+ Fsm_SetEvent(&self_->fsm, PRG_E_TIMEOUT);
+ TR_INFO((self_->base->ucs_user_ptr, "[PRG]", "Prg_TimerCb PRG_E_TIMEOUT", 0U));
+
+ Srv_SetEvent(&self_->service, PRG_EVENT_SERVICE);
+}
+
+
+
+/**************************************************************************************************/
+/* Helper functions */
+/**************************************************************************************************/
+
+static void Prg_Check_RetVal(CProgramming *self, Ucs_Return_t ret_val)
+{
+ if (ret_val == UCS_RET_SUCCESS)
+ {
+ Tm_SetTimer(&self->base->tm,
+ &self->timer,
+ &Prg_TimerCb,
+ self,
+ PRG_TIMEOUT_COMMAND,
+ 0U);
+ }
+ else
+ {
+ TR_ASSERT(self->base->ucs_user_ptr, "[PRG]", ret_val == UCS_RET_SUCCESS);
+
+ /* store error paramter */
+ self->error.code = UCS_PRG_RES_FKT_SYNCH;
+ self->error.function = self->current_function;
+ self->error.ret_len = (uint8_t)ret_val;
+
+ Fsm_SetEvent(&self->fsm, PRG_E_ERROR);
+ Srv_SetEvent(&self->service, PRG_EVENT_SERVICE);
+ }
+}
+
+
+static uint32_t Prg_CalcError(uint8_t val[])
+{
+ uint32_t temp;
+
+ temp = val[0] + (((uint32_t)val[1]) << 8U) + (((uint32_t)val[2]) << 16U);
+
+ return temp;
+}
+
+
+
+
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_rsm.c b/ucs2-lib/src/ucs_rsm.c
new file mode 100644
index 0000000..bb40743
--- /dev/null
+++ b/ucs2-lib/src/ucs_rsm.c
@@ -0,0 +1,640 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of the Sync Management.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_RSM
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_rsm.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Service parameters */
+/*------------------------------------------------------------------------------------------------*/
+/*! Priority of the RSM service used by scheduler */
+static const uint8_t RSM_SRV_PRIO = 250U; /* parasoft-suppress MISRA2004-8_7 "Value shall be part of the module, not part of a function." */
+/*! \brief Event for processing one of the below tasks */
+static const Srv_Event_t RSM_EVENT_PROCESS_DEV = 0x01U;
+/*! \brief Event for signaling the SyncLost event */
+static const Srv_Event_t RSM_EVENT_SIG_SYNCLOST = 0x02U;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal Constants */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Mask for the Network Availability Info */
+static const uint32_t RSM_MASK_NETWORK_AVAILABILITY = 0x0002U;
+/*! \brief Mask for the Network NodeAddress Info */
+static const uint32_t RSM_MASK_NETWORK_NODE_ADDRESS = 0x0010U;
+/*! \brief Mask for the Network MaxPosition Info */
+static const uint32_t RSM_MASK_NETWORK_MAX_POSITION = 0x0040U;
+
+/*! \brief Invalid device node address */
+static const uint16_t RSM_INVALID_NODE_ADDRESS = 0x0000U;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal prototypes */
+/*------------------------------------------------------------------------------------------------*/
+static void Rsm_Service (void *self);
+static void Rsm_ProcessJob (CRemoteSyncManagement *self);
+static Ucs_Return_t Rsm_SendSync (CRemoteSyncManagement *self);
+static Ucs_Return_t Rsm_RequestNtfDevId (CRemoteSyncManagement *self);
+static Ucs_Return_t Rsm_ClearLastNtfDevId (CRemoteSyncManagement *self);
+static Ucs_Return_t Rsm_SetNotificationAll (CRemoteSyncManagement * self);
+static Ucs_Return_t Rsm_SetNotificationGpio (CRemoteSyncManagement * self);
+static Ucs_Return_t Rsm_ProcessDeviceJob (CRemoteSyncManagement *self);
+static bool Rsm_IsLocal (CRemoteSyncManagement * self);
+static void Rsm_MnsInitSucceededCb(void *self, void *event_ptr);
+static void Rsm_MnsNwStatusInfosCb(void *self, void *event_ptr);
+static void Rsm_SyncResultCb(void *self, void *result_ptr);
+static void Rsm_MsgObjAvailCb(void *self, void *result_ptr);
+static void Rsm_SignalSyncCompleted (CRemoteSyncManagement * self);
+static void Rsm_SignalSyncError (CRemoteSyncManagement * self);
+static void Rsm_SignalSyncLost (CRemoteSyncManagement * self);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation of class CRemoteSyncManager */
+/*------------------------------------------------------------------------------------------------*/
+
+/*------------------------------------------------------------------------------------------------*/
+/* Initialization Methods */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Constructor of the Remote Sync Manager class.
+ * \param self Instance pointer
+ * \param init_ptr init data_ptr
+ */
+void Rsm_Ctor(CRemoteSyncManagement *self, Rsm_InitData_t *init_ptr)
+{
+ MISC_MEM_SET(self, 0, sizeof(CRemoteSyncManagement));
+
+ /* Init all instances */
+ self->base_ptr = init_ptr->base_ptr;
+ self->inic_ptr = init_ptr->inic_ptr;
+ self->net_ptr = init_ptr->net_ptr;
+
+ /* Init observer */
+ Mobs_Ctor(&self->event_param.ucsinit_observer, self, EH_E_INIT_SUCCEEDED, &Rsm_MnsInitSucceededCb);
+ Sobs_Ctor(&self->event_param.stdresult_observer, self, &Rsm_SyncResultCb);
+ Obs_Ctor(&self->event_param.txavailability_observer, self, &Rsm_MsgObjAvailCb);
+
+ /* Init event_param variables */
+ self->event_param.own_device_address = RSM_INVALID_NODE_ADDRESS;
+
+ /* Initialize Sync Management service */
+ Srv_Ctor(&self->rsm_srv, RSM_SRV_PRIO, self, &Rsm_Service);
+ /* Add RSM service to scheduler */
+ (void)Scd_AddService(&self->base_ptr->scd, &self->rsm_srv);
+ /* Add Observer for MNS initialization Result */
+ Eh_AddObsrvInternalEvent(&self->base_ptr->eh, &self->event_param.ucsinit_observer);
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Service */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Add an observer to the SyncLost Event subject
+ * \param self Instance pointer
+ * \param obs init data_ptr
+ */
+void Rsm_AddObserver(CRemoteSyncManagement * self, CObserver * obs)
+{
+ (void)Sub_AddObserver(&self->event_param.subject, obs);
+}
+
+/*! \brief Removes an observer registered by Rsm_AddObserver
+ * \param self Instance pointer
+ * \param obs_ptr observer to be removed
+ */
+void Rsm_DelObserver(CRemoteSyncManagement * self, CObserver * obs_ptr)
+{
+ (void)Sub_RemoveObserver(&self->event_param.subject, obs_ptr);
+}
+
+/*! \brief Synchronizes to the given device
+ * \param self Instance pointer
+ * \param user_data reference to the user data that'll be attached in the sync_complete_fptr callback function
+ * \param sync_complete_fptr result callback function to the device to be synchronized
+ * \return Possible return values are
+ * - \c UCS_RET_ERR_API_LOCKED the API is locked.
+ * - \c UCS_RET_SUCCESS if the transmission was started successfully
+ * - \c UCS_RET_ERR_BUFFER_OVERFLOW if no TxHandles available
+ * - \c UCS_RET_ERR_PARAM parameter exceeds its admissible range
+ */
+Ucs_Return_t Rsm_SyncDev(CRemoteSyncManagement * self, void* user_data, Rsm_ResultCb_t sync_complete_fptr)
+{
+ Ucs_Return_t result = UCS_RET_ERR_API_LOCKED;
+
+ if (self->dev_infos.sync_state != RSM_DEV_SYNCING)
+ {
+ self->dev_infos.curr_user_data = user_data;
+ self->dev_infos.curr_res_cb_fptr = sync_complete_fptr;
+ if (self->dev_infos.sync_state == RSM_DEV_SYNCED)
+ {
+ self->dev_infos.next_st = RSM_ST_SYNC_SUCC;
+ Srv_SetEvent(&self->rsm_srv, RSM_EVENT_PROCESS_DEV);
+ result = UCS_RET_SUCCESS;
+ }
+ else
+ {
+ if (Rsm_IsLocal(self))
+ {
+ self->dev_infos.next_st = RSM_ST_NTF_GPIO;
+ }
+ else
+ {
+ self->dev_infos.next_st = RSM_ST_SYNC_REQ;
+ }
+ result = Rsm_ProcessDeviceJob (self);
+ }
+ }
+
+ return result;
+}
+
+/*! \brief Returns the state (ready or busy) of the given device.
+ * \param self Instance pointer.
+ * \return state of the given device.
+ */
+Rsm_DevSyncState_t Rsm_GetDevState(CRemoteSyncManagement * self)
+{
+ return self->dev_infos.sync_state;
+}
+
+/*! \brief Reports SyncLost for the given RSM instance.
+ * \param self Reference to the instance ptr
+ */
+void Rsm_ReportSyncLost (CRemoteSyncManagement * self)
+{
+ self->last_synclost_cause = RSM_SLC_CFGNOTOK;
+ Srv_SetEvent(&self->rsm_srv, RSM_EVENT_SIG_SYNCLOST);
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Private Methods */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Service function of the Sync management.
+ * \param self Instance pointer
+ */
+static void Rsm_Service (void *self)
+{
+ CRemoteSyncManagement *self_ = (CRemoteSyncManagement *)self;
+ Srv_Event_t event_mask;
+ Srv_GetEvent(&self_->rsm_srv, &event_mask);
+
+ /* Handle event to process jobs within devices */
+ if((event_mask & RSM_EVENT_PROCESS_DEV) == RSM_EVENT_PROCESS_DEV)
+ {
+ Srv_ClearEvent(&self_->rsm_srv, RSM_EVENT_PROCESS_DEV);
+ Rsm_ProcessJob(self_);
+ }
+
+ /* Handle event to signal "SyncLost" */
+ if((event_mask & RSM_EVENT_SIG_SYNCLOST) == RSM_EVENT_SIG_SYNCLOST)
+ {
+ Srv_ClearEvent(&self_->rsm_srv, RSM_EVENT_SIG_SYNCLOST);
+ Rsm_SignalSyncLost(self_);
+ }
+}
+
+/*! \brief Processes the next job, if available, in a device.
+ * \param self Instance pointer
+ */
+static void Rsm_ProcessJob (CRemoteSyncManagement *self)
+{
+ if (self->dev_infos.next_st != RSM_ST_IDLE)
+ {
+ (void)Rsm_ProcessDeviceJob(self);
+ }
+}
+
+/*! \brief Processes the next job for the given device.
+ * \param self Instance pointer
+ * \return Possible return values are
+ * - \c UCS_RET_SUCCESS if the transmission was started successfully
+ * - \c UCS_RET_ERR_BUFFER_OVERFLOW if no TxHandles available
+ * - \c UCS_RET_ERR_API_LOCKED The INIC API is locked
+ * - \c UCS_RET_ERR_PARAM parameter exceeds its admissible range
+ */
+static Ucs_Return_t Rsm_ProcessDeviceJob (CRemoteSyncManagement *self)
+{
+ Ucs_Return_t result = UCS_RET_SUCCESS;
+
+ switch (self->dev_infos.next_st)
+ {
+ case RSM_ST_SYNC_REQ:
+ result = Rsm_SendSync (self);
+ break;
+
+ case RSM_ST_NTF_REQ:
+ result = Rsm_RequestNtfDevId (self);
+ break;
+
+ case RSM_ST_NTF_CLEAR:
+ result = Rsm_ClearLastNtfDevId (self);
+ break;
+
+ case RSM_ST_NTF_ALL:
+ result = Rsm_SetNotificationAll (self);
+ break;
+
+ case RSM_ST_NTF_GPIO:
+ result = Rsm_SetNotificationGpio (self);
+ break;
+
+ case RSM_ST_SYNC_SUCC:
+ Rsm_SignalSyncCompleted (self);
+ break;
+
+ case RSM_ST_SYNC_ERR:
+ Rsm_SignalSyncError (self);
+ break;
+
+ default:
+ TR_ERROR((self->base_ptr->ucs_user_ptr, "[RSM]", "Unexpected State Transition: 0x%02X", 1U, (Rsm_StateTransition_t)(self->dev_infos.next_st)));
+ break;
+ }
+
+ return result;
+}
+
+/*! \brief Sends a Sync command to the given device.
+ * \param self Instance pointer
+ * \return Possible return values are
+ * - \c UCS_RET_SUCCESS if the transmission was started successfully
+ * - \c UCS_RET_ERR_BUFFER_OVERFLOW if no TxHandles available
+ */
+static Ucs_Return_t Rsm_SendSync (CRemoteSyncManagement *self)
+{
+ Ucs_Return_t result;
+
+ result = Inic_DeviceSync (self->inic_ptr,
+ &self->event_param.stdresult_observer);
+
+ if(result == UCS_RET_SUCCESS)
+ {
+ self->dev_infos.sync_state = RSM_DEV_SYNCING;
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[RSM]", "Start synchronization to remote device", 0U));
+ }
+ else if(result == UCS_RET_ERR_BUFFER_OVERFLOW)
+ {
+ Inic_AddObsrvOnTxMsgObjAvail(self->inic_ptr, &self->event_param.txavailability_observer);
+ }
+
+ return result;
+}
+
+/*! \brief Retrieves the ID of the device that has notified to the INIC.DeviceStatus() FktIDs on the given remote device.
+ * \param self Instance pointer
+ * \return Possible return values are
+ * - \c UCS_RET_SUCCESS if the transmission was started successfully
+ * - \c UCS_RET_ERR_BUFFER_OVERFLOW if no TxHandles available
+ * - \c UCS_RET_ERR_API_LOCKED The INIC API is locked
+ */
+static Ucs_Return_t Rsm_RequestNtfDevId (CRemoteSyncManagement *self)
+{
+ Ucs_Return_t result;
+ uint16_t funcid_devstatus = (uint16_t)0x0220;
+
+ result = Inic_Notification_Get(self->inic_ptr, funcid_devstatus, &self->event_param.stdresult_observer);
+ if(result == UCS_RET_SUCCESS)
+ {
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[RSM]", "DeviceId Request for INIC.DeviceStatus() succeeded", 0U));
+ }
+ else if (result == UCS_RET_ERR_BUFFER_OVERFLOW)
+ {
+ Inic_AddObsrvOnTxMsgObjAvail(self->inic_ptr, &self->event_param.txavailability_observer);
+ }
+ else
+ {
+ Srv_SetEvent(&self->rsm_srv, RSM_EVENT_PROCESS_DEV);
+ }
+
+ return result;
+}
+
+/*! \brief Clears the current DevId of all remote functions on the given remote device.
+ * \param self Instance pointer
+ * \return Possible return values are
+ * - \c UCS_RET_SUCCESS if the transmission was started successfully
+ * - \c UCS_RET_ERR_BUFFER_OVERFLOW if no TxHandles available
+ * - \c UCS_RET_ERR_PARAM parameter exceeds its admissible range
+ */
+static Ucs_Return_t Rsm_ClearLastNtfDevId (CRemoteSyncManagement *self)
+{
+ Ucs_Return_t result;
+ Ucs_Inic_NotificationCtrl_t control = UCS_INIC_NTF_CLEAR_ALL;
+ Inic_FktIdList_t rm_fktid_list;
+ rm_fktid_list.fktids_ptr = NULL;
+ rm_fktid_list.num_fktids = 0U;
+
+ result = Inic_Notification_Set(self->inic_ptr, control, self->event_param.own_device_address, rm_fktid_list);
+ if(result == UCS_RET_SUCCESS)
+ {
+ self->dev_infos.next_st = RSM_ST_NTF_ALL;
+ Srv_SetEvent(&self->rsm_srv, RSM_EVENT_PROCESS_DEV);
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[RSM]", "Clear DevId for all Remote functions succeeded", 0U));
+ }
+ else if (result == UCS_RET_ERR_BUFFER_OVERFLOW)
+ {
+ Inic_AddObsrvOnTxMsgObjAvail(self->inic_ptr, &self->event_param.txavailability_observer);
+ }
+
+ return result;
+}
+
+/*! \brief Sets all notification for the given remote device.
+ * \param self Instance pointer
+ * \return Possible return values are
+ * - \c UCS_RET_SUCCESS if the transmission was started successfully
+ * - \c UCS_RET_ERR_BUFFER_OVERFLOW if no TxHandles available
+ * - \c UCS_RET_ERR_PARAM parameter exceeds its admissible range
+ */
+static Ucs_Return_t Rsm_SetNotificationAll (CRemoteSyncManagement * self)
+{
+ Ucs_Return_t result;
+ Ucs_Inic_NotificationCtrl_t control = UCS_INIC_NTF_SET_FUNC;
+
+ uint16_t funcid_list[2] = {0x0705U, 0x0802U};
+ Inic_FktIdList_t rm_fktid_list;
+ rm_fktid_list.fktids_ptr = &funcid_list[0];
+ rm_fktid_list.num_fktids = 2U;
+
+ result = Inic_Notification_Set(self->inic_ptr, control, self->event_param.own_device_address, rm_fktid_list);
+ if(result == UCS_RET_SUCCESS)
+ {
+ self->dev_infos.next_st = RSM_ST_SYNC_SUCC;
+ Srv_SetEvent(&self->rsm_srv, RSM_EVENT_PROCESS_DEV);
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[RSM]", "Set Notification for All Remote functions succeeded", 0U));
+ }
+ else if (result == UCS_RET_ERR_BUFFER_OVERFLOW)
+ {
+ Inic_AddObsrvOnTxMsgObjAvail(self->inic_ptr, &self->event_param.txavailability_observer);
+ }
+
+ return result;
+}
+
+/*! \brief Sets Gpio notification for the local device.
+ * \param self Instance pointer
+ * \return Possible return values are
+ * - \c UCS_RET_SUCCESS if the transmission was started successfully
+ * - \c UCS_RET_ERR_BUFFER_OVERFLOW if no TxHandles available
+ */
+static Ucs_Return_t Rsm_SetNotificationGpio (CRemoteSyncManagement * self)
+{
+ Ucs_Return_t result;
+ /*! \brief GPIO TriggerEvent function id */
+ uint16_t RSM_GPIOTREVENT_FUNCID = 0x0705U;
+ /*! \brief Local EHC address */
+ uint16_t RSM_EHC_ADDRESS = 0x0002U;
+
+ Ucs_Inic_NotificationCtrl_t control = UCS_INIC_NTF_SET_FUNC;
+ uint16_t funcid_resmonitor = RSM_GPIOTREVENT_FUNCID;
+ Inic_FktIdList_t rm_fktid_list;
+ rm_fktid_list.fktids_ptr = &funcid_resmonitor;
+ rm_fktid_list.num_fktids = 1U;
+
+ result = Inic_Notification_Set(self->inic_ptr, control, RSM_EHC_ADDRESS, rm_fktid_list);
+ if(result == UCS_RET_SUCCESS)
+ {
+ self->dev_infos.next_st = RSM_ST_SYNC_SUCC;
+ Srv_SetEvent(&self->rsm_srv, RSM_EVENT_PROCESS_DEV);
+ }
+ else if (result == UCS_RET_ERR_BUFFER_OVERFLOW)
+ {
+ Inic_AddObsrvOnTxMsgObjAvail(self->inic_ptr, &self->event_param.txavailability_observer);
+ }
+
+ return result;
+}
+
+/*! \brief Check whether the given device is local or remote.
+ * \param self Instance pointer
+ * \return Returns \c true if the device is local, otherwise \c false.
+ */
+static bool Rsm_IsLocal (CRemoteSyncManagement *self)
+{
+ return (Inic_GetTargetAddress(self->inic_ptr) == UCS_ADDR_LOCAL_DEV);
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Callback Functions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Called if MNS initialization has been succeeded.
+ * \param self Instance pointer
+ * \param event_ptr Reference to reported event
+ */
+static void Rsm_MnsInitSucceededCb(void *self, void *event_ptr)
+{
+ CRemoteSyncManagement *self_ = (CRemoteSyncManagement *)self;
+ MISC_UNUSED(event_ptr);
+
+ /* Remove ucsinit_observer */
+ Eh_DelObsrvInternalEvent(&self_->base_ptr->eh, &self_->event_param.ucsinit_observer);
+
+ /* Add network status observer */
+ Mobs_Ctor(&self_->event_param.nwstatus_observer, self, RSM_MASK_NETWORK_NODE_ADDRESS, &Rsm_MnsNwStatusInfosCb);
+ Net_AddObserverNetworkStatus(self_->net_ptr, &self_->event_param.nwstatus_observer);
+}
+
+/*! \brief Result callback for the "Sync Request".
+ * \param self Instance pointer
+ * \param result_ptr Reference to the result.
+ */
+static void Rsm_SyncResultCb(void *self, void *result_ptr)
+{
+ CRemoteSyncManagement *self_ = (CRemoteSyncManagement *)self;
+ Inic_StdResult_t *result_ptr_ = (Inic_StdResult_t *)result_ptr;
+ Inic_NotificationResult_t * res_inf = NULL;
+
+ if(result_ptr_->result.code == UCS_RES_SUCCESS)
+ {
+ if (self_->dev_infos.sync_state == RSM_DEV_SYNCING)
+ {
+ switch (self_->dev_infos.next_st)
+ {
+ case RSM_ST_SYNC_REQ:
+ self_->dev_infos.next_st = RSM_ST_NTF_REQ;
+ TR_INFO((self_->base_ptr->ucs_user_ptr, "[RSM]", "Remote DeviceSync has been successfully created.", 0U));
+ break;
+
+ case RSM_ST_NTF_REQ:
+ res_inf = (Inic_NotificationResult_t *)result_ptr_->data_info;
+ if (res_inf != NULL)
+ {
+ if (res_inf->device_id == RSM_INVALID_NODE_ADDRESS)
+ {
+ self_->dev_infos.next_st = RSM_ST_NTF_ALL;
+ }
+ else
+ {
+ self_->dev_infos.next_st = RSM_ST_NTF_CLEAR;
+ }
+ }
+ break;
+
+ default:
+ break;
+ }
+ Srv_SetEvent(&self_->rsm_srv, RSM_EVENT_PROCESS_DEV);
+ }
+ }
+ else
+ {
+ self_->dev_infos.next_st = RSM_ST_SYNC_ERR;
+ self_->dev_infos.curr_result.code = RSM_RES_ERR_SYNC;
+ self_->dev_infos.curr_result.details.inic_result = result_ptr_->result;
+ if (result_ptr_->result.code == UCS_RES_ERR_TRANSMISSION)
+ {
+ self_->dev_infos.curr_result.details.tx_result = *(Ucs_MsgTxStatus_t *)(result_ptr_->data_info);
+ }
+ else
+ {
+ self_->dev_infos.curr_result.details.tx_result = UCS_MSG_STAT_OK;
+ }
+
+ Srv_SetEvent(&self_->rsm_srv, RSM_EVENT_PROCESS_DEV);
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[RSM]", "Synchronization to the remote device failed. Result code: 0x%02X", 1U, result_ptr_->result.code));
+ if (result_ptr_->result.info_ptr != NULL)
+ {
+ TR_ERROR_INIC_RESULT(self_->base_ptr->ucs_user_ptr, "[RSM]", result_ptr_->result.info_ptr, result_ptr_->result.info_size);
+ }
+ }
+}
+
+/*! \brief Event Callback function for the network status.
+ * \param self Instance pointer
+ * \param event_ptr Reference to the events
+ */
+static void Rsm_MnsNwStatusInfosCb(void *self, void *event_ptr)
+{
+ CRemoteSyncManagement *self_ = (CRemoteSyncManagement *)self;
+ Net_NetworkStatusParam_t *result_ptr_ = (Net_NetworkStatusParam_t *)event_ptr;
+ bool signal_synclost = false;
+
+ if ((RSM_MASK_NETWORK_NODE_ADDRESS & result_ptr_->change_mask) == RSM_MASK_NETWORK_NODE_ADDRESS)
+ {
+ if (result_ptr_->node_address != 0xFFFFU)
+ {
+ if ((self_->event_param.own_device_address != RSM_INVALID_NODE_ADDRESS) &&
+ (result_ptr_->node_address != self_->event_param.own_device_address))
+ {
+ self_->last_synclost_cause = RSM_SLC_SYSMODIF;
+ signal_synclost = true;
+ }
+
+ self_->event_param.own_device_address = result_ptr_->node_address;
+ }
+ }
+
+ if (signal_synclost)
+ {
+ Srv_SetEvent(&self_->rsm_srv, RSM_EVENT_SIG_SYNCLOST);
+ }
+}
+
+/*! \brief Event Callback function that signals that a TxMsgObj is now available.
+ * \param self Instance pointer
+ * \param result_ptr Reference to the results
+ */
+static void Rsm_MsgObjAvailCb(void *self, void *result_ptr)
+{
+ CRemoteSyncManagement *self_ = (CRemoteSyncManagement *)self;
+ MISC_UNUSED(result_ptr);
+
+ Srv_SetEvent(&self_->rsm_srv, RSM_EVENT_PROCESS_DEV);
+
+ /* delete observer */
+ Inic_DelObsrvOnTxMsgObjAvail(self_->inic_ptr, &self_->event_param.txavailability_observer);
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Notification Functions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Signals the successful synchronization to a remote device.
+ * \param self Instance pointer
+ */
+static void Rsm_SignalSyncCompleted (CRemoteSyncManagement * self)
+{
+ Rsm_ResultCb_t tmp_res_cb = self->dev_infos.curr_res_cb_fptr;
+ void * data = self->dev_infos.curr_user_data;
+ Rsm_Result_t res = {RSM_RES_SUCCESS, {UCS_MSG_STAT_OK, {UCS_RES_SUCCESS, NULL, 0}}};
+
+ self->dev_infos.sync_state = RSM_DEV_SYNCED;
+ self->dev_infos.next_st = RSM_ST_IDLE;
+ self->dev_infos.curr_res_cb_fptr = NULL;
+ self->dev_infos.curr_user_data = NULL;
+
+ if (tmp_res_cb != NULL)
+ {
+ tmp_res_cb(data, res);
+ }
+}
+
+/*! \brief Signals that the synchronization to a remote device failed.
+ * \param self Instance pointer
+ */
+static void Rsm_SignalSyncError (CRemoteSyncManagement * self)
+{
+ Rsm_ResultCb_t tmp_res_cb = self->dev_infos.curr_res_cb_fptr;
+ void * data = self->dev_infos.curr_user_data;
+
+ self->dev_infos.sync_state = RSM_DEV_UNSYNCED;
+ self->dev_infos.next_st = RSM_ST_IDLE;
+ self->dev_infos.curr_res_cb_fptr = NULL;
+ self->dev_infos.curr_user_data = NULL;
+
+ if (tmp_res_cb != NULL)
+ {
+ tmp_res_cb(data, self->dev_infos.curr_result);
+ }
+}
+
+/*! \brief Signals that the synchronization to a remote device has been lost.
+ * \param self Instance pointer
+ */
+static void Rsm_SignalSyncLost (CRemoteSyncManagement * self)
+{
+ if ((self->dev_infos.sync_state == RSM_DEV_SYNCED) &&
+ (!Rsm_IsLocal(self)))
+ {
+ self->dev_infos.sync_state = RSM_DEV_UNSYNCED;
+ if(Sub_GetNumObservers(&self->event_param.subject) > 0U)
+ {
+ Sub_Notify(&self->event_param.subject, &self->last_synclost_cause);
+ }
+ }
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_rtm.c b/ucs2-lib/src/ucs_rtm.c
new file mode 100644
index 0000000..6bc2ef1
--- /dev/null
+++ b/ucs2-lib/src/ucs_rtm.c
@@ -0,0 +1,1366 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of the Route Management.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_RTM
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_rtm.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Service parameters */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Priority of the RSM service used by scheduler */
+static const uint8_t RTM_SRV_PRIO = 250U; /* parasoft-suppress MISRA2004-8_7 "Value shall be part of the module, not part of a function." */
+/*! \brief Event for resuming the handling of routes */
+static const Srv_Event_t RTM_EVENT_HANDLE_NEXTROUTE = 0x01U;
+/*! \brief Event for pausing the processing of routes */
+static const Srv_Event_t RTM_EVENT_PROCESS_PAUSE = 0x02U;
+/*! \brief Interval (in ms) for checking the RoutingJob queue */
+static const uint16_t RTM_JOB_CHECK_INTERVAL = 50U; /* parasoft-suppress MISRA2004-8_7 "Value shall be part of the module, not part of a function." */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal Constants */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Mask for the Network Availability Info */
+static const uint32_t RTM_MASK_NETWORK_AVAILABILITY = 0x0002U;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal prototypes */
+/*------------------------------------------------------------------------------------------------*/
+static void Rtm_Service(void *self);
+static void Rtm_HandleNextRoute(CRouteManagement * self);
+static void Rtm_BuildRoute(CRouteManagement * self);
+static void Rtm_DestroyRoute(CRouteManagement * self);
+static bool Rtm_SetNextRouteIndex(CRouteManagement * self);
+static void Rtm_HandleRoutingError(CRouteManagement * self, Ucs_Rm_Route_t * route_ptr);
+static void Rtm_ApiLocking(CRouteManagement *self, bool status);
+static bool Rtm_IsApiFree(CRouteManagement *self);
+static Ucs_Return_t Rtm_BuildEndPoint(CRouteManagement * self, Ucs_Rm_EndPoint_t * endpoint_ptr);
+static Ucs_Return_t Rtm_DeactivateRouteEndPoint(CRouteManagement * self, Ucs_Rm_EndPoint_t * endpoint_ptr);
+static Ucs_Rm_Route_t * Rtm_GetNextRoute(CRouteManagement * self);
+static bool Rtm_IsRouteBuildable(CRouteManagement * self);
+static bool Rtm_IsRouteDestructible(CRouteManagement * self, Ucs_Rm_Route_t * route_ptr);
+static bool Rtm_IsRouteActivatable(CRouteManagement * self, Ucs_Rm_Route_t * route_ptr);
+static void Rtm_DisableRoute(CRouteManagement * self, Ucs_Rm_Route_t * route_ptr);
+static void Rtm_EnableRoute(CRouteManagement * self, Ucs_Rm_Route_t * route_ptr);
+static bool Rtm_CheckEpResultSeverity(CRouteManagement * self, Ucs_Rm_Route_t * tgt_route_ptr, Ucs_Rm_EndPoint_t * endpoint_ptr);
+static void Rtm_EndPointDeterioredCb(void *self, void *result_ptr);
+static void Rtm_StartTmr4HandlingRoutes(CRouteManagement * self);
+static void Rtm_ExecRoutesHandling(void * self);
+static void Rtm_HandleProcessTermination(CRouteManagement * self);
+static void Rtm_StopRoutesHandling(CRouteManagement * self);
+static void Rtm_StartRoutingTimer (CRouteManagement * self);
+static void Rtm_ResetNodesAvailable(CRouteManagement * self);
+static bool Rtm_AreRouteNodesAvailable(CRouteManagement * self, Ucs_Rm_Route_t * route_ptr);
+static bool Rtm_UnlockPossibleBlockings(CRouteManagement * self, Ucs_Rm_Route_t * tgt_route_ptr, Ucs_Rm_EndPoint_t * endpoint_ptr);
+static void Rtm_ReleaseSuspendedRoutes(CRouteManagement * self, Ucs_Rm_Node_t *node_ptr);
+static void Rtm_ForcesRouteToIdle(CRouteManagement * self, Ucs_Rm_Route_t * route_ptr);
+static void Rtm_UcsInitSucceededCb(void *self, void *event_ptr);
+static void Rtm_MnsNwStatusInfosCb(void *self, void *event_ptr);
+static void Rtm_UninitializeService(void *self, void *error_code_ptr);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation of class CRouteManagement */
+/*------------------------------------------------------------------------------------------------*/
+/*------------------------------------------------------------------------------------------------*/
+/* Initialization Methods */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Constructor of the Remote Sync Manager class.
+ * \param self Instance pointer
+ * \param init_ptr init data_ptr
+ */
+void Rtm_Ctor(CRouteManagement *self, Rtm_InitData_t *init_ptr)
+{
+ MISC_MEM_SET(self, 0, sizeof(CRouteManagement));
+
+ /* Init all reference instances */
+ self->base_ptr = init_ptr->base_ptr;
+ self->epm_ptr = init_ptr->epm_ptr;
+ self->tm_ptr = &init_ptr->base_ptr->tm;
+ self->net_ptr = init_ptr->net_ptr;
+ self->report_fptr = init_ptr->report_fptr;
+
+ /* Initialize Route Management service */
+ Srv_Ctor(&self->rtm_srv, RTM_SRV_PRIO, self, &Rtm_Service);
+
+ /* Add Observer for UCS initialization Result */
+ Mobs_Ctor(&self->ucsinit_observer, self, EH_E_INIT_SUCCEEDED, &Rtm_UcsInitSucceededCb);
+ Eh_AddObsrvInternalEvent(&self->base_ptr->eh, &self->ucsinit_observer);
+
+ /* Init and Add observer to the UCS termination event */
+ Mobs_Ctor(&self->ucstermination_observer, self, EH_M_TERMINATION_EVENTS, &Rtm_UninitializeService);
+ Eh_AddObsrvInternalEvent(&self->base_ptr->eh, &self->ucstermination_observer);
+
+ /* Add RTM service to scheduler */
+ (void)Scd_AddService(&self->base_ptr->scd, &self->rtm_srv);
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Service */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Starts the process to buildup the given routes list.
+ *
+ * This function shall only be called once.
+ * \param self Instance pointer
+ * \param routes_list Routes list to be built
+ * \param size Size of the routes list
+ * \return Possible return values are
+ * - \c UCS_RET_ERR_API_LOCKED the API is locked.
+ * - \c UCS_RET_SUCCESS if the transmission was started successfully
+ * - \c UCS_RET_ERR_BUFFER_OVERFLOW if no TxHandles available
+ * - \c UCS_RET_ERR_PARAM At least one parameter is wrong
+ */
+Ucs_Return_t Rtm_StartProcess(CRouteManagement * self, Ucs_Rm_Route_t routes_list[], uint16_t size)
+{
+ Ucs_Return_t result = UCS_RET_ERR_API_LOCKED;
+
+ if (Rtm_IsApiFree(self) != false)
+ {
+ result = UCS_RET_ERR_PARAM;
+ if ((self != NULL) && (routes_list != NULL) && (size > 0U))
+ {
+ uint8_t k = 0U;
+ /* Function remains from now locked */
+ Rtm_ApiLocking(self, true);
+
+ /* Initializes private variables */
+ self->routes_list_size = size;
+ self->curr_route_index = 0U;
+ self->routes_list_ptr = &routes_list[0];
+
+ /* Initializes internal data structure */
+ for (; k < size; k++)
+ {
+ MISC_MEM_SET(&routes_list[k].internal_infos, 0, sizeof(Ucs_Rm_RouteInt_t));
+ }
+
+ Rtm_StartTmr4HandlingRoutes(self);
+ result = UCS_RET_SUCCESS;
+ }
+ }
+
+ return result;
+}
+
+/*! \brief Deactivates respectively destroys the given route reference
+ * \param self Instance pointer
+ * \param route_ptr Reference to the route to be destroyed
+ * \return Possible return values are
+ * - \c UCS_RET_SUCCESS if the transmission was started successfully
+ * - \c UCS_RET_ERR_PARAM At least one parameter is NULL
+ * - \c UCS_RET_ERR_ALREADY_SET Route is already inactive
+ */
+Ucs_Return_t Rtm_DeactivateRoute (CRouteManagement * self, Ucs_Rm_Route_t * route_ptr)
+{
+ Ucs_Return_t result = UCS_RET_ERR_PARAM;
+
+ if ((self != NULL) && (route_ptr != NULL))
+ {
+ if (Rtm_IsRouteDestructible(self, route_ptr))
+ {
+ Rtm_DisableRoute(self, route_ptr);
+ Rtm_StartTmr4HandlingRoutes(self);
+ result = UCS_RET_SUCCESS;
+ }
+ else
+ {
+ result = UCS_RET_ERR_ALREADY_SET;
+ }
+ }
+
+ return result;
+}
+
+/*! \brief Builds respectively activates the given route reference
+ * \param self Instance pointer
+ * \param route_ptr Reference to the route to be destroyed
+ * \return Possible return values are
+ * - \c UCS_RET_SUCCESS if the transmission was started successfully
+ * - \c UCS_RET_ERR_PARAM At least one parameter is NULL
+ * - \c UCS_RET_ERR_ALREADY_SET Route is already active
+ */
+Ucs_Return_t Rtm_ActivateRoute(CRouteManagement * self, Ucs_Rm_Route_t * route_ptr)
+{
+ Ucs_Return_t result = UCS_RET_ERR_PARAM;
+
+ if ((self != NULL) && (route_ptr != NULL))
+ {
+ if (Rtm_IsRouteActivatable(self, route_ptr))
+ {
+ Rtm_EnableRoute(self, route_ptr);
+ Rtm_StartTmr4HandlingRoutes(self);
+ result = UCS_RET_SUCCESS;
+ }
+ else
+ {
+ result = UCS_RET_ERR_ALREADY_SET;
+ }
+ }
+
+ return result;
+}
+
+/*! \brief Sets the given node to \c available or \c not \c available and triggers the routing process to handle this change.
+ * \details In case of \c Available the function starts the routing process that checks whether there are endpoints to build on this node.
+ * In case of \c Unavailable the function informs sub modules like XRM to check whether there are resources to release and simultaneously unlock \c suspended routes that
+ * link to this node.
+ * \param self The routing instance pointer
+ * \param node_ptr Reference to the node to be looked for.
+ * \param available Specifies whether the node is available or not
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * --------------------------- | ---------------------------------------------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_ALREADY_SET | Node is already set to "available" or "not available"
+ * UCS_RET_ERR_PARAM | At least one parameter is NULL.
+ * UCS_RET_ERR_NOT_INITIALIZED | UNICENS is not initialized
+ * UCS_RET_ERR_NOT_AVAILABLE | The function cannot be processed because the network is not available
+ */
+Ucs_Return_t Rtm_SetNodeAvailable(CRouteManagement * self, Ucs_Rm_Node_t *node_ptr, bool available)
+{
+ Ucs_Return_t ret_val = UCS_RET_ERR_PARAM;
+
+ if ((self != NULL) && (node_ptr != NULL) && (node_ptr->signature_ptr != NULL))
+ {
+ ret_val = UCS_RET_ERR_NOT_AVAILABLE;
+ if (self->nw_available)
+ {
+ ret_val = UCS_RET_ERR_ALREADY_SET;
+ if (available)
+ {
+ if (node_ptr->internal_infos.available == 0x00U)
+ {
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[RTM]", "Node with Addr {%X} is available", 1U, node_ptr->signature_ptr->node_address));
+ node_ptr->internal_infos.available = 0x01U;
+ Rtm_StartRoutingTimer(self);
+ ret_val = UCS_RET_SUCCESS;
+ }
+ }
+ else
+ {
+ if (node_ptr->internal_infos.available == 0x01U)
+ {
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[RTM]", "Node with Addr {%X} is not available", 1U, node_ptr->signature_ptr->node_address));
+ node_ptr->internal_infos.available = 0x00U;
+ Rtm_ReleaseSuspendedRoutes(self, node_ptr);
+ Epm_ReportInvalidDevice (self->epm_ptr, node_ptr->signature_ptr->node_address);
+ ret_val = UCS_RET_SUCCESS;
+ }
+ }
+ }
+ }
+
+ return ret_val;
+}
+
+/*! \brief Retrieves the "available" flag of the given node.
+ * \param self The routing instance pointer
+ * \param node_ptr Reference to the node to be looked for.
+ * \return The "available" flag of the node.
+ */
+bool Rtm_GetNodeAvailable(CRouteManagement * self, Ucs_Rm_Node_t *node_ptr)
+{
+ bool ret_val = false;
+
+ MISC_UNUSED (self);
+
+ if (node_ptr != NULL)
+ {
+ ret_val = (node_ptr->internal_infos.available == 0x01U) ? true:false;
+ }
+
+ return ret_val;
+}
+
+/*! \brief Retrieves currently references of all routes attached to the given endpoint and stores It into an external routes table provided by user application.
+ * Thus, User application should provide an external reference to an empty routes table where the potential routes will be stored.
+ * That is, user application is responsible to allocate enough space to store the found routes. Otherwise, the max routes found will
+ * equal the list size.
+ * \param self The routing instance pointer
+ * \param ep_inst Reference to the endpoint to be looked for.
+ * \param ext_routes_list External empty table allocated by user application
+ * \param size_list Size of the provided list
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * --------------------------- | ---------------------------------------------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_PARAM | At least one parameter is NULL.
+ */
+Ucs_Return_t Rtm_GetAttachedRoutes(CRouteManagement * self, Ucs_Rm_EndPoint_t * ep_inst,
+ Ucs_Rm_Route_t * ext_routes_list[], uint16_t size_list)
+{
+ Ucs_Return_t ret_val = UCS_RET_ERR_PARAM;
+
+ MISC_UNUSED (self);
+
+ if ((ep_inst != NULL) && (ext_routes_list != NULL) && (size_list > 0U))
+ {
+ bool curr_index_empty = true;
+ uint8_t k = 0U, num_attached_routes = Sub_GetNumObservers(&ep_inst->internal_infos.subject_obj);
+ CDlNode *n_tmp = (&(ep_inst->internal_infos.subject_obj))->list.head;
+ Ucs_Rm_Route_t * tmp_rt = NULL;
+ ret_val = UCS_RET_SUCCESS;
+
+ for (; ((k < size_list) && (num_attached_routes > 0U) && (n_tmp != NULL)); k++)
+ {
+ ext_routes_list[k] = NULL;
+ do
+ {
+ CObserver *o_tmp = (CObserver *)n_tmp->data_ptr;
+ tmp_rt = (Ucs_Rm_Route_t *)o_tmp->inst_ptr;
+ if ((tmp_rt != NULL) && ((tmp_rt->internal_infos.route_state == UCS_RM_ROUTE_BUILT) ||
+ (tmp_rt->internal_infos.route_state == UCS_RM_ROUTE_CONSTRUCTION) ||
+ (tmp_rt->internal_infos.route_state == UCS_RM_ROUTE_DESTRUCTION)))
+ {
+ curr_index_empty = false;
+ ext_routes_list[k] = tmp_rt;
+ }
+ n_tmp = n_tmp->next;
+ num_attached_routes--;
+
+ } while ((curr_index_empty) && (num_attached_routes > 0U));
+ curr_index_empty = true;
+ }
+
+ if (k < size_list)
+ {
+ ext_routes_list[k] = NULL;
+ }
+ }
+
+ return ret_val;
+}
+
+/*! \brief Retrieves the \c ConnectionLabel of the given route.
+ * \param self The routing instance pointer
+ * \param route_ptr Reference to the route to be looked for.
+ * \return The "ConnectionLabel" of this route.
+ */
+uint16_t Rtm_GetConnectionLabel (CRouteManagement * self, Ucs_Rm_Route_t * route_ptr)
+{
+ uint16_t conn_label = 0U;
+
+ if ((self != NULL) && (route_ptr != NULL) && (route_ptr->internal_infos.route_state == UCS_RM_ROUTE_BUILT))
+ {
+ conn_label = Epm_GetConnectionLabel(self->epm_ptr, route_ptr->source_endpoint_ptr);
+ }
+
+ return conn_label;
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Private Methods */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Service function of the Sync management.
+ * \param self Instance pointer
+ */
+static void Rtm_Service(void *self)
+{
+ CRouteManagement *self_ = (CRouteManagement *)self;
+ Srv_Event_t event_mask;
+ Srv_GetEvent(&self_->rtm_srv, &event_mask);
+
+ /* Event to process list of routes */
+ if((event_mask & RTM_EVENT_HANDLE_NEXTROUTE) == RTM_EVENT_HANDLE_NEXTROUTE)
+ {
+ Srv_ClearEvent(&self_->rtm_srv, RTM_EVENT_HANDLE_NEXTROUTE);
+ Rtm_HandleNextRoute(self_);
+ }
+
+ /* Event to pause processing of routes list */
+ if ((event_mask & RTM_EVENT_PROCESS_PAUSE) == RTM_EVENT_PROCESS_PAUSE)
+ {
+ Srv_ClearEvent(&self_->rtm_srv, RTM_EVENT_PROCESS_PAUSE);
+ Rtm_StopRoutesHandling(self_);
+ }
+}
+
+/*! \brief This function starts the routing timer.
+ *
+ * Whenever this function is called the routing management process will resume in case it has been paused.
+ * \param self Instance pointer
+ */
+static void Rtm_StartRoutingTimer (CRouteManagement * self)
+{
+ if ((NULL != self) && (NULL != self->routes_list_ptr) &&
+ (0U < self->routes_list_size))
+ {
+ Rtm_StartTmr4HandlingRoutes(self);
+ }
+}
+
+/*! \brief Handles the next route in the list.
+ * \param self Instance pointer
+ */
+static void Rtm_HandleNextRoute(CRouteManagement * self)
+{
+ Ucs_Rm_Route_t * tmp_route;
+ self->curr_route_ptr = Rtm_GetNextRoute(self);
+ tmp_route = self->curr_route_ptr;
+
+ switch (tmp_route->internal_infos.route_state)
+ {
+ case UCS_RM_ROUTE_IDLE:
+ if (Rtm_IsRouteBuildable(self) == true)
+ {
+ Rtm_BuildRoute(self);
+ }
+ break;
+
+ case UCS_RM_ROUTE_CONSTRUCTION:
+ Rtm_BuildRoute(self);
+ break;
+
+ case UCS_RM_ROUTE_DETERIORATED:
+ Rtm_HandleRoutingError(self, tmp_route);
+ break;
+
+ case UCS_RM_ROUTE_DESTRUCTION:
+ Rtm_DestroyRoute(self);
+ break;
+
+ case UCS_RM_ROUTE_SUSPENDED:
+ case UCS_RM_ROUTE_BUILT:
+ if (tmp_route->active == false)
+ {
+ Rtm_DestroyRoute(self);
+ }
+ break;
+
+ default:
+ break;
+ }
+}
+
+/*! \brief Checks whether the given route is buildable.
+ * \param self Instance pointer
+ * \return \c true if the route is buildable, otherwise \c false.
+ */
+static bool Rtm_IsRouteBuildable(CRouteManagement * self)
+{
+ bool result_check = false;
+
+ if (self->curr_route_ptr != NULL)
+ {
+ if ((self->curr_route_ptr->internal_infos.route_state == UCS_RM_ROUTE_IDLE) &&
+ (self->curr_route_ptr->active == true) &&
+ (self->curr_route_ptr->source_endpoint_ptr != NULL) &&
+ (self->curr_route_ptr->sink_endpoint_ptr != NULL))
+ {
+ result_check = true;
+ }
+ }
+
+ return result_check;
+}
+
+/*! \brief Checks whether the given route is destructible.
+ * \param self Instance pointer
+ * \param route_ptr Reference route to be checked
+ * \return \c true if the route is destructible, otherwise \c false.
+ */
+static bool Rtm_IsRouteDestructible(CRouteManagement * self, Ucs_Rm_Route_t * route_ptr)
+{
+ bool result_check = false;
+ MISC_UNUSED (self);
+
+ if ((route_ptr != NULL) && (route_ptr->active == 0x01U) && ((route_ptr->internal_infos.route_state == UCS_RM_ROUTE_BUILT) ||
+ (route_ptr->internal_infos.route_state == UCS_RM_ROUTE_SUSPENDED)))
+ {
+ result_check = true;
+ }
+
+ return result_check;
+}
+
+/*! \brief Checks whether the given route can be activated.
+ * \param self Instance pointer
+ * \param route_ptr Reference route to be checked
+ * \return \c true if the route is destructible, otherwise \c false.
+ */
+static bool Rtm_IsRouteActivatable(CRouteManagement * self, Ucs_Rm_Route_t * route_ptr)
+{
+ bool result_check = false;
+ MISC_UNUSED (self);
+
+ if ((route_ptr != NULL) && (route_ptr->internal_infos.route_state == UCS_RM_ROUTE_IDLE) && (route_ptr->active == 0x0U))
+ {
+ result_check = true;
+ }
+
+ return result_check;
+}
+
+/*! \brief Deactivates the given route reference.
+ * \param self Instance pointer
+ * \param route_ptr Reference route to be deactivated
+ */
+static void Rtm_DisableRoute(CRouteManagement * self, Ucs_Rm_Route_t * route_ptr)
+{
+ MISC_UNUSED (self);
+
+ if (route_ptr != NULL)
+ {
+ route_ptr->active = false;
+ }
+}
+
+/*! \brief Activates the given route reference.
+ * \param self Instance pointer
+ * \param route_ptr Reference route to be activated
+ */
+static void Rtm_EnableRoute(CRouteManagement * self, Ucs_Rm_Route_t * route_ptr)
+{
+ MISC_UNUSED (self);
+
+ if (route_ptr != NULL)
+ {
+ route_ptr->active = true;
+ }
+}
+
+/*! \brief Builds the current Route.
+ * \param self Instance pointer
+ */
+static void Rtm_BuildRoute(CRouteManagement * self)
+{
+ bool result_critical = false;
+ Ucs_Rm_EndPointState_t ep_state = Epm_GetState(self->epm_ptr, self->curr_route_ptr->source_endpoint_ptr);
+ switch (ep_state)
+ {
+ case UCS_RM_EP_IDLE:
+ result_critical = Rtm_CheckEpResultSeverity(self, self->curr_route_ptr, self->curr_route_ptr->source_endpoint_ptr);
+ if (!result_critical)
+ {
+ if (self->curr_route_ptr->internal_infos.src_obsvr_initialized == 0U)
+ {
+ self->curr_route_ptr->internal_infos.src_obsvr_initialized = 1U;
+ Epm_DelObserver(self->curr_route_ptr->source_endpoint_ptr, &self->curr_route_ptr->internal_infos.source_ep_observer);
+ Obs_Ctor(&self->curr_route_ptr->internal_infos.source_ep_observer, self->curr_route_ptr, &Rtm_EndPointDeterioredCb);
+ /* Initializes source endpoint internal data */
+ Epm_InitInternalInfos (self->epm_ptr, self->curr_route_ptr->source_endpoint_ptr);
+ }
+ (void)Rtm_BuildEndPoint(self, self->curr_route_ptr->source_endpoint_ptr);
+ }
+ break;
+
+ case UCS_RM_EP_BUILT:
+ /* In case of shared source endpoint by another route */
+ if (self->curr_route_ptr->internal_infos.src_obsvr_initialized == 0U)
+ {
+ self->curr_route_ptr->internal_infos.src_obsvr_initialized = 1U;
+ Epm_DelObserver(self->curr_route_ptr->source_endpoint_ptr, &self->curr_route_ptr->internal_infos.source_ep_observer);
+ Obs_Ctor(&self->curr_route_ptr->internal_infos.source_ep_observer, self->curr_route_ptr, &Rtm_EndPointDeterioredCb);
+ Epm_AddObserver(self->curr_route_ptr->source_endpoint_ptr, &self->curr_route_ptr->internal_infos.source_ep_observer);
+ }
+ ep_state = Epm_GetState(self->epm_ptr, self->curr_route_ptr->sink_endpoint_ptr);
+ switch(ep_state)
+ {
+ case UCS_RM_EP_IDLE:
+ result_critical = Rtm_CheckEpResultSeverity(self, self->curr_route_ptr, self->curr_route_ptr->sink_endpoint_ptr);
+ if (!result_critical)
+ {
+ if (self->curr_route_ptr->internal_infos.sink_obsvr_initialized == 0U)
+ {
+ self->curr_route_ptr->internal_infos.sink_obsvr_initialized = 1U;
+ Obs_Ctor(&self->curr_route_ptr->internal_infos.sink_ep_observer, self->curr_route_ptr, &Rtm_EndPointDeterioredCb);
+ /* Initializes sink endpoint internal data */
+ Epm_InitInternalInfos (self->epm_ptr, self->curr_route_ptr->sink_endpoint_ptr);
+ }
+ Epm_SetConnectionLabel(self->epm_ptr, self->curr_route_ptr->sink_endpoint_ptr, Epm_GetConnectionLabel(self->epm_ptr, self->curr_route_ptr->source_endpoint_ptr));
+ (void)Rtm_BuildEndPoint(self, self->curr_route_ptr->sink_endpoint_ptr);
+ }
+ break;
+
+ case UCS_RM_EP_BUILT:
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[RTM]", "Route id {%X} is built", 1U, self->curr_route_ptr->route_id));
+ self->curr_route_ptr->internal_infos.route_state = UCS_RM_ROUTE_BUILT;
+ if (self->report_fptr != NULL)
+ {
+ self->report_fptr(self->curr_route_ptr, UCS_RM_ROUTE_INFOS_BUILT, self->base_ptr->ucs_user_ptr);
+ }
+ break;
+
+ case UCS_RM_EP_XRMPROCESSING:
+ default:
+ result_critical = Rtm_UnlockPossibleBlockings(self, self->curr_route_ptr, self->curr_route_ptr->sink_endpoint_ptr);
+ break;
+ }
+ break;
+
+ case UCS_RM_EP_XRMPROCESSING:
+ default:
+ result_critical = Rtm_UnlockPossibleBlockings(self, self->curr_route_ptr, self->curr_route_ptr->source_endpoint_ptr);
+ break;
+ }
+
+ if (result_critical)
+ {
+ self->curr_route_ptr->internal_infos.route_state = UCS_RM_ROUTE_DETERIORATED;
+ }
+}
+
+/*! \brief Destroys the current Route.
+ * \param self Instance pointer
+ */
+static void Rtm_DestroyRoute(CRouteManagement * self)
+{
+ bool result_critical = false;
+ bool destruction_completed = false;
+
+ Ucs_Rm_EndPointState_t ep_state = Epm_GetState(self->epm_ptr, self->curr_route_ptr->sink_endpoint_ptr);
+ switch (ep_state)
+ {
+ case UCS_RM_EP_BUILT:
+ (void)Rtm_DeactivateRouteEndPoint(self, self->curr_route_ptr->sink_endpoint_ptr);
+ break;
+
+ case UCS_RM_EP_IDLE:
+ ep_state = Epm_GetState(self->epm_ptr, self->curr_route_ptr->source_endpoint_ptr);
+ switch(ep_state)
+ {
+ case UCS_RM_EP_BUILT:
+ /* if source endpoint cannot be built since it's used in another route(s), however consider that the route is destroyed. */
+ if (Rtm_DeactivateRouteEndPoint(self, self->curr_route_ptr->source_endpoint_ptr) == UCS_RET_ERR_INVALID_SHADOW)
+ {
+ destruction_completed = true;
+ }
+ break;
+
+ case UCS_RM_EP_IDLE:
+ destruction_completed = true;
+ break;
+
+ case UCS_RM_EP_XRMPROCESSING:
+ default:
+ result_critical = Rtm_UnlockPossibleBlockings(self, self->curr_route_ptr, self->curr_route_ptr->source_endpoint_ptr);
+ break;
+ }
+ break;
+
+ case UCS_RM_EP_XRMPROCESSING:
+ default:
+ result_critical = Rtm_UnlockPossibleBlockings(self, self->curr_route_ptr, self->curr_route_ptr->sink_endpoint_ptr);
+ break;
+ }
+
+ if (result_critical)
+ {
+ self->curr_route_ptr->internal_infos.route_state = UCS_RM_ROUTE_DETERIORATED;
+ }
+ else if (destruction_completed)
+ {
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[RTM]", "Route id {%X} has been destroyed", 1U, self->curr_route_ptr->route_id));
+ self->curr_route_ptr->internal_infos.route_state = UCS_RM_ROUTE_IDLE;
+ self->curr_route_ptr->internal_infos.src_obsvr_initialized = 0U;
+
+ if (self->report_fptr != NULL)
+ {
+ self->report_fptr(self->curr_route_ptr, UCS_RM_ROUTE_INFOS_DESTROYED, self->base_ptr->ucs_user_ptr);
+ }
+ }
+}
+
+/*! \brief Builds the given endpoint.
+ * \param self Instance pointer
+ * \param endpoint_ptr Reference to the endpoint to be looked for
+ * \return Possible return values are
+ * - \c UCS_RET_ERR_API_LOCKED the API is locked. Endpoint is currently being processed.
+ * - \c UCS_RET_SUCCESS the build process was set successfully
+ * - \c UCS_RET_ERR_PARAM NULL pointer detected in the parameter list
+ * - \c UCS_RET_ERR_ALREADY_SET the endpoint has already been set
+ */
+static Ucs_Return_t Rtm_BuildEndPoint(CRouteManagement * self, Ucs_Rm_EndPoint_t * endpoint_ptr)
+{
+ Ucs_Return_t result = UCS_RET_ERR_PARAM;
+
+ if ((self != NULL) && (endpoint_ptr != NULL))
+ {
+ result = Epm_SetBuildProcess(self->epm_ptr, endpoint_ptr);
+ if (result == UCS_RET_SUCCESS)
+ {
+ Epm_AddObserver (endpoint_ptr, (endpoint_ptr->endpoint_type == UCS_RM_EP_SOURCE) ? &self->curr_route_ptr->internal_infos.source_ep_observer: &self->curr_route_ptr->internal_infos.sink_ep_observer);
+ self->curr_route_ptr->internal_infos.route_state = UCS_RM_ROUTE_CONSTRUCTION;
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[RTM]", "Start Building Endpoint {%X} of type %s for route id %X", 3U, endpoint_ptr, (endpoint_ptr->endpoint_type == UCS_RM_EP_SOURCE) ? "Source":"Sink", self->curr_route_ptr->route_id));
+ }
+ else if (result == UCS_RET_ERR_ALREADY_SET)
+ {
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[RTM]", "Endpoint {%X} of type %s for route id %X has already been built", 3U, endpoint_ptr, (endpoint_ptr->endpoint_type == UCS_RM_EP_SOURCE) ? "Source":"Sink", self->curr_route_ptr->route_id));
+ }
+ }
+
+ return result;
+}
+
+/*! \brief Destroys the given endpoint.
+ * \param self Instance pointer
+ * \param endpoint_ptr Reference to the endpoint to be looked for
+ * \return Possible return values are
+ * - \c UCS_RET_ERR_API_LOCKED the API is locked. Endpoint is currently being processed.
+ * - \c UCS_RET_SUCCESS the build process was set successfully
+ * - \c UCS_RET_ERR_PARAM NULL pointer detected in the parameter list
+ * - \c UCS_RET_ERR_ALREADY_SET the endpoint has already been set
+ * - \c UCS_RET_ERR_NOT_AVAILABLE the endpoint is no more available.
+ * - \c UCS_RET_ERR_INVALID_SHADOW the endpoint cannot be destroyed since it's still in use by another routes.
+ */
+static Ucs_Return_t Rtm_DeactivateRouteEndPoint(CRouteManagement * self, Ucs_Rm_EndPoint_t * endpoint_ptr)
+{
+ Ucs_Return_t result = UCS_RET_ERR_PARAM;
+
+ if ((self != NULL) && (endpoint_ptr != NULL) && (endpoint_ptr->node_obj_ptr != NULL) &&
+ (endpoint_ptr->node_obj_ptr->signature_ptr != NULL))
+ {
+ if ((endpoint_ptr->node_obj_ptr->internal_infos.available == 1U) ||
+ (endpoint_ptr->node_obj_ptr->signature_ptr->node_address == UCS_ADDR_LOCAL_DEV))
+ {
+ result = Epm_SetDestroyProcess(self->epm_ptr, endpoint_ptr);
+ if (result == UCS_RET_SUCCESS)
+ {
+ self->curr_route_ptr->internal_infos.route_state = UCS_RM_ROUTE_DESTRUCTION;
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[RTM]", "Start Destroying Endpoint {%X} of type %s for route id %X", 3U, endpoint_ptr, (endpoint_ptr->endpoint_type == UCS_RM_EP_SOURCE) ? "Source":"Sink", self->curr_route_ptr->route_id));
+ }
+ else if (result == UCS_RET_ERR_ALREADY_SET)
+ {
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[RTM]", "Endpoint {%X} of type %s for route id %X has already been destroyed", 3U, endpoint_ptr, (endpoint_ptr->endpoint_type == UCS_RM_EP_SOURCE) ? "Source":"Sink", self->curr_route_ptr->route_id));
+ }
+ else if (result == UCS_RET_ERR_INVALID_SHADOW)
+ {
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[RTM]", "Endpoint {%X} of type %s for route id %X cannot be destroyed since it's still used", 3U, endpoint_ptr, (endpoint_ptr->endpoint_type == UCS_RM_EP_SOURCE) ? "Source":"Sink", self->curr_route_ptr->route_id));
+ }
+ else if (result == UCS_RET_ERR_NOT_AVAILABLE)
+ {
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[RTM]", "Endpoint {%X} of type %s for route id %X is no more available", 3U, endpoint_ptr, (endpoint_ptr->endpoint_type == UCS_RM_EP_SOURCE) ? "Source" : "Sink", self->curr_route_ptr->route_id));
+ }
+ }
+ else
+ {
+ /* Completed */
+ Epm_ResetState(self->epm_ptr, endpoint_ptr);
+ }
+ }
+
+ return result;
+}
+
+/*! \brief Classifies and sets the corresponding route error and then informs user about the new state.
+ * \param self Instance pointer
+ * \param route_ptr Reference to the route to be looked for
+ */
+static void Rtm_HandleRoutingError(CRouteManagement * self, Ucs_Rm_Route_t * route_ptr)
+{
+ Ucs_Rm_Route_t * tmp_route = route_ptr;
+ Ucs_Rm_RouteInfos_t result_route = UCS_RM_ROUTE_INFOS_DESTROYED;
+ Ucs_Rm_RouteResult_t res_rt = tmp_route->internal_infos.last_route_result;
+
+ tmp_route->internal_infos.route_state = UCS_RM_ROUTE_IDLE;
+ tmp_route->internal_infos.last_route_result = UCS_RM_ROUTE_NOERROR;
+
+ if (res_rt != UCS_RM_ROUTE_CRITICAL)
+ {
+ if (tmp_route->source_endpoint_ptr->internal_infos.endpoint_state == UCS_RM_EP_IDLE)
+ {
+ if (Rtm_CheckEpResultSeverity(self, tmp_route, tmp_route->source_endpoint_ptr))
+ {
+ Epm_ResetState(self->epm_ptr, tmp_route->source_endpoint_ptr);
+ tmp_route->internal_infos.route_state = UCS_RM_ROUTE_SUSPENDED;
+ result_route = UCS_RM_ROUTE_INFOS_SUSPENDED;
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[RTM]", "Route id {%X} is suspended", 1U, tmp_route->route_id));
+ }
+ }
+ else if (tmp_route->sink_endpoint_ptr->internal_infos.endpoint_state == UCS_RM_EP_IDLE)
+ {
+ if (Rtm_CheckEpResultSeverity(self, tmp_route, tmp_route->sink_endpoint_ptr))
+ {
+ Epm_ResetState(self->epm_ptr, tmp_route->sink_endpoint_ptr);
+ tmp_route->internal_infos.route_state = UCS_RM_ROUTE_SUSPENDED;
+ result_route = UCS_RM_ROUTE_INFOS_SUSPENDED;
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[RTM]", "Route id {%X} is suspended", 1U, tmp_route->route_id));
+ }
+ }
+ else
+ {
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[RTM]", "Route id {%X} is destroyed", 1U, tmp_route->route_id));
+ }
+ }
+ else
+ {
+ Epm_ResetState(self->epm_ptr, tmp_route->source_endpoint_ptr);
+ Epm_ResetState(self->epm_ptr, tmp_route->sink_endpoint_ptr);
+ tmp_route->internal_infos.route_state = UCS_RM_ROUTE_SUSPENDED;
+ result_route = UCS_RM_ROUTE_INFOS_SUSPENDED;
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[RTM]", "Route id {%X} is suspended", 1U, tmp_route->route_id));
+ }
+
+ if (self->report_fptr != NULL)
+ {
+ self->report_fptr(tmp_route, result_route, self->base_ptr->ucs_user_ptr);
+ }
+}
+
+/*! \brief Checks whether the endpoint's result is critical or not and stores the result into the target route.
+ * \param self Instance pointer
+ * \param tgt_route_ptr Reference to the route that contains the endpoint to be looked for
+ * \param endpoint_ptr Reference to the endpoint to be looked for
+ * \return \c true if the endpoint result is critical, otherwise \c false.
+ */
+static bool Rtm_CheckEpResultSeverity(CRouteManagement * self, Ucs_Rm_Route_t * tgt_route_ptr, Ucs_Rm_EndPoint_t * endpoint_ptr)
+{
+ bool result_check = false;
+ Ucs_Rm_RouteResult_t result = UCS_RM_ROUTE_NOERROR;
+ /*! \brief Maximum number of retries allowed in error situation */
+ uint8_t RTM_MAX_NUM_RETRIES_IN_ERR = 0xFFU;
+
+ if ((endpoint_ptr != NULL) && (tgt_route_ptr != NULL))
+ {
+ switch (endpoint_ptr->internal_infos.xrm_result.code)
+ {
+ case UCS_XRM_RES_ERR_BUILD:
+ case UCS_XRM_RES_ERR_DESTROY:
+ case UCS_XRM_RES_ERR_SYNC:
+ switch (endpoint_ptr->internal_infos.xrm_result.details.result_type)
+ {
+ case UCS_XRM_RESULT_TYPE_TX:
+ if ((UCS_MSG_STAT_ERROR_CFG_NO_RCVR == endpoint_ptr->internal_infos.xrm_result.details.tx_result) ||
+ (UCS_MSG_STAT_ERROR_FATAL_OA == endpoint_ptr->internal_infos.xrm_result.details.tx_result) ||
+ (endpoint_ptr->internal_infos.num_retries == RTM_MAX_NUM_RETRIES_IN_ERR))
+ {
+ result = UCS_RM_ROUTE_CRITICAL;
+ TR_ERROR((self->base_ptr->ucs_user_ptr, "[RTM]", "Critical error occurred on route id {%X} due to the transmission error code {Ucs_MsgTxStatus_t:0x%02X} observed in XRM.", 2U,
+ tgt_route_ptr->route_id, endpoint_ptr->internal_infos.xrm_result.details.tx_result));
+ }
+ else if ((UCS_MSG_STAT_ERROR_UNKNOWN == endpoint_ptr->internal_infos.xrm_result.details.tx_result) ||
+ (UCS_MSG_STAT_ERROR_FATAL_WT == endpoint_ptr->internal_infos.xrm_result.details.tx_result) ||
+ (UCS_MSG_STAT_ERROR_TIMEOUT == endpoint_ptr->internal_infos.xrm_result.details.tx_result) ||
+ (UCS_MSG_STAT_ERROR_BF == endpoint_ptr->internal_infos.xrm_result.details.tx_result) ||
+ (UCS_MSG_STAT_ERROR_CRC == endpoint_ptr->internal_infos.xrm_result.details.tx_result) ||
+ (UCS_MSG_STAT_ERROR_NA_TRANS == endpoint_ptr->internal_infos.xrm_result.details.tx_result) ||
+ (UCS_MSG_STAT_ERROR_ACK == endpoint_ptr->internal_infos.xrm_result.details.tx_result) ||
+ (UCS_MSG_STAT_ERROR_ID == endpoint_ptr->internal_infos.xrm_result.details.tx_result))
+ {
+ endpoint_ptr->internal_infos.num_retries++;
+ result = UCS_RM_ROUTE_UNCRITICAL;
+ }
+ break;
+
+ case UCS_XRM_RESULT_TYPE_TGT:
+ if ((UCS_RES_ERR_CONFIGURATION == endpoint_ptr->internal_infos.xrm_result.details.inic_result.code) ||
+ (UCS_RES_ERR_MOST_STANDARD == endpoint_ptr->internal_infos.xrm_result.details.inic_result.code) ||
+ (UCS_RES_ERR_SYSTEM == endpoint_ptr->internal_infos.xrm_result.details.inic_result.code) ||
+ (endpoint_ptr->internal_infos.num_retries == RTM_MAX_NUM_RETRIES_IN_ERR))
+ {
+ result = UCS_RM_ROUTE_CRITICAL;
+ TR_ERROR((self->base_ptr->ucs_user_ptr, "[RTM]", "Critical error occurred on route id {%X} due to the INIC result code {Ucs_Result_t:0x%02X} observed in XRM.", 2U,
+ tgt_route_ptr->route_id, endpoint_ptr->internal_infos.xrm_result.details.inic_result.code));
+ }
+ else if ((UCS_RES_ERR_BUSY == endpoint_ptr->internal_infos.xrm_result.details.inic_result.code) ||
+ (UCS_RES_ERR_TIMEOUT == endpoint_ptr->internal_infos.xrm_result.details.inic_result.code) ||
+ (UCS_RES_ERR_PROCESSING == endpoint_ptr->internal_infos.xrm_result.details.inic_result.code))
+ {
+ endpoint_ptr->internal_infos.num_retries++;
+ result = UCS_RM_ROUTE_UNCRITICAL;
+ }
+ break;
+
+ case UCS_XRM_RESULT_TYPE_INT:
+ if ((endpoint_ptr->internal_infos.xrm_result.details.int_result == UCS_RET_ERR_NOT_AVAILABLE) ||
+ (endpoint_ptr->internal_infos.xrm_result.details.int_result == UCS_RET_ERR_NOT_SUPPORTED) ||
+ (endpoint_ptr->internal_infos.xrm_result.details.int_result == UCS_RET_ERR_PARAM) ||
+ (endpoint_ptr->internal_infos.xrm_result.details.int_result == UCS_RET_ERR_NOT_INITIALIZED) ||
+ (endpoint_ptr->internal_infos.num_retries == RTM_MAX_NUM_RETRIES_IN_ERR))
+ {
+ result = UCS_RM_ROUTE_CRITICAL;
+ TR_ERROR((self->base_ptr->ucs_user_ptr, "[RTM]", "Critical error occurred on route id {%X} due to the internal error code {Ucs_Return_t:0x%02X} observed in XRM.", 2U,
+ tgt_route_ptr->route_id, endpoint_ptr->internal_infos.xrm_result.details.int_result));
+ }
+ else if ((endpoint_ptr->internal_infos.xrm_result.details.int_result == UCS_RET_ERR_BUFFER_OVERFLOW) ||
+ (endpoint_ptr->internal_infos.xrm_result.details.int_result == UCS_RET_ERR_API_LOCKED) ||
+ (endpoint_ptr->internal_infos.xrm_result.details.int_result == UCS_RET_ERR_INVALID_SHADOW))
+ {
+ endpoint_ptr->internal_infos.num_retries++;
+ result = UCS_RM_ROUTE_UNCRITICAL;
+ }
+ break;
+
+ default:
+ break;
+ }
+ break;
+
+ case UCS_XRM_RES_ERR_CONFIG:
+ result = UCS_RM_ROUTE_CRITICAL;
+ break;
+
+ case UCS_XRM_RES_SUCCESS_BUILD:
+ case UCS_XRM_RES_SUCCESS_DESTROY:
+ endpoint_ptr->internal_infos.num_retries = 0U;
+ break;
+
+ default:
+ break;
+ }
+
+ /* Sets route result */
+ tgt_route_ptr->internal_infos.last_route_result = result;
+ if (result == UCS_RM_ROUTE_CRITICAL)
+ {
+ result_check = true;
+ }
+ }
+
+ MISC_UNUSED(self);
+
+ return result_check;
+}
+
+/*! \brief Sets curr_route_ptr to the next route.
+ * \param self Instance pointer
+ * \return \c true if the endpoint result is critical, otherwise \c false.
+ */
+static bool Rtm_SetNextRouteIndex(CRouteManagement * self)
+{
+ bool found = false;
+
+ if ((self->routes_list_size > 0U) && (self->nw_available))
+ {
+ uint16_t tmp_idx;
+ self->curr_route_index++;
+ self->curr_route_index = self->curr_route_index%self->routes_list_size;
+ tmp_idx = self->curr_route_index;
+
+ do
+ {
+ if (((self->routes_list_ptr[self->curr_route_index].internal_infos.route_state == UCS_RM_ROUTE_SUSPENDED) &&
+ (self->routes_list_ptr[self->curr_route_index].active == true)) ||
+ ((self->routes_list_ptr[self->curr_route_index].active == true) &&
+ (self->routes_list_ptr[self->curr_route_index].internal_infos.route_state == UCS_RM_ROUTE_BUILT)) ||
+ ((self->routes_list_ptr[self->curr_route_index].active == false) &&
+ (self->routes_list_ptr[self->curr_route_index].internal_infos.route_state == UCS_RM_ROUTE_IDLE)) ||
+ ((Rtm_AreRouteNodesAvailable(self, &self->routes_list_ptr[self->curr_route_index]) == false) &&
+ (self->routes_list_ptr[self->curr_route_index].internal_infos.route_state == UCS_RM_ROUTE_IDLE)))
+ {
+ self->curr_route_index++;
+ self->curr_route_index = self->curr_route_index%self->routes_list_size;
+ }
+ else
+ {
+ found = true;
+ }
+ }
+ while ((tmp_idx != self->curr_route_index) &&
+ (found == false));
+ }
+
+ return found;
+}
+
+/*! \brief Starts the timer for handling routes.
+ * \param self Instance pointer
+ */
+static void Rtm_StartTmr4HandlingRoutes(CRouteManagement * self)
+{
+ if((T_IsTimerInUse(&self->route_check) == false) &&
+ (!self->ucs_is_stopping))
+ {
+ Tm_SetTimer(self->tm_ptr,
+ &self->route_check,
+ &Rtm_ExecRoutesHandling,
+ self,
+ RTM_JOB_CHECK_INTERVAL,
+ RTM_JOB_CHECK_INTERVAL);
+ }
+}
+
+/*! \brief Gets the next route.
+ * \param self Instance pointer
+ * \return the next route to be handled
+ */
+static Ucs_Rm_Route_t * Rtm_GetNextRoute(CRouteManagement * self)
+{
+ self->routes_list_ptr[self->curr_route_index].internal_infos.rtm_inst = (Rtm_Inst_t *)(void *)self;
+ return &self->routes_list_ptr[self->curr_route_index];
+}
+
+/*! \brief Checks if the API is locked.
+ * \param self Instance pointer
+ * \return \c true if the API is not locked and the UCS are initialized, otherwise \c false.
+ */
+static bool Rtm_IsApiFree(CRouteManagement *self)
+{
+ return (self->lock_api == false);
+}
+
+/*! \brief Locks/Unlocks the RTM API.
+ * \param self Instance pointer
+ * \param status Locking status. \c true = Lock, \c false = Unlock
+ */
+static void Rtm_ApiLocking(CRouteManagement *self, bool status)
+{
+ self->lock_api = status;
+}
+
+/*! \brief Checks whether the nodes (source and sink) of the current route is available.
+ * \param self Instance pointer
+ * \param route_ptr Reference to the Route to be looked for
+ * \return \c true if the source endpoint's node is available, otherwise \c false.
+ */
+static bool Rtm_AreRouteNodesAvailable(CRouteManagement * self, Ucs_Rm_Route_t * route_ptr)
+{
+ bool result = false;
+ MISC_UNUSED (self);
+
+ if ((route_ptr->source_endpoint_ptr != NULL) && (route_ptr->sink_endpoint_ptr != NULL))
+ {
+ if ((route_ptr->source_endpoint_ptr->node_obj_ptr != NULL) &&
+ (route_ptr->source_endpoint_ptr->node_obj_ptr->signature_ptr != NULL) &&
+ (route_ptr->sink_endpoint_ptr->node_obj_ptr != NULL) &&
+ (route_ptr->sink_endpoint_ptr->node_obj_ptr->signature_ptr != NULL))
+ {
+ if (((1U == route_ptr->source_endpoint_ptr->node_obj_ptr->internal_infos.available) ||
+ (route_ptr->source_endpoint_ptr->node_obj_ptr->signature_ptr->node_address == UCS_ADDR_LOCAL_DEV) ||
+ (Net_IsOwnAddress(self->net_ptr, route_ptr->source_endpoint_ptr->node_obj_ptr->signature_ptr->node_address) == NET_IS_OWN_ADDR_NODE)) &&
+ ((Net_IsOwnAddress(self->net_ptr, route_ptr->sink_endpoint_ptr->node_obj_ptr->signature_ptr->node_address) == NET_IS_OWN_ADDR_NODE) ||
+ (route_ptr->sink_endpoint_ptr->node_obj_ptr->signature_ptr->node_address == UCS_ADDR_LOCAL_DEV) ||
+ (1U == route_ptr->sink_endpoint_ptr->node_obj_ptr->internal_infos.available)))
+ {
+ result = true;
+ }
+ }
+ }
+ else
+ {
+ TR_ERROR((self->base_ptr->ucs_user_ptr, "[RTM]", "ERROR PARAMETER on route id {%X}: At least one endpoint is NULL.", 1U, route_ptr->route_id));
+ }
+
+ return result;
+}
+
+/*! \brief Checks if we encountered a deadlock situation with the given route and if we do, resolves It by resetting the endpoint concerned.
+ *
+ * Since we can encounter the situation that the construction of an endpoint fails and the routing management is not aware of that (synchronous vs asynchronous response)
+ * and still consider that the route is processing. In such a case the RTM process will never get a response and will wait in vain for It.
+ * Therefore, the role of this function is to release the blocking situation in resetting the concerned endpoint.
+ * \param self Instance pointer
+ * \param tgt_route_ptr Reference to the route that contains the endpoint to be looked for
+ * \param endpoint_ptr Reference to the endpoint to be looked for
+ * \return \c true if the endpoint's result is critical, otherwise \c false
+ */
+static bool Rtm_UnlockPossibleBlockings(CRouteManagement * self, Ucs_Rm_Route_t * tgt_route_ptr, Ucs_Rm_EndPoint_t * endpoint_ptr)
+{
+ bool result_critical = Rtm_CheckEpResultSeverity(self, tgt_route_ptr, endpoint_ptr);
+ if (!result_critical)
+ {
+ if (UCS_RM_ROUTE_UNCRITICAL == self->curr_route_ptr->internal_infos.last_route_result)
+ {
+ Epm_ResetState(self->epm_ptr, endpoint_ptr);
+ }
+ }
+ return result_critical;
+}
+
+/*! \brief Stops routes handling.
+ * \param self Instance pointer
+ */
+static void Rtm_StopRoutesHandling(CRouteManagement * self)
+{
+ Tm_ClearTimer(self->tm_ptr, &self->route_check);
+}
+
+/*! \brief Releases all routes endpoints and notifies that the process is terminated for all "active" routes, which are not built or suspended.
+ * \param self Instance pointer
+ */
+static void Rtm_HandleProcessTermination(CRouteManagement * self)
+{
+ if ((self->routes_list_ptr != NULL) && (self->routes_list_size > 0U))
+ {
+ uint8_t k = 0U;
+
+ for (; k < self->routes_list_size; k++)
+ {
+ Epm_ClearIntInfos(self->epm_ptr, self->routes_list_ptr[k].source_endpoint_ptr);
+ Epm_ClearIntInfos(self->epm_ptr, self->routes_list_ptr[k].sink_endpoint_ptr);
+
+ if ((self->routes_list_ptr[k].active == 1U) &&
+ (self->routes_list_ptr[k].internal_infos.notify_termination == 0U) &&
+ (self->routes_list_ptr[k].internal_infos.route_state != UCS_RM_ROUTE_BUILT) &&
+ (self->routes_list_ptr[k].internal_infos.route_state != UCS_RM_ROUTE_SUSPENDED))
+ {
+ if ((self->routes_list_ptr[k].internal_infos.route_state == UCS_RM_ROUTE_CONSTRUCTION) ||
+ (self->routes_list_ptr[k].internal_infos.route_state == UCS_RM_ROUTE_DESTRUCTION))
+ {
+ self->routes_list_ptr[k].internal_infos.route_state = UCS_RM_ROUTE_IDLE;
+ }
+
+ self->routes_list_ptr[k].internal_infos.notify_termination = 0x01U;
+ if (self->report_fptr != NULL)
+ {
+ self->report_fptr(&self->routes_list_ptr[k], UCS_RM_ROUTE_INFOS_PROCESS_STOP, self->base_ptr->ucs_user_ptr);
+ }
+ }
+ }
+ }
+}
+
+/*! \brief Resets the availability flag of all nodes involved in routing process.
+ * \param self Instance pointer
+ */
+static void Rtm_ResetNodesAvailable(CRouteManagement * self)
+{
+ uint8_t k = 0U;
+
+ if ((self->routes_list_ptr != NULL) && (self->routes_list_size > 0U))
+ {
+ for (; k < self->routes_list_size; k++)
+ {
+ if ((self->routes_list_ptr[k].sink_endpoint_ptr != NULL) &&
+ (self->routes_list_ptr[k].sink_endpoint_ptr->node_obj_ptr != NULL))
+ {
+ self->routes_list_ptr[k].sink_endpoint_ptr->node_obj_ptr->internal_infos.available = 0U;
+ }
+
+ if ((self->routes_list_ptr[k].source_endpoint_ptr != NULL) &&
+ (self->routes_list_ptr[k].source_endpoint_ptr->node_obj_ptr != NULL))
+ {
+ self->routes_list_ptr[k].source_endpoint_ptr->node_obj_ptr->internal_infos.available = 0U;
+ }
+ }
+ }
+}
+
+/*! \brief Releases all suspended routes of the given node.
+ * \details This function should only be called when the provided node, on which the suspended routes are,
+ * is set to "not available".
+ * \param self Instance pointer
+ * \param node_ptr Reference to the node to be looked for
+ */
+static void Rtm_ReleaseSuspendedRoutes(CRouteManagement * self, Ucs_Rm_Node_t *node_ptr)
+{
+ uint8_t k = 0U;
+ bool is_ep_result_critical = false;
+
+ if ((self != NULL) && (self->routes_list_ptr != NULL) &&
+ (self->routes_list_size > 0U) && (node_ptr != NULL))
+ {
+ for (; k < self->routes_list_size; k++)
+ {
+ is_ep_result_critical = Rtm_CheckEpResultSeverity(self, &self->routes_list_ptr[k], self->routes_list_ptr[k].sink_endpoint_ptr);
+ if ((self->routes_list_ptr[k].internal_infos.route_state == UCS_RM_ROUTE_SUSPENDED) ||
+ ((self->routes_list_ptr[k].internal_infos.route_state == UCS_RM_ROUTE_DETERIORATED) &&
+ (self->routes_list_ptr[k].internal_infos.last_route_result == UCS_RM_ROUTE_CRITICAL)) ||
+ ((self->routes_list_ptr[k].internal_infos.route_state == UCS_RM_ROUTE_CONSTRUCTION) &&
+ (is_ep_result_critical)))
+ {
+ if (((self->routes_list_ptr[k].source_endpoint_ptr != NULL) &&
+ (self->routes_list_ptr[k].source_endpoint_ptr->node_obj_ptr == node_ptr)) ||
+ ((self->routes_list_ptr[k].sink_endpoint_ptr != NULL) &&
+ (self->routes_list_ptr[k].sink_endpoint_ptr->node_obj_ptr == node_ptr)))
+ {
+ Rtm_ForcesRouteToIdle(self, &self->routes_list_ptr[k]);
+ }
+ }
+ }
+ }
+}
+
+/*! \brief Sets the given routes to the "Idle" state and resets its internal variables.
+ * \details This function is risky and should only be used in Rtm_ReleaseSuspendedRoutes(). Because it forces a route's state to "Idle"
+ * without any external events.
+ * \param self Instance pointer
+ * \param route_ptr Reference to the route to be set
+ */
+static void Rtm_ForcesRouteToIdle(CRouteManagement * self, Ucs_Rm_Route_t * route_ptr)
+{
+ if ((self != NULL) && (route_ptr != NULL))
+ {
+ route_ptr->internal_infos.route_state = UCS_RM_ROUTE_IDLE;
+ route_ptr->internal_infos.last_route_result = UCS_RM_ROUTE_NOERROR;
+ if (route_ptr->source_endpoint_ptr != NULL)
+ {
+ if (Rtm_CheckEpResultSeverity(self, route_ptr, route_ptr->source_endpoint_ptr))
+ {
+ Epm_ResetState(self->epm_ptr, route_ptr->source_endpoint_ptr);
+ }
+ }
+ if (route_ptr->sink_endpoint_ptr != NULL)
+ {
+ if (Rtm_CheckEpResultSeverity(self, route_ptr, route_ptr->sink_endpoint_ptr))
+ {
+ Epm_ResetState(self->epm_ptr, route_ptr->sink_endpoint_ptr);
+ }
+ }
+ }
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Callback Functions */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Called if UCS initialization has been succeeded.
+ * \param self Instance pointer
+ * \param event_ptr Reference to reported event
+ */
+static void Rtm_UcsInitSucceededCb(void *self, void *event_ptr)
+{
+ CRouteManagement *self_ = (CRouteManagement *)self;
+ MISC_UNUSED(event_ptr);
+
+ /* Remove ucsinit_observer */
+ Eh_DelObsrvInternalEvent(&self_->base_ptr->eh, &self_->ucsinit_observer);
+
+ /* Add network status observer */
+ Mobs_Ctor(&self_->nwstatus_observer, self, RTM_MASK_NETWORK_AVAILABILITY, &Rtm_MnsNwStatusInfosCb);
+ Net_AddObserverNetworkStatus(self_->net_ptr, &self_->nwstatus_observer);
+}
+
+/*! \brief Handle internal errors and un-initialize RTM service.
+ * \param self Instance pointer
+ * \param error_code_ptr Reference to internal error code
+ */
+static void Rtm_UninitializeService(void *self, void *error_code_ptr)
+{
+ CRouteManagement *self_ = (CRouteManagement *)self;
+ MISC_UNUSED(error_code_ptr);
+
+ self_->ucs_is_stopping = true;
+
+ /* Notify destruction of current routes */
+ Rtm_HandleProcessTermination(self_);
+
+ /* Remove RTM service from schedulers list */
+ (void)Scd_RemoveService(&self_->base_ptr->scd, &self_->rtm_srv);
+ /* Remove error/event observers */
+ Eh_DelObsrvInternalEvent(&self_->base_ptr->eh, &self_->ucstermination_observer);
+ Net_DelObserverNetworkStatus(self_->net_ptr, &self_->nwstatus_observer);
+
+ /* Unlock API */
+ Rtm_ApiLocking(self_, false);
+}
+
+/*! \brief Event Callback function for the network status.
+ * \param self Instance pointer
+ * \param event_ptr Reference to the events
+ */
+static void Rtm_MnsNwStatusInfosCb(void *self, void *event_ptr)
+{
+ CRouteManagement *self_ = (CRouteManagement *)self;
+ Net_NetworkStatusParam_t *result_ptr_ = (Net_NetworkStatusParam_t *)event_ptr;
+
+ if (RTM_MASK_NETWORK_AVAILABILITY == (RTM_MASK_NETWORK_AVAILABILITY & result_ptr_->change_mask))
+ {
+ if (UCS_NW_NOT_AVAILABLE == result_ptr_->availability)
+ {
+ self_->nw_available = false;
+ /* Resets Nodes availability flag */
+ Rtm_ResetNodesAvailable(self_);
+ /* Reports Network Status "NotAvailabe" */
+ Epm_ReportShutDown(self_->epm_ptr);
+ }
+ else
+ {
+ self_->nw_available = true;
+ /* Check whether there are routes to be processed */
+ Rtm_StartRoutingTimer (self_);
+ }
+ }
+}
+
+/*! \brief Event Callback function that signals that an endpoint is unavailable.
+ * \param self Instance pointer
+ * \param result_ptr Reference to the results
+ */
+static void Rtm_EndPointDeterioredCb(void *self, void *result_ptr)
+{
+ Ucs_Rm_Route_t * route_ptr = (Ucs_Rm_Route_t *)self;
+ Ucs_Rm_EndPoint_t * ep_ptr = (Ucs_Rm_EndPoint_t *)result_ptr;
+
+ if ((route_ptr->source_endpoint_ptr == ep_ptr) ||
+ (route_ptr->sink_endpoint_ptr == ep_ptr))
+ {
+ if (route_ptr->internal_infos.route_state == UCS_RM_ROUTE_BUILT)
+ {
+ TR_INFO((((CRouteManagement *)(void *)route_ptr->internal_infos.rtm_inst)->base_ptr->ucs_user_ptr, "[RTM]", "Route id %X is deteriorated", 1U, route_ptr->route_id));
+ if (ep_ptr->endpoint_type == UCS_RM_EP_SOURCE)
+ {
+ route_ptr->internal_infos.src_obsvr_initialized = 0U;
+ }
+
+ Rtm_HandleRoutingError((CRouteManagement *)(void *)route_ptr->internal_infos.rtm_inst, route_ptr);
+
+ if ((((CRouteManagement *)(void *)route_ptr->internal_infos.rtm_inst)->nw_available) &&
+ (!((CRouteManagement *)(void *)route_ptr->internal_infos.rtm_inst)->ucs_is_stopping))
+ {
+ Rtm_StartTmr4HandlingRoutes((CRouteManagement *)(void *)route_ptr->internal_infos.rtm_inst);
+ }
+ else if (((CRouteManagement *)(void *)route_ptr->internal_infos.rtm_inst)->ucs_is_stopping)
+ {
+ Rtm_HandleProcessTermination((CRouteManagement *)(void *)route_ptr->internal_infos.rtm_inst);
+ }
+ }
+ }
+ else
+ {
+ TR_ERROR((((CRouteManagement *)(void *)route_ptr->internal_infos.rtm_inst)->base_ptr->ucs_user_ptr, "[RTM]", "Wrong endpoint {%X} of type %s on route id {%X}.", 3U,
+ ep_ptr, (ep_ptr->endpoint_type == UCS_RM_EP_SOURCE) ? "Source":"Sink", route_ptr->route_id));
+ }
+}
+
+/*! \brief Processes the handling of all routes. This method is the callback function of the routing timer
+ * \c route_chek.
+ * \param self Instance pointer
+ */
+static void Rtm_ExecRoutesHandling(void* self)
+{
+ CRouteManagement *self_ = (CRouteManagement *)self;
+ if (!self_->ucs_is_stopping)
+ {
+ bool index_set = Rtm_SetNextRouteIndex(self_);
+ if (index_set)
+ {
+ Srv_SetEvent(&self_->rtm_srv, RTM_EVENT_HANDLE_NEXTROUTE);
+ }
+ else
+ {
+ Srv_SetEvent(&self_->rtm_srv, RTM_EVENT_PROCESS_PAUSE);
+ TR_INFO((self_->base_ptr->ucs_user_ptr, "[RTM]", "Handling process of routes is paused", 0U));
+ }
+ }
+ else
+ {
+ Rtm_HandleProcessTermination(self_);
+ }
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_scheduler.c b/ucs2-lib/src/ucs_scheduler.c
new file mode 100644
index 0000000..be7f7b8
--- /dev/null
+++ b/ucs2-lib/src/ucs_scheduler.c
@@ -0,0 +1,258 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of the scheduler module. The module consists of the two classes
+ * CScheduler and CService.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_SCHEDULER
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_scheduler.h"
+#include "ucs_misc.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Constants */
+/*------------------------------------------------------------------------------------------------*/
+const Srv_Event_t SRV_EMPTY_EVENT_MASK = (Srv_Event_t)0x00000000; /*!< \brief Empty event mask */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal prototypes */
+/*------------------------------------------------------------------------------------------------*/
+static bool Scd_SearchSlot(void *current_prio_ptr, void *new_prio_ptr);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation of class CScheduler */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Constructor of the scheduler class.
+ * \param self Instance pointer
+ * \param init_ptr Reference to the initialization data
+ * \param ucs_user_ptr User reference that needs to be passed in every callback function
+ */
+void Scd_Ctor(CScheduler *self, Scd_InitData_t *init_ptr, void * ucs_user_ptr)
+{
+ MISC_MEM_SET(self, 0, sizeof(*self));
+ self->ucs_user_ptr = ucs_user_ptr;
+ Dl_Ctor(&self->srv_list, ucs_user_ptr);
+ Ssub_Ctor(&self->service_request_subject, ucs_user_ptr);
+ (void)Ssub_AddObserver(&self->service_request_subject,
+ init_ptr->service_request_obs_ptr);
+ self->scd_srv_is_running = false;
+}
+
+/*! \brief Add the given service to the scheduler. All services are arranged in priority order.
+ * A service with a higher priority will execute before a service with a lower priority.
+ * \param self Instance pointer
+ * \param srv_ptr Reference of the service which shall be added
+ * \return SCD_OK: Service added
+ * \return SCD_SRV_ALREADY_LISTED: Services already listed
+ */
+Scd_Ret_t Scd_AddService(CScheduler *self, CService *srv_ptr)
+{
+ Scd_Ret_t ret_val;
+
+ /* Check that service is not already part of scheduler */
+ if(Dl_IsNodeInList(&self->srv_list, &srv_ptr->list_node) == false)
+ {
+ /* Search slot where the service must be inserted depending on the priority value. */
+ CDlNode *result_ptr = Dl_Foreach(&self->srv_list, &Scd_SearchSlot, &srv_ptr->priority);
+
+ if(result_ptr != NULL) /* Slot found? */
+ {
+ Dl_InsertBefore(&self->srv_list, result_ptr, &srv_ptr->list_node);
+ }
+ else /* No slot found -> Insert as last node */
+ {
+ Dl_InsertTail(&self->srv_list, &srv_ptr->list_node);
+ }
+ /* Create back link service -> scheduler */
+ srv_ptr->scd_ptr = self;
+ Dln_SetData(&srv_ptr->list_node, &srv_ptr->priority);
+ ret_val = SCD_OK;
+ }
+ else /* Service is already part of schedulers list */
+ {
+ ret_val = SCD_SRV_ALREADY_LISTED;
+ }
+
+ return ret_val;
+}
+
+/*! \brief Remove the given service from the schedulers list.
+ * \param self Instance pointer
+ * \param srv_ptr Reference of the service which shall be removed
+ * \return SCD_OK: Service removed
+ * \return SCD_UNKNOWN_SRV: Unknown service can not be removed
+ */
+Scd_Ret_t Scd_RemoveService(CScheduler *self, CService *srv_ptr)
+{
+ Scd_Ret_t ret_val = SCD_OK;
+
+ /* Error occurred? */
+ if(Dl_Remove(&self->srv_list, &srv_ptr->list_node) == DL_UNKNOWN_NODE)
+ {
+ ret_val = SCD_UNKNOWN_SRV;
+ }
+
+ return ret_val;
+}
+
+/*! \brief Service function of the scheduler module.
+ * \param self Instance pointer
+ */
+void Scd_Service(CScheduler *self)
+{
+ CService *current_srv_ptr = (CService *)(void*)self->srv_list.head;
+
+ /* Scheduler service is running. Important for event handling */
+ self->scd_srv_is_running = true;
+
+ while(current_srv_ptr != NULL) /* Process registered services */
+ {
+ if(current_srv_ptr->service_fptr != NULL)
+ {
+ /* Are events pending for the current service */
+ if(current_srv_ptr->event_mask != SRV_EMPTY_EVENT_MASK)
+ {
+ /* Execute service callback function */
+ current_srv_ptr->service_fptr(current_srv_ptr->instance_ptr);
+ /* Was the current service removed from the schedulers list? */
+ if((current_srv_ptr->list_node.prev == NULL) && (current_srv_ptr->list_node.next == NULL))
+ {
+ break; /* Abort scheduler service */
+ }
+ }
+ }
+ current_srv_ptr = (CService *)(void*)current_srv_ptr->list_node.next;
+ }
+ /* Scheduler services finished */
+ self->scd_srv_is_running = false;
+}
+
+/*! \brief Searches for pending events.
+ * \param self Instance pointer
+ * \return true: At least one event is active
+ * \return false: No event is pending
+ */
+bool Scd_AreEventsPending(CScheduler *self)
+{
+ bool ret_val = false;
+ CService *current_srv_ptr = (CService *)(void*)self->srv_list.head;
+
+ while(current_srv_ptr != NULL)
+ {
+ if(current_srv_ptr->event_mask != SRV_EMPTY_EVENT_MASK)
+ {
+ ret_val = true;
+ break;
+ }
+ current_srv_ptr = (CService *)(void*)current_srv_ptr->list_node.next;
+ }
+
+ return ret_val;
+}
+
+/*! \brief Searches the slot where the new service has to be inserted. The position depends on
+ * the given priority. If a the priority of the new service is higher than the priority
+ * of the current service \c true is returned which stops the search.
+ * \param current_prio_ptr Current service which is analyzed
+ * \param new_prio_ptr Priority of the new service
+ * \return false: The priority of the current service is greater than the new priority
+ * \return true: The priority of the current service is less than or equal to the new priority
+ */
+static bool Scd_SearchSlot(void *current_prio_ptr, void *new_prio_ptr)
+{
+ uint8_t current_prio_ptr_ = *((uint8_t *)current_prio_ptr);
+ uint8_t new_prio_ = *((uint8_t*)new_prio_ptr);
+ bool ret_val = false;
+
+ if(current_prio_ptr_ <= new_prio_)
+ {
+ ret_val = true;
+ }
+
+ return ret_val;
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation of class CService */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Parameter constructor of the service class.
+ * \param self Instance pointer
+ * \param instance_ptr Reference to object which contains the corresponding service
+ * \param priority Priority of the service
+ * \param service_fptr Service callback
+ */
+void Srv_Ctor(CService *self, uint8_t priority, void *instance_ptr, Srv_Cb_t service_fptr)
+{
+ MISC_MEM_SET(self, 0, sizeof(*self));
+ Dln_Ctor(&self->list_node, NULL);
+ self->priority = priority;
+ self->instance_ptr = instance_ptr;
+ self->service_fptr = service_fptr;
+}
+
+/*! \brief Sets events for the given service according to the given event mask.
+ * \param self Instance pointer
+ * \param event_mask Mask of the events to be set
+ */
+void Srv_SetEvent(CService *self, Srv_Event_t event_mask)
+{
+ self->event_mask |= event_mask;
+ if(self->scd_ptr->scd_srv_is_running == false)
+ {
+ Ssub_Notify(&self->scd_ptr->service_request_subject, NULL, false);
+ }
+}
+
+/*! \brief The function returns the current state of all event bits of the service.
+ * \param self Instance pointer
+ * \param event_mask_ptr Reference to the memory of the returned event mask
+ */
+void Srv_GetEvent(CService *self, Srv_Event_t *event_mask_ptr)
+{
+ *event_mask_ptr = self->event_mask;
+}
+
+/*! \brief Clears events for the given service according to the given event mask.
+ * \param self Instance pointer
+ * \param event_mask Mask of the events to be clear
+ */
+void Srv_ClearEvent(CService *self, Srv_Event_t event_mask)
+{
+ self->event_mask &= ~event_mask;
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_segmentation.c b/ucs2-lib/src/ucs_segmentation.c
new file mode 100644
index 0000000..bbdd786
--- /dev/null
+++ b/ucs2-lib/src/ucs_segmentation.c
@@ -0,0 +1,550 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of AMS Segmentation Class
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_AMSSEGM
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_segmentation.h"
+#include "ucs_ams.h"
+#include "ucs_misc.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal constants */
+/*------------------------------------------------------------------------------------------------*/
+ /*!\brief Timeout for garbage collector */
+static const uint16_t SEGM_GC_TIMEOUT = 5000U; /* parasoft-suppress MISRA2004-8_7 "intended usage as configuration parameter" */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal typedefs */
+/*------------------------------------------------------------------------------------------------*/
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal prototypes */
+/*------------------------------------------------------------------------------------------------*/
+static Ucs_AmsRx_Msg_t *Segm_RxRetrieveProcessingHandle(CSegmentation *self, Msg_MostTel_t *tel_ptr);
+static void Segm_RxStoreProcessingHandle(CSegmentation *self, Ucs_AmsRx_Msg_t *msg_ptr);
+static bool Segm_RxSearchProcessingHandle(void *current_data, void *search_data);
+static bool Segm_RxGcSetLabel(void *current_data, void *search_data);
+static Ucs_AmsRx_Msg_t* Segm_RxProcessTelId0(CSegmentation *self, Msg_MostTel_t *tel_ptr, Segm_Result_t *result_ptr);
+static void Segm_RxProcessTelId1(CSegmentation *self, Msg_MostTel_t *tel_ptr, Segm_Result_t *result_ptr);
+static void Segm_RxProcessTelId2(CSegmentation *self, Msg_MostTel_t *tel_ptr);
+static Ucs_AmsRx_Msg_t* Segm_RxProcessTelId3(CSegmentation *self, Msg_MostTel_t *tel_ptr);
+static void Segm_RxProcessTelId4(CSegmentation *self, Msg_MostTel_t *tel_ptr, Segm_Result_t *result_ptr);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Initialization methods */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Constructor of class CSegmentation
+ * \param self The instance
+ * \param base_ptr Reference to base services
+ * \param pool_ptr Reference to the (Rx) message pool
+ * \param rx_def_payload_sz Default memory size that is allocated when receiving segmented messages
+ * without size prefix
+ */
+void Segm_Ctor(CSegmentation *self, CBase *base_ptr, CAmsMsgPool *pool_ptr, uint16_t rx_def_payload_sz)
+{
+ MISC_MEM_SET(self, 0, sizeof(*self));
+ self->base_ptr = base_ptr; /* initialize members */
+ self->pool_ptr = pool_ptr;
+
+ self->rx_default_payload_sz = rx_def_payload_sz;
+
+ Dl_Ctor(&self->processing_list, self->base_ptr->ucs_user_ptr);
+ T_Ctor(&self->gc_timer);
+ Tm_SetTimer(&self->base_ptr->tm, /* start garbage collector timer */
+ &self->gc_timer,
+ &Segm_RxGcScanProcessingHandles,
+ self,
+ SEGM_GC_TIMEOUT,
+ SEGM_GC_TIMEOUT
+ );
+}
+
+/*! \brief Constructor of class CSegmentation
+ * \param self The instance
+ * \param error_fptr Reference to segmentation error callback function
+ * \param error_inst Reference to segmentation error instance
+ */
+void Segm_AssignRxErrorHandler(CSegmentation *self, Segm_OnError_t error_fptr, void *error_inst)
+{
+ self->error_fptr = error_fptr;
+ self->error_inst = error_inst;
+}
+
+/*! \brief Performs cleanup of pending messages
+ * \param self The instance
+ */
+void Segm_Cleanup(CSegmentation *self)
+{
+ CDlNode *node_ptr = NULL;
+ /* cleanup Tx queue */
+ for (node_ptr = Dl_PopHead(&self->processing_list); node_ptr != NULL; node_ptr = Dl_PopHead(&self->processing_list))
+ {
+ Ucs_AmsRx_Msg_t *rx_ptr = (Ucs_AmsRx_Msg_t*)Dln_GetData(node_ptr);
+
+ Amsp_FreeRxPayload(self->pool_ptr, rx_ptr);
+ Amsp_FreeRxObj(self->pool_ptr, rx_ptr);
+ }
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Tx segmentation */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Builds next MOST telegram according to given Application Messages
+ * \param self The instance
+ * \param msg_ptr Reference to the Application Message Tx handle
+ * \param tel_ptr Reference to the MOST Telegram handle
+ * \return Returns \c True if segmentation was completed for the Application Message. Otherwise \c false.
+ */
+bool Segm_TxBuildSegment(CSegmentation *self, Ucs_AmsTx_Msg_t* msg_ptr, Msg_MostTel_t *tel_ptr)
+{
+ bool finished = false;
+ MISC_UNUSED(self);
+
+ tel_ptr->destination_addr = msg_ptr->destination_address;
+ Msg_SetAltMsgId((CMessage*)(void*)tel_ptr, msg_ptr->msg_id);
+ tel_ptr->opts.llrbc = msg_ptr->llrbc;
+ tel_ptr->info_ptr = msg_ptr; /* info_ptr must carry the reference to AMS Tx message object */
+ tel_ptr->opts.cancel_id = Amsg_TxGetFollowerId(msg_ptr);
+
+ if (msg_ptr->data_size <= SEGM_MAX_SIZE_TEL) /* is single transfer? */
+ {
+ Msg_SetExtPayload((CMessage*)(void*)tel_ptr, msg_ptr->data_ptr, (uint8_t)msg_ptr->data_size, NULL);
+ finished = true;
+ }
+ else /* is segmented transfer? */
+ {
+ uint16_t next_segm_cnt = Amsg_TxGetNextSegmCnt(msg_ptr);
+
+ if (next_segm_cnt == 0xFFFFU) /* first segment: size prefixed segmented message TelId = "4" */
+ {
+ tel_ptr->tel.tel_id = 4U;
+ tel_ptr->tel.tel_data_ptr[0] = MISC_HB(msg_ptr->data_size);
+ tel_ptr->tel.tel_data_ptr[1] = MISC_LB(msg_ptr->data_size);
+ tel_ptr->tel.tel_len = 2U;
+ }
+ else /* further segments: TelId = "1,2,3" */
+ {
+ uint16_t index = next_segm_cnt * ((uint16_t)SEGM_MAX_SIZE_TEL - 1U);
+ uint16_t remaining_sz = msg_ptr->data_size - index;
+ uint8_t tel_sz = SEGM_MAX_SIZE_TEL - 1U;
+
+ if (remaining_sz < SEGM_MAX_SIZE_TEL)
+ {
+ tel_ptr->tel.tel_id = 3U; /* is last segment */
+ tel_sz = (uint8_t)remaining_sz;
+ finished = true;
+ }
+ else
+ {
+ if (index == 0U)
+ {
+ tel_ptr->tel.tel_id = 1U; /* is first segment */
+ }
+ else
+ {
+ tel_ptr->tel.tel_id = 2U; /* is subsequent segment */
+ }
+ }
+
+ tel_ptr->tel.tel_cnt = (uint8_t)next_segm_cnt;
+ Msg_SetExtPayload((CMessage*)(void*)tel_ptr, &msg_ptr->data_ptr[index], tel_sz, NULL);
+ }
+
+ Amsg_TxIncrementNextSegmCnt(msg_ptr);
+ }
+
+ return finished;
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Rx pools */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Retrieves a processing Rx Application message object to a corresponding MOST telegram
+ * \param self The instance
+ * \param tel_ptr Reference to the MOST telegram
+ * \return The reference to the corresponding Rx Application Message or \c NULL if no appropriate
+ * Rx Application Message is available.
+ */
+static Ucs_AmsRx_Msg_t* Segm_RxRetrieveProcessingHandle(CSegmentation *self, Msg_MostTel_t *tel_ptr)
+{
+ Ucs_AmsRx_Msg_t *msg_ptr = NULL;
+ CDlNode *result_node_ptr = Dl_Foreach(&self->processing_list, &Segm_RxSearchProcessingHandle, tel_ptr);
+
+ if (result_node_ptr != NULL)
+ {
+ Dl_Ret_t ret = Dl_Remove(&self->processing_list, result_node_ptr);
+ TR_ASSERT(self->base_ptr->ucs_user_ptr, "[SEGM]", (ret == DL_OK));
+ msg_ptr = (Ucs_AmsRx_Msg_t*)Dln_GetData(result_node_ptr);
+ MISC_UNUSED(ret);
+ }
+
+ return msg_ptr;
+}
+
+/*! \brief Stores a processing Rx Application message object into a dedicated list
+ * \param self The instance
+ * \param msg_ptr Reference to the Rx Application Message
+ */
+static void Segm_RxStoreProcessingHandle(CSegmentation *self, Ucs_AmsRx_Msg_t *msg_ptr)
+{
+ Amsg_RxSetGcMarker(msg_ptr, false);
+ Amsg_RxEnqueue(msg_ptr, &self->processing_list); /* insert at tail, since garbage collector starts at head */
+}
+
+/*! \brief Performs garbage collection of outdated message objects
+ * \param self The instance
+ */
+void Segm_RxGcScanProcessingHandles(void *self)
+{
+ CSegmentation *self_ = (CSegmentation*)self;
+ /* first remove outdated messages */
+ CDlNode *node_ptr = Dl_PeekHead(&self_->processing_list); /* get first candidate from head */
+
+ while (node_ptr != NULL)
+ {
+ Ucs_AmsRx_Msg_t *msg_ptr = (Ucs_AmsRx_Msg_t*)Dln_GetData(node_ptr);
+
+ if (Amsg_RxGetGcMarker(msg_ptr) != false)
+ {
+ Msg_MostTel_t tel;
+
+ Amsg_RxCopySignatureToTel(msg_ptr, &tel);
+ self_->error_fptr(self_->error_inst, &tel, SEGM_ERR_5);
+
+ (void)Dl_Remove(&self_->processing_list, node_ptr);
+
+ Amsp_FreeRxPayload(self_->pool_ptr, msg_ptr);
+ Amsp_FreeRxObj(self_->pool_ptr, msg_ptr);
+
+ node_ptr = Dl_PeekHead(&self_->processing_list); /* get next candidate from head */
+ }
+ else
+ {
+ break;
+ }
+ }
+
+ (void)Dl_Foreach(&self_->processing_list, &Segm_RxGcSetLabel, NULL); /* set label of all remaining messages */
+}
+
+/*! \brief Sets garbage collector flags for all list members
+ * \param current_data The Application message object present in list
+ * \param search_data unused (\c NULL)
+ * \return Returns always false in order to handle all list members */
+static bool Segm_RxGcSetLabel(void *current_data, void *search_data)
+{
+ Ucs_AmsRx_Msg_t *msg_ptr = (Ucs_AmsRx_Msg_t*)current_data;
+ Amsg_RxSetGcMarker(msg_ptr, true);
+ MISC_UNUSED(search_data);
+ return false;
+}
+
+/*! \brief Search routine to identify message objects with the same signature
+ * than a given MOST telegram
+ * \param current_data The Application message object present in list
+ * \param search_data The MOST Telegram object
+ * \return Returns \c true if both handles have the same functional signature,
+ * otherwise \c false. */
+static bool Segm_RxSearchProcessingHandle(void *current_data, void *search_data)
+{
+ Ucs_AmsRx_Msg_t *msg_ptr = (Ucs_AmsRx_Msg_t*)current_data;
+ Msg_MostTel_t *tel_ptr = (Msg_MostTel_t*)search_data;
+
+ return Amsg_RxHandleIsIdentical(msg_ptr, tel_ptr);
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Rx segmentation */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Processes segmentation for a received MOST telegram
+ * \param self The instance
+ * \param tel_ptr The received MOST telegram
+ * \param result_ptr The result of the segmentation process
+ * \return The completed Rx Application Message or \c NULL if segmentation process is still
+ * ongoing.
+ */
+Ucs_AmsRx_Msg_t* Segm_RxExecuteSegmentation(CSegmentation *self, Msg_MostTel_t *tel_ptr, Segm_Result_t *result_ptr)
+{
+ Ucs_AmsRx_Msg_t *msg_ptr = NULL;
+ *result_ptr = SEGM_RES_OK;
+
+ switch (tel_ptr->tel.tel_id) /* parasoft-suppress MISRA2004-15_3 "ignore unexpected TelIds" */
+ {
+ case 0U:
+ msg_ptr = Segm_RxProcessTelId0(self, tel_ptr, result_ptr);
+ break;
+ case 1U:
+ Segm_RxProcessTelId1(self, tel_ptr, result_ptr);
+ break;
+ case 2U:
+ Segm_RxProcessTelId2(self, tel_ptr);
+ break;
+ case 3U:
+ msg_ptr = Segm_RxProcessTelId3(self, tel_ptr);
+ break;
+ case 4U:
+ Segm_RxProcessTelId4(self, tel_ptr, result_ptr);
+ break;
+ default:
+ break;
+ }
+
+ return msg_ptr; /* return completed message */
+}
+
+/*! \brief Processes segmentation for a received MOST telegram with \c TelId="0"
+ * \param self The instance
+ * \param tel_ptr The received MOST telegram
+ * \param result_ptr Result of segmentation process
+ * \return The completed Rx Application Message or \c NULL if segmentation process
+ * does not finish successfully.
+ */
+static Ucs_AmsRx_Msg_t* Segm_RxProcessTelId0(CSegmentation *self, Msg_MostTel_t *tel_ptr, Segm_Result_t *result_ptr)
+{
+ Ucs_AmsRx_Msg_t *msg_ptr = Segm_RxRetrieveProcessingHandle(self, tel_ptr);
+ *result_ptr = SEGM_RES_OK;
+
+ if (msg_ptr != NULL) /* treat error: segmentation process is ongoing */
+ {
+ self->error_fptr(self->error_inst, tel_ptr, SEGM_ERR_7);
+ Amsp_FreeRxPayload(self->pool_ptr, msg_ptr);/* free assigned user payload and throw segmentation error */
+ Amsp_FreeRxObj(self->pool_ptr, msg_ptr);
+ msg_ptr = NULL;
+ }
+ /* try to allocate handle, memory is NetServices provided (payload <= 45 bytes) */
+ msg_ptr = Amsp_AllocRxObj(self->pool_ptr, (uint16_t)tel_ptr->tel.tel_len);
+
+ if (msg_ptr == NULL)
+ {
+ msg_ptr = Amsp_AllocRxRsvd(self->pool_ptr);
+ }
+
+ if (msg_ptr != NULL) /* handle available: setup Rx Application Message */
+ {
+ Amsg_RxCopySignatureFromTel(msg_ptr, tel_ptr);
+
+ if (tel_ptr->tel.tel_len > 0U)
+ { /* copy payload to message */
+ Amsg_RxCopyToPayload(msg_ptr, tel_ptr->tel.tel_data_ptr, tel_ptr->tel.tel_len);
+ }
+ else
+ { /* set payload length to zero */
+ msg_ptr->data_ptr = NULL;
+ msg_ptr->data_size = 0U;
+ }
+ }
+ else
+ {
+ *result_ptr = SEGM_RES_RETRY; /* retry when next Rx object is released */
+ }
+
+ return msg_ptr;
+}
+
+/*! \brief Processes segmentation for a received MOST telegram with \c TelId="1"
+ * \param self The instance
+ * \param tel_ptr The received MOST telegram
+ * \param result_ptr Result of segmentation process
+ */
+static void Segm_RxProcessTelId1(CSegmentation *self, Msg_MostTel_t *tel_ptr, Segm_Result_t *result_ptr)
+{
+ *result_ptr = SEGM_RES_OK;
+
+ if (tel_ptr->tel.tel_cnt != 0U) /* handle incorrect tel_cnt */
+ {
+ self->error_fptr(self->error_inst, tel_ptr, SEGM_ERR_3);
+ }
+ else /* tel_cnt is correct -> continue segmentation */
+ {
+ Ucs_AmsRx_Msg_t *msg_ptr = Segm_RxRetrieveProcessingHandle(self, tel_ptr);
+ bool is_size_prefixed = false;
+
+ if (msg_ptr != NULL) /* has previous message */
+ {
+ if ((Amsg_RxGetExpTelCnt(msg_ptr) != 0U) || (msg_ptr->data_size > 0U))
+ { /* error: previous message already contains segments */
+ self->error_fptr(self->error_inst, tel_ptr, SEGM_ERR_7);
+ Amsp_FreeRxPayload(self->pool_ptr, msg_ptr);
+ Amsg_RxHandleSetup(msg_ptr); /* initialize message for re-use */
+ }
+ else /* message and payload had been allocated by TelId '4' */
+ {
+ is_size_prefixed = true;
+ }
+ }
+ else /* allocate message object if pre-allocation was not initiated by TelId "4" */
+ {
+ msg_ptr = Amsp_AllocRxObj(self->pool_ptr, 0U);
+ }
+
+ if (msg_ptr != NULL) /* now allocate payload */
+ {
+ if (is_size_prefixed == false)
+ {
+ Amsg_RxCopySignatureFromTel(msg_ptr, tel_ptr); /* save signature and try to allocate */
+ (void)Amsp_AllocRxPayload(self->pool_ptr, self->rx_default_payload_sz, msg_ptr);
+ }
+
+ if (!Amsg_RxHasExternalPayload(msg_ptr)) /* allocation of payload failed */
+ {
+ self->error_fptr(self->error_inst, tel_ptr, SEGM_ERR_2);
+ Amsp_FreeRxObj(self->pool_ptr, msg_ptr);
+ msg_ptr = NULL;
+ }
+ else /* allocation of payload succeeded */
+ {
+ (void)Amsg_RxAppendPayload(msg_ptr, tel_ptr);
+ Segm_RxStoreProcessingHandle(self, msg_ptr);
+ msg_ptr = NULL;
+ }
+ }
+ else /* no message object allocated */
+ { /* send segmentation error */
+ self->error_fptr(self->error_inst, tel_ptr, SEGM_ERR_4);
+ }
+ }
+}
+
+/*! \brief Processes segmentation for a received MOST telegram with \c TelId="2"
+ * \param self The instance
+ * \param tel_ptr The received MOST telegram
+ */
+static void Segm_RxProcessTelId2(CSegmentation *self, Msg_MostTel_t *tel_ptr)
+{
+ Ucs_AmsRx_Msg_t *msg_ptr = Segm_RxProcessTelId3(self, tel_ptr); /* pretend having TelId '2' but store the */
+ /* assembled message again */
+ if (msg_ptr != NULL)
+ {
+ Segm_RxStoreProcessingHandle(self, msg_ptr);
+ }
+}
+
+/*! \brief Processes segmentation for a received MOST telegram with \c TelId="3"
+ * \param self The instance
+ * \param tel_ptr The received MOST telegram
+ * \return The assembled Rx Application Message or \c NULL if segmentation process
+ * did not process successfully.
+ */
+static Ucs_AmsRx_Msg_t* Segm_RxProcessTelId3(CSegmentation *self, Msg_MostTel_t *tel_ptr)
+{
+ Ucs_AmsRx_Msg_t *msg_ptr = Segm_RxRetrieveProcessingHandle(self, tel_ptr);
+
+ if (msg_ptr == NULL) /* is first segment missing */
+ {
+ self->error_fptr(self->error_inst, tel_ptr, SEGM_ERR_1);
+ }
+ else
+ {
+ uint8_t exp_tel_cnt = Amsg_RxGetExpTelCnt(msg_ptr);
+
+ if ((exp_tel_cnt == 0U) && (msg_ptr->data_size == 0U))
+ { /* error: did not receive first segment */
+ self->error_fptr(self->error_inst, tel_ptr, SEGM_ERR_1);
+ Segm_RxStoreProcessingHandle(self, msg_ptr);
+ msg_ptr = NULL;
+ }
+ else if (exp_tel_cnt != tel_ptr->tel.tel_cnt)
+ { /* has wrong TelCnt */
+ self->error_fptr(self->error_inst, tel_ptr, SEGM_ERR_3);
+ Segm_RxStoreProcessingHandle(self, msg_ptr);
+ msg_ptr = NULL;
+ }
+
+ if (msg_ptr != NULL)
+ {
+ bool succ = Amsg_RxAppendPayload(msg_ptr, tel_ptr);
+
+ if (succ == false)
+ {
+ self->error_fptr(self->error_inst, tel_ptr, SEGM_ERR_2);
+ Amsp_FreeRxPayload(self->pool_ptr, msg_ptr);
+ Amsp_FreeRxObj(self->pool_ptr, msg_ptr);
+ msg_ptr = NULL;
+ }
+ }
+ }
+
+ return msg_ptr;
+}
+
+/*! \brief Processes segmentation for a received MOST telegram with \c TelId="4"
+ * \param self The instance
+ * \param tel_ptr The received MOST telegram
+ * \param result_ptr Result of segmentation process
+ */
+static void Segm_RxProcessTelId4(CSegmentation *self, Msg_MostTel_t *tel_ptr, Segm_Result_t *result_ptr)
+{
+ *result_ptr = SEGM_RES_OK;
+
+ if (tel_ptr->tel.tel_len >= 2U) /* telegrams has necessary length */
+ {
+ uint16_t msg_size;
+ MISC_DECODE_WORD(&msg_size, tel_ptr->tel.tel_data_ptr);
+
+ if (msg_size > SEGM_MAX_SIZE_TEL) /* application message has correct size */
+ {
+ Ucs_AmsRx_Msg_t *msg_ptr = Segm_RxRetrieveProcessingHandle(self, tel_ptr);
+
+ if (msg_ptr != NULL) /* treat error: segmentation process is ongoing */
+ {
+ Amsp_FreeRxPayload(self->pool_ptr, msg_ptr);
+ self->error_fptr(self->error_inst, tel_ptr, SEGM_ERR_7);
+ Amsg_RxHandleSetup(msg_ptr); /* initialize message for re-use */
+ }
+ else
+ { /* try to allocate handle, memory is NetServices provided (payload <= 45 bytes) */
+ msg_ptr = Amsp_AllocRxObj(self->pool_ptr, 0U);
+ }
+
+ if (msg_ptr != NULL) /* allocation succeeded: decode length and allocate payload */
+ {
+ Amsg_RxCopySignatureFromTel(msg_ptr, tel_ptr);
+ (void)Amsp_AllocRxPayload(self->pool_ptr, msg_size, msg_ptr);
+ Segm_RxStoreProcessingHandle(self, msg_ptr);/* store handle and don't care if payload was allocated or not */
+ msg_ptr = NULL; /* segmentation error 2 is treated by TelId 1 */
+ }
+ else
+ {
+ self->error_fptr(self->error_inst, tel_ptr, SEGM_ERR_4);
+ }
+ }
+ }
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_smm.c b/ucs2-lib/src/ucs_smm.c
new file mode 100644
index 0000000..f201d36
--- /dev/null
+++ b/ucs2-lib/src/ucs_smm.c
@@ -0,0 +1,219 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of the class CStaticMemoryManager.
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_UCS_SMM_CLASS
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_smm.h"
+#include "ucs_misc.h"
+#include "ucs_trace.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal prototypes */
+/*------------------------------------------------------------------------------------------------*/
+static Smm_Descriptor_t* Smm_GetTypeDescriptor(CStaticMemoryManager *self, Ams_MemUsage_t type);
+static void* Smm_Allocate(void *self, uint16_t mem_size, Ams_MemUsage_t type, void** custom_info_pptr);
+static void Smm_Free(void *self, void *mem_ptr, Ams_MemUsage_t type, void* custom_info_ptr);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Constructor of the static memory manager
+ * \param self The instance
+ * \param ucs_user_ptr User reference that needs to be passed in every callback function
+ */
+void Smm_Ctor(CStaticMemoryManager *self, void *ucs_user_ptr)
+{
+ uint8_t index;
+ self->ucs_user_ptr = ucs_user_ptr;
+
+ Dl_Ctor(&self->tx_object_descr.list, ucs_user_ptr); /* initialize descriptor lists */
+ Dl_Ctor(&self->rx_object_descr.list, ucs_user_ptr);
+ Dl_Ctor(&self->tx_payload_descr.list, ucs_user_ptr);
+ Dl_Ctor(&self->rx_payload_descr.list, ucs_user_ptr);
+ Dl_Ctor(&self->null_descr.list, ucs_user_ptr);
+
+ self->tx_object_descr.max_mem_size = AMSG_TX_OBJECT_SZ; /* initialize descriptor memory sizes */
+ self->rx_object_descr.max_mem_size = AMSG_RX_OBJECT_SZ;
+ self->tx_payload_descr.max_mem_size = SMM_SIZE_TX_MSG;
+ self->rx_payload_descr.max_mem_size = SMM_SIZE_RX_MSG;
+ self->null_descr.max_mem_size = 0U;
+
+ for (index = 0U; index < SMM_NUM_TX_MSGS; index++) /* initialize Tx objects and payload */
+ { /* CDlNode::data_ptr has to point to the memory */
+ Dln_Ctor(&self->resources.tx_objects[index].node, &self->resources.tx_objects[index].object);
+ Dl_InsertTail(&self->tx_object_descr.list, &self->resources.tx_objects[index].node);
+
+ Dln_Ctor(&self->resources.tx_payload[index].node, &self->resources.tx_payload[index].data);
+ Dl_InsertTail(&self->tx_payload_descr.list, &self->resources.tx_payload[index].node);
+ }
+
+ for (index = 0U; index < SMM_NUM_RX_MSGS; index++) /* initialize Rx objects and payload */
+ { /* CDlNode::data_ptr has to point to the memory */
+ Dln_Ctor(&self->resources.rx_objects[index].node, &self->resources.rx_objects[index].object);
+ Dl_InsertTail(&self->rx_object_descr.list, &self->resources.rx_objects[index].node);
+
+ Dln_Ctor(&self->resources.rx_payload[index].node, &self->resources.rx_payload[index].data);
+ Dl_InsertTail(&self->rx_payload_descr.list, &self->resources.rx_payload[index].node);
+ }
+}
+
+/*! \brief Load function of the static memory management plug-in.
+ * \param self The instance
+ * \param allocator_ptr Assignable interface for allocate and free functions
+ * \param rx_def_payload_size The default Rx allocation size the AMS uses if TelId "4" is missing.
+ * Just use for checks. Do not overrule.
+ * \return Returns \c UCS_RET_SUCCESS if the initialization succeeded, otherwise \c UCS_RET_ERR_PARAM.
+ */
+Ucs_Return_t Smm_LoadPlugin(CStaticMemoryManager *self, Ams_MemAllocator_t *allocator_ptr, uint16_t rx_def_payload_size)
+{
+ Ucs_Return_t ret = UCS_RET_SUCCESS;
+
+ allocator_ptr->inst_ptr = self; /* assign instance to allocator */
+ allocator_ptr->alloc_fptr = &Smm_Allocate; /* assign callback functions */
+ allocator_ptr->free_fptr = &Smm_Free;
+
+ if (rx_def_payload_size != SMM_SIZE_RX_MSG)
+ {
+ ret = UCS_RET_ERR_PARAM;
+ TR_ERROR((self->ucs_user_ptr, "[SMM]", "SMM initialization failed: wrong configuration of rx_def_payload_size.", 0U));
+ }
+
+ return ret;
+}
+
+/*! \brief Retrieves a descriptor for a memory type
+ * \param self The instance
+ * \param type Usage type of the requested memory
+ * \return Returns the respective descriptor for a memory type
+ */
+static Smm_Descriptor_t* Smm_GetTypeDescriptor(CStaticMemoryManager *self, Ams_MemUsage_t type)
+{
+ Smm_Descriptor_t* descr_ptr = NULL;
+
+ switch (type)
+ {
+ case AMS_MU_RX_OBJECT:
+ descr_ptr = &self->rx_object_descr;
+ break;
+ case AMS_MU_RX_PAYLOAD:
+ descr_ptr = &self->rx_payload_descr;
+ break;
+ case AMS_MU_TX_OBJECT:
+ descr_ptr = &self->tx_object_descr;
+ break;
+ case AMS_MU_TX_PAYLOAD:
+ descr_ptr = &self->tx_payload_descr;
+ break;
+ default:
+ TR_FAILED_ASSERT(self->ucs_user_ptr, "[SMM]"); /* requested memory for unknown type */
+ descr_ptr = &self->null_descr;
+ break;
+ }
+
+ return descr_ptr;
+}
+
+/*! \brief Allocates memory of a certain type
+ * \param self The instance
+ * \param mem_size Size of the memory in bytes
+ * \param type The memory usage type
+ * \param custom_info_pptr Reference to custom information
+ * \return Returns a reference to the allocated memory or \c NULL if the allocation is not possible
+ */
+static void* Smm_Allocate(void *self, uint16_t mem_size, Ams_MemUsage_t type, void** custom_info_pptr)
+{
+ CStaticMemoryManager *self_ = (CStaticMemoryManager*)self;
+ void *mem_ptr = NULL;
+ CDlNode *node_ptr = NULL;
+
+ Smm_Descriptor_t* descr_ptr = Smm_GetTypeDescriptor(self_, type);
+
+ if (mem_size <= descr_ptr->max_mem_size)
+ {
+ node_ptr = Dl_PopHead(&descr_ptr->list); /* size is ok, retrieve a node from the list */
+ }
+
+ if (node_ptr != NULL)
+ {
+ mem_ptr = Dln_GetData(node_ptr); /* retrieve reference of whole message object */
+ *custom_info_pptr = node_ptr;
+ }
+
+ return mem_ptr;
+}
+
+/*! \brief Frees memory of a certain type
+ * \param self The instance
+ * \param mem_ptr Reference to the memory chunk
+ * \param type The memory usage type
+ * \param custom_info_ptr Reference to custom information
+ */
+static void Smm_Free(void *self, void *mem_ptr, Ams_MemUsage_t type, void* custom_info_ptr)
+{
+ CStaticMemoryManager *self_ = (CStaticMemoryManager*)self;
+ Smm_Descriptor_t* descr_ptr = Smm_GetTypeDescriptor(self_, type);
+
+ Dl_InsertHead(&descr_ptr->list, (CDlNode*)custom_info_ptr);
+ MISC_UNUSED(mem_ptr);
+}
+
+/*! \brief Retrieves the current number of unused message objects.
+ * \param self The instance
+ * \param rx_cnt_ptr Application provided reference to write the current number of unused Rx message objects.
+ * \param tx_cnt_ptr Application provided reference to write the current number of unused Tx message objects.
+ * \return Returns \c UCS_RET_ERR_PARAM if \c NULL is provided otherwise \c UCS_RET_SUCCESS.
+ */
+Ucs_Return_t Smm_GetFreeBufferCnt(CStaticMemoryManager *self, uint16_t *rx_cnt_ptr, uint16_t *tx_cnt_ptr)
+{
+ Ucs_Return_t ret = UCS_RET_SUCCESS;
+
+ if ((tx_cnt_ptr != NULL) && (rx_cnt_ptr != NULL))
+ {
+ *rx_cnt_ptr = Dl_GetSize(&self->rx_object_descr.list);
+ *tx_cnt_ptr = Dl_GetSize(&self->tx_object_descr.list);
+ }
+ else
+ {
+ ret = UCS_RET_ERR_PARAM;
+ }
+
+ return ret;
+}
+
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_sys_diag.c b/ucs2-lib/src/ucs_sys_diag.c
new file mode 100644
index 0000000..0c80eb6
--- /dev/null
+++ b/ucs2-lib/src/ucs_sys_diag.c
@@ -0,0 +1,1343 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of the System Diagnosis class
+ * \details Performs the System Diagnosis
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_SYS_DIAG
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_misc.h"
+#include "ucs_ret_pb.h"
+#include "ucs_sys_diag.h"
+/*#include "ucs_mnsa.h"*/
+
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal constants */
+/*------------------------------------------------------------------------------------------------*/
+#define SYS_DIAG_NUM_STATES 10U /*!< \brief Number of state machine states */
+#define SYS_DIAG_NUM_EVENTS 17U /*!< \brief Number of state machine events */
+
+#define SD_NUM_HELLO 10U /*!< \brief Number of Hello.Get Retries */
+#define SD_TIMEOUT_HELLO 150U /*!< \brief timeout used for repeating Hello.Get messages */
+#define SD_TIMEOUT_COMMAND 100U /*!< \brief timeout used for supervising INIC commands */
+#define SD_TIMEOUT_CABLE_DIAGNOSIS 3000U /*!< \brief timeout used for supervising cable link diagnosis */
+#define SD_DIAG_ADDR_BASE 0x0500U /*!< \brief Diagnosis Node Address of own node */
+
+#define SD_WELCOME_SUCCESS 0U /*!< \brief Welcome.Result reports success */
+
+#define SD_SIGNATURE_VERSION 1U /*!< \brief signature version used for System Diagnosis */
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Service parameters */
+/*------------------------------------------------------------------------------------------------*/
+/*! Priority of the System Diagnosis service used by scheduler */
+static const uint8_t SD_SRV_PRIO = 248U; /* parasoft-suppress MISRA2004-8_7 "Value shall be part of the module, not part of a function." */
+/*! Main event for the System Diagnosis service */
+static const Srv_Event_t SD_EVENT_SERVICE = 1U;
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal enumerators */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Possible events of the system diagnosis state machine */
+typedef enum SysDiag_Events_
+{
+ SD_E_NIL = 0U, /*!< \brief NIL Event */
+ SD_E_STARTDIAG = 1U, /*!< \brief StartDiag API function was called */
+ SD_E_SD_RES_OK = 2U, /*!< \brief MOSTNetworkSystemDiagnosis.Result received */
+ SD_E_ABORT = 3U, /*!< \brief Application requires stop of System Diagnosis */
+ SD_E_HELLO_OK = 4U, /*!< \brief Hello.Status received */
+ SD_E_HELLO_RETRY = 5U, /*!< \brief Retry the Hello.Get command */
+ SD_E_HELLO_ALL_DONE = 6U, /*!< \brief All retries of the Hello.Get command are done */
+ SD_E_WELCOME = 7U, /*!< \brief Welcome.Result, may be Ok or NotOk*/
+ SD_E_ALL_DONE = 8U, /*!< \brief All branches and segments of the network were explored*/
+ SD_E_PORT_FOUND = 9U, /*!< \brief An unexplored port was found */
+ SD_E_PORT_ENABLED = 10U, /*!< \brief A port was succesful enabled */
+ SD_E_PORT_DISABLED = 11U, /*!< \brief A port was succesful disabled */
+ SD_E_BRANCH_FOUND = 12U, /*!< \brief Another branch was found */
+ SD_E_CABLE_LINK_RES = 13U, /*!< \brief The CableLinkDiagnosis reported a result */
+ SD_E_ERROR = 14U, /*!< \brief An error was detected */
+ SD_E_TIMEOUT = 15U, /*!< \brief An timeout has been occurred */
+ SD_E_NO_SUCCESS = 16U /*!< \brief Welcome result was NoSuccess */
+} SysDiag_Events_t;
+
+/*! \brief States of the system diagnosis state machine */
+typedef enum SysDiag_State_
+{
+ SD_S_IDLE = 0U, /*!< \brief Idle state */
+ SD_S_WAIT_DIAG = 1U, /*!< \brief System Diagnosis started */
+ SD_S_WAIT_HELLO = 2U, /*!< \brief Hello command sent */
+ SD_S_HELLO_TIMEOUT = 3U, /*!< \brief Hello command timed out */
+ SD_S_WAIT_WELCOME = 4U, /*!< \brief Welcome sent */
+ SD_S_NEXT_PORT = 5U, /*!< \brief Next port found to be tested */
+ SD_S_WAIT_ENABLE = 6U, /*!< \brief Port Enable sent */
+ SD_S_WAIT_DISABLE = 7U, /*!< \brief Port Disable sent */
+ SD_S_CABLE_LINK_DIAG = 8U, /*!< \brief Wait for CableL Link Diagnosis Result */
+ SD_S_END = 9U /*!< \brief Wait for System Diagnosis stop */
+} SysDiag_State_t;
+
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal prototypes */
+/*------------------------------------------------------------------------------------------------*/
+static void Sd_Service(void *self);
+
+static void Sd_SysDiagInit(void* self);
+static void Sd_SysDiagStart(void *self);
+static void Sd_SysDiagStop(void *self);
+static void Sd_SendHello(void *self);
+static void Sd_Error(void *self);
+static void Sd_ErrorWelcome(void *self);
+static void Sd_SendWelcome(void *self);
+static void Sd_CableLinkDiagnosis(void *self);
+static void Sd_CalcPort(void *self);
+static void Sd_AllDone(void *self);
+static void Sd_EnablePort(void *self);
+static void Sd_DisablePort(void *self);
+static void Sd_Finish(void *self);
+static void Sd_Abort(void *self);
+static void Sd_StopDiagFailed(void *self);
+
+static void Sd_HelloTimeout(void *self);
+static void Sd_SysDiagTimeout(void *self);
+static void Sd_WelcomeTimeout(void *self);
+static void Sd_EnablePortTimeout(void *self);
+static void Sd_DisablePortTimeout(void *self);
+static void Sd_CableLinkDiagnosisTimeout(void *self);
+
+static void Sd_SysDiagStartResultCb(void *self, void *result_ptr);
+static void Sd_SysDiagStopResultCb(void *self, void *result_ptr);
+static void Sd_HelloStatusCb(void *self, void *result_ptr);
+static void Sd_WelcomeResultCb(void *self, void *result_ptr);
+static void Sd_EnablePortResultCb(void *self, void *result_ptr);
+static void Sd_DisablePortResultCb(void *self, void *result_ptr);
+static void Sd_CableLinkDiagnosisResultCb(void *self, void *result_ptr);
+static void Sd_OnTerminateEventCb(void *self, void *result_ptr);
+static void Sd_TimerCb(void *self);
+
+
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* State transition table (used by finite state machine) */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief State transition table */
+static const Fsm_StateElem_t sys_diag_trans_tab[SYS_DIAG_NUM_STATES][SYS_DIAG_NUM_EVENTS] = /* parasoft-suppress MISRA2004-8_7 "Value shall be part of the module, not part of a function." */
+{
+
+ { /* State SD_S_IDLE */
+ /* SD_E_NIL */ {NULL, SD_S_IDLE },
+ /* SD_E_STARTDIAG */ {&Sd_SysDiagStart, SD_S_WAIT_DIAG },
+ /* SD_E_SD_RES_OK */ {NULL, SD_S_IDLE },
+ /* SD_E_ABORT */ {NULL, SD_S_IDLE },
+ /* SD_E_HELLO_OK */ {NULL, SD_S_IDLE },
+ /* SD_E_HELLO_RETRY */ {NULL, SD_S_IDLE },
+ /* SD_E_HELLO_ALL_DONE */ {NULL, SD_S_IDLE },
+ /* SD_E_WELCOME */ {NULL, SD_S_IDLE },
+ /* SD_E_ALL_DONE */ {NULL, SD_S_IDLE },
+ /* SD_E_PORT_FOUND */ {NULL, SD_S_IDLE },
+ /* SD_E_PORT_ENABLED */ {NULL, SD_S_IDLE },
+ /* SD_E_PORT_DISABLED */ {NULL, SD_S_IDLE },
+ /* SD_E_BRANCH_FOUND */ {NULL, SD_S_IDLE },
+ /* SD_E_CABLE_LINK_RES */ {NULL, SD_S_IDLE },
+ /* SD_E_ERROR */ {NULL, SD_S_IDLE },
+ /* SD_E_TIMEOUT */ {NULL, SD_S_IDLE },
+ /* SD_E_NO_SUCCESS */ {NULL, SD_S_IDLE }
+ },
+
+ { /* State SD_S_WAIT_DIAG */
+ /* SD_E_NIL */ {NULL, SD_S_WAIT_DIAG },
+ /* SD_E_STARTDIAG */ {NULL, SD_S_WAIT_DIAG },
+ /* SD_E_SD_RES_OK */ {&Sd_SendHello, SD_S_WAIT_HELLO },
+ /* SD_E_ABORT */ {&Sd_Abort, SD_S_END },
+ /* SD_E_HELLO_OK */ {NULL, SD_S_WAIT_DIAG },
+ /* SD_E_HELLO_RETRY */ {NULL, SD_S_WAIT_DIAG },
+ /* SD_E_HELLO_ALL_DONE */ {NULL, SD_S_WAIT_DIAG },
+ /* SD_E_WELCOME */ {NULL, SD_S_WAIT_DIAG },
+ /* SD_E_ALL_DONE */ {NULL, SD_S_WAIT_DIAG },
+ /* SD_E_PORT_FOUND */ {NULL, SD_S_WAIT_DIAG },
+ /* SD_E_PORT_ENABLED */ {NULL, SD_S_WAIT_DIAG },
+ /* SD_E_PORT_DISABLED */ {NULL, SD_S_WAIT_DIAG },
+ /* SD_E_BRANCH_FOUND */ {NULL, SD_S_WAIT_DIAG },
+ /* SD_E_CABLE_LINK_RES */ {NULL, SD_S_WAIT_DIAG },
+ /* SD_E_ERROR */ {&Sd_Error, SD_S_END },
+ /* SD_E_TIMEOUT */ {&Sd_SysDiagTimeout, SD_S_END },
+ /* SD_E_NO_SUCCESS */ {NULL, SD_S_WAIT_DIAG }
+ },
+
+ { /* State SD_S_WAIT_HELLO*/
+ /* SD_E_NIL */ {NULL, SD_S_WAIT_HELLO },
+ /* SD_E_STARTDIAG */ {NULL, SD_S_WAIT_HELLO },
+ /* SD_E_SD_RES_OK */ {NULL, SD_S_WAIT_HELLO },
+ /* SD_E_ABORT */ {&Sd_Abort, SD_S_END },
+ /* SD_E_HELLO_OK */ {&Sd_SendWelcome, SD_S_WAIT_WELCOME },
+ /* SD_E_HELLO_RETRY */ {NULL, SD_S_WAIT_HELLO },
+ /* SD_E_HELLO_ALL_DONE */ {NULL, SD_S_WAIT_HELLO },
+ /* SD_E_WELCOME */ {NULL, SD_S_WAIT_HELLO },
+ /* SD_E_ALL_DONE */ {NULL, SD_S_WAIT_HELLO },
+ /* SD_E_PORT_FOUND */ {NULL, SD_S_WAIT_HELLO },
+ /* SD_E_PORT_ENABLED */ {NULL, SD_S_WAIT_HELLO },
+ /* SD_E_PORT_DISABLED */ {NULL, SD_S_WAIT_HELLO },
+ /* SD_E_BRANCH_FOUND */ {NULL, SD_S_WAIT_HELLO },
+ /* SD_E_CABLE_LINK_RES */ {NULL, SD_S_WAIT_HELLO },
+ /* SD_E_ERROR */ {&Sd_Error, SD_S_END },
+ /* SD_E_TIMEOUT */ {&Sd_HelloTimeout, SD_S_HELLO_TIMEOUT },
+ /* SD_E_NO_SUCCESS */ {NULL, SD_S_WAIT_HELLO }
+ },
+
+ { /* State SD_S_HELLO_TIMEOUT */
+ /* SD_E_NIL */ {NULL, SD_S_HELLO_TIMEOUT },
+ /* SD_E_STARTDIAG */ {NULL, SD_S_HELLO_TIMEOUT },
+ /* SD_E_SD_RES_OK */ {NULL, SD_S_HELLO_TIMEOUT },
+ /* SD_E_ABORT */ {&Sd_Abort, SD_S_END },
+ /* SD_E_HELLO_OK */ {NULL, SD_S_HELLO_TIMEOUT },
+ /* SD_E_HELLO_RETRY */ {&Sd_SendHello, SD_S_WAIT_HELLO },
+ /* SD_E_HELLO_ALL_DONE */ {&Sd_CableLinkDiagnosis, SD_S_CABLE_LINK_DIAG },
+ /* SD_E_WELCOME */ {NULL, SD_S_HELLO_TIMEOUT },
+ /* SD_E_ALL_DONE */ {NULL, SD_S_HELLO_TIMEOUT },
+ /* SD_E_PORT_FOUND */ {NULL, SD_S_HELLO_TIMEOUT },
+ /* SD_E_PORT_ENABLED */ {NULL, SD_S_HELLO_TIMEOUT },
+ /* SD_E_PORT_DISABLED */ {NULL, SD_S_HELLO_TIMEOUT },
+ /* SD_E_BRANCH_FOUND */ {NULL, SD_S_HELLO_TIMEOUT },
+ /* SD_E_CABLE_LINK_RES */ {NULL, SD_S_HELLO_TIMEOUT },
+ /* SD_E_ERROR */ {&Sd_Error, SD_S_END },
+ /* SD_E_TIMEOUT */ {NULL, SD_S_HELLO_TIMEOUT },
+ /* SD_E_NO_SUCCESS */ {NULL, SD_S_HELLO_TIMEOUT }
+ },
+
+ { /* State SD_S_WAIT_WELCOME */
+ /* SD_E_NIL */ {NULL, SD_S_WAIT_WELCOME },
+ /* SD_E_STARTDIAG */ {NULL, SD_S_WAIT_WELCOME },
+ /* SD_E_SD_RES_OK */ {NULL, SD_S_WAIT_WELCOME },
+ /* SD_E_ABORT */ {&Sd_Abort, SD_S_END },
+ /* SD_E_HELLO_OK */ {NULL, SD_S_WAIT_WELCOME },
+ /* SD_E_HELLO_RETRY */ {NULL, SD_S_WAIT_WELCOME },
+ /* SD_E_HELLO_ALL_DONE */ {NULL, SD_S_WAIT_WELCOME },
+ /* SD_E_WELCOME */ {&Sd_CalcPort, SD_S_NEXT_PORT },
+ /* SD_E_ALL_DONE */ {NULL, SD_S_WAIT_WELCOME },
+ /* SD_E_PORT_FOUND */ {NULL, SD_S_WAIT_WELCOME },
+ /* SD_E_PORT_ENABLED */ {NULL, SD_S_WAIT_WELCOME },
+ /* SD_E_PORT_DISABLED */ {NULL, SD_S_WAIT_WELCOME },
+ /* SD_E_BRANCH_FOUND */ {NULL, SD_S_WAIT_WELCOME },
+ /* SD_E_CABLE_LINK_RES */ {NULL, SD_S_WAIT_WELCOME },
+ /* SD_E_ERROR */ {&Sd_Error, SD_S_END },
+ /* SD_E_TIMEOUT */ {&Sd_WelcomeTimeout, SD_S_END },
+ /* SD_E_NO_SUCCESS */ {&Sd_ErrorWelcome, SD_S_END }
+ },
+
+ { /* State SD_S_NEXT_PORT */
+ /* SD_E_NIL */ {NULL, SD_S_NEXT_PORT },
+ /* SD_E_STARTDIAG */ {NULL, SD_S_NEXT_PORT },
+ /* SD_E_SD_RES_OK */ {NULL, SD_S_NEXT_PORT },
+ /* SD_E_ABORT */ {&Sd_Abort, SD_S_END },
+ /* SD_E_HELLO_OK */ {NULL, SD_S_NEXT_PORT },
+ /* SD_E_HELLO_RETRY */ {NULL, SD_S_NEXT_PORT },
+ /* SD_E_HELLO_ALL_DONE */ {NULL, SD_S_NEXT_PORT },
+ /* SD_E_WELCOME */ {NULL, SD_S_NEXT_PORT },
+ /* SD_E_ALL_DONE */ {&Sd_AllDone, SD_S_END },
+ /* SD_E_PORT_FOUND */ {&Sd_EnablePort, SD_S_WAIT_ENABLE },
+ /* SD_E_PORT_ENABLED */ {NULL, SD_S_NEXT_PORT },
+ /* SD_E_PORT_DISABLED */ {NULL, SD_S_NEXT_PORT },
+ /* SD_E_BRANCH_FOUND */ {&Sd_DisablePort, SD_S_WAIT_DISABLE },
+ /* SD_E_CABLE_LINK_RES */ {NULL, SD_S_NEXT_PORT },
+ /* SD_E_ERROR */ {&Sd_Error, SD_S_END },
+ /* SD_E_TIMEOUT */ {NULL, SD_S_NEXT_PORT },
+ /* SD_E_NO_SUCCESS */ {NULL, SD_S_NEXT_PORT }
+ },
+
+ { /* State SD_S_WAIT_ENABLE */
+ /* SD_E_NIL */ {NULL, SD_S_WAIT_ENABLE },
+ /* SD_E_STARTDIAG */ {NULL, SD_S_WAIT_ENABLE },
+ /* SD_E_SD_RES_OK */ {NULL, SD_S_WAIT_ENABLE },
+ /* SD_E_ABORT */ {&Sd_Abort, SD_S_END },
+ /* SD_E_HELLO_OK */ {NULL, SD_S_WAIT_ENABLE },
+ /* SD_E_HELLO_RETRY */ {NULL, SD_S_WAIT_ENABLE },
+ /* SD_E_HELLO_ALL_DONE */ {NULL, SD_S_WAIT_ENABLE },
+ /* SD_E_WELCOME */ {NULL, SD_S_WAIT_ENABLE },
+ /* SD_E_ALL_DONE */ {NULL, SD_S_WAIT_ENABLE },
+ /* SD_E_PORT_FOUND */ {NULL, SD_S_WAIT_ENABLE },
+ /* SD_E_PORT_ENABLED */ {&Sd_SendHello, SD_S_WAIT_HELLO },
+ /* SD_E_PORT_DISABLED */ {NULL, SD_S_WAIT_ENABLE },
+ /* SD_E_BRANCH_FOUND */ {NULL, SD_S_WAIT_ENABLE },
+ /* SD_E_CABLE_LINK_RES */ {NULL, SD_S_WAIT_ENABLE },
+ /* SD_E_ERROR */ {&Sd_Error, SD_S_END },
+ /* SD_E_TIMEOUT */ {&Sd_EnablePortTimeout, SD_S_END },
+ /* SD_E_NO_SUCCESS */ {NULL, SD_S_WAIT_ENABLE }
+ },
+
+ { /* State SD_S_WAIT_DISABLE */
+ /* SD_E_NIL */ {NULL, SD_S_WAIT_DISABLE },
+ /* SD_E_STARTDIAG */ {NULL, SD_S_WAIT_DISABLE },
+ /* SD_E_SD_RES_OK */ {NULL, SD_S_WAIT_DISABLE },
+ /* SD_E_ABORT */ {&Sd_Abort, SD_S_END },
+ /* SD_E_HELLO_OK */ {NULL, SD_S_WAIT_DISABLE },
+ /* SD_E_HELLO_RETRY */ {NULL, SD_S_WAIT_DISABLE },
+ /* SD_E_HELLO_ALL_DONE */ {NULL, SD_S_WAIT_DISABLE },
+ /* SD_E_WELCOME */ {NULL, SD_S_WAIT_DISABLE },
+ /* SD_E_ALL_DONE */ {NULL, SD_S_WAIT_DISABLE },
+ /* SD_E_PORT_FOUND */ {NULL, SD_S_WAIT_DISABLE },
+ /* SD_E_PORT_ENABLED */ {NULL, SD_S_WAIT_DISABLE },
+ /* SD_E_PORT_DISABLED */ {&Sd_EnablePort, SD_S_WAIT_ENABLE },
+ /* SD_E_BRANCH_FOUND */ {NULL, SD_S_WAIT_DISABLE },
+ /* SD_E_CABLE_LINK_RES */ {NULL, SD_S_WAIT_DISABLE },
+ /* SD_E_ERROR */ {&Sd_Error, SD_S_END },
+ /* SD_E_TIMEOUT */ {&Sd_DisablePortTimeout, SD_S_END },
+ /* SD_E_NO_SUCCESS */ {NULL, SD_S_WAIT_DISABLE }
+ },
+
+ { /* State SD_S_CABLE_LINK_DIAG */
+ /* SD_E_NIL */ {NULL, SD_S_CABLE_LINK_DIAG },
+ /* SD_E_STARTDIAG */ {NULL, SD_S_CABLE_LINK_DIAG },
+ /* SD_E_SD_RES_OK */ {NULL, SD_S_CABLE_LINK_DIAG },
+ /* SD_E_ABORT */ {&Sd_Abort, SD_S_END },
+ /* SD_E_HELLO_OK */ {NULL, SD_S_CABLE_LINK_DIAG },
+ /* SD_E_HELLO_RETRY */ {NULL, SD_S_CABLE_LINK_DIAG },
+ /* SD_E_HELLO_ALL_DONE */ {NULL, SD_S_CABLE_LINK_DIAG },
+ /* SD_E_WELCOME */ {NULL, SD_S_CABLE_LINK_DIAG },
+ /* SD_E_ALL_DONE */ {NULL, SD_S_CABLE_LINK_DIAG },
+ /* SD_E_PORT_FOUND */ {NULL, SD_S_CABLE_LINK_DIAG },
+ /* SD_E_PORT_ENABLED */ {NULL, SD_S_CABLE_LINK_DIAG },
+ /* SD_E_PORT_DISABLED */ {NULL, SD_S_CABLE_LINK_DIAG },
+ /* SD_E_BRANCH_FOUND */ {NULL, SD_S_CABLE_LINK_DIAG },
+ /* SD_E_CABLE_LINK_RES */ {&Sd_CalcPort, SD_S_NEXT_PORT },
+ /* SD_E_ERROR */ {&Sd_Error, SD_S_END },
+ /* SD_E_TIMEOUT */ {&Sd_CableLinkDiagnosisTimeout, SD_S_END },
+ /* SD_E_NO_SUCCESS */ {NULL, SD_S_CABLE_LINK_DIAG }
+ },
+
+ { /* State SD_S_END */
+ /* SD_E_NIL */ {NULL, SD_S_END },
+ /* SD_E_STARTDIAG */ {NULL, SD_S_END },
+ /* SD_E_SD_RES_OK */ {Sd_Finish, SD_S_IDLE },
+ /* SD_E_ABORT */ {NULL, SD_S_END },
+ /* SD_E_HELLO_OK */ {NULL, SD_S_END },
+ /* SD_E_HELLO_RETRY */ {NULL, SD_S_END },
+ /* SD_E_HELLO_ALL_DONE */ {NULL, SD_S_END },
+ /* SD_E_WELCOME */ {NULL, SD_S_END },
+ /* SD_E_ALL_DONE */ {NULL, SD_S_END },
+ /* SD_E_PORT_FOUND */ {NULL, SD_S_END },
+ /* SD_E_PORT_ENABLED */ {NULL, SD_S_END },
+ /* SD_E_PORT_DISABLED */ {NULL, SD_S_END },
+ /* SD_E_BRANCH_FOUND */ {NULL, SD_S_END },
+ /* SD_E_CABLE_LINK_RES */ {NULL, SD_S_END },
+ /* SD_E_ERROR */ {Sd_StopDiagFailed, SD_S_IDLE },
+ /* SD_E_TIMEOUT */ {Sd_StopDiagFailed, SD_S_IDLE },
+ /* SD_E_NO_SUCCESS */ {NULL, SD_S_END }
+ }
+
+};
+
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation */
+/*------------------------------------------------------------------------------------------------*/
+
+/*! \brief Constructor of class CSysDiag.
+ * \param self Reference to CSysDiag instance
+ * \param inic Reference to CInic instance
+ * \param base Reference to CBase instance
+ * \param exc Reference to CExc instance
+ */
+ void SysDiag_Ctor(CSysDiag *self, CInic *inic, CBase *base, CExc *exc)
+{
+ MISC_MEM_SET((void *)self, 0, sizeof(*self));
+
+ self->inic = inic;
+ self->exc = exc;
+ self->base = base;
+
+ Fsm_Ctor(&self->fsm, self, &(sys_diag_trans_tab[0][0]), SYS_DIAG_NUM_EVENTS, SD_E_NIL);
+
+ Sobs_Ctor(&self->sys_diag_start, self, &Sd_SysDiagStartResultCb);
+ Sobs_Ctor(&self->sys_diag_stop, self, &Sd_SysDiagStopResultCb);
+ Sobs_Ctor(&self->sys_hello, self, &Sd_HelloStatusCb);
+ Sobs_Ctor(&self->sys_welcome, self, &Sd_WelcomeResultCb);
+ Sobs_Ctor(&self->sys_enable_port, self, &Sd_EnablePortResultCb);
+ Sobs_Ctor(&self->sys_disable_port, self, &Sd_DisablePortResultCb);
+ Sobs_Ctor(&self->sys_cable_link_diagnosis, self, &Sd_CableLinkDiagnosisResultCb);
+
+ /* register termination events */
+ Mobs_Ctor(&self->sys_terminate, self, EH_M_TERMINATION_EVENTS, &Sd_OnTerminateEventCb);
+ Eh_AddObsrvInternalEvent(&self->base->eh, &self->sys_terminate);
+
+ /* Initialize System Diagnosis service */
+ Srv_Ctor(&self->sd_srv, SD_SRV_PRIO, self, &Sd_Service);
+ /* Add System Diagnosis service to scheduler */
+ (void)Scd_AddService(&self->base->scd, &self->sd_srv);
+
+}
+
+/*! \brief Service function of the System Diagnosis service.
+ * \param self Reference to System Diagnosis object
+ */
+static void Sd_Service(void *self)
+{
+ CSysDiag *self_ = (CSysDiag *)self;
+ Srv_Event_t event_mask;
+ Srv_GetEvent(&self_->sd_srv, &event_mask);
+ if(SD_EVENT_SERVICE == (event_mask & SD_EVENT_SERVICE)) /* Is event pending? */
+ {
+ Fsm_State_t result;
+ Srv_ClearEvent(&self_->sd_srv, SD_EVENT_SERVICE);
+ TR_INFO((self_->base->ucs_user_ptr, "[SD]", "FSM __ %d %d", 2U, self_->fsm.current_state, self_->fsm.event_occured));
+ result = Fsm_Service(&self_->fsm);
+ TR_ASSERT(self_->base->ucs_user_ptr, "[SD]", (result != FSM_STATE_ERROR));
+ TR_INFO((self_->base->ucs_user_ptr, "[SD]", "FSM -> %d", 1U, self_->fsm.current_state));
+ MISC_UNUSED(result);
+ }
+}
+
+
+/*! \brief Starts the System Diagnosis State machine
+ *
+ * \param *self Reference to System Diagnosis object
+ * \param *obs_ptr Observer pointer
+ * \return UCS_RET_SUCCESS Operation successful
+ * \return UCS_RET_ERR_API_LOCKED System Diagnosis was already started
+ * \return UCS_RET_ERR_BUFFER_OVERFLOW Invalid observer
+ */
+Ucs_Return_t SysDiag_Run(CSysDiag *self, CSingleObserver *obs_ptr)
+{
+ Ucs_Return_t ret_val = UCS_RET_SUCCESS;
+
+ if (self->startup_locked == false)
+ {
+ Ssub_Ret_t ret_ssub;
+
+ ret_ssub = Ssub_AddObserver(&self->sysdiag, obs_ptr);
+ if (ret_ssub != SSUB_UNKNOWN_OBSERVER) /* obs_ptr == NULL ? */
+ {
+ self->startup_locked = true;
+
+ Sd_SysDiagInit(self);
+
+ Fsm_SetEvent(&self->fsm, SD_E_STARTDIAG);
+ Srv_SetEvent(&self->sd_srv, SD_EVENT_SERVICE);
+
+ TR_INFO((self->base->ucs_user_ptr, "[SD]", "SysDiag_Run", 0U));
+ }
+ else
+ {
+ ret_val = UCS_RET_ERR_BUFFER_OVERFLOW; /* obs_ptr was invalid */
+ }
+ }
+ else
+ {
+ ret_val = UCS_RET_ERR_API_LOCKED;
+ }
+
+ return ret_val;
+}
+
+
+/*! \brief Aborts the System Diagnosis State machine
+ *
+ * \param *self Reference to System Diagnosis object
+ * \return UCS_RET_SUCCESS Operation successful
+ * \return UCS_RET_ERR_NOT_AVAILABLE System Diagnosis not running
+ */
+Ucs_Return_t SysDiag_Abort(CSysDiag *self)
+{
+ Ucs_Return_t ret_val = UCS_RET_SUCCESS;
+
+ if (self->startup_locked == true) /* check if System Diagnosis was started */
+ {
+ Tm_ClearTimer(&self->base->tm, &self->timer);
+
+ Fsm_SetEvent(&self->fsm, SD_E_ABORT);
+ Srv_SetEvent(&self->sd_srv, SD_EVENT_SERVICE);
+ TR_INFO((self->base->ucs_user_ptr, "[SD]", "SysDiag_Abort", 0U));
+ }
+ else
+ {
+ ret_val = UCS_RET_ERR_NOT_AVAILABLE;
+ }
+
+ return ret_val;
+}
+
+/*! Initialize the System Diagnosis
+ *
+ * \param self Reference to System Diagnosis object
+ */
+static void Sd_SysDiagInit(void* self)
+{
+ CSysDiag *self_ = (CSysDiag *)self;
+
+ self_->hello_retry = SD_NUM_HELLO;
+ self_->segment_nr = 0U;
+ self_->num_ports = 0U;
+ self_->curr_branch = 0U;
+ self_->source.node_address = 0xFFFFU;
+ self_->source.available = false;
+ self_->last_result = SD_INIT;
+
+ self_->target.node_address = 0x0001U; /* address of own INIC */
+ self_->target.available = false;
+
+ self_->admin_node_address = SD_DIAG_ADDR_BASE;
+}
+
+
+/*! FSM action function: sets the INIC into System Diagnosis Mode
+ *
+ * \param *self Reference to System Diagnosis object
+ */
+static void Sd_SysDiagStart(void *self)
+{
+ Ucs_Return_t ret_val;
+
+ CSysDiag *self_ = (CSysDiag *)self;
+
+ ret_val = Inic_NwSysDiagnosis(self_->inic, &self_->sys_diag_start);
+ TR_ASSERT(self_->base->ucs_user_ptr, "[SD]", ret_val == UCS_RET_SUCCESS);
+ TR_INFO((self_->base->ucs_user_ptr, "[SD]", "Sd_SysDiagStart", 0U));
+
+ Tm_SetTimer(&self_->base->tm,
+ &self_->timer,
+ &Sd_TimerCb,
+ self_,
+ SD_TIMEOUT_COMMAND,
+ 0U);
+
+ MISC_UNUSED(ret_val);
+}
+
+
+/*! Callback function for the Inic_NwSysDiagnosis() command
+ *
+ * \param *self Reference to System Diagnosis object
+ * \param *result_ptr Result of the Inic_NwSysDiagnosis() command
+ */
+static void Sd_SysDiagStartResultCb(void *self, void *result_ptr)
+{
+ CSysDiag *self_ = (CSysDiag *)self;
+ Inic_StdResult_t *result_ptr_ = (Inic_StdResult_t *)result_ptr;
+
+ Tm_ClearTimer(&self_->base->tm, &self_->timer);
+
+ if (result_ptr_->result.code == UCS_RES_SUCCESS)
+ {
+ Fsm_SetEvent(&self_->fsm, SD_E_SD_RES_OK);
+ TR_INFO((self_->base->ucs_user_ptr, "[SD]", "Sd_SysDiagStartResultCb SD_E_SD_RES_OK", 0U));
+ }
+ else
+ {
+ Fsm_SetEvent(&self_->fsm, SD_E_ERROR);
+ TR_INFO((self_->base->ucs_user_ptr, "[SD]", "Sd_SysDiagStartResultCb SD_E_ERROR", 0U));
+ }
+
+ Srv_SetEvent(&self_->sd_srv, SD_EVENT_SERVICE);
+}
+
+
+/*! FSM action function: Timeout occured
+ *
+ * \param *self Reference to System Diagnosis object
+ */
+static void Sd_SysDiagTimeout(void *self)
+{
+ CSysDiag *self_ = (CSysDiag *)self;
+
+ TR_FAILED_ASSERT(self_->base->ucs_user_ptr, "[SD]");
+
+ MISC_MEM_SET(&self_->report, 0, sizeof(self_->report));
+ self_->report.code = UCS_SD_ERROR;
+ self_->report.err_info = UCS_SD_ERR_UNSPECIFIED;
+ Ssub_Notify(&self_->sysdiag, &self_->report, false);
+
+ Sd_SysDiagStop(self_);
+}
+
+/*! FSM action function: Timeout occured
+ *
+ * \param *self Reference to System Diagnosis object
+ */
+static void Sd_EnablePortTimeout(void *self)
+{
+ CSysDiag *self_ = (CSysDiag *)self;
+
+ TR_FAILED_ASSERT(self_->base->ucs_user_ptr, "[SD]");
+
+ MISC_MEM_SET(&self_->report, 0, sizeof(self_->report));
+ self_->report.code = UCS_SD_ERROR;
+ self_->report.err_info = UCS_SD_ERR_UNSPECIFIED;
+ Ssub_Notify(&self_->sysdiag, &self_->report, false);
+
+ Sd_SysDiagStop(self_);
+}
+
+/*! FSM action function: Timeout occured
+ *
+ * \param *self Reference to System Diagnosis object
+ */
+static void Sd_DisablePortTimeout(void *self)
+{
+ CSysDiag *self_ = (CSysDiag *)self;
+
+ TR_FAILED_ASSERT(self_->base->ucs_user_ptr, "[SD]");
+
+ MISC_MEM_SET(&self_->report, 0, sizeof(self_->report));
+ self_->report.code = UCS_SD_ERROR;
+ self_->report.err_info = UCS_SD_ERR_UNSPECIFIED;
+ Ssub_Notify(&self_->sysdiag, &self_->report, false);
+
+ Sd_SysDiagStop(self_);
+}
+
+/*! Helper function. Stops the System Diagnosis
+ *
+ * \param *self Reference to System Diagnosis object
+ */
+static void Sd_SysDiagStop(void *self)
+{
+ Ucs_Return_t ret_val;
+
+ CSysDiag *self_ = (CSysDiag *)self;
+
+ ret_val = Inic_NwSysDiagEnd(self_->inic, &self_->sys_diag_stop);
+ TR_ASSERT(self_->base->ucs_user_ptr, "[SD]", ret_val == UCS_RET_SUCCESS);
+ TR_INFO((self_->base->ucs_user_ptr, "[SD]", "Sd_SysDiagStop", 0U));
+ if (ret_val == UCS_RET_SUCCESS)
+ {
+ Tm_SetTimer(&self_->base->tm,
+ &self_->timer,
+ &Sd_TimerCb,
+ self_,
+ SD_TIMEOUT_COMMAND,
+ 0U);
+ }
+ else
+ {
+ MISC_MEM_SET(&self_->report, 0, sizeof(self_->report));
+ self_->report.code = UCS_SD_ERROR;
+ self_->report.err_info = UCS_SD_ERR_STOP_SYSDIAG_FAILED;
+
+ Ssub_Notify(&self_->sysdiag, &self_->report, false);
+
+ Fsm_SetEvent(&self_->fsm, SD_E_ERROR);
+ Srv_SetEvent(&self_->sd_srv, SD_EVENT_SERVICE);
+ }
+}
+
+
+/*! \brief Callback function for the Inic_NwSysDiagEnd() command
+ *
+ * \param *self Reference to System Diagnosis object
+ * \param *result_ptr Result of the Inic_NwSysDiagEnd() command
+ */
+static void Sd_SysDiagStopResultCb(void *self, void *result_ptr)
+{
+ CSysDiag *self_ = (CSysDiag *)self;
+ Inic_StdResult_t *result_ptr_ = (Inic_StdResult_t *)result_ptr;
+
+ Tm_ClearTimer(&self_->base->tm, &self_->timer);
+
+ TR_ASSERT(self_->base->ucs_user_ptr, "[SD]", UCS_RES_SUCCESS == result_ptr_->result.code);
+
+ if (result_ptr_->result.code == UCS_RES_SUCCESS)
+ {
+ Fsm_SetEvent(&self_->fsm, SD_E_SD_RES_OK);
+ TR_INFO((self_->base->ucs_user_ptr, "[SD]", "Sd_SysDiagStopResultCb SD_E_SD_RES_OK", 0U));
+ }
+ else
+ {
+ Fsm_SetEvent(&self_->fsm, SD_E_ERROR);
+ TR_INFO((self_->base->ucs_user_ptr, "[SD]", "Sd_SysDiagStopResultCb SD_E_ERROR", 0U));
+ }
+
+ Srv_SetEvent(&self_->sd_srv, SD_EVENT_SERVICE);
+}
+
+
+
+/*! FSM action function: Send Hello.Get command
+ *
+ * \param *self Reference to System Diagnosis object
+ */
+static void Sd_SendHello(void *self)
+{
+ Ucs_Return_t ret_val;
+
+ CSysDiag *self_ = (CSysDiag *)self;
+
+ ret_val = Exc_Hello_Get(self_->exc,
+ UCS_ADDR_BROADCAST_BLOCKING,
+ SD_SIGNATURE_VERSION,
+ &self_->sys_hello);
+ Tm_SetTimer(&self_->base->tm,
+ &self_->timer,
+ &Sd_TimerCb,
+ self_,
+ SD_TIMEOUT_HELLO,
+ 0U);
+
+ TR_ASSERT(self_->base->ucs_user_ptr, "[SD]", ret_val == UCS_RET_SUCCESS);
+ MISC_UNUSED(ret_val);
+}
+
+/*! Callback function for the Enc.Hello.Status message
+ *
+ * \param *self Reference to System Diagnosis object
+ * \param *result_ptr Result of the Exc_Hello_Get() command
+ */
+static void Sd_HelloStatusCb(void *self, void *result_ptr)
+{
+ CSysDiag *self_ = (CSysDiag *)self;
+ Exc_StdResult_t *result_ptr_ = (Exc_StdResult_t *)result_ptr;
+
+ Tm_ClearTimer(&self_->base->tm, &self_->timer);
+
+ if (result_ptr_->result.code == UCS_RES_SUCCESS)
+ {
+ /* read signature and store it for the Welcome command */
+ self_->target.signature = (*(Exc_HelloStatus_t *)(result_ptr_->data_info)).signature;
+ self_->target.version = (*(Exc_HelloStatus_t *)(result_ptr_->data_info)).version;
+
+ if (self_->segment_nr != 0U)
+ {
+ self_->target.node_address = self_->segment_nr + 0x0400U;
+
+ }
+
+ Fsm_SetEvent(&self_->fsm, SD_E_HELLO_OK);
+ TR_INFO((self_->base->ucs_user_ptr, "[SD]", "Sd_HelloStatusCb SD_E_SD_RES_OK", 0U));
+ }
+ else
+ {
+ Fsm_SetEvent(&self_->fsm, SD_E_ERROR);
+ TR_INFO((self_->base->ucs_user_ptr, "[SD]", "Sd_HelloStatusCb SD_E_ERROR", 0U));
+ }
+
+ Srv_SetEvent(&self_->sd_srv, SD_EVENT_SERVICE);
+}
+
+/*! \brief Timer callback used for supervising INIC command timeouts.
+ * \param self Reference to System Diagnosis object
+ */
+static void Sd_TimerCb(void *self)
+{
+ CSysDiag *self_ = (CSysDiag *)self;
+
+ Fsm_SetEvent(&self_->fsm, SD_E_TIMEOUT);
+ TR_INFO((self_->base->ucs_user_ptr, "[SD]", "Sd_TimerCb SD_E_TIMEOUT", 0U));
+
+ Srv_SetEvent(&self_->sd_srv, SD_EVENT_SERVICE);
+}
+
+
+/*! FSM action function: retry hello command or start CableLinkDiagnosis
+ *
+ * \param *self Reference to System Diagnosis object
+ */
+static void Sd_HelloTimeout(void *self)
+{
+ CSysDiag *self_ = (CSysDiag *)self;
+
+ if (self_->hello_retry > 0U)
+ {
+ --self_->hello_retry;
+ Fsm_SetEvent(&self_->fsm, SD_E_HELLO_RETRY);
+ TR_INFO((self_->base->ucs_user_ptr, "[SD]", "Sd_HelloTimeout SD_E_HELLO_RETRY", 0U));
+ }
+ else
+ {
+ Fsm_SetEvent(&self_->fsm, SD_E_HELLO_ALL_DONE);
+ TR_INFO((self_->base->ucs_user_ptr, "[SD]", "Sd_HelloTimeout SD_E_HELLO_ALL_DONE", 0U));
+ }
+
+ /*Srv_SetEvent(&self_->sd_srv, SD_EVENT_SERVICE);*/
+}
+
+
+/*! FSM action function: Send Welcome message
+ *
+ * \param *self Reference to System Diagnosis object
+ */
+static void Sd_SendWelcome(void *self)
+{
+ Ucs_Return_t ret_val;
+ CSysDiag *self_ = (CSysDiag *)self;
+
+ self_->admin_node_address = SD_DIAG_ADDR_BASE + self_->segment_nr;
+
+ ret_val = Exc_Welcome_Sr(self_->exc,
+ self_->target.node_address,
+ self_->admin_node_address,
+ SD_SIGNATURE_VERSION,
+ self_->target.signature,
+ &self_->sys_welcome);
+ Tm_SetTimer(&self_->base->tm,
+ &self_->timer,
+ &Sd_TimerCb,
+ self_,
+ SD_TIMEOUT_COMMAND,
+ 0U);
+ TR_ASSERT(self_->base->ucs_user_ptr, "[SD]", ret_val == UCS_RET_SUCCESS);
+ MISC_UNUSED(ret_val);
+}
+
+
+/*! \brief Function is called on reception of the Welcome.Result messsage
+ * \param self Reference to System Diagnosis object
+ * \param result_ptr Pointer to the result of the Welcome message
+ */
+static void Sd_WelcomeResultCb(void *self, void *result_ptr)
+{
+ CSysDiag *self_ = (CSysDiag *)self;
+ Exc_StdResult_t *result_ptr_ = (Exc_StdResult_t *)result_ptr;
+
+ Tm_ClearTimer(&self_->base->tm, &self_->timer);
+
+ if (result_ptr_->result.code == UCS_RES_SUCCESS)
+ {
+ /* read signature and store it for the Welcome command */
+ self_->target.result = (*(Exc_WelcomeResult_t *)(result_ptr_->data_info)).res;
+
+ if (self_->target.result == SD_WELCOME_SUCCESS)
+ {
+ self_->target.available = true;
+
+ if (self_->segment_nr == 0U)
+ {
+ self_->num_ports = self_->target.signature.num_ports;
+ }
+ else
+ {
+ self_->last_result = SD_SEGMENT;
+ }
+ /* do not report result for own node */
+ if (self_->segment_nr != 0U)
+ {
+ MISC_MEM_SET(&self_->report, 0, sizeof(self_->report));
+
+ self_->report.code = UCS_SD_TARGET_FOUND;
+ self_->report.segment.branch = self_->curr_branch;
+ self_->report.segment.num = self_->segment_nr;
+ self_->report.segment.source = self_->source.signature;
+ self_->report.segment.target = self_->target.signature;
+ /*self_->report.cable_link_info = 0U;*/ /* element is not written deliberately */
+ /*self_->report.err_info = 0U;*/ /* element is not written deliberately */
+
+ Ssub_Notify(&self_->sysdiag, &self_->report, false);
+ TR_INFO((self_->base->ucs_user_ptr, "[SD]", "Sd_WelcomeResultCb ReportSegment", 0U));
+ }
+
+ Fsm_SetEvent(&self_->fsm, SD_E_WELCOME);
+ TR_INFO((self_->base->ucs_user_ptr, "[SD]", "Sd_WelcomeResultCb SD_E_WELCOME", 0U));
+ }
+ else
+ {
+ MISC_MEM_SET(&self_->report, 0, sizeof(self_->report));
+
+ self_->report.code = UCS_SD_ERROR;
+ self_->report.segment.branch = self_->curr_branch;
+ self_->report.segment.num = self_->segment_nr;
+ self_->report.segment.source = self_->source.signature;
+ self_->report.segment.target = self_->target.signature;
+ /*self_->report.cable_link_info = 0U;*/ /* element is not written deliberately */
+ self_->report.err_info = UCS_SD_ERR_WELCOME_NO_SUCCESS;
+
+ Ssub_Notify(&self_->sysdiag, &self_->report, false);
+
+ Fsm_SetEvent(&self_->fsm, SD_E_NO_SUCCESS);
+ TR_INFO((self_->base->ucs_user_ptr, "[SD]", "Sd_WelcomeResultCb reported NoSuccess", 0U));
+ }
+
+ }
+ else
+ {
+ Fsm_SetEvent(&self_->fsm, SD_E_ERROR);
+ TR_INFO((self_->base->ucs_user_ptr, "[SD]", "Sd_WelcomeResultCb Error SD_E_ERROR 0x%x", 1U, result_ptr_->result.code));
+
+ }
+
+ Srv_SetEvent(&self_->sd_srv, SD_EVENT_SERVICE);
+}
+
+
+/*! \brief FSM action function: Calculate the next port tobe examined
+ * \param self Reference to System Diagnosis object
+ */
+static void Sd_CalcPort(void *self)
+{
+ CSysDiag *self_ = (CSysDiag *)self;
+
+ switch (self_->last_result)
+ {
+ case SD_INIT:
+ self_->curr_branch = 0U; /* Master device has at least one port */
+ self_->source = self_->target;
+ self_->master = self_->target;
+
+ MISC_MEM_SET(&(self_->target), 0, sizeof(self_->target));
+ self_->last_result = SD_SEGMENT;
+ Fsm_SetEvent(&self_->fsm, SD_E_PORT_FOUND);
+ TR_INFO((self_->base->ucs_user_ptr, "[SD]", "Sd_CalcPort SD_E_PORT_FOUND", 0U));
+ break;
+
+ case SD_SEGMENT:
+ if (self_->target.signature.num_ports > 1U)
+ {
+ self_->source = self_->target;
+ MISC_MEM_SET(&(self_->target), 0, sizeof(self_->target));
+ Fsm_SetEvent(&self_->fsm, SD_E_PORT_FOUND);
+ TR_INFO((self_->base->ucs_user_ptr, "[SD]", "Sd_CalcPort SD_E_PORT_FOUND", 0U));
+ }
+ else /* switch to next branch if possible*/
+ {
+ if (self_->num_ports == (self_->curr_branch + 1U)) /* last branch */
+ {
+ Fsm_SetEvent(&self_->fsm, SD_E_ALL_DONE);
+ TR_INFO((self_->base->ucs_user_ptr, "[SD]", "Sd_CalcPort SD_E_ALL_DONE", 0U));
+ }
+ else
+ {
+ self_->segment_nr = 1U; /* reset segment number */
+ self_->curr_branch++; /* switch to next port */
+ self_->source = self_->master;
+ MISC_MEM_SET(&(self_->target), 0, sizeof(self_->target));
+ Fsm_SetEvent(&self_->fsm, SD_E_BRANCH_FOUND);
+ TR_INFO((self_->base->ucs_user_ptr, "[SD]", "Sd_CalcPort SD_E_BRANCH_FOUND", 0U));
+ }
+ }
+ break;
+
+ case SD_CABLE_LINK:
+ if (self_->num_ports == (self_->curr_branch + 1U)) /* last branch */
+ {
+ Fsm_SetEvent(&self_->fsm, SD_E_ALL_DONE);
+ TR_INFO((self_->base->ucs_user_ptr, "[SD]", "Sd_CalcPort SD_E_ALL_DONE", 0U));
+ }
+ else
+ {
+ self_->segment_nr = 1U; /* reset segment number */
+ self_->curr_branch++; /* switch to next port */
+ self_->source = self_->master;
+ MISC_MEM_SET(&(self_->target), 0, sizeof(self_->target));
+ Fsm_SetEvent(&self_->fsm, SD_E_BRANCH_FOUND);
+ TR_INFO((self_->base->ucs_user_ptr, "[SD]", "Sd_CalcPort SD_E_BRANCH_FOUND", 0U));
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ /*Srv_SetEvent(&self_->sd_srv, SD_EVENT_SERVICE);*/
+}
+
+
+/*! \brief FSM action function: Enable port
+ *
+ * \param *self Reference to System Diagnosis object
+ */
+static void Sd_EnablePort(void *self)
+{
+ CSysDiag *self_ = (CSysDiag *)self;
+ uint16_t target_address;
+ uint8_t port_number;
+ Ucs_Return_t ret_val;
+
+ if (self_->segment_nr == 0U)
+ {
+ port_number = self_->curr_branch;
+ target_address = 0x0001U;
+ }
+ else
+ {
+ port_number = 1U;
+ target_address = self_->source.node_address;
+ }
+
+ ret_val = Exc_EnablePort_Sr(self_->exc, target_address, port_number, true, &self_->sys_enable_port);
+ Tm_SetTimer(&self_->base->tm,
+ &self_->timer,
+ &Sd_TimerCb,
+ self_,
+ SD_TIMEOUT_COMMAND,
+ 0U);
+
+ TR_ASSERT(self_->base->ucs_user_ptr, "[SD]", ret_val == UCS_RET_SUCCESS);
+ MISC_UNUSED(ret_val);
+}
+
+
+/*! Function is called on reception of the EnablePort.Result messsage
+ *
+ * \param *self Reference to System Diagnosis object
+ * \param *result_ptr
+ */
+static void Sd_EnablePortResultCb(void *self, void *result_ptr)
+{
+ CSysDiag *self_ = (CSysDiag *)self;
+ Exc_StdResult_t *result_ptr_ = (Exc_StdResult_t *)result_ptr;
+
+ Tm_ClearTimer(&self_->base->tm, &self_->timer);
+
+ if (result_ptr_->result.code == UCS_RES_SUCCESS)
+ {
+ self_->segment_nr++;
+ Fsm_SetEvent(&self_->fsm, SD_E_PORT_ENABLED);
+ TR_INFO((self_->base->ucs_user_ptr, "[SD]", "Sd_EnablePortResultCb SD_E_PORT_ENABLED", 0U));
+ }
+ else
+ {
+ Fsm_SetEvent(&self_->fsm, SD_E_ERROR);
+ TR_INFO((self_->base->ucs_user_ptr, "[SD]", "Sd_EnablePortResultCb SD_E_ERROR", 0U));
+ }
+
+ Srv_SetEvent(&self_->sd_srv, SD_EVENT_SERVICE);
+}
+
+
+/*! \brief FSM action function:
+ *
+ * \param *self Reference to System Diagnosis object
+ */
+static void Sd_DisablePort(void *self)
+{
+ CSysDiag *self_ = (CSysDiag *)self;
+ uint16_t target_address;
+ uint8_t port_number;
+ Ucs_Return_t ret_val;
+
+ target_address = self_->admin_node_address;
+ port_number = self_->curr_branch;
+
+ ret_val = Exc_EnablePort_Sr(self_->exc, target_address, port_number, false, &self_->sys_disable_port);
+ Tm_SetTimer(&self_->base->tm,
+ &self_->timer,
+ &Sd_TimerCb,
+ self_,
+ SD_TIMEOUT_COMMAND,
+ 0U);
+
+ TR_ASSERT(self_->base->ucs_user_ptr, "[SD]", ret_val == UCS_RET_SUCCESS);
+ MISC_UNUSED(ret_val);
+}
+
+
+static void Sd_DisablePortResultCb(void *self, void *result_ptr)
+{
+ CSysDiag *self_ = (CSysDiag *)self;
+ Exc_StdResult_t *result_ptr_ = (Exc_StdResult_t *)result_ptr;
+
+ Tm_ClearTimer(&self_->base->tm, &self_->timer);
+
+ if (result_ptr_->result.code == UCS_RES_SUCCESS)
+ {
+ Fsm_SetEvent(&self_->fsm, SD_E_PORT_DISABLED);
+ TR_INFO((self_->base->ucs_user_ptr, "[SD]", "Sd_DisablePortResultCb SD_E_PORT_DISABLED", 0U));
+ }
+ else
+ {
+ Fsm_SetEvent(&self_->fsm, SD_E_ERROR);
+ TR_INFO((self_->base->ucs_user_ptr, "[SD]", "Sd_DisablePortResultCb SD_E_ERROR", 0U));
+ }
+
+ Srv_SetEvent(&self_->sd_srv, SD_EVENT_SERVICE);
+}
+
+
+/*! \brief FSM action function: Start CableLinkDiagnosis
+ *
+ * \param *self Reference to System Diagnosis object
+ */
+static void Sd_CableLinkDiagnosis(void *self)
+{
+ CSysDiag *self_ = (CSysDiag *)self;
+ uint16_t target_address;
+ uint8_t port_number;
+ Ucs_Return_t ret_val;
+
+
+ if (self_->segment_nr != 0U) /* do not start CableLinkDiagnosis when connecting to local INIC */
+ {
+ target_address = self_->source.node_address;
+
+ if (self_->segment_nr == 1U)
+ {
+ port_number = self_->curr_branch;
+ }
+ else
+ {
+ port_number = 1U; /* OS81119: always port 1 */
+ }
+
+ self_->last_result = SD_CABLE_LINK;
+
+ ret_val = Exc_CableLinkDiagnosis_Start(self_->exc, target_address, port_number, &self_->sys_cable_link_diagnosis);
+ TR_INFO((self_->base->ucs_user_ptr, "[SD]", "Sd_CableLinkDiagnosis", 0U));
+
+ Tm_SetTimer(&self_->base->tm,
+ &self_->timer,
+ &Sd_TimerCb,
+ self_,
+ SD_TIMEOUT_CABLE_DIAGNOSIS,
+ 0U);
+
+ TR_ASSERT(self_->base->ucs_user_ptr, "[SD]", ret_val == UCS_RET_SUCCESS);
+ MISC_UNUSED(ret_val);
+}
+ else /* stop SystemDiagnosis when connecting to local INIC failed */
+ {
+ Fsm_SetEvent(&self_->fsm, SD_E_ERROR);
+ Srv_SetEvent(&self_->sd_srv, SD_EVENT_SERVICE);
+ }
+}
+
+
+static void Sd_CableLinkDiagnosisResultCb(void *self, void *result_ptr)
+{
+ CSysDiag *self_ = (CSysDiag *)self;
+
+ Exc_StdResult_t *result_ptr_ = (Exc_StdResult_t *)result_ptr;
+
+ Tm_ClearTimer(&self_->base->tm, &self_->timer);
+
+ if (result_ptr_->result.code == UCS_RES_SUCCESS)
+ {
+ MISC_MEM_SET(&self_->report, 0, sizeof(self_->report));
+
+ self_->report.code = UCS_SD_CABLE_LINK_RES;
+ self_->report.segment.branch = self_->curr_branch;
+ self_->report.segment.num = self_->segment_nr;
+ self_->report.segment.source = self_->source.signature;
+ /*self_->report.segment.target = self_->target.signature;*/ /* structure is not written deliberately */
+ self_->report.cable_link_info = (*(Exc_CableLinkDiagResult_t *)(result_ptr_->data_info)).result;
+ /*self_->report.err_info = 0U;*/ /* element is not written deliberately */
+
+ Ssub_Notify(&self_->sysdiag, &self_->report, false);
+
+
+ Fsm_SetEvent(&self_->fsm, SD_E_CABLE_LINK_RES);
+ TR_INFO((self_->base->ucs_user_ptr, "[SD]", "Sd_CableLinkDiagnosisResultCb SD_E_CABLE_LINK_RES", 0U));
+ }
+ else
+ {
+ Fsm_SetEvent(&self_->fsm, SD_E_ERROR);
+ TR_INFO((self_->base->ucs_user_ptr, "[SD]", "Sd_CableLinkDiagnosisResultCb SD_E_ERROR %02X %02X %02X", 3U, result_ptr_->result.info_ptr[0], result_ptr_->result.info_ptr[1], result_ptr_->result.info_ptr[2]));
+ }
+
+ Srv_SetEvent(&self_->sd_srv, SD_EVENT_SERVICE);
+
+}
+
+
+/*! \brief FSM action function: React on Timeout of CableLinkDiagnosis
+ *
+ * \param *self Reference to System Diagnosis object
+ */
+static void Sd_CableLinkDiagnosisTimeout(void *self)
+{
+ CSysDiag *self_ = (CSysDiag *)self;
+
+ MISC_MEM_SET(&self_->report, 0, sizeof(self_->report));
+ self_->report.code = UCS_SD_ERROR;
+ self_->report.err_info = UCS_SD_ERR_UNSPECIFIED;
+ Ssub_Notify(&self_->sysdiag, &self_->report, false);
+
+ TR_FAILED_ASSERT(self_->base->ucs_user_ptr, "[SD]");
+ Sd_SysDiagStop(self_);
+}
+
+/*! \brief FSM action function: React on Timeout of Welcome
+ *
+ * \param *self Reference to System Diagnosis object
+ */
+static void Sd_WelcomeTimeout(void *self)
+{
+ CSysDiag *self_ = (CSysDiag *)self;
+
+ MISC_MEM_SET(&self_->report, 0, sizeof(self_->report));
+ self_->report.code = UCS_SD_ERROR;
+ self_->report.err_info = UCS_SD_ERR_UNSPECIFIED;
+ Ssub_Notify(&self_->sysdiag, &self_->report, false);
+
+ TR_FAILED_ASSERT(self_->base->ucs_user_ptr, "[SD]");
+ Sd_SysDiagStop(self_);
+}
+
+
+
+
+/*! \brief FSM action function: All branches and segments explored, finish System Diagnosis
+ *
+ * \param *self Reference to System Diagnosis object
+ */
+static void Sd_AllDone(void *self)
+{
+ CSysDiag *self_ = (CSysDiag *)self;
+
+ TR_INFO((self_->base->ucs_user_ptr, "[SD]", "Sd_AllDone", 0U));
+
+ Sd_SysDiagStop(self_);
+}
+
+
+/*! \brief FSM action function: INIC system Diagnosis mode ended
+ *
+ * \param *self Reference to System Diagnosis object
+ */
+static void Sd_Finish(void *self)
+{
+ CSysDiag *self_ = (CSysDiag *)self;
+
+ MISC_MEM_SET(&self_->report, 0, sizeof(self_->report));
+
+ self_->report.code = UCS_SD_FINISHED;
+ Ssub_Notify(&self_->sysdiag, &self_->report, true);
+
+ self_->startup_locked = false;
+
+ TR_INFO((self_->base->ucs_user_ptr, "[SD]", "Sd_Finish", 0U));
+}
+
+/*! \brief FSM action function: An unexpected error occurred.
+ *
+ * \param *self Reference to System Diagnosis object
+ */
+static void Sd_Error(void *self)
+{
+ CSysDiag *self_ = (CSysDiag *)self;
+
+ MISC_MEM_SET(&self_->report, 0, sizeof(self_->report));
+ self_->report.code = UCS_SD_ERROR;
+ self_->report.err_info = UCS_SD_ERR_UNSPECIFIED;
+ Ssub_Notify(&self_->sysdiag, &self_->report, false);
+
+ Sd_SysDiagStop(self_);
+ TR_INFO((self_->base->ucs_user_ptr, "[SD]", "Sd_Error", 0U));
+}
+
+/*! \brief FSM action function: Welcome reports NoSuccess.
+ *
+ * \param *self Reference to System Diagnosis object
+ */
+static void Sd_ErrorWelcome(void *self)
+{
+ CSysDiag *self_ = (CSysDiag *)self;
+
+ Sd_SysDiagStop(self_);
+ TR_INFO((self_->base->ucs_user_ptr, "[SD]", "Sd_ErrorWelcome", 0U));
+}
+
+/*! \brief FSM action function: stopping system diagnosis mode failed
+ *
+ * \param *self Reference to System Diagnosis object
+ */
+static void Sd_StopDiagFailed(void *self)
+{
+ CSysDiag *self_ = (CSysDiag *)self;
+
+ MISC_MEM_SET(&self_->report, 0, sizeof(self_->report));
+ self_->report.code = UCS_SD_ERROR;
+ self_->report.err_info = UCS_SD_ERR_STOP_SYSDIAG_FAILED;
+ Ssub_Notify(&self_->sysdiag, &self_->report, false);
+
+ /* always finish the System Diagnosis with event UCS_SD_FINISHED */
+ MISC_MEM_SET(&self_->report, 0, sizeof(self_->report));
+ self_->report.code = UCS_SD_FINISHED;
+ Ssub_Notify(&self_->sysdiag, &self_->report, true); /* remove the observer function */
+
+ self_->startup_locked = false;
+
+ TR_INFO((self_->base->ucs_user_ptr, "[SD]", "Sd_StopDiagFailed", 0U));
+}
+
+/*! \brief FSM action function: Application requested to abort the System Diagnosis.
+ *
+ * \param *self Reference to System Diagnosis object
+ */
+static void Sd_Abort(void *self)
+{
+ CSysDiag *self_ = (CSysDiag *)self;
+
+ MISC_MEM_SET(&self_->report, 0, sizeof(self_->report));
+ self_->report.code = UCS_SD_ABORTED;
+ Ssub_Notify(&self_->sysdiag, &self_->report, false);
+
+ Sd_SysDiagStop(self_);
+ TR_INFO((self_->base->ucs_user_ptr, "[SD]", "Sd_Abort", 0U));
+}
+
+
+
+/*! Function is called on severe internal errors
+ *
+ * \param *self Reference to System Diagnosis object
+ * \param *result_ptr Reference to data
+ */
+static void Sd_OnTerminateEventCb(void *self, void *result_ptr)
+{
+ CSysDiag *self_ = (CSysDiag *)self;
+
+ MISC_UNUSED(result_ptr);
+
+ if (self_->fsm.current_state != SD_S_IDLE)
+ {
+ Tm_ClearTimer(&self_->base->tm, &self_->timer);
+
+ MISC_MEM_SET(&self_->report, 0, sizeof(self_->report));
+ self_->report.code = UCS_SD_ERROR;
+ self_->report.err_info = UCS_SD_ERR_TERMINATED;
+ Ssub_Notify(&self_->sysdiag, &self_->report, false);
+
+ /* always finish the System Diagnosis with event UCS_SD_FINISHED */
+ MISC_MEM_SET(&self_->report, 0, sizeof(self_->report));
+ self_->report.code = UCS_SD_FINISHED;
+ Ssub_Notify(&self_->sysdiag, &self_->report, true); /* remove the observer function */
+
+ TR_INFO((self_->base->ucs_user_ptr, "[SD]", "Sd_OnTerminateEventCb", 0U));
+
+ /* reset FSM */
+ self_->startup_locked = false;
+ Sd_SysDiagInit(self_);
+ self_->fsm.current_state = SD_S_IDLE;
+ }
+}
+
+
+
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_telqueue.c b/ucs2-lib/src/ucs_telqueue.c
new file mode 100644
index 0000000..d969981
--- /dev/null
+++ b/ucs2-lib/src/ucs_telqueue.c
@@ -0,0 +1,117 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of class CTelQueue
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_MSG_QUEUE
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_telqueue.h"
+#include "ucs_misc.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal constants */
+/*------------------------------------------------------------------------------------------------*/
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Constructor of class CTelQueue
+ * \param self The instance
+ * \param ucs_user_ptr User reference that needs to be passed in every callback function
+ */
+void Telq_Ctor(CTelQueue *self, void *ucs_user_ptr)
+{
+ self->ucs_user_ptr = ucs_user_ptr;
+ Dl_Ctor(&self->list, self->ucs_user_ptr);
+}
+
+/*! \brief Retrieves the head object of the telegram queue
+ * \param self The instance
+ * \return Reference to the telegram if a telegram object is available.
+ * Otherwise \c NULL.
+ */
+Msg_MostTel_t* Telq_Dequeue(CTelQueue *self)
+{
+ Msg_MostTel_t *tel_ptr = NULL;
+ CDlNode *node_ptr = Dl_PopHead(&self->list);
+
+ if (node_ptr != NULL)
+ {
+ tel_ptr = (Msg_MostTel_t*)Dln_GetData(node_ptr);
+ }
+
+ return tel_ptr;
+}
+
+/*! \brief Retrieves a reference to the head object
+ * without removing it from the telegram queue
+ * \param self The instance
+ * \return Reference to the telegram if a telegram object is available.
+ * Otherwise \c NULL.
+ */
+Msg_MostTel_t* Telq_Peek(CTelQueue *self)
+{
+ Msg_MostTel_t *tel_ptr = NULL;
+ CDlNode *node_ptr = Dl_PeekHead(&self->list);
+
+ if (node_ptr != NULL)
+ {
+ tel_ptr = (Msg_MostTel_t*)Dln_GetData(node_ptr);
+ }
+
+ return tel_ptr;
+}
+
+/*! \brief Adds a telegram to the tail of the queue
+ * \param self The instance
+ * \param tel_ptr Reference to the telegram
+ */
+void Telq_Enqueue(CTelQueue *self, Msg_MostTel_t *tel_ptr)
+{
+ Dl_InsertTail(&self->list, Msg_GetNode((CMessage*)(void*)tel_ptr));
+}
+
+/*! \brief Retrieves the current number of objects in the telegram queue
+ * \param self The instance
+ * \return The current number of available telegram objects in the pool
+ */
+uint8_t Telq_GetSize(CTelQueue *self)
+{
+ return (uint8_t)Dl_GetSize(&self->list);
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_timer.c b/ucs2-lib/src/ucs_timer.c
new file mode 100644
index 0000000..6563374
--- /dev/null
+++ b/ucs2-lib/src/ucs_timer.c
@@ -0,0 +1,456 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of the timer management module.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_TIMER
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_timer.h"
+#include "ucs_misc.h"
+#include "ucs_trace.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Service parameters */
+/*------------------------------------------------------------------------------------------------*/
+/*! Priority of the TM service used by scheduler */
+static const uint8_t TM_SRV_PRIO = 255U; /* parasoft-suppress MISRA2004-8_7 "Value shall be part of the module, not part of a function." */
+/*! Main event for the TM service */
+static const Srv_Event_t TM_EVENT_UPDATE_TIMERS = 1U;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal prototypes */
+/*------------------------------------------------------------------------------------------------*/
+static void Tm_Service(void *self);
+static void Tm_UpdateTimers(CTimerManagement *self);
+static bool Tm_HandleElapsedTimer(CTimerManagement *self);
+static bool Tm_UpdateTimersAdd(void *c_timer_ptr, void *n_timer_ptr);
+static void Tm_SetTimerInternal(CTimerManagement *self,
+ CTimer *timer_ptr,
+ Tm_Handler_t handler_fptr,
+ void *args_ptr,
+ uint16_t elapse,
+ uint16_t period);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation of class CTimerManagement */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Constructor of the timer management class.
+ * \param self Instance pointer
+ * \param scd Scheduler instance
+ * \param init_ptr Reference to the initialization data
+ * \param ucs_user_ptr User reference that needs to be passed in every callback function
+ */
+void Tm_Ctor(CTimerManagement *self, CScheduler *scd, const Tm_InitData_t *init_ptr, void * ucs_user_ptr)
+{
+ MISC_MEM_SET(self, 0, sizeof(*self));
+ self->ucs_user_ptr = ucs_user_ptr;
+ /* Initialize subjects and add observers */
+ Ssub_Ctor(&self->get_tick_count_subject, self->ucs_user_ptr);
+ (void)Ssub_AddObserver(&self->get_tick_count_subject,
+ init_ptr->get_tick_count_obs_ptr);
+ if(init_ptr->set_application_timer_obs_ptr != NULL)
+ {
+ self->delayed_tm_service_enabled = true;
+ Ssub_Ctor(&self->set_application_timer_subject, self->ucs_user_ptr);
+ (void)Ssub_AddObserver(&self->set_application_timer_subject,
+ init_ptr->set_application_timer_obs_ptr);
+ }
+ /* Initialize timer management service */
+ Srv_Ctor(&self->tm_srv, TM_SRV_PRIO, self, &Tm_Service);
+ /* Add timer management service to scheduler */
+ (void)Scd_AddService(scd, &self->tm_srv);
+}
+
+/*! \brief Service function of the timer management.
+ * \param self Instance pointer
+ */
+static void Tm_Service(void *self)
+{
+ CTimerManagement *self_ = (CTimerManagement *)self;
+ Srv_Event_t event_mask;
+
+ Srv_GetEvent(&self_->tm_srv, &event_mask);
+
+ if(TM_EVENT_UPDATE_TIMERS == (event_mask & TM_EVENT_UPDATE_TIMERS)) /* Is event pending? */
+ {
+ Srv_ClearEvent(&self_->tm_srv, TM_EVENT_UPDATE_TIMERS);
+ Tm_UpdateTimers(self_);
+ }
+}
+
+/*! \brief If event TM_EVENT_UPDATE_TIMERS is set this function is called. Handles the update
+ * of the timer list. If a timer has expired the corresponding callback function is
+ * executed. If the expired timer is a periodic timer, the timer will be set again.
+ * \param self Instance pointer
+ */
+static void Tm_UpdateTimers(CTimerManagement *self)
+{
+ uint16_t current_tick_count;
+ Ssub_Notify(&self->get_tick_count_subject, &current_tick_count, false);
+
+ if(self->timer_list.head != NULL) /* At least one timer is running? */
+ {
+ bool continue_loop = true;
+ /* Calculate time difference between the current and the last TM service run */
+ uint16_t tick_count_diff = (uint16_t)(current_tick_count - self->last_tick_count);
+ /* Save current tick count for next service run */
+ self->last_tick_count = current_tick_count;
+
+ /* Loop while timer list is not empty */
+ while((self->timer_list.head != NULL) && (continue_loop!= false))
+ {
+ /* Is not first timer in list elapsed yet? */
+ if(tick_count_diff <= ((CTimer *)self->timer_list.head->data_ptr)->delta)
+ {
+ /* Update delta of first timer in list */
+ ((CTimer *)self->timer_list.head->data_ptr)->delta -= tick_count_diff;
+ tick_count_diff = 0U;
+ }
+ else /* At least first timer in list elapsed */
+ {
+ /* Update tick count difference for next timer in list */
+ tick_count_diff -= ((CTimer *)self->timer_list.head->data_ptr)->delta;
+ /* First timer elapsed */
+ ((CTimer *)self->timer_list.head->data_ptr)->delta = 0U;
+ }
+
+ /* First timer in list elapsed? */
+ if(0U == ((CTimer *)self->timer_list.head->data_ptr)->delta)
+ {
+ /* Handle elapsed timer */
+ continue_loop = Tm_HandleElapsedTimer(self);
+ }
+ else /* No elapsed timer in list. */
+ {
+ /* First timer in list updated! Set trigger to inform application (see
+ Tm_CheckForNextService()) and stop TM service. */
+ self->set_service_timer = true;
+ continue_loop = false;
+ }
+ }
+ }
+}
+
+/*! \brief This function is called if the first timer in list is elapsed. The timer handler
+ * callback function is invoked. If the timer is a periodic timer it is wound up again.
+ * \param self Instance pointer
+ * \return \c true if the next timer must be check.
+ * \return \c false if the wound up timer (periodic timer) is new head of timer list
+ */
+static bool Tm_HandleElapsedTimer(CTimerManagement *self)
+{
+ bool ret_val = true;
+
+ CDlNode *node = self->timer_list.head;
+ /* Reset flag to be able to check if timer object has changed within handler
+ callback function */
+ ((CTimer *)node->data_ptr)->changed = false;
+ /* Call timer handler callback function */
+ ((CTimer *)node->data_ptr)->handler_fptr(((CTimer *)node->data_ptr)->args_ptr);
+
+ /* Timer object hasn't changed within handler callback function? */
+ if(false == ((CTimer *)node->data_ptr)->changed)
+ {
+ /* Remove current timer from list */
+ (void)Dl_Remove(&self->timer_list, node);
+ /* Mark timer as unused */
+ ((CTimer *)node->data_ptr)->in_use = false;
+ /* Is current timer a periodic timer? */
+ if(((CTimer *)node->data_ptr)->period > 0U)
+ {
+ /* Reload current timer */
+ Tm_SetTimerInternal(self,
+ ((CTimer *)node->data_ptr),
+ ((CTimer *)node->data_ptr)->handler_fptr,
+ ((CTimer *)node->data_ptr)->args_ptr,
+ ((CTimer *)node->data_ptr)->period,
+ ((CTimer *)node->data_ptr)->period);
+
+ if(node == self->timer_list.head) /* Is current timer new head of list? */
+ {
+ /* Set trigger to inform application (see Tm_CheckForNextService()) and
+ stop TM service. */
+ self->set_service_timer = true;
+ ret_val = false;
+ }
+ }
+ }
+
+ return ret_val;
+}
+
+/*! \brief Calls an application callback function to inform the application that the UCS must be
+ * serviced not later than the passed time period. If the timer list is empty a possible
+ * running application timer will be stopped. This function is called at the end of
+ * Ucs_Service().
+ * \param self Instance pointer
+ */
+void Tm_CheckForNextService(CTimerManagement *self)
+{
+ if(self->delayed_tm_service_enabled != false)
+ {
+ uint16_t current_tick_count;
+ Ssub_Notify(&self->get_tick_count_subject, &current_tick_count, false);
+ /* Has head of timer list changed? */
+ if(self->set_service_timer != false)
+ {
+ uint16_t new_time;
+ uint16_t diff = current_tick_count - self->last_tick_count;
+ self->set_service_timer = false;
+ if (self->timer_list.head != NULL)
+ {
+ /* Timer expired since last TM service? */
+ if(diff >= ((CTimer *)self->timer_list.head->data_ptr)->delta)
+ {
+ new_time = 1U; /* Return minimum value */
+ }
+ else
+ {
+ /* Calculate new timeout */
+ new_time = (uint16_t)(((CTimer *)self->timer_list.head->data_ptr)->delta - diff);
+ }
+ /* Inform the application that the UCS must be serviced not later than the passed
+ time period. */
+ Ssub_Notify(&self->set_application_timer_subject, &new_time, false);
+ }
+ }
+ }
+ else
+ {
+ Tm_TriggerService(self); /* Application timer not implemented -> Retrigger TM */
+ }
+}
+
+/*! \brief Helper function to set the TM service event.
+ * \details This function is used by the application to trigger a service call of the Timer
+ * Management if the application timer has expired.
+ * \param self Instance pointer
+ */
+void Tm_TriggerService(CTimerManagement *self)
+{
+ if(self->timer_list.head != NULL) /* At least one timer is running? */
+ {
+ Srv_SetEvent(&self->tm_srv, TM_EVENT_UPDATE_TIMERS);
+ }
+}
+
+/*! \brief Helper function to stop the TM service.
+ * \param self Instance pointer
+ */
+void Tm_StopService(CTimerManagement *self)
+{
+ uint16_t new_time = 0U;
+
+ /* Clear probable running application timer */
+ Ssub_Notify(&self->set_application_timer_subject, &new_time, false);
+
+ /* Reset the service timer. Not necessary ? */
+ self->set_service_timer = false;
+
+ /* Clear the timer head queue to prevent any event to be set */
+ self->timer_list.head = NULL;
+}
+
+/*! \brief Creates a new timer. The timer expires at the specified elapse time and then after
+ * every specified period. When the timer expires the specified callback function is
+ * called.
+ * \param self Instance pointer
+ * \param timer_ptr Reference to the timer object
+ * \param handler_fptr Callback function which is called when the timer expires
+ * \param args_ptr Reference to an optional parameter which is passed to the specified
+ * callback function
+ * \param elapse The elapse value before the timer expires for the first time, in
+ * milliseconds
+ * \param period The period of the timer, in milliseconds. If this parameter is zero, the
+ * timer is signaled once. If the parameter is greater than zero, the timer
+ * is periodic.
+ */
+void Tm_SetTimer(CTimerManagement *self,
+ CTimer *timer_ptr,
+ Tm_Handler_t handler_fptr,
+ void *args_ptr,
+ uint16_t elapse,
+ uint16_t period)
+{
+ (void)Tm_ClearTimer(self, timer_ptr); /* Clear timer if running */
+ /* Call the internal method to set the new timer (-> does not trigger TM service!) */
+ Tm_SetTimerInternal(self, timer_ptr, handler_fptr, args_ptr, elapse, period);
+ Tm_TriggerService(self); /* New timer added -> trigger timer list update */
+}
+
+/*! \brief This function contains the internal part when adding a new timer. The function is
+ * called within Tm_SetTimer() and within Tm_UpdateTimers().
+ * \param self Instance pointer
+ * \param timer_ptr Reference to the timer object
+ * \param handler_fptr Callback function which is called when the timer expires
+ * \param args_ptr Reference to an optional parameter which is passed to the specified
+ * callback function
+ * \param elapse The elapse value before the timer expires for the first time, in
+ * milliseconds
+ * \param period The period of the timer, in milliseconds. If this parameter is zero, the
+ * timer is signaled once. If the parameter is greater than zero, the timer
+ * is periodic.
+ */
+static void Tm_SetTimerInternal(CTimerManagement *self,
+ CTimer *timer_ptr,
+ Tm_Handler_t handler_fptr,
+ void *args_ptr,
+ uint16_t elapse,
+ uint16_t period)
+{
+ uint16_t current_tick_count;
+ Ssub_Notify(&self->get_tick_count_subject, &current_tick_count, false);
+
+ /* Save timer specific values */
+ timer_ptr->changed = true; /* Flag is needed by Tm_UpdateTimers() */
+ timer_ptr->in_use = true;
+ timer_ptr->handler_fptr = handler_fptr;
+ timer_ptr->args_ptr = args_ptr;
+ timer_ptr->elapse = elapse;
+ timer_ptr->period = period;
+ timer_ptr->delta = elapse;
+
+ /* Create back link to be able to point from node to timer object */
+ timer_ptr->node.data_ptr = (void *)timer_ptr;
+
+ if(self->timer_list.head == NULL) /* Is timer list empty? */
+ {
+ Dl_InsertHead(&self->timer_list, &timer_ptr->node); /* Add first timer to list */
+ /* Save current tick count */
+ Ssub_Notify(&self->get_tick_count_subject, &self->last_tick_count, false);
+ }
+ else /* Timer list is not empty */
+ {
+ CDlNode *result_ptr = NULL;
+
+ /* Set delta value in relation to last saved tick count (last TM service) */
+ timer_ptr->delta += (uint16_t)(current_tick_count - self->last_tick_count);
+
+ /* Search slot where new timer must be inserted. Update delta of new timer
+ and delta of the following timer in the list. */
+ result_ptr = Dl_Foreach(&self->timer_list, &Tm_UpdateTimersAdd, (void *)timer_ptr);
+
+ if(result_ptr != NULL) /* Slot found? */
+ {
+ /* Insert new timer at found position */
+ Dl_InsertBefore(&self->timer_list, result_ptr, &timer_ptr->node);
+ }
+ else /* No slot found -> Insert as last node */
+ {
+ /* Add new timer to end of list */
+ Dl_InsertTail(&self->timer_list, &timer_ptr->node);
+ }
+ }
+}
+
+/*! \brief Removes the specified timer from the timer list.
+ * \param self Instance pointer
+ * \param timer_ptr Reference to the timer object
+ * \attention Make sure that for a timer object Tm_SetTimer() is called before Tm_ClearTimer()
+ * is called!
+ */
+void Tm_ClearTimer(CTimerManagement *self, CTimer *timer_ptr)
+{
+ if(timer_ptr->in_use != false) /* Is timer currently in use? */
+ {
+ timer_ptr->changed = true; /* Flag is needed by Tm_UpdateTimers() */
+
+ if(timer_ptr->node.next != NULL) /* Has deleted timer a follower? */
+ {
+ /* Adjust delta of following timer */
+ ((CTimer *)timer_ptr->node.next->data_ptr)->delta += timer_ptr->delta;
+ }
+
+ (void)Dl_Remove(&self->timer_list, &timer_ptr->node);
+ timer_ptr->in_use = false;
+
+ Tm_TriggerService(self); /* Timer removed -> trigger timer list update */
+ }
+}
+
+/*! \brief Used by Tm_SetTimer() to find the slot where the new timer must be inserted.
+ * \param c_timer_ptr Reference to current timer processed by foreach loop
+ * \param n_timer_ptr Reference to new timer
+ * \return \c true: Slot found, stop foreach loop
+ * \return \c false: Slot not found, continue foreach loop
+ */
+static bool Tm_UpdateTimersAdd(void *c_timer_ptr, void *n_timer_ptr)
+{
+ CTimer *current_timer_ptr = (CTimer *)c_timer_ptr;
+ CTimer *new_timer_ptr = (CTimer *)n_timer_ptr;
+ bool ret_val;
+
+ /* Is current timer lesser than new timer? */
+ if(current_timer_ptr->delta <= new_timer_ptr->delta)
+ {
+ /* Update delta of new timer and continue foreach loop */
+ new_timer_ptr->delta -= current_timer_ptr->delta;
+ ret_val = false;
+ }
+ else /* Slot found! */
+ {
+ /* Correct delta of current timer and stop foreach loop */
+ current_timer_ptr->delta -= new_timer_ptr->delta;
+ ret_val = true;
+ }
+
+ return ret_val;
+}
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation of class CTimer */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Constructor of the Timer class.
+ * \param self Instance pointer
+ */
+void T_Ctor(CTimer *self)
+{
+ MISC_MEM_SET(self, 0, sizeof(*self));
+}
+
+/*! \brief Returns the status of the given timer.
+ * \param self Instance pointer
+ * \return \c true if the timer is currently in use
+ * \return \c false if the timer is not currently in use
+ */
+bool T_IsTimerInUse(CTimer *self)
+{
+ return self->in_use;
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_transceiver.c b/ucs2-lib/src/ucs_transceiver.c
new file mode 100644
index 0000000..54fdf0e
--- /dev/null
+++ b/ucs2-lib/src/ucs_transceiver.c
@@ -0,0 +1,290 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of class CTransceiver
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_TRCV
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_transceiver.h"
+#include "ucs_misc.h"
+#include "ucs_pmp.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal prototypes */
+/*------------------------------------------------------------------------------------------------*/
+static void Trcv_OnTxStatusInternal(void *self, Msg_MostTel_t *tel_ptr, Ucs_MsgTxStatus_t status);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Constructor of class CTransceiver
+ * \param self The instance
+ * \param fifo_ptr Reference to the dedicated port message FIFO
+ * \param def_src_addr Source address that is preset in Tx message object
+ * \param ucs_user_ptr User reference that needs to be passed in every callback function
+ * \param trace_id ID specifies FIFO in traces if multiple transceivers are running
+ */
+void Trcv_Ctor(CTransceiver *self, CPmFifo *fifo_ptr, uint16_t def_src_addr, void *ucs_user_ptr, uint8_t trace_id)
+{
+ MISC_MEM_SET(self, 0, sizeof(*self));
+ self->fifo_ptr = fifo_ptr;
+ self->tx_def_src = def_src_addr;
+ self->ucs_user_ptr = ucs_user_ptr;
+ self->own_id = trace_id;
+ Pool_Ctor(&self->tx_msg_pool, self->tx_msgs, TRCV_SIZE_TX_POOL, ucs_user_ptr);
+ TR_ASSERT(self->ucs_user_ptr, "[TRCV]", (fifo_ptr != NULL));
+}
+
+/*! \brief Assigns a function of another class to receive messages
+ * \details The assigned function is responsible to call Trcv_RxReleaseMsg() it has finished to process it
+ * \param self The instance
+ * \param callback_fptr Callback function
+ * \param inst_ptr The instance of the receiver class
+ */
+void Trcv_RxAssignReceiver(CTransceiver *self, Trcv_RxCompleteCb_t callback_fptr, void *inst_ptr)
+{
+ self->rx_complete_fptr = callback_fptr;
+ self->rx_complete_inst = inst_ptr;
+}
+
+/*! \brief Assigns a function of another class to filter Rx messages
+ * \details The assigned function is responsible to discard or pass Rx messages
+ * \param self The instance
+ * \param callback_fptr Callback function
+ * \param inst_ptr The instance of the filter class
+ */
+void Trcv_RxAssignFilter(CTransceiver *self, Trcv_RxFilterCb_t callback_fptr, void *inst_ptr)
+{
+ self->rx_filter_fptr = callback_fptr;
+ self->rx_filter_inst = inst_ptr;
+}
+
+/*! \brief Releases an Rx message which was received by the assigned receiver
+ * \param self The instance
+ * \param tel_ptr Reference to the received message
+ */
+void Trcv_RxReleaseMsg(CTransceiver *self, Msg_MostTel_t *tel_ptr)
+{
+ CMessage *msg_ptr = (CMessage*)(void*)tel_ptr;
+ bool check_ok = !Dln_IsNodePartOfAList(Msg_GetNode(msg_ptr)); /* message object shall not be part of a list */
+ /* because it was provided in an earlier step */
+ TR_ASSERT(self->ucs_user_ptr, "[TRCV]", check_ok);
+ if (check_ok)
+ {
+ Fifo_RxReleaseMsg(self->fifo_ptr, msg_ptr);
+ }
+}
+
+/*! \brief Retrieves a message object from the pool
+ * \param self The instance
+ * \param size Size of the message in bytes. Valid range: 0..45.
+ * \return Reference to the Msg_MostTel_t structure if a message is available.
+ * Otherwise \c NULL.
+ */
+extern Msg_MostTel_t* Trcv_TxAllocateMsg(CTransceiver *self, uint8_t size)
+{
+ const uint8_t TRCV_CTRL_MAX_SIZE = 45U; /* replace by PMS constant in future */
+ CMessage *handle = NULL;
+ Msg_MostTel_t *tel_ptr = NULL;
+
+ if (size <= TRCV_CTRL_MAX_SIZE)
+ {
+ handle = Pool_GetMsg(&self->tx_msg_pool);
+
+ if (handle != NULL)
+ {
+ Msg_Cleanup(handle); /* reset headers and fields */
+ Msg_ReserveHeader(handle, PMP_PM_MAX_SIZE_HEADER + ENC_MAX_SIZE_CONTENT);
+ tel_ptr = Msg_GetMostTel(handle); /* return public struct of the message object */
+ tel_ptr->tel.tel_id = 0U;
+ tel_ptr->tel.tel_len = size;
+ tel_ptr->tel.tel_cnt = 0U;
+ tel_ptr->source_addr = self->tx_def_src;
+ }
+ }
+
+ return tel_ptr;
+}
+
+/*! \brief Returns a message object to the transceiver pool a message was allocated from
+ * \param tel_ptr Reference to the message object which needs to be returned.
+ */
+void Trcv_TxReleaseMsg(Msg_MostTel_t *tel_ptr)
+{
+ CMessage* msg_ptr = (CMessage*)(void*)tel_ptr; /* avoid MISRA-C warning by converting to "void*" */
+ bool check_ok = !Dln_IsNodePartOfAList(Msg_GetNode(msg_ptr)); /* message object shall not be part of a list */
+ TR_ASSERT(0U, "[TRCV]", check_ok); /* because it was provided in an earlier step */
+
+ if (check_ok)
+ {
+ Pool_ReturnMsg(msg_ptr);
+ }
+}
+
+/*! \brief Prepares a message object for re-transmission
+ * \param tel_ptr Reference to the Tx message object which needs
+ * to be reused.
+ */
+void Trcv_TxReuseMsg(Msg_MostTel_t *tel_ptr)
+{
+ CMessage* msg_ptr = (CMessage*)(void*)tel_ptr;
+ TR_ASSERT(0U, "[TRCV]", (!Dln_IsNodePartOfAList(Msg_GetNode(msg_ptr)))); /* message object shall not be part of a list */
+ /* because it was provided in an earlier step */
+ Msg_Cleanup(msg_ptr); /* reset headers and fields */
+ Msg_ReserveHeader(msg_ptr, PMP_PM_MAX_SIZE_HEADER + ENC_MAX_SIZE_CONTENT);
+}
+
+/*! \brief Transmits a given message object to the INIC
+ * \details After completed transmission the message object is released automatically
+ * \param self The instance
+ * \param tel_ptr Reference to the message object
+ */
+void Trcv_TxSendMsg(CTransceiver *self, Msg_MostTel_t *tel_ptr)
+{
+ CMessage *msg_ptr;
+
+ TR_ASSERT(self->ucs_user_ptr, "[TRCV]", (tel_ptr != NULL));
+ msg_ptr = (CMessage*)(void*)tel_ptr;
+
+ TR_INFO((self->ucs_user_ptr, "[TRCV]", "Trcv_TxSendMsg(): FIFO: %u, MSG(tgt:0x%04X, id:%02X.%01X.%04X.%01X)", 6U, self->own_id, tel_ptr->destination_addr, tel_ptr->id.fblock_id, tel_ptr->id.instance_id, tel_ptr->id.function_id, tel_ptr->id.op_type));
+ Msg_SetTxStatusHandler(msg_ptr, &Trcv_OnTxStatusInternal, self); /* just release the message */
+ Fifo_Tx(self->fifo_ptr, msg_ptr, false);
+}
+
+/*! \brief Transmits a given message object to the INIC with a dedicated result callback
+ * \param self The instance
+ * \param tel_ptr Reference to the message object
+ * \param callback_fptr Callback function which is invoked after message transmission has finished.
+ * Must be \c NULL to avoid that a callback function is invoked. In this case
+ * the message object is freed internally. Hence, the message object must
+ * not provide external payload.
+ * \param inst_ptr Reference to the instance which is invoked with callback_fptr. Has to be \c
+ * NULL if callback_fptr is \c NULL.
+ * \note The provided callback function is responsible to free the message object by calling
+ * Trcv_TxReleaseMsg() or to reuse the message object by calling Trcv_TxReuseMsg() before
+ * passing it to one of the transmit functions again.
+ */
+void Trcv_TxSendMsgExt(CTransceiver *self, Msg_MostTel_t *tel_ptr, Msg_TxStatusCb_t callback_fptr, void *inst_ptr)
+{
+ CMessage *msg_ptr;
+
+ TR_ASSERT(self->ucs_user_ptr, "[TRCV]", (tel_ptr != NULL));
+ msg_ptr = (CMessage*)(void*)tel_ptr;
+
+ if (callback_fptr == NULL)
+ {
+ TR_ASSERT(self->ucs_user_ptr, "[TRCV]", (inst_ptr == NULL));
+ callback_fptr = &Trcv_OnTxStatusInternal;
+ inst_ptr = self;
+ }
+
+ TR_INFO((self->ucs_user_ptr, "[TRCV]", "Trcv_TxSendMsgExt(): FIFO: %u, MSG(tgt:0x%04X, id:%02X.%01X.%04X.%01X)", 6U, self->own_id, tel_ptr->destination_addr, tel_ptr->id.fblock_id, tel_ptr->id.instance_id, tel_ptr->id.function_id, tel_ptr->id.op_type));
+ Msg_SetTxStatusHandler(msg_ptr, callback_fptr, inst_ptr);
+ Fifo_Tx(self->fifo_ptr, msg_ptr, false);
+}
+
+/*! \brief Transmits a given message object to the INIC bypassing all other messages in the FIFO
+ * \param self The instance
+ * \param tel_ptr Reference to the message object
+ * \param callback_fptr Callback function which is invoked after message transmission has finished.
+ * Must be \c NULL to avoid that a callback function is invoked. In this case
+ * the message object is freed internally. Hence, the message object must
+ * not provide external payload.
+ * \param inst_ptr Reference to the instance which is invoked
+ * \note The provided callback function is responsible to free the message object by calling
+ * Trcv_TxReleaseMsg() or to reuse the message object by calling Trcv_TxReuseMsg() before
+ * passing it to one of the transmit functions again.
+ */
+void Trcv_TxSendMsgBypass(CTransceiver *self, Msg_MostTel_t *tel_ptr, Msg_TxStatusCb_t callback_fptr, void *inst_ptr)
+{
+ CMessage *msg_ptr;
+
+ TR_ASSERT(self->ucs_user_ptr, "[TRCV]", (tel_ptr != NULL));
+ msg_ptr = (CMessage*)(void*)tel_ptr;
+
+ if (callback_fptr == NULL)
+ {
+ TR_ASSERT(self->ucs_user_ptr, "[TRCV]", (inst_ptr == NULL));
+ callback_fptr = &Trcv_OnTxStatusInternal;
+ inst_ptr = self;
+ }
+
+ Msg_SetTxStatusHandler(msg_ptr, callback_fptr, inst_ptr);
+ Fifo_Tx(self->fifo_ptr, msg_ptr, true);
+}
+
+/*! \brief Callback function which is invoked instead of an external callback
+ * as soon as channel transmission was finished in PMS.
+ * \param self The instance
+ * \param tel_ptr Reference to the message object
+ * \param status Transmission status
+ */
+static void Trcv_OnTxStatusInternal(void *self, Msg_MostTel_t *tel_ptr, Ucs_MsgTxStatus_t status)
+{
+ Trcv_TxReleaseMsg(tel_ptr);
+ MISC_UNUSED(self);
+ MISC_UNUSED(status);
+}
+
+/*! \brief Internal callback function which is intended to be
+ * invoked by the port message channel on completed reception.
+ * \param self The instance
+ * \param tel_ptr Reference to the message object
+ */
+void Trcv_RxOnMsgComplete(void *self, CMessage *tel_ptr)
+{
+ CTransceiver *self_ = (CTransceiver*)self;
+ bool discard = false;
+
+ TR_INFO((self_->ucs_user_ptr, "[TRCV]", "Trcv_RxOnMsgComplete(): FIFO: %u, MSG(src:0x%04X, id:%02X.%01X.%04X.%01X)", 6U, self_->own_id, tel_ptr->pb_msg.source_addr, tel_ptr->pb_msg.id.fblock_id, tel_ptr->pb_msg.id.instance_id, tel_ptr->pb_msg.id.function_id, tel_ptr->pb_msg.id.op_type));
+ if (self_->rx_filter_fptr != NULL)
+ {
+ discard = self_->rx_filter_fptr(self_->rx_filter_inst, Msg_GetMostTel(tel_ptr));
+ }
+
+ if ((self_->rx_complete_fptr != NULL) && (discard == false))
+ {
+ /* the assigned Rx function is responsible to release the message */
+ self_->rx_complete_fptr(self_->rx_complete_inst, Msg_GetMostTel(tel_ptr));
+ }
+ else
+ {
+ Fifo_RxReleaseMsg(self_->fifo_ptr, tel_ptr);
+ }
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_xrm.c b/ucs2-lib/src/ucs_xrm.c
new file mode 100644
index 0000000..d8cbbf6
--- /dev/null
+++ b/ucs2-lib/src/ucs_xrm.c
@@ -0,0 +1,1174 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of the Extended Resource Manager. This file contains the implementation of
+ * the basic functions of the class CExtendedResourceManager.
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_UCS_XRM_INT
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_xrm.h"
+#include "ucs_xrm_pv.h"
+#include "ucs_misc.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Service parameters */
+/*------------------------------------------------------------------------------------------------*/
+/*! Priority of the XRM service used by scheduler */
+const uint8_t XRM_SRV_PRIO = 250U; /* parasoft-suppress MISRA2004-8_7 "Value shall be part of the module, not part of a function." */
+/*! \brief Event to trigger Extended Resource Manager service */
+const Srv_Event_t XRM_EVENT_PROCESS = 0x01U;
+/*! \brief Event to trigger error handling */
+const Srv_Event_t XRM_EVENT_ERROR = 0x02U;
+/*! \brief Event to trigger request list of invalid resource handles */
+const Srv_Event_t XRM_EVENT_REQ_INV_RES_LST = 0x04U;
+/*! \brief Event to trigger destruction of invalid resources */
+const Srv_Event_t XRM_EVENT_DESTROY_INV_RES = 0x08U;
+/*! \brief Event to resume the destruction of resources */
+const Srv_Event_t XRM_EVENT_RESUME_JOB_DESTRUCT = 0x10U;
+/*! \brief Event to reset INIC's Resource Monitor */
+const Srv_Event_t XRM_EVENT_RESET_RES_MONITOR = 0x20U;
+/*! \brief Event to trigger notification for automatically destroyed resources */
+const Srv_Event_t XRM_EVENT_NOTIFY_AUTO_DEST_RES = 0x40U;
+/*! \brief Event to trigger notification for destroyed resources */
+const Srv_Event_t XRM_EVENT_NOTIFY_DESTROYED_JOB = 0x80U;
+/*! \brief Event to trigger notification for automatically destroyed resources on remote devices */
+const Srv_Event_t XRM_EVENT_NOTIFY_AUTO_DEST_RESR = 0x100U;
+/*! \brief Event to trigger configuration of a stream port */
+const Srv_Event_t XRM_EVENT_STREAMPORT_CONFIG_SET = 0x200U;
+/*! \brief Event to read configuration of a stream port */
+const Srv_Event_t XRM_EVENT_STREAMPORT_CONFIG_GET = 0x400U;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal Constants */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Invalid resource handle */
+const uint16_t XRM_INVALID_RESOURCE_HANDLE = 0xFFFFU;
+/*! \brief Invalid MOST connection label */
+const uint16_t XRM_INVALID_CONNECTION_LABEL = 0xFFFFU; /* parasoft-suppress MISRA2004-8_7 "Value shall be part of the module, not part of a function." */
+/*! \brief Default value used for INIC sender handles */
+const uint16_t XRM_DEFAULT_SENDER_HANDLE = 0x0001U;
+/*! \brief Invalid device node address */
+const uint16_t XRM_INVALID_NODE_ADDRESS = 0x0000U;
+/*! \brief Mask for network availability info */
+const uint16_t XRM_MASK_NETWORK_AVAILABILITY = 0x0002U;
+/*! \brief Mask for node address update info */
+const uint16_t XRM_MASK_NETWORK_NODE_ADDRESS = 0x0010U;
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation of class CExtendedResourceManager */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Constructor of the Extended Resource Manager class.
+ * \param self Instance pointer
+ * \param data_ptr Data pointer (receive reference to MNS instance)
+ */
+void Xrm_Ctor(CExtendedResourceManager *self, Xrm_InitData_t *data_ptr)
+{
+ MISC_MEM_SET(self, 0, sizeof(CExtendedResourceManager));
+
+ /* Retrieve the initialization data */
+ self->net_ptr = data_ptr->net_ptr;
+ self->base_ptr = data_ptr->base_ptr;
+ self->rsm_ptr = data_ptr->rsm_ptr;
+ self->inic_ptr = data_ptr->inic_ptr;
+ self->xrmp_ptr = data_ptr->xrmp_ptr;
+ self->res_debugging_fptr = data_ptr->res_debugging_fptr;
+
+ /* Set the flag that indicates the run mode of the instance */
+ self->IsInRemoteControlMode = (UCS_ADDR_LOCAL_DEV != Inic_GetTargetAddress(self->inic_ptr)) ? true:false;
+
+ /* Initialize observers */
+ Obs_Ctor(&self->obs.tx_msg_obj_obs, self, &Xrm_MsgObjAvailCb);
+ Obs_Ctor(&self->obs.resource_monitor_obs, self, &Xrm_ResourceMonitorCb);
+ Sobs_Ctor(&self->obs.std_result_obs, self, &Xrm_StdResultCb);
+ Sobs_Ctor(&self->obs.resource_invalid_list_obs, self, &Xrm_RequestResourceListResultCb);
+ Sobs_Ctor(&self->obs.resource_destroy_obs, self, &Xrm_DestroyResourcesResultCb);
+ Sobs_Ctor(&self->obs.stream_port_config_obs, self, &Xrm_Stream_PortConfigResult);
+ Sobs_Ctor(&self->obs.most_port_enable_obs, self, &Xrm_Most_PortEnableResult);
+ Sobs_Ctor(&self->obs.most_port_en_full_str_obs, self, &Xrm_Most_PortEnFullStrResult);
+ Obs_Ctor(&self->obs.rsm_sync_lost_obs, self, &Xrm_RmtDevSyncLostCb);
+
+ /* Add observer to resource monitor subject */
+ Inic_AddObsrvResMonitor(self->inic_ptr, &self->obs.resource_monitor_obs);
+ /* Initialize callback pointer for unmute callback */
+ self->obs.check_unmute_fptr = data_ptr->check_unmute_fptr;
+
+ /* Add observer to the MNS termination event */
+ Mobs_Ctor(&self->obs.internal_error_obs, self, EH_M_TERMINATION_EVENTS, &Xrm_UninitializeService);
+ Eh_AddObsrvInternalEvent(&self->base_ptr->eh, &self->obs.internal_error_obs);
+ /* Add observer to the MNS network event */
+ Mobs_Ctor(&self->obs.nw_status_obs, self, (XRM_MASK_NETWORK_AVAILABILITY | XRM_MASK_NETWORK_NODE_ADDRESS), &Xrm_MnsNwStatusInfosCb);
+ Net_AddObserverNetworkStatus(self->net_ptr, &self->obs.nw_status_obs);
+ /* Add observer to the MNS RSM event */
+ Rsm_AddObserver(self->rsm_ptr, &self->obs.rsm_sync_lost_obs);
+
+ /* Initialize the Jobs list queue */
+ Dl_Ctor(&self->job_list, self->base_ptr->ucs_user_ptr);
+
+ /* Initialize XRM service */
+ Srv_Ctor(&self->xrm_srv, XRM_SRV_PRIO, self, &Xrm_Service);
+ /* Add XRM service to scheduler */
+ (void)Scd_AddService(&self->base_ptr->scd, &self->xrm_srv);
+}
+
+/*! \brief Service function of the Extended Resource Manager.
+ * \param self Instance pointer
+ */
+void Xrm_Service(void *self)
+{
+ CExtendedResourceManager *self_ = (CExtendedResourceManager *)self;
+ Srv_Event_t event_mask;
+ Srv_GetEvent(&self_->xrm_srv, &event_mask);
+
+ /* Handle event to process a XRM job */
+ if((event_mask & XRM_EVENT_PROCESS) == XRM_EVENT_PROCESS)
+ {
+ Srv_ClearEvent(&self_->xrm_srv, XRM_EVENT_PROCESS);
+ Xrm_ProcessJob(self_);
+ }
+ /* Handle event to request the list of invalid resource handles */
+ if((event_mask & XRM_EVENT_REQ_INV_RES_LST) == XRM_EVENT_REQ_INV_RES_LST)
+ {
+ Srv_ClearEvent(&self_->xrm_srv, XRM_EVENT_REQ_INV_RES_LST);
+ Xrm_RequestResourceList(self_);
+ }
+ /* Handle event to destroy invalid INIC resources */
+ if((event_mask & XRM_EVENT_DESTROY_INV_RES) == XRM_EVENT_DESTROY_INV_RES)
+ {
+ Srv_ClearEvent(&self_->xrm_srv, XRM_EVENT_DESTROY_INV_RES);
+ Xrm_DestroyResources(self_, &Xrm_DestroyResourcesResultCb);
+ }
+ /* Handle event to resume the destruction of all INIC resources of a job */
+ if((event_mask & XRM_EVENT_RESUME_JOB_DESTRUCT) == XRM_EVENT_RESUME_JOB_DESTRUCT)
+ {
+ Srv_ClearEvent(&self_->xrm_srv, XRM_EVENT_RESUME_JOB_DESTRUCT);
+ Xrm_ResumeJobDestruction(self_);
+ }
+ /* Handle event to resume the destruction of all INIC resources of a job */
+ if((event_mask & XRM_EVENT_RESET_RES_MONITOR) == XRM_EVENT_RESET_RES_MONITOR)
+ {
+ Srv_ClearEvent(&self_->xrm_srv, XRM_EVENT_RESET_RES_MONITOR);
+ Xrm_ResetResourceMonitor(self_);
+ }
+ /* Handle error event */
+ if((event_mask & XRM_EVENT_ERROR) == XRM_EVENT_ERROR)
+ {
+ Srv_ClearEvent(&self_->xrm_srv, XRM_EVENT_ERROR);
+ Xrm_HandleError(self_);
+ }
+ /* Handle event to notify application of automatically destroyed resources */
+ if((event_mask & XRM_EVENT_NOTIFY_AUTO_DEST_RES) == XRM_EVENT_NOTIFY_AUTO_DEST_RES)
+ {
+ Srv_ClearEvent(&self_->xrm_srv, XRM_EVENT_NOTIFY_AUTO_DEST_RES);
+ Xrm_ReportAutoDestructionResult(self_);
+ }
+ /* Handle event to report result of resource destruction of a specific XRM job */
+ if((event_mask & XRM_EVENT_NOTIFY_DESTROYED_JOB) == XRM_EVENT_NOTIFY_DESTROYED_JOB)
+ {
+ Srv_ClearEvent(&self_->xrm_srv, XRM_EVENT_NOTIFY_DESTROYED_JOB);
+ Xrm_ReportJobDestructionResult(self_);
+ }
+ /* Handle event to notify application that resources on remote devices have been automatically destroyed */
+ if ((event_mask & XRM_EVENT_NOTIFY_AUTO_DEST_RESR) == XRM_EVENT_NOTIFY_AUTO_DEST_RESR)
+ {
+ Srv_ClearEvent(&self_->xrm_srv, XRM_EVENT_NOTIFY_AUTO_DEST_RESR);
+ Xrm_ReleaseResrcHandles(self_);
+ }
+ /* Handle event to set streaming port configuration */
+ if ((event_mask & XRM_EVENT_STREAMPORT_CONFIG_SET) == XRM_EVENT_STREAMPORT_CONFIG_SET)
+ {
+ Srv_ClearEvent(&self_->xrm_srv, XRM_EVENT_STREAMPORT_CONFIG_SET);
+ (void)Xrm_SetStreamPortConfiguration(self_);
+ }
+ /* Handle event to get streaming port configuration */
+ if ((event_mask & XRM_EVENT_STREAMPORT_CONFIG_GET) == XRM_EVENT_STREAMPORT_CONFIG_GET)
+ {
+ Srv_ClearEvent(&self_->xrm_srv, XRM_EVENT_STREAMPORT_CONFIG_GET);
+ (void)Xrm_GetStreamPortConfiguration(self_);
+ }
+}
+
+/*! \brief Checks if the API is locked and the MNS are initialized.
+ * \param self Instance pointer
+ * \return \c true if the API is not locked and the MNS are initialized, otherwise \c false.
+ */
+bool Xrm_IsApiFree(CExtendedResourceManager *self)
+{
+ return (self->lock_api == false);
+}
+
+/*! \brief Locks/Unlocks the XRM API.
+ * \param self Instance pointer
+ * \param status Locking status. \c true = Lock, \c false = Unlock
+ */
+void Xrm_ApiLocking(CExtendedResourceManager *self, bool status)
+{
+ self->lock_api = status;
+}
+
+/*! \brief Add observer to be notified if ICM TX message object is available. Store pending events.
+ * \param self Instance pointer
+ * \param event_mask Event to be queued
+ */
+void Xrm_WaitForTxMsgObj(CExtendedResourceManager *self, Srv_Event_t event_mask)
+{
+ Inic_AddObsrvOnTxMsgObjAvail(self->inic_ptr, &self->obs.tx_msg_obj_obs);
+ self->queued_event_mask |= event_mask;
+}
+
+/*! \brief Checks whether the given resource object list is part of the given Job
+ * \param job_ptr Reference to a job list
+ * \param ud_ptr Reference to the user data. Not used !
+ * \return \c true if it's part of my job list, otherwise \c false.
+ */
+bool Xrm_SetNtfForThisJob(void * job_ptr, void * ud_ptr)
+{
+ Xrm_Job_t * job_ptr_ = (Xrm_Job_t *)job_ptr;
+ MISC_UNUSED(ud_ptr);
+
+ if(job_ptr_->valid != false)
+ {
+ job_ptr_->notify = true;
+ }
+
+ return false;
+}
+
+/*! \brief Handle internal errors and un-initialize XRM service.
+ * \param self Instance pointer
+ * \param error_code_ptr Reference to internal error code
+ */
+void Xrm_UninitializeService(void *self, void *error_code_ptr)
+{
+ CExtendedResourceManager *self_ = (CExtendedResourceManager *)self;
+ MISC_UNUSED(error_code_ptr);
+
+ Xrm_ApiLocking(self_, true);
+
+ MISC_MEM_SET(&self_->report_result, 0x00, sizeof(Ucs_Xrm_Result_t));
+ self_->report_result.code = UCS_XRM_RES_RC_AUTO_DESTROYED;
+
+ (void)Dl_Foreach(&self_->job_list, &Xrm_SetNtfForThisJob, NULL);
+
+ /* Notify destruction of current connections */
+ Xrm_NotifyInvalidJobs(self_);
+ /* Remove XRM service from schedulers list */
+ (void)Scd_RemoveService(&self_->base_ptr->scd, &self_->xrm_srv);
+ /* Remove error/event observers */
+ Eh_DelObsrvInternalEvent(&self_->base_ptr->eh, &self_->obs.internal_error_obs);
+ /* Remove rsm observers */
+ Rsm_DelObserver(self_->rsm_ptr, &self_->obs.rsm_sync_lost_obs);
+}
+
+
+/*! \brief Handle the network status information mask "Availability" and "NodeAddress".
+ * \param self Instance pointer
+ * \param result_ptr Reference to the results
+ */
+void Xrm_MnsNwStatusInfosCb(void *self, void *result_ptr)
+{
+ CExtendedResourceManager *self_ = (CExtendedResourceManager *)self;
+ Net_NetworkStatusParam_t *result_ptr_ = (Net_NetworkStatusParam_t *)result_ptr;
+
+ if ((XRM_MASK_NETWORK_AVAILABILITY & result_ptr_->change_mask) == XRM_MASK_NETWORK_AVAILABILITY)
+ {
+ if ((result_ptr_->availability == UCS_NW_NOT_AVAILABLE) &&
+ (self_->IsInRemoteControlMode))
+ {
+ /* Release all resources */
+ Xrm_ReleaseResrcHandles(self_);
+ }
+ }
+}
+
+/*! \brief Whenever this function is called, a message object (ICM or MCM) is available.
+ * \param self Instance pointer
+ * \param result_ptr Not used!
+ */
+void Xrm_MsgObjAvailCb(void *self, void *result_ptr)
+{
+ CExtendedResourceManager *self_ = (CExtendedResourceManager *)self;
+ MISC_UNUSED(result_ptr);
+ Srv_SetEvent(&self_->xrm_srv, self_->queued_event_mask);
+ self_->queued_event_mask = 0U;
+ Inic_DelObsrvOnTxMsgObjAvail(self_->inic_ptr, &self_->obs.tx_msg_obj_obs);
+}
+
+/*! \brief Whenever this function is called, all remote devices have lost the synchronization.
+ * \param self instance pointer
+ * \param result_ptr Not Used !
+ */
+void Xrm_RmtDevSyncLostCb(void *self, void *result_ptr)
+{
+ CExtendedResourceManager *self_ = (CExtendedResourceManager *)self;
+ MISC_UNUSED(result_ptr);
+
+ Srv_SetEvent(&self_->xrm_srv, XRM_EVENT_NOTIFY_AUTO_DEST_RESR);
+}
+
+/*! \brief Processes the XRM job that is specified by the given resource object list.
+ * \param self Instance pointer
+ * \param resource_object_list[] Reference to array of references to INIC resource objects
+ * \param most_network_connection_label MOST network connection label
+ * \param user_arg User argument
+ * \param report_fptr Report function pointer
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * ------------------------- | ------------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_NOT_AVAILABLE | Associated job not found
+ * UCS_RET_ERR_PARAM | Null pointer detected
+ * UCS_RET_ERR_API_LOCKED | API is currently locked
+ */
+Ucs_Return_t Xrm_Process(CExtendedResourceManager *self,
+ UCS_XRM_CONST Ucs_Xrm_ResObject_t *resource_object_list[],
+ uint16_t most_network_connection_label,
+ void * user_arg,
+ Ucs_Xrm_ReportCb_t report_fptr)
+{
+ Ucs_Return_t ret_val = UCS_RET_SUCCESS;
+
+ if (self != NULL)
+ {
+ if(Xrm_IsApiFree(self) != false)
+ {
+ if((resource_object_list != NULL) && (report_fptr != NULL))
+ {
+ Xrm_ApiLocking(self, true);
+ self->current_job_ptr = Xrm_GetJob(self, resource_object_list);
+ if(self->current_job_ptr != NULL)
+ {
+ bool job_is_mine = Dl_IsNodeInList(&self->job_list, &self->current_job_ptr->node);
+ if (job_is_mine)
+ {
+ if(self->current_job_ptr->valid == false)
+ {
+ self->current_job_ptr->user_arg = user_arg;
+ self->current_job_ptr->valid = true;
+ self->current_job_ptr->notify = false;
+ self->current_job_ptr->report_fptr = report_fptr;
+ self->current_job_ptr->most_network_connection_label = most_network_connection_label;
+ self->current_job_ptr->resource_object_list_ptr = resource_object_list;
+ self->current_obj_pptr = &self->current_job_ptr->resource_object_list_ptr[0];
+ Xrm_ProcessJob(self);
+ }
+ else
+ {
+ ret_val = UCS_RET_ERR_ALREADY_SET;
+ Xrm_ApiLocking(self, false);
+ }
+ }
+ else
+ {
+ ret_val = UCS_RET_ERR_PARAM;
+ Xrm_ApiLocking(self, false);
+ }
+ }
+ else
+ {
+ Xrm_ApiLocking(self, false);
+ ret_val = UCS_RET_ERR_NOT_AVAILABLE;
+ }
+ }
+ else
+ {
+ ret_val = UCS_RET_ERR_PARAM;
+ }
+ }
+ else
+ {
+ ret_val = UCS_RET_ERR_API_LOCKED;
+ }
+ }
+ else
+ {
+ ret_val = UCS_RET_ERR_PARAM;
+ }
+
+ return ret_val;
+}
+
+/*! \brief Destroys all resources that are specified by the given resource object list.
+ * \details This function triggers the destruction of all resources which are used by the given
+ * job. A resource will be destroyed only if it is not used by other valid resources.
+ * \param self Instance pointer
+ * \param resource_object_list[] Reference to array of references to INIC resource objects
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * ------------------------- | ------------------------------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_ALREADY_SET | Connection is already destroyed
+ * UCS_RET_ERR_NOT_AVAILABLE | Associated job not found
+ * UCS_RET_ERR_PARAM | Null pointer detected
+ * UCS_RET_ERR_API_LOCKED | API is currently locked
+ */
+Ucs_Return_t Xrm_Destroy(CExtendedResourceManager *self,
+ UCS_XRM_CONST Ucs_Xrm_ResObject_t *resource_object_list[])
+{
+ Ucs_Return_t ret_val = UCS_RET_SUCCESS;
+
+ if (self != NULL)
+ {
+ if(Xrm_IsApiFree(self) != false)
+ {
+ if(resource_object_list != NULL)
+ {
+ Xrm_ApiLocking(self, true);
+ self->current_job_ptr = Xrm_GetJob(self, resource_object_list);
+ if((self->current_job_ptr != NULL) &&
+ (self->current_job_ptr->resource_object_list_ptr != NULL))
+ {
+ Xrm_PreJobDestrResult_t result;
+
+ result = Xrm_PrepareJobDestruction(self);
+ if(result == XRM_PRE_JOB_DEST_TASKS_EXIST)
+ {
+ Xrm_DestroyResources(self, &Xrm_DestroyJobResourcesResultCb);
+ }
+ else if(result == XRM_PRE_JOB_DEST_DONE)
+ {
+ Srv_SetEvent(&self->xrm_srv, XRM_EVENT_NOTIFY_DESTROYED_JOB);
+ }
+ else if (result == XRM_PRE_JOB_DEST_BUSY)
+ {
+ Xrm_ApiLocking(self, false);
+ ret_val = UCS_RET_ERR_API_LOCKED;
+ }
+ else
+ {
+ Xrm_ApiLocking(self, false);
+ ret_val = UCS_RET_ERR_ALREADY_SET;
+ }
+ }
+ else
+ {
+ Xrm_ApiLocking(self, false);
+ ret_val = UCS_RET_ERR_NOT_AVAILABLE;
+ }
+ }
+ else
+ {
+ ret_val = UCS_RET_ERR_PARAM;
+ }
+ }
+ else
+ {
+ ret_val = UCS_RET_ERR_API_LOCKED;
+ }
+ }
+ else
+ {
+ /* This means that there is no instance associated to this job,
+ * what in turn means that the job is not available.
+ */
+ ret_val = UCS_RET_ERR_NOT_AVAILABLE;
+ }
+
+ return ret_val;
+}
+
+/*! \brief Prepares the destruction of INIC resources of the current job.
+ * \param self Instance pointer
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * ------------------------------- | ------------------------------------
+ * XRM_PRE_JOB_DEST_TASKS_EXIST | There are resources to destroy
+ * XRM_PRE_JOB_DEST_NO_TASKS_EXIST | All resources already destroyed
+ * XRM_PRE_JOB_DEST_DONE | Only shared resources affected. Invoke result callback immediately
+ * XRM_PRE_JOB_DEST_BUSY | Preparation of JobDestruction is currently not possible. Other resources are currently being destroyed
+ */
+Xrm_PreJobDestrResult_t Xrm_PrepareJobDestruction(CExtendedResourceManager *self)
+{
+ Xrm_PreJobDestrResult_t ret_val = XRM_PRE_JOB_DEST_BUSY;
+ if (self->inv_resource_handle_list_size == 0U)
+ {
+ ret_val = Xrm_UnsafePrepareJobDestruction(self);
+ }
+ return ret_val;
+}
+
+/*! \brief Prepares precariously the destruction of INIC resources of the current job (This was legacy code and is unsafe).
+ * \param self Instance pointer
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * ------------------------------- | ------------------------------------
+ * XRM_PRE_JOB_DEST_TASKS_EXIST | There are resources to destroy
+ * XRM_PRE_JOB_DEST_NO_TASKS_EXIST | All resources already destroyed
+ * XRM_PRE_JOB_DEST_DONE | Only shared resources affected. Invoke result callback immediately
+ */
+Xrm_PreJobDestrResult_t Xrm_UnsafePrepareJobDestruction(CExtendedResourceManager *self)
+{
+ uint8_t i;
+ uint16_t resource_handle;
+ Xrm_PreJobDestrResult_t ret_val = XRM_PRE_JOB_DEST_NO_TASKS_EXIST;
+ self->inv_resource_handle_index = 0U;
+ self->inv_resource_handle_list_size = 0U;
+ for(i=Xrm_CountResourceObjects(self, self->current_job_ptr); (i>0U) && (self->inv_resource_handle_list_size < XRM_NUM_RES_HDL_PER_ICM); i--)
+ {
+ uint8_t count = Xrm_CountResourceHandleEntries(self, self->current_job_ptr->resource_object_list_ptr[i - 1U]);
+ if(count == 1U)
+ {
+ resource_handle = Xrm_GetResourceHandle(self, self->current_job_ptr, self->current_job_ptr->resource_object_list_ptr[i - 1U], NULL);
+ if(resource_handle != XRM_INVALID_RESOURCE_HANDLE)
+ {
+ self->inv_resource_handle_list[self->inv_resource_handle_list_size] = resource_handle;
+ self->inv_resource_handle_list_size++;
+ ret_val = XRM_PRE_JOB_DEST_TASKS_EXIST;
+ }
+ }
+ else if(count > 0U)
+ {
+ Xrm_ReleaseResourceHandle(self, self->current_job_ptr, self->current_job_ptr->resource_object_list_ptr[i - 1U]);
+ ret_val = (ret_val == XRM_PRE_JOB_DEST_NO_TASKS_EXIST) ? XRM_PRE_JOB_DEST_DONE : ret_val;
+ }
+ }
+ return ret_val;
+}
+
+
+/*! \brief Resumes the destruction of all resources of the current job.
+ * \param self Instance pointer
+ */
+void Xrm_ResumeJobDestruction(CExtendedResourceManager *self)
+{
+ if(Xrm_UnsafePrepareJobDestruction(self) == XRM_PRE_JOB_DEST_TASKS_EXIST)
+ {
+ Xrm_DestroyResources(self, &Xrm_DestroyJobResourcesResultCb);
+ }
+ else
+ {
+ MISC_MEM_SET(&self->report_result, 0x00, sizeof(Ucs_Xrm_Result_t));
+ self->report_result.code = UCS_XRM_RES_SUCCESS_DESTROY;
+ Xrm_NotifyInvalidJobs(self);
+ Xrm_ApiLocking(self, false);
+ }
+}
+
+/*! \brief Returns the number of resource objects for the job that is identified by the given job
+ * reference.
+ * \param self Instance pointer
+ * \param job_ptr Reference to job
+ * \return Number of INIC resource objects of the desired job
+ */
+uint8_t Xrm_CountResourceObjects(CExtendedResourceManager *self, Xrm_Job_t *job_ptr)
+{
+ uint8_t num_resource_objects = 0U;
+ MISC_UNUSED(self);
+ while(job_ptr->resource_object_list_ptr[num_resource_objects] != NULL)
+ {
+ num_resource_objects++;
+ }
+
+ return num_resource_objects;
+}
+
+/*! \brief Returns the reference of the job that is identified by the given resource object list.
+ * \param self Instance pointer
+ * \param resource_object_list[] Reference to array of references to INIC resource objects
+ * \return Reference to the desired job if the job was found, otherwise NULL.
+ */
+Xrm_Job_t * Xrm_GetJob(CExtendedResourceManager *self,
+ UCS_XRM_CONST Ucs_Xrm_ResObject_t *resource_object_list[])
+{
+ Xrm_Job_t *ret_ptr = NULL;
+
+ ret_ptr = Xrmp_GetJob(self->xrmp_ptr, resource_object_list);
+ if (ret_ptr != NULL)
+ {
+ if ((!Dl_IsNodeInList(&self->job_list, &ret_ptr->node)) &&
+ (!Dln_IsNodePartOfAList(&ret_ptr->node)))
+ {
+ Dln_SetData(&ret_ptr->node, ret_ptr);
+ Dl_InsertTail(&self->job_list, &ret_ptr->node);
+ }
+ }
+
+ return ret_ptr;
+}
+
+/*! \brief Checks whether the given resource object list is part of the given Job
+ * \param job_ptr Reference to a job list
+ * \param resrc_obj_ptr Reference to array of references to INIC resource objects
+ * \return \c true if it's part of my job list, otherwise \c false.
+ */
+bool Xrm_IsPartOfJobList (void * job_ptr, void * resrc_obj_ptr)
+{
+ Xrm_Job_t *job_ptr_ = (Xrm_Job_t *)job_ptr;
+ bool ret_val = false;
+
+ if(job_ptr_->resource_object_list_ptr == (UCS_XRM_CONST Ucs_Xrm_ResObject_t **)resrc_obj_ptr)
+ {
+ ret_val = true;
+ }
+
+ return ret_val;
+}
+
+/*! \brief Checks whether the given resource object list is part of my Job list
+ * \param self Instance pointer
+ * \param resource_object_list[] Reference to array of references to INIC resource objects
+ * \return \c true if it's part of my job list, otherwise \c false.
+ */
+bool Xrm_IsInMyJobList(CExtendedResourceManager *self, UCS_XRM_CONST Ucs_Xrm_ResObject_t *resource_object_list[])
+{
+ return (NULL != Dl_Foreach(&self->job_list, &Xrm_IsPartOfJobList, (void *)resource_object_list));
+}
+
+/*! \brief Returns the table index of the given resource object.
+ * \param self Instance pointer
+ * \param job_ptr Reference to job
+ * \param obj_pptr Reference to array of references to INIC resource objects
+ * \return Table index of the given resource object. If entry is not found 0xFF is returned.
+ */
+uint8_t Xrm_GetResourceObjectIndex(CExtendedResourceManager *self,
+ Xrm_Job_t *job_ptr,
+ UCS_XRM_CONST Ucs_Xrm_ResObject_t **obj_pptr)
+{
+ return Xrmp_GetResourceHandleIdx(self->xrmp_ptr, job_ptr, obj_pptr);
+}
+
+/*! \brief Check if the current device is already attached respectively sync'ed.
+ * \param self Instance pointer
+ * \return \c true if no error occurred, otherwise \c false.
+ */
+bool Xrm_IsCurrDeviceAlreadyAttached(CExtendedResourceManager *self)
+{
+ bool ret_val = true;
+
+ if (Rsm_GetDevState(self->rsm_ptr) == RSM_DEV_UNSYNCED)
+ {
+ ret_val = false;
+ }
+
+ return ret_val;
+}
+
+/*! \brief Check if the current device is already attached respectively sync'ed.
+ * \param self XRM Instance pointer
+ * \param job_ptr Reference to the XRM job to be looked for
+ * \return \c true if the given job is part of my jobs_list, otherwise \c false.
+ */
+bool Xrm_IsInMyJobsList (void * self, void * job_ptr)
+{
+ CExtendedResourceManager *self_ = (CExtendedResourceManager *)self;
+ Xrm_Job_t *job_ptr_ = (Xrm_Job_t *)job_ptr;
+ bool ret_val = false;
+
+ if ((self_ != NULL) && (job_ptr_ != NULL) &&
+ (Dl_IsNodeInList(&self_->job_list, &job_ptr_->node)))
+ {
+ ret_val = true;
+ }
+
+ return ret_val;
+}
+
+/*! \brief Search for the next resource object to process.
+ * \param self Instance pointer
+ * \return \c true if no error occurred, otherwise \c false.
+ */
+bool Xrm_SearchNextResourceObject(CExtendedResourceManager *self)
+{
+ uint16_t tmp_resource_handle;
+ bool ret_val = true;
+
+ while(*self->current_obj_pptr != NULL)
+ {
+ if(Xrm_IsDefaultCreatedPort(self, *self->current_obj_pptr) != false)
+ {
+ self->current_obj_pptr++;
+ }
+ else
+ {
+ tmp_resource_handle = Xrm_GetResourceHandle(self, NULL, *self->current_obj_pptr, &Xrm_IsInMyJobsList);
+ if(tmp_resource_handle == XRM_INVALID_RESOURCE_HANDLE)
+ {
+ break;
+ }
+ else
+ {
+ if(Xrm_GetResourceHandle(self, self->current_job_ptr, *self->current_obj_pptr, NULL) == XRM_INVALID_RESOURCE_HANDLE)
+ {
+ if(Xrm_StoreResourceHandle(self, tmp_resource_handle, self->current_job_ptr, *self->current_obj_pptr) == false)
+ {
+ self->report_result.code = UCS_XRM_RES_ERR_CONFIG;
+ Xrm_HandleError(self);
+ TR_ERROR((self->base_ptr->ucs_user_ptr, "[XRM]", "Misconfiguration. Resource handle list is too small.", 0U));
+ ret_val = false;
+ }
+ }
+ self->current_obj_pptr++;
+ }
+ }
+ }
+
+ return ret_val;
+}
+
+/*! \brief Process the next INIC resource object in the resource object list of the current job.
+ * \param self Instance pointer
+ */
+void Xrm_ProcessJob(CExtendedResourceManager *self)
+{
+ if(Xrm_SearchNextResourceObject(self) != false)
+ {
+ if(*self->current_obj_pptr != NULL)
+ {
+ if (Xrm_IsCurrDeviceAlreadyAttached(self) == false)
+ {
+ (void)Xrm_RemoteDeviceAttach(self, XRM_EVENT_PROCESS);
+ }
+ else
+ {
+ switch(*(UCS_XRM_CONST Ucs_Xrm_ResourceType_t *)(UCS_XRM_CONST void*)(*self->current_obj_pptr))
+ {
+ case UCS_XRM_RC_TYPE_MOST_SOCKET:
+ Xrm_CreateMostSocket(self);
+ break;
+ case UCS_XRM_RC_TYPE_MLB_PORT:
+ Xrm_CreateMlbPort(self);
+ break;
+ case UCS_XRM_RC_TYPE_MLB_SOCKET:
+ Xrm_CreateMlbSocket(self);
+ break;
+ case UCS_XRM_RC_TYPE_USB_PORT:
+ Xrm_CreateUsbPort(self);
+ break;
+ case UCS_XRM_RC_TYPE_USB_SOCKET:
+ Xrm_CreateUsbSocket(self);
+ break;
+ case UCS_XRM_RC_TYPE_RMCK_PORT:
+ Xrm_CreateRmckPort(self);
+ break;
+ case UCS_XRM_RC_TYPE_STRM_PORT:
+ Xrm_CreateStreamPort(self);
+ break;
+ case UCS_XRM_RC_TYPE_STRM_SOCKET:
+ Xrm_CreateStreamSocket(self);
+ break;
+ case UCS_XRM_RC_TYPE_SYNC_CON:
+ Xrm_CreateSyncCon(self);
+ break;
+ case UCS_XRM_RC_TYPE_DFIPHASE_CON:
+ Xrm_CreateDfiPhaseCon(self);
+ break;
+ case UCS_XRM_RC_TYPE_COMBINER:
+ Xrm_CreateCombiner(self);
+ break;
+ case UCS_XRM_RC_TYPE_SPLITTER:
+ Xrm_CreateSplitter(self);
+ break;
+ case UCS_XRM_RC_TYPE_AVP_CON:
+ Xrm_CreateAvpCon(self);
+ break;
+ case UCS_XRM_RC_TYPE_QOS_CON:
+ Xrm_CreateQoSCon(self);
+ break;
+ default:
+ TR_ERROR((self->base_ptr->ucs_user_ptr, "[XRM]", "Unexpected Resource Type: 0x%02X", 1U, *(UCS_XRM_CONST Ucs_Xrm_ResourceType_t *)(UCS_XRM_CONST void*)(*self->current_obj_pptr)));
+ self->report_result.code = UCS_XRM_RES_ERR_CONFIG;
+ Xrm_HandleError(self);
+ break;
+ }
+ }
+ }
+ else
+ {
+ Xrm_FinishJob(self);
+ }
+ }
+}
+
+/*! \brief Checks if the given resource object is from type "Default Created Port".
+ * \param self Instance pointer
+ * \param resource_object_ptr Reference to the resource object
+ * \return Returns \c true if resource object is from type "Default Created Port", otherwise \c false.
+ */
+bool Xrm_IsDefaultCreatedPort(CExtendedResourceManager *self, UCS_XRM_CONST Ucs_Xrm_ResObject_t *resource_object_ptr)
+{
+ MISC_UNUSED(self);
+ return (*(UCS_XRM_CONST Ucs_Xrm_ResourceType_t *)(UCS_XRM_CONST void*)(resource_object_ptr) == UCS_XRM_RC_TYPE_DC_PORT);
+}
+
+/*! \brief Stores the given resource handle in the resource handle list.
+ * \param self Instance pointer
+ * \param resource_handle Resource handle to save
+ * \param job_ptr Reference to job
+ * \param resource_object_ptr Reference to resource object
+ * \return \c true if free slot in handle list was found, otherwise \c false
+ */
+bool Xrm_StoreResourceHandle(CExtendedResourceManager *self,
+ uint16_t resource_handle,
+ Xrm_Job_t *job_ptr,
+ UCS_XRM_CONST Ucs_Xrm_ResObject_t *resource_object_ptr)
+{
+ return Xrmp_StoreResourceHandle(self->xrmp_ptr, resource_handle, job_ptr, resource_object_ptr);
+}
+
+/*! \brief Retrieves the resource handle identified by the given job reference and the given
+ * resource object reference.
+ * \param self Instance pointer
+ * \param job_ptr Reference to the job. Use NULL as wildcard.
+ * \param resource_object_ptr Reference to the resource object
+ * \param func_ptr Reference to a function that checks if found jobs by XRMP belongs to our own job list
+ * \return Resource handle if handle was found, otherwise XRM_INVALID_RESOURCE_HANDLE.
+ */
+uint16_t Xrm_GetResourceHandle(CExtendedResourceManager *self,
+ Xrm_Job_t *job_ptr,
+ UCS_XRM_CONST Ucs_Xrm_ResObject_t *resource_object_ptr, Xrmp_CheckJobListFunc_t func_ptr)
+{
+ return Xrmp_GetResourceHandle(self->xrmp_ptr, job_ptr, resource_object_ptr, func_ptr, self);
+}
+
+/*! \brief Checks for the resource handle in the given resource handle list and counts It if found.
+ * \param resrc_ptr Reference to the resource handle list to be looked for.
+ * \param job_ptr Reference to the job list to be looked for.
+ * \param param_ptr Reference to the user parameter.
+ * \param user_arg Reference to the user argument.
+ * \return \c false to continue the for-each-loop of the resources list queue.
+ */
+bool Xrm_IncrResHandleEntryCnt (void *resrc_ptr, void *job_ptr, void *param_ptr, void * user_arg)
+{
+ Xrm_ResourceHandleListItem_t * resrc_ptr_ = (Xrm_ResourceHandleListItem_t *)resrc_ptr;
+ Xrm_Job_t * job_ptr_ = (Xrm_Job_t *)job_ptr;
+ Xrm_CntEntriesResHandle_t * param_ptr_ = (Xrm_CntEntriesResHandle_t *)param_ptr;
+ MISC_UNUSED(user_arg);
+
+ if((resrc_ptr_->resource_handle != XRM_INVALID_RESOURCE_HANDLE) &&
+ (resrc_ptr_->job_ptr == job_ptr_) &&
+ (resrc_ptr_->resource_object_ptr == param_ptr_->resource_object_ptr))
+ {
+ (*param_ptr_->cnt_res)++;
+ }
+
+ return false;
+}
+
+/*! \brief Finds the resource handle to be counted in my job list and pass it to the record callback function .
+ * \param job_ptr Reference to the job to be looked for.
+ * \param param_ptr Reference to the user parameter.
+ * \return \c false to continue the for-each-loop of the job_list queue
+ */
+bool Xrm_CntResHandleEntries(void * job_ptr, void * param_ptr)
+{
+ Xrm_CntEntriesResHandle_t * param_ptr_ = (Xrm_CntEntriesResHandle_t *)param_ptr;
+
+ Xrmp_Foreach(param_ptr_->xrm_inst->xrmp_ptr, &Xrm_IncrResHandleEntryCnt, job_ptr, param_ptr_, NULL);
+
+ return false;
+}
+
+/*! \brief Retrieves the number of list entries that uses the given resource handle.
+ * \param self Instance pointer
+ * \param resource_object_ptr Reference to the current resource object
+ * \return Number of list entries
+ */
+uint8_t Xrm_CountResourceHandleEntries(CExtendedResourceManager *self,
+ UCS_XRM_CONST Ucs_Xrm_ResObject_t *resource_object_ptr)
+{
+ uint8_t ret_val = 0U;
+ Xrm_CntEntriesResHandle_t cnt_entry_param;
+ cnt_entry_param.xrm_inst = self;
+ cnt_entry_param.cnt_res = &ret_val;
+ cnt_entry_param.resource_object_ptr = resource_object_ptr;
+
+ (void)Dl_Foreach(&self->job_list, &Xrm_CntResHandleEntries, &cnt_entry_param);
+
+ return ret_val;
+}
+
+/*! \brief Releases the given resource handle.
+ * \param resrc_ptr Reference to the resource handle list to be looked for.
+ * \param job_ptr Reference to the job list to be looked for.
+ * \param resrc_obj_pptr Reference to the resource object to be looked for.
+ * \param user_arg Reference to the user argument
+ * \return \c true to stop the foreach loop when the resource handle has been found, otherwise \c false
+ */
+bool Xrm_ReleaseResrcHandle(void *resrc_ptr, void *job_ptr, void *resrc_obj_pptr, void * user_arg)
+{
+ bool ret_val = false;
+ Xrm_ResourceHandleListItem_t * resrc_ptr_ = (Xrm_ResourceHandleListItem_t *)resrc_ptr;
+ Xrm_Job_t * job_ptr_ = (Xrm_Job_t *)job_ptr;
+ UCS_XRM_CONST Ucs_Xrm_ResObject_t *resrc_obj_ptr_ = *(UCS_XRM_CONST Ucs_Xrm_ResObject_t **)resrc_obj_pptr;
+ MISC_UNUSED(user_arg);
+
+ if((resrc_ptr_->job_ptr == job_ptr_) &&
+ (resrc_ptr_->resource_object_ptr == resrc_obj_ptr_))
+ {
+ resrc_ptr_->resource_handle = XRM_INVALID_RESOURCE_HANDLE;
+ resrc_ptr_->job_ptr = NULL;
+ resrc_ptr_->resource_object_ptr = NULL;
+ ret_val = true;
+ }
+
+ return ret_val;
+}
+
+/*! \brief Releases the given resource handle. Frees the corresponding table row.
+ * \param self Instance pointer
+ * \param job_ptr Reference to the job
+ * \param resource_object_ptr Reference to the resource object
+ */
+void Xrm_ReleaseResourceHandle(CExtendedResourceManager *self,
+ Xrm_Job_t *job_ptr,
+ UCS_XRM_CONST Ucs_Xrm_ResObject_t *resource_object_ptr)
+{
+ void * resource_object_pptr = (void *)&resource_object_ptr;
+ Xrmp_Foreach(self->xrmp_ptr, &Xrm_ReleaseResrcHandle, job_ptr, resource_object_pptr, NULL);
+}
+
+/*! \brief Releases the given resource and sets the notification to \c true.
+ * \param resrc_ptr Reference to the resource handle list to be looked for.
+ * \param resrc_handle Reference to the resource handle to be found.
+ * \param job_ptr Reference to the job to be looked for.
+ * \param user_arg Reference to a user argument.
+ * \return \c false to continue the for-each-loop of the resources list table
+ */
+bool Xrm_FreeResrcHandleAndNtf(void *resrc_ptr, void *resrc_handle, void *job_ptr, void * user_arg)
+{
+ Xrm_ResourceHandleListItem_t * resrc_ptr_ = (Xrm_ResourceHandleListItem_t *)resrc_ptr;
+ uint16_t * resrc_handle_ = (uint16_t *)resrc_handle;
+ Xrm_Job_t * job_ptr_ = (Xrm_Job_t *)job_ptr;
+ CExtendedResourceManager *self = (CExtendedResourceManager *) user_arg;
+
+ if((resrc_ptr_->resource_handle == *resrc_handle_) &&
+ (*resrc_handle_ != XRM_INVALID_RESOURCE_HANDLE) &&
+ ((resrc_ptr_->job_ptr == job_ptr_) ||
+ (Dl_IsNodeInList(&self->job_list, &resrc_ptr_->job_ptr->node))))
+ {
+ resrc_ptr_->job_ptr->notify = true;
+ resrc_ptr_->job_ptr->valid = false;
+ resrc_ptr_->resource_handle = XRM_INVALID_RESOURCE_HANDLE;
+ resrc_ptr_->job_ptr = NULL;
+
+ if (self->res_debugging_fptr != NULL)
+ {
+ self->res_debugging_fptr(*(UCS_XRM_CONST Ucs_Xrm_ResourceType_t *)(UCS_XRM_CONST void*)(resrc_ptr_->resource_object_ptr),
+ resrc_ptr_->resource_object_ptr, UCS_XRM_INFOS_DESTROYED, self->current_job_ptr->user_arg, self->base_ptr->ucs_user_ptr);
+ }
+
+ resrc_ptr_->resource_object_ptr = NULL;
+ }
+
+ return false;
+}
+
+/*! \brief Releases all given resource handles. Frees the corresponding table rows. Marks the
+ * corresponding job(s) as invalid and sets the notification flag.
+ * \param self Instance pointer
+ * \param job_ptr Reference to the job. Use NULL as wildcard.
+ * \param resource_handle_list Resource handle list
+ * \param resource_handle_list_size Size of list resource_handle_list[]
+ * \param failed_resource_handle This parameter can be used to specify where the release
+ * process has to be stopped. All resource handles prior to
+ * the failed handle are released. If this feature is not
+ * used \c failed_resource_handle must be set to
+ * \ref XRM_INVALID_RESOURCE_HANDLE.
+ * \return the index of the resource where the release process has stopped.
+ */
+uint8_t Xrm_ReleaseResourceHandles(CExtendedResourceManager *self,
+ Xrm_Job_t *job_ptr,
+ uint16_t resource_handle_list[],
+ uint8_t resource_handle_list_size,
+ uint16_t failed_resource_handle)
+{
+ uint8_t i;
+
+ for(i=0U; i<resource_handle_list_size; i++)
+ {
+ if((failed_resource_handle != XRM_INVALID_RESOURCE_HANDLE) &&
+ (resource_handle_list[i] == failed_resource_handle))
+ {
+ break;
+ }
+
+ Xrmp_Foreach(self->xrmp_ptr, &Xrm_FreeResrcHandleAndNtf, &resource_handle_list[i], job_ptr, self);
+ }
+
+ return i;
+}
+
+/*! \brief Releases all resource handles created on remote devices. Frees the corresponding table rows. Marks the
+ * corresponding job(s) as invalid and sets the notification flag.
+ * \param self Instance pointer
+ */
+void Xrm_ReleaseResrcHandles(CExtendedResourceManager *self)
+{
+ if(Xrm_IsApiFree(self) != false)
+ {
+ Xrm_ApiLocking(self, true);
+
+ Xrm_MarkResrcAndJobsAsInvalid(self);
+ Xrm_NotifyInvalidJobs(self);
+ Xrm_ApiLocking(self, false);
+ }
+ else
+ {
+ Srv_SetEvent(&self->xrm_srv, XRM_EVENT_NOTIFY_AUTO_DEST_RESR);
+ }
+}
+
+/*! \brief Handles and reports Extended Resource Manager errors.
+ * \param self Instance pointer
+ */
+void Xrm_HandleError(CExtendedResourceManager *self)
+{
+ self->current_job_ptr->valid = false;
+ self->current_job_ptr->notify = false;
+ self->current_job_ptr->report_fptr(Inic_GetTargetAddress(self->inic_ptr), XRM_INVALID_CONNECTION_LABEL, self->report_result, self->current_job_ptr->user_arg);
+ Xrm_ApiLocking(self, false);
+}
+
+/*! \brief Reports result of automatically destroyed resources
+ * \param self Instance pointer
+ */
+void Xrm_ReportAutoDestructionResult(CExtendedResourceManager *self)
+{
+ MISC_MEM_SET(&self->report_result, 0x00, sizeof(Ucs_Xrm_Result_t));
+ self->report_result.code = UCS_XRM_RES_RC_AUTO_DESTROYED;
+ Xrm_NotifyInvalidJobs(self);
+ Xrm_ApiLocking(self, false);
+}
+
+/*! \brief Reports result of resource destruction for a specific XRM job
+ * \param self Instance pointer
+ */
+void Xrm_ReportJobDestructionResult(CExtendedResourceManager *self)
+{
+ MISC_MEM_SET(&self->report_result, 0x00, sizeof(Ucs_Xrm_Result_t));
+ self->report_result.code = UCS_XRM_RES_SUCCESS_DESTROY;
+ self->current_job_ptr->notify = true;
+ Xrm_NotifyInvalidJobs(self);
+ Xrm_ApiLocking(self, false);
+}
+
+/*! \brief Reports the conclusion of Extended Resource Manager jobs.
+ * \param self Instance pointer
+ */
+void Xrm_FinishJob(CExtendedResourceManager *self)
+{
+ MISC_MEM_SET(&self->report_result, 0x00, sizeof(Ucs_Xrm_Result_t));
+ self->report_result.code = UCS_XRM_RES_SUCCESS_BUILD;
+ self->current_job_ptr->report_fptr(Inic_GetTargetAddress(self->inic_ptr), self->current_job_ptr->connection_label, self->report_result, self->current_job_ptr->user_arg);
+ Xrm_ApiLocking(self, false);
+}
+
+/*! \brief Marks the given resource as invalid and sets the notification.
+ * \param resrc_ptr Reference to the resource handle list to be looked for.
+ * \param xrm_inst Reference to the XRM instance to be looked for.
+ * \param ud_ptr2 Optional reference to the user data 2. Not used !
+ * \param ud_ptr3 Optional reference to the user data 3. Not used !
+ * \return \c false to continue the for-each-loop of the job_list queue
+ */
+bool Xrm_MarkThisResrcAsInvalid (void *resrc_ptr, void * xrm_inst, void *ud_ptr2, void *ud_ptr3)
+{
+ Xrm_ResourceHandleListItem_t * resrc_ptr_ = (Xrm_ResourceHandleListItem_t *)resrc_ptr;
+ CExtendedResourceManager * xrm_inst_ = (CExtendedResourceManager *)xrm_inst;
+ MISC_UNUSED(ud_ptr2);
+ MISC_UNUSED(ud_ptr3);
+
+ if (Dl_IsNodeInList(&xrm_inst_->job_list, &resrc_ptr_->job_ptr->node))
+ {
+ if (resrc_ptr_->job_ptr->valid == true)
+ {
+ resrc_ptr_->job_ptr->valid = false;
+ resrc_ptr_->job_ptr->notify = true;
+ }
+
+ /* Inform monitor callback function */
+ if (xrm_inst_->res_debugging_fptr != NULL)
+ {
+ xrm_inst_->res_debugging_fptr(*(UCS_XRM_CONST Ucs_Xrm_ResourceType_t *)(UCS_XRM_CONST void*)(resrc_ptr_->resource_object_ptr),
+ resrc_ptr_->resource_object_ptr, UCS_XRM_INFOS_DESTROYED, xrm_inst_->current_job_ptr->user_arg, xrm_inst_->base_ptr->ucs_user_ptr);
+ }
+
+ resrc_ptr_->resource_handle = XRM_INVALID_RESOURCE_HANDLE;
+ resrc_ptr_->job_ptr = NULL;
+ resrc_ptr_->resource_object_ptr = NULL;
+ }
+
+ return false;
+}
+
+/*! \brief Marks all jobs on remote devices as "invalid".
+ * \param self Instance pointer
+ */
+void Xrm_MarkResrcAndJobsAsInvalid (CExtendedResourceManager *self)
+{
+ Xrmp_Foreach(self->xrmp_ptr, &Xrm_MarkThisResrcAsInvalid, self, NULL, NULL);
+
+ self->report_result.code = UCS_XRM_RES_RC_AUTO_DESTROYED;
+}
+
+/*! \brief Calls the result callbacks of jobs that were marked as invalid.
+ * \param job_ptr Reference to the job to be looked for.
+ * \param xrm_inst XRM Instance pointer.
+ * \return \c false to continue the for-each-loop of the job_list queue
+ */
+bool Xrm_SetJobAsInvalid(void * job_ptr, void * xrm_inst)
+{
+ Xrm_Job_t *job_ptr_ = (Xrm_Job_t *)job_ptr;
+ CExtendedResourceManager * xrm_inst_ = (CExtendedResourceManager *)xrm_inst;
+
+ if(job_ptr_->notify != false)
+ {
+ job_ptr_->report_fptr(Inic_GetTargetAddress(xrm_inst_->inic_ptr), job_ptr_->connection_label, xrm_inst_->report_result, job_ptr_->user_arg);
+ job_ptr_->notify = false;
+ }
+
+ return false;
+}
+
+/*! \brief Calls the result callbacks of jobs that were marked as invalid.
+ * \param self Instance pointer
+ */
+void Xrm_NotifyInvalidJobs(CExtendedResourceManager *self)
+{
+ (void)Dl_Foreach(&self->job_list, &Xrm_SetJobAsInvalid, self);
+}
+
+/*! \brief Sets the monitoring callback for XRM resources.
+ * \param self Reference to the XRM Instance to be looked for.
+ * \param dbg_cb_fn Debug callback function to set.
+ */
+void Xrm_SetResourceDebugCbFn(CExtendedResourceManager *self, Ucs_Xrm_ResourceDebugCb_t dbg_cb_fn)
+{
+ if ((self != NULL) && (dbg_cb_fn != NULL))
+ {
+ self->res_debugging_fptr = dbg_cb_fn;
+ }
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_xrm_res.c b/ucs2-lib/src/ucs_xrm_res.c
new file mode 100644
index 0000000..900671d
--- /dev/null
+++ b/ucs2-lib/src/ucs_xrm_res.c
@@ -0,0 +1,1443 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of the Extended Resource Manager. This file contains the implementation of
+ * the INIC Resource Management functions and result/error handlers.
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_UCS_XRM_INT
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_xrm.h"
+#include "ucs_xrm_pv.h"
+#include "ucs_xrm_cfg.h"
+#include "ucs_misc.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Internal prototypes */
+/*------------------------------------------------------------------------------------------------*/
+static uint16_t Xrm_CreatePortHandle(CExtendedResourceManager *self,
+ Ucs_Xrm_PortType_t port_type,
+ uint8_t index);
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation of class CExtendedResourceManager (Handling of resource objects) */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Creates the corresponding INIC port handle depending on the given port type and the
+ * given port instance id.
+ * \param self Instance pointer
+ * \param port_type Type of the port
+ * \param index Port instance id
+ * \return Returns the created INIC port handle.
+ */
+static uint16_t Xrm_CreatePortHandle(CExtendedResourceManager *self,
+ Ucs_Xrm_PortType_t port_type,
+ uint8_t index)
+{
+ MISC_UNUSED(self);
+ return ((uint16_t)((uint16_t)port_type << 8) | (uint16_t)index);
+}
+
+/*! \brief Activates remote synchronization on the current device
+ * \param self Instance pointer
+ * \param next_set_event Next event to set once the remote synchronization succeeded
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * ------------------------- | ------------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_BUFFER_OVERFLOW | no message buffer available
+ */
+extern Ucs_Return_t Xrm_RemoteDeviceAttach (CExtendedResourceManager *self, Srv_Event_t next_set_event)
+{
+ Ucs_Return_t result;
+
+ result = Rsm_SyncDev(self->rsm_ptr, self, &Xrm_RmtDevAttachResultCb);
+
+ if(result == UCS_RET_SUCCESS)
+ {
+ self->queued_event_mask |= next_set_event;
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[XRM]", "Start Synchronization of remote device", 0U));
+ }
+ else if(result == UCS_RET_ERR_BUFFER_OVERFLOW)
+ {
+ Xrm_WaitForTxMsgObj(self, next_set_event);
+ }
+
+ return result;
+}
+
+/*! \brief Triggers the creation of a MOST socket.
+ * \param self Instance pointer
+ */
+void Xrm_CreateMostSocket(CExtendedResourceManager *self)
+{
+ UCS_XRM_CONST Ucs_Xrm_MostSocket_t *cfg_ptr = (UCS_XRM_CONST Ucs_Xrm_MostSocket_t *)(UCS_XRM_CONST void*)(*self->current_obj_pptr);
+ uint16_t con_label = (cfg_ptr->direction == UCS_SOCKET_DIR_INPUT) ? self->current_job_ptr->most_network_connection_label : 0xFFFFU;
+ Ucs_Return_t result = Inic_MostSocketCreate(self->inic_ptr,
+ cfg_ptr->most_port_handle,
+ cfg_ptr->direction,
+ cfg_ptr->data_type,
+ cfg_ptr->bandwidth,
+ con_label,
+ &self->obs.std_result_obs);
+ if(result == UCS_RET_SUCCESS)
+ {
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[XRM]", "Start creating MOST socket", 0U));
+ }
+ else if(result == UCS_RET_ERR_BUFFER_OVERFLOW)
+ {
+ Xrm_WaitForTxMsgObj(self, XRM_EVENT_PROCESS);
+ }
+ else
+ {
+ self->report_result.code = UCS_XRM_RES_ERR_BUILD;
+ self->report_result.details.resource_type = UCS_XRM_RC_TYPE_MOST_SOCKET;
+ self->report_result.details.resource_index = Xrm_GetResourceObjectIndex(self,
+ self->current_job_ptr,
+ self->current_obj_pptr);
+ self->report_result.details.result_type = UCS_XRM_RESULT_TYPE_INT;
+ self->report_result.details.int_result = result;
+ Xrm_HandleError(self);
+ TR_ERROR((self->base_ptr->ucs_user_ptr, "[XRM]", "Start creating MOST socket failed. Return value: 0x%02X", 1U, result));
+ }
+}
+
+/*! \brief Triggers the creation of the MediaLB port.
+ * \param self Instance pointer
+ */
+void Xrm_CreateMlbPort(CExtendedResourceManager *self)
+{
+ UCS_XRM_CONST Ucs_Xrm_MlbPort_t *cfg_ptr = (UCS_XRM_CONST Ucs_Xrm_MlbPort_t *)(UCS_XRM_CONST void*)(*self->current_obj_pptr);
+ Ucs_Return_t result = Inic_MlbPortCreate(self->inic_ptr,
+ cfg_ptr->index,
+ cfg_ptr->clock_config,
+ &self->obs.std_result_obs);
+ if(result == UCS_RET_SUCCESS)
+ {
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[XRM]", "Start creating MediaLB port", 0U));
+ }
+ else if(result == UCS_RET_ERR_BUFFER_OVERFLOW)
+ {
+ Xrm_WaitForTxMsgObj(self, XRM_EVENT_PROCESS);
+ }
+ else
+ {
+ self->report_result.code = UCS_XRM_RES_ERR_BUILD;
+ self->report_result.details.resource_type = UCS_XRM_RC_TYPE_MLB_PORT;
+ self->report_result.details.resource_index = Xrm_GetResourceObjectIndex(self,
+ self->current_job_ptr,
+ self->current_obj_pptr);
+ self->report_result.details.result_type = UCS_XRM_RESULT_TYPE_INT;
+ self->report_result.details.int_result = result;
+ Xrm_HandleError(self);
+ TR_ERROR((self->base_ptr->ucs_user_ptr, "[XRM]", "Start creating MediaLB port failed. Return value: 0x%02X", 1U, result));
+ }
+}
+
+/*! \brief Triggers the creation of a MediaLB socket.
+ * \param self Instance pointer
+ */
+void Xrm_CreateMlbSocket(CExtendedResourceManager *self)
+{
+ Ucs_Return_t result;
+ uint16_t mlb_port_handle;
+ UCS_XRM_CONST Ucs_Xrm_MlbSocket_t *cfg_ptr = (UCS_XRM_CONST Ucs_Xrm_MlbSocket_t *)(UCS_XRM_CONST void*)(*self->current_obj_pptr);
+ if(Xrm_IsDefaultCreatedPort(self, cfg_ptr->mlb_port_obj_ptr) != false)
+ {
+ mlb_port_handle = Xrm_CreatePortHandle(self,
+ UCS_XRM_PORT_TYPE_MLB,
+ ((UCS_XRM_CONST Ucs_Xrm_DefaultCreatedPort_t *)(UCS_XRM_CONST void*)(cfg_ptr->mlb_port_obj_ptr))->index);
+ }
+ else
+ {
+ mlb_port_handle= Xrm_GetResourceHandle(self, self->current_job_ptr, cfg_ptr->mlb_port_obj_ptr, NULL);
+ }
+ result = Inic_MlbSocketCreate(self->inic_ptr,
+ mlb_port_handle,
+ cfg_ptr->direction,
+ cfg_ptr->data_type,
+ cfg_ptr->bandwidth,
+ cfg_ptr->channel_address,
+ &self->obs.std_result_obs);
+ if(result == UCS_RET_SUCCESS)
+ {
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[XRM]", "Start creating MediaLB socket", 0U));
+ }
+ else if(result == UCS_RET_ERR_BUFFER_OVERFLOW)
+ {
+ Xrm_WaitForTxMsgObj(self, XRM_EVENT_PROCESS);
+ }
+ else
+ {
+ self->report_result.code = UCS_XRM_RES_ERR_BUILD;
+ self->report_result.details.resource_type = UCS_XRM_RC_TYPE_MLB_SOCKET;
+ self->report_result.details.resource_index = Xrm_GetResourceObjectIndex(self,
+ self->current_job_ptr,
+ self->current_obj_pptr);
+ self->report_result.details.result_type = UCS_XRM_RESULT_TYPE_INT;
+ self->report_result.details.int_result = result;
+ Xrm_HandleError(self);
+ TR_ERROR((self->base_ptr->ucs_user_ptr, "[XRM]", "Start creating MediaLB socket failed. Return value: 0x%02X", 1U, result));
+ }
+}
+
+/*! \brief Triggers the creation of the USB port.
+ * \param self Instance pointer
+ */
+void Xrm_CreateUsbPort(CExtendedResourceManager *self)
+{
+ UCS_XRM_CONST Ucs_Xrm_UsbPort_t *cfg_ptr = (UCS_XRM_CONST Ucs_Xrm_UsbPort_t *)(UCS_XRM_CONST void*)(*self->current_obj_pptr);
+ Ucs_Return_t result = Inic_UsbPortCreate(self->inic_ptr,
+ cfg_ptr->index,
+ cfg_ptr->physical_layer,
+ cfg_ptr->devices_interfaces,
+ cfg_ptr->streaming_if_ep_out_count,
+ cfg_ptr->streaming_if_ep_in_count,
+ &self->obs.std_result_obs);
+ if(result == UCS_RET_SUCCESS)
+ {
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[XRM]", "Start creating USB port", 0U));
+ }
+ else if(result == UCS_RET_ERR_BUFFER_OVERFLOW)
+ {
+ Xrm_WaitForTxMsgObj(self, XRM_EVENT_PROCESS);
+ }
+ else
+ {
+ self->report_result.code = UCS_XRM_RES_ERR_BUILD;
+ self->report_result.details.resource_type = UCS_XRM_RC_TYPE_USB_PORT;
+ self->report_result.details.resource_index = Xrm_GetResourceObjectIndex(self,
+ self->current_job_ptr,
+ self->current_obj_pptr);
+ self->report_result.details.result_type = UCS_XRM_RESULT_TYPE_INT;
+ self->report_result.details.int_result = result;
+ Xrm_HandleError(self);
+ TR_ERROR((self->base_ptr->ucs_user_ptr, "[XRM]", "Start creating USB port failed. Return value: 0x%02X", 1U, result));
+ }
+}
+
+/*! \brief Triggers the creation of a USB socket.
+ * \param self Instance pointer
+ */
+void Xrm_CreateUsbSocket(CExtendedResourceManager *self)
+{
+ Ucs_Return_t result;
+ uint16_t usb_port_handle;
+ UCS_XRM_CONST Ucs_Xrm_UsbSocket_t *cfg_ptr = (UCS_XRM_CONST Ucs_Xrm_UsbSocket_t *)(UCS_XRM_CONST void*)(*self->current_obj_pptr);
+ if(Xrm_IsDefaultCreatedPort(self, cfg_ptr->usb_port_obj_ptr) != false)
+ {
+ usb_port_handle = Xrm_CreatePortHandle(self,
+ UCS_XRM_PORT_TYPE_USB,
+ ((UCS_XRM_CONST Ucs_Xrm_DefaultCreatedPort_t *)(UCS_XRM_CONST void*)(cfg_ptr->usb_port_obj_ptr))->index);
+ }
+ else
+ {
+ usb_port_handle = Xrm_GetResourceHandle(self, self->current_job_ptr, cfg_ptr->usb_port_obj_ptr, NULL);
+ }
+ result = Inic_UsbSocketCreate(self->inic_ptr,
+ usb_port_handle,
+ cfg_ptr->direction,
+ cfg_ptr->data_type,
+ cfg_ptr->end_point_addr,
+ cfg_ptr->frames_per_transfer,
+ &self->obs.std_result_obs);
+ if(result == UCS_RET_SUCCESS)
+ {
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[XRM]", "Start creating USB socket", 0U));
+ }
+ else if(result == UCS_RET_ERR_BUFFER_OVERFLOW)
+ {
+ Xrm_WaitForTxMsgObj(self, XRM_EVENT_PROCESS);
+ }
+ else
+ {
+ self->report_result.code = UCS_XRM_RES_ERR_BUILD;
+ self->report_result.details.resource_type = UCS_XRM_RC_TYPE_USB_SOCKET;
+ self->report_result.details.resource_index = Xrm_GetResourceObjectIndex(self,
+ self->current_job_ptr,
+ self->current_obj_pptr);
+ self->report_result.details.result_type = UCS_XRM_RESULT_TYPE_INT;
+ self->report_result.details.int_result = result;
+ Xrm_HandleError(self);
+ TR_ERROR((self->base_ptr->ucs_user_ptr, "[XRM]", "Start creating USB socket failed. Return value: 0x%02X", 1U, result));
+ }
+}
+
+/*! \brief Triggers the creation of the RMCK port.
+ * \param self Instance pointer
+ */
+void Xrm_CreateRmckPort(CExtendedResourceManager *self)
+{
+ UCS_XRM_CONST Ucs_Xrm_RmckPort_t *cfg_ptr = (UCS_XRM_CONST Ucs_Xrm_RmckPort_t *)(UCS_XRM_CONST void*)(*self->current_obj_pptr);
+ Ucs_Return_t result = Inic_RmckPortCreate(self->inic_ptr,
+ cfg_ptr->index,
+ cfg_ptr->clock_source,
+ cfg_ptr->divisor,
+ &self->obs.std_result_obs);
+ if(result == UCS_RET_SUCCESS)
+ {
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[XRM]", "Start creating RMCK port", 0U));
+ }
+ else if(result == UCS_RET_ERR_BUFFER_OVERFLOW)
+ {
+ Xrm_WaitForTxMsgObj(self, XRM_EVENT_PROCESS);
+ }
+ else
+ {
+ self->report_result.code = UCS_XRM_RES_ERR_BUILD;
+ self->report_result.details.resource_type = UCS_XRM_RC_TYPE_RMCK_PORT;
+ self->report_result.details.resource_index = Xrm_GetResourceObjectIndex(self,
+ self->current_job_ptr,
+ self->current_obj_pptr);
+ self->report_result.details.result_type = UCS_XRM_RESULT_TYPE_INT;
+ self->report_result.details.int_result = result;
+ Xrm_HandleError(self);
+ TR_ERROR((self->base_ptr->ucs_user_ptr, "[XRM]", "Start creating RMCK port failed. Return value: 0x%02X", 1U, result));
+ }
+}
+
+/*! \brief Triggers the creation of a streaming port.
+ * \param self Instance pointer
+ */
+void Xrm_CreateStreamPort(CExtendedResourceManager *self)
+{
+ UCS_XRM_CONST Ucs_Xrm_StrmPort_t *cfg_ptr = (UCS_XRM_CONST Ucs_Xrm_StrmPort_t *)(UCS_XRM_CONST void*)(*self->current_obj_pptr);
+ Ucs_Return_t result = Inic_StreamPortCreate(self->inic_ptr,
+ cfg_ptr->index,
+ cfg_ptr->clock_config,
+ cfg_ptr->data_alignment,
+ &self->obs.std_result_obs);
+ if(result == UCS_RET_SUCCESS)
+ {
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[XRM]", "Start creating streaming port", 0U));
+ }
+ else if(result == UCS_RET_ERR_BUFFER_OVERFLOW)
+ {
+ Xrm_WaitForTxMsgObj(self, XRM_EVENT_PROCESS);
+ }
+ else
+ {
+ self->report_result.code = UCS_XRM_RES_ERR_BUILD;
+ self->report_result.details.resource_type = UCS_XRM_RC_TYPE_STRM_PORT;
+ self->report_result.details.resource_index = Xrm_GetResourceObjectIndex(self,
+ self->current_job_ptr,
+ self->current_obj_pptr);
+ self->report_result.details.result_type = UCS_XRM_RESULT_TYPE_INT;
+ self->report_result.details.int_result = result;
+ Xrm_HandleError(self);
+ TR_ERROR((self->base_ptr->ucs_user_ptr, "[XRM]", "Start creating streaming port failed. Return value: 0x%02X", 1U, result));
+ }
+}
+
+/*! \brief Triggers the creation of a streaming data socket.
+ * \param self Instance pointer
+ */
+void Xrm_CreateStreamSocket(CExtendedResourceManager *self)
+{
+ Ucs_Return_t result;
+ uint16_t stream_port_handle;
+ UCS_XRM_CONST Ucs_Xrm_StrmSocket_t *cfg_ptr = (UCS_XRM_CONST Ucs_Xrm_StrmSocket_t *)(UCS_XRM_CONST void*)(*self->current_obj_pptr);
+ if(Xrm_IsDefaultCreatedPort(self, cfg_ptr->stream_port_obj_ptr) != false)
+ {
+ stream_port_handle = Xrm_CreatePortHandle(self,
+ UCS_XRM_PORT_TYPE_STRM,
+ ((UCS_XRM_CONST Ucs_Xrm_DefaultCreatedPort_t *)(UCS_XRM_CONST void*)(cfg_ptr->stream_port_obj_ptr))->index);
+ }
+ else
+ {
+ stream_port_handle = Xrm_GetResourceHandle(self, self->current_job_ptr, cfg_ptr->stream_port_obj_ptr, NULL);
+ }
+ result = Inic_StreamSocketCreate(self->inic_ptr,
+ stream_port_handle,
+ cfg_ptr->direction,
+ cfg_ptr->data_type,
+ cfg_ptr->bandwidth,
+ cfg_ptr->stream_pin_id,
+ &self->obs.std_result_obs);
+ if(result == UCS_RET_SUCCESS)
+ {
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[XRM]", "Start creating streaming data socket", 0U));
+ }
+ else if(result == UCS_RET_ERR_BUFFER_OVERFLOW)
+ {
+ Xrm_WaitForTxMsgObj(self, XRM_EVENT_PROCESS);
+ }
+ else
+ {
+ self->report_result.code = UCS_XRM_RES_ERR_BUILD;
+ self->report_result.details.resource_type = UCS_XRM_RC_TYPE_STRM_SOCKET;
+ self->report_result.details.resource_index = Xrm_GetResourceObjectIndex(self,
+ self->current_job_ptr,
+ self->current_obj_pptr);
+ self->report_result.details.result_type = UCS_XRM_RESULT_TYPE_INT;
+ self->report_result.details.int_result = result;
+ Xrm_HandleError(self);
+ TR_ERROR((self->base_ptr->ucs_user_ptr, "[XRM]", "Start creating streaming data socket failed. Return value: 0x%02X", 1U, result));
+ }
+}
+
+/*! \brief Triggers the creation of a synchronous data connection.
+ * \param self Instance pointer
+ */
+void Xrm_CreateSyncCon(CExtendedResourceManager *self)
+{
+ UCS_XRM_CONST Ucs_Xrm_SyncCon_t *cfg_ptr = (UCS_XRM_CONST Ucs_Xrm_SyncCon_t *)(UCS_XRM_CONST void*)(*self->current_obj_pptr);
+ uint16_t in_socket_handle = Xrm_GetResourceHandle(self, self->current_job_ptr, cfg_ptr->socket_in_obj_ptr, NULL);
+ uint16_t out_socket_handle = Xrm_GetResourceHandle(self, self->current_job_ptr, cfg_ptr->socket_out_obj_ptr, NULL);
+ Ucs_Return_t result = Inic_SyncCreate(self->inic_ptr,
+ in_socket_handle,
+ out_socket_handle,
+ false,
+ cfg_ptr->mute_mode,
+ cfg_ptr->offset,
+ &self->obs.std_result_obs);
+ if(result == UCS_RET_SUCCESS)
+ {
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[XRM]", "Start creating synchronous data connection", 0U));
+ }
+ else if(result == UCS_RET_ERR_BUFFER_OVERFLOW)
+ {
+ Xrm_WaitForTxMsgObj(self, XRM_EVENT_PROCESS);
+ }
+ else
+ {
+ self->report_result.code = UCS_XRM_RES_ERR_BUILD;
+ self->report_result.details.resource_type = UCS_XRM_RC_TYPE_SYNC_CON;
+ self->report_result.details.resource_index = Xrm_GetResourceObjectIndex(self,
+ self->current_job_ptr,
+ self->current_obj_pptr);
+ self->report_result.details.result_type = UCS_XRM_RESULT_TYPE_INT;
+ self->report_result.details.int_result = result;
+ Xrm_HandleError(self);
+ TR_ERROR((self->base_ptr->ucs_user_ptr, "[XRM]", "Start creating synchronous data connection failed. Return value: 0x%02X", 1U, result));
+ }
+}
+
+/*! \brief Triggers the creation of a DiscreteFrame Isochronous streaming phase connection.
+ * \param self Instance pointer
+ */
+void Xrm_CreateDfiPhaseCon(CExtendedResourceManager *self)
+{
+ UCS_XRM_CONST Ucs_Xrm_DfiPhaseCon_t *cfg_ptr = (UCS_XRM_CONST Ucs_Xrm_DfiPhaseCon_t *)(UCS_XRM_CONST void*)(*self->current_obj_pptr);
+ uint16_t in_socket_handle = Xrm_GetResourceHandle(self, self->current_job_ptr, cfg_ptr->socket_in_obj_ptr, NULL);
+ uint16_t out_socket_handle = Xrm_GetResourceHandle(self, self->current_job_ptr, cfg_ptr->socket_out_obj_ptr, NULL);
+ Ucs_Return_t result = Inic_DfiPhaseCreate(self->inic_ptr,
+ in_socket_handle,
+ out_socket_handle,
+ &self->obs.std_result_obs);
+ if(result == UCS_RET_SUCCESS)
+ {
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[XRM]", "Start creating DFIPhase connection", 0U));
+ }
+ else if(result == UCS_RET_ERR_BUFFER_OVERFLOW)
+ {
+ Xrm_WaitForTxMsgObj(self, XRM_EVENT_PROCESS);
+ }
+ else
+ {
+ self->report_result.code = UCS_XRM_RES_ERR_BUILD;
+ self->report_result.details.resource_type = UCS_XRM_RC_TYPE_DFIPHASE_CON;
+ self->report_result.details.resource_index = Xrm_GetResourceObjectIndex(self,
+ self->current_job_ptr,
+ self->current_obj_pptr);
+ self->report_result.details.result_type = UCS_XRM_RESULT_TYPE_INT;
+ self->report_result.details.int_result = result;
+ Xrm_HandleError(self);
+ TR_ERROR((self->base_ptr->ucs_user_ptr, "[XRM]", "Start creating DFIPhase connection failed. Return value: 0x%02X", 1U, result));
+ }
+}
+
+/*! \brief Triggers the creation of a combiner resource.
+ * \param self Instance pointer
+ */
+void Xrm_CreateCombiner(CExtendedResourceManager *self)
+{
+ UCS_XRM_CONST Ucs_Xrm_Combiner_t *cfg_ptr = (UCS_XRM_CONST Ucs_Xrm_Combiner_t *)(UCS_XRM_CONST void*)(*self->current_obj_pptr);
+ uint16_t port_socket_handle = Xrm_GetResourceHandle(self, self->current_job_ptr, cfg_ptr->port_socket_obj_ptr, NULL);
+ Ucs_Return_t result = Inic_CombinerCreate(self->inic_ptr,
+ port_socket_handle,
+ cfg_ptr->most_port_handle,
+ cfg_ptr->bytes_per_frame,
+ &self->obs.std_result_obs);
+ if(result == UCS_RET_SUCCESS)
+ {
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[XRM]", "Start creating combiner resource", 0U));
+ }
+ else if(result == UCS_RET_ERR_BUFFER_OVERFLOW)
+ {
+ Xrm_WaitForTxMsgObj(self, XRM_EVENT_PROCESS);
+ }
+ else
+ {
+ self->report_result.code = UCS_XRM_RES_ERR_BUILD;
+ self->report_result.details.resource_type = UCS_XRM_RC_TYPE_COMBINER;
+ self->report_result.details.resource_index = Xrm_GetResourceObjectIndex(self,
+ self->current_job_ptr,
+ self->current_obj_pptr);
+ self->report_result.details.result_type = UCS_XRM_RESULT_TYPE_INT;
+ self->report_result.details.int_result = result;
+ Xrm_HandleError(self);
+ TR_ERROR((self->base_ptr->ucs_user_ptr, "[XRM]", "Start creating combiner resource failed. Return value: 0x%02X", 1U, result));
+ }
+}
+
+/*! \brief Triggers the creation of a splitter resource.
+ * \param self Instance pointer
+ */
+void Xrm_CreateSplitter(CExtendedResourceManager *self)
+{
+ UCS_XRM_CONST Ucs_Xrm_Splitter_t *cfg_ptr = (UCS_XRM_CONST Ucs_Xrm_Splitter_t *)(UCS_XRM_CONST void*)(*self->current_obj_pptr);
+ uint16_t socket_handle_in = Xrm_GetResourceHandle(self, self->current_job_ptr, cfg_ptr->socket_in_obj_ptr, NULL);
+ Ucs_Return_t result = Inic_SplitterCreate(self->inic_ptr,
+ socket_handle_in,
+ cfg_ptr->most_port_handle,
+ cfg_ptr->bytes_per_frame,
+ &self->obs.std_result_obs);
+ if(result == UCS_RET_SUCCESS)
+ {
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[XRM]", "Start creating splitter resource", 0U));
+ }
+ else if(result == UCS_RET_ERR_BUFFER_OVERFLOW)
+ {
+ Xrm_WaitForTxMsgObj(self, XRM_EVENT_PROCESS);
+ }
+ else
+ {
+ self->report_result.code = UCS_XRM_RES_ERR_BUILD;
+ self->report_result.details.resource_type = UCS_XRM_RC_TYPE_SPLITTER;
+ self->report_result.details.resource_index = Xrm_GetResourceObjectIndex(self,
+ self->current_job_ptr,
+ self->current_obj_pptr);
+ self->report_result.details.result_type = UCS_XRM_RESULT_TYPE_INT;
+ self->report_result.details.int_result = result;
+ Xrm_HandleError(self);
+ TR_ERROR((self->base_ptr->ucs_user_ptr, "[XRM]", "Start creating splitter resource failed. Return value: 0x%02X", 1U, result));
+ }
+}
+
+/*! \brief Triggers the creation of a A/V packetized isochronous streaming data connection.
+ * \param self Instance pointer
+ */
+void Xrm_CreateAvpCon(CExtendedResourceManager *self)
+{
+ UCS_XRM_CONST Ucs_Xrm_AvpCon_t *cfg_ptr = (UCS_XRM_CONST Ucs_Xrm_AvpCon_t *)(UCS_XRM_CONST void*)(*self->current_obj_pptr);
+ uint16_t in_socket_handle = Xrm_GetResourceHandle(self, self->current_job_ptr, cfg_ptr->socket_in_obj_ptr, NULL);
+ uint16_t out_socket_handle = Xrm_GetResourceHandle(self, self->current_job_ptr, cfg_ptr->socket_out_obj_ptr, NULL);
+ Ucs_Return_t result = Inic_AvpCreate(self->inic_ptr,
+ in_socket_handle,
+ out_socket_handle,
+ cfg_ptr->isoc_packet_size,
+ &self->obs.std_result_obs);
+ if(result == UCS_RET_SUCCESS)
+ {
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[XRM]", "Start creating A/V packetized isochronous streaming data connection", 0U));
+ }
+ else if(result == UCS_RET_ERR_BUFFER_OVERFLOW)
+ {
+ Xrm_WaitForTxMsgObj(self, XRM_EVENT_PROCESS);
+ }
+ else
+ {
+ self->report_result.code = UCS_XRM_RES_ERR_BUILD;
+ self->report_result.details.resource_type = UCS_XRM_RC_TYPE_AVP_CON;
+ self->report_result.details.resource_index = Xrm_GetResourceObjectIndex(self,
+ self->current_job_ptr,
+ self->current_obj_pptr);
+ self->report_result.details.result_type = UCS_XRM_RESULT_TYPE_INT;
+ self->report_result.details.int_result = result;
+ Xrm_HandleError(self);
+ TR_ERROR((self->base_ptr->ucs_user_ptr, "[XRM]", "Start creating A/V packetized isochronous streaming data connection failed. Return value: 0x%02X", 1U, result));
+ }
+}
+
+/*! \brief Triggers the creation of a Quality of Service IP streaming data connection.
+ * \param self Instance pointer
+ */
+void Xrm_CreateQoSCon(CExtendedResourceManager *self)
+{
+ UCS_XRM_CONST Ucs_Xrm_QoSCon_t *cfg_ptr = (UCS_XRM_CONST Ucs_Xrm_QoSCon_t *)(UCS_XRM_CONST void*)(*self->current_obj_pptr);
+ uint16_t in_socket_handle = Xrm_GetResourceHandle(self, self->current_job_ptr, cfg_ptr->socket_in_obj_ptr, NULL);
+ uint16_t out_socket_handle = Xrm_GetResourceHandle(self, self->current_job_ptr, cfg_ptr->socket_out_obj_ptr, NULL);
+ Ucs_Return_t result = Inic_QoSCreate(self->inic_ptr,
+ in_socket_handle,
+ out_socket_handle,
+ &self->obs.std_result_obs);
+ if(result == UCS_RET_SUCCESS)
+ {
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[XRM]", "Start creating QoS IP streaming data connection", 0U));
+ }
+ else if(result == UCS_RET_ERR_BUFFER_OVERFLOW)
+ {
+ Xrm_WaitForTxMsgObj(self, XRM_EVENT_PROCESS);
+ }
+ else
+ {
+ self->report_result.code = UCS_XRM_RES_ERR_BUILD;
+ self->report_result.details.resource_type = UCS_XRM_RC_TYPE_QOS_CON;
+ self->report_result.details.resource_index = Xrm_GetResourceObjectIndex(self,
+ self->current_job_ptr,
+ self->current_obj_pptr);
+ self->report_result.details.result_type = UCS_XRM_RESULT_TYPE_INT;
+ self->report_result.details.int_result = result;
+ Xrm_HandleError(self);
+ TR_ERROR((self->base_ptr->ucs_user_ptr, "[XRM]", "Start creating QoS IP streaming data connection failed. Return value: 0x%02X", 1U, result));
+ }
+}
+
+/*! \brief Process the result of the INIC resource monitor.
+ * \param self Instance pointer
+ * \param result_ptr Reference to result data. Result must be casted into data type
+ * Inic_StdResult_t.
+ */
+void Xrm_ResourceMonitorCb(void *self, void *result_ptr)
+{
+ CExtendedResourceManager *self_ = (CExtendedResourceManager *)self;
+ Inic_StdResult_t *result_ptr_ = (Inic_StdResult_t *)result_ptr;
+
+ if((result_ptr_->result.code == UCS_RES_SUCCESS) && (result_ptr_->data_info != NULL))
+ {
+ Ucs_Resource_MonitorState_t state = *((Ucs_Resource_MonitorState_t *)result_ptr_->data_info);
+ if(state == UCS_INIC_RES_MON_STATE_ACT_REQ)
+ {
+ Srv_SetEvent(&self_->xrm_srv, XRM_EVENT_REQ_INV_RES_LST);
+ }
+ else if((state == UCS_INIC_RES_MON_STATE_OK) && (self_->obs.check_unmute_fptr != NULL))
+ {
+ self_->obs.check_unmute_fptr(Inic_GetTargetAddress(self_->inic_ptr), self_->base_ptr->ucs_user_ptr);
+ }
+ }
+}
+
+/*! \brief Retrieves the list of invalid resources.
+ * \param self Instance pointer
+ */
+void Xrm_RequestResourceList(CExtendedResourceManager *self)
+{
+ if(Xrm_IsApiFree(self) != false)
+ {
+ Ucs_Return_t result;
+ result = Inic_ResourceInvalidList_Get(self->inic_ptr,
+ &self->obs.resource_invalid_list_obs);
+ if(result == UCS_RET_SUCCESS)
+ {
+ Xrm_ApiLocking(self, true);
+ }
+ else if(result == UCS_RET_ERR_BUFFER_OVERFLOW)
+ {
+ Xrm_WaitForTxMsgObj(self, XRM_EVENT_REQ_INV_RES_LST);
+ }
+ else
+ {
+ self->report_result.code = UCS_XRM_RES_ERR_INV_LIST;
+ self->report_result.details.result_type = UCS_XRM_RESULT_TYPE_INT;
+ self->report_result.details.int_result = result;
+ Srv_SetEvent(&self->xrm_srv, XRM_EVENT_ERROR);
+ TR_ERROR((self->base_ptr->ucs_user_ptr, "[XRM]", "Start requesting invalid resources failed. Return value: 0x%02X", 1U, result));
+ }
+ }
+ else
+ {
+ Srv_SetEvent(&self->xrm_srv, XRM_EVENT_REQ_INV_RES_LST);
+ }
+}
+
+/*! \brief Process the received list of invalid resources.
+ * \param self Instance pointer
+ * \param result_ptr Reference to result data. Result must be casted into data type
+ * Inic_StdResult_t.
+ */
+void Xrm_RequestResourceListResultCb(void *self, void *result_ptr)
+{
+ CExtendedResourceManager *self_ = (CExtendedResourceManager *)self;
+ Inic_StdResult_t *result_ptr_ = (Inic_StdResult_t *)result_ptr;
+
+ if((result_ptr_->result.code == UCS_RES_SUCCESS) && (result_ptr_->data_info != NULL))
+ {
+ Inic_ResHandleList_t resource_handle_list = *((Inic_ResHandleList_t *)result_ptr_->data_info);
+ if((resource_handle_list.res_handles != NULL) && (resource_handle_list.num_handles > 0U))
+ {
+ MISC_MEM_CPY(&self_->inv_resource_handle_list[0],
+ &resource_handle_list.res_handles[0],
+ (resource_handle_list.num_handles * sizeof(resource_handle_list.res_handles[0])));
+ }
+ self_->inv_resource_handle_list_size = resource_handle_list.num_handles;
+ self_->inv_resource_handle_index = 0U;
+
+ Xrmp_Foreach(self_->xrmp_ptr, &Xrm_SetCurrJobPtr, &resource_handle_list.res_handles[0], NULL, self);
+ Srv_SetEvent(&self_->xrm_srv, XRM_EVENT_DESTROY_INV_RES);
+ }
+ else
+ {
+ self_->report_result.code = UCS_XRM_RES_ERR_INV_LIST;
+ if (result_ptr_->result.code == UCS_RES_ERR_TRANSMISSION)
+ {
+ self_->report_result.details.tx_result = *(Ucs_MsgTxStatus_t *)(result_ptr_->data_info);
+ self_->report_result.details.result_type = UCS_XRM_RESULT_TYPE_TX;
+ }
+ else
+ {
+ self_->report_result.details.tx_result = UCS_MSG_STAT_OK;
+ self_->report_result.details.result_type = UCS_XRM_RESULT_TYPE_TGT;
+ }
+
+ self_->report_result.details.inic_result = result_ptr_->result;
+ Srv_SetEvent(&self_->xrm_srv, XRM_EVENT_ERROR);
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[XRM]", "Request of invalid resources failed. Return value: 0x%02X", 1U, result_ptr_->result.code));
+ TR_ERROR_INIC_RESULT(self_->base_ptr->ucs_user_ptr, "[XRM]", result_ptr_->result.info_ptr, result_ptr_->result.info_size);
+ }
+
+ Xrm_ApiLocking(self_, false);
+}
+
+/*! \brief Triggers the destruction of INIC resources.
+ * \param self Instance pointer
+ * \param result_fptr Result callback function pointer
+ */
+void Xrm_DestroyResources(CExtendedResourceManager *self, Sobs_UpdateCb_t result_fptr)
+{
+ Ucs_Return_t result;
+ Inic_ResHandleList_t list;
+ list.res_handles = &self->inv_resource_handle_list[self->inv_resource_handle_index];
+ if (self->inv_resource_handle_list_size > MAX_INVALID_HANDLES_LIST)
+ {
+ list.num_handles = MAX_INVALID_HANDLES_LIST;
+ self->curr_dest_resource_handle_size = list.num_handles;
+ }
+ else
+ {
+ list.num_handles = self->inv_resource_handle_list_size;
+ self->curr_dest_resource_handle_size = list.num_handles;
+ if(self->inv_resource_handle_list[(self->inv_resource_handle_index + self->inv_resource_handle_list_size) - 1U] == XRM_INVALID_RESOURCE_HANDLE)
+ {
+ list.num_handles--;
+ }
+ }
+ Sobs_Ctor(&self->obs.resource_destroy_obs, self, result_fptr);
+ result = Inic_ResourceDestroy(self->inic_ptr,
+ list,
+ &self->obs.resource_destroy_obs);
+ if(result == UCS_RET_SUCCESS)
+ {
+ /* No error */
+#ifdef UCS_TR_INFO
+ uint8_t i;
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[XRM]", "Destruction of invalid resource handles been successfully started:", 0U));
+ for(i=0U; i<list.num_handles; i++)
+ {
+ TR_INFO((self->base_ptr->ucs_user_ptr, "[XRM]", "--> Handle: 0x%04X", 1U, list.res_handles[i]));
+ }
+#endif
+ }
+ else if (result == UCS_RET_ERR_PARAM)
+ {
+ /* empty list */
+ if ((list.num_handles == 0U) && (list.res_handles[0] == XRM_INVALID_RESOURCE_HANDLE))
+ {
+ self->inv_resource_handle_list_size = 0U;
+ Srv_SetEvent(&self->xrm_srv, XRM_EVENT_RESET_RES_MONITOR);
+ }
+ }
+ else if(result == UCS_RET_ERR_BUFFER_OVERFLOW)
+ {
+ Xrm_WaitForTxMsgObj(self, XRM_EVENT_DESTROY_INV_RES);
+ }
+ else
+ {
+ self->inv_resource_handle_list_size = 0U;
+ self->report_result.code = UCS_XRM_RES_ERR_DESTROY;
+ self->report_result.details.result_type = UCS_XRM_RESULT_TYPE_INT;
+ self->report_result.details.int_result = result;
+ Srv_SetEvent(&self->xrm_srv, XRM_EVENT_ERROR);
+ TR_ERROR((self->base_ptr->ucs_user_ptr, "[XRM]", "Start destroying invalid resources failed. Return value: 0x%02X", 1U, result));
+ }
+}
+
+/*! \brief Resets the INIC's Resource Monitor.
+ * \param self Instance pointer
+ */
+void Xrm_ResetResourceMonitor(CExtendedResourceManager *self)
+{
+ Ucs_Return_t result = Inic_ResourceMonitor_Set(self->inic_ptr, UCS_INIC_RES_MON_CTRL_RESET);
+ if(result == UCS_RET_SUCCESS)
+ {
+ Srv_SetEvent(&self->xrm_srv, XRM_EVENT_NOTIFY_AUTO_DEST_RES);
+ }
+ else
+ {
+ Xrm_WaitForTxMsgObj(self, XRM_EVENT_RESET_RES_MONITOR);
+ }
+}
+
+
+/*! \brief Handles the result of resource destructions.
+ * \param self Instance pointer
+ * \param result_ptr Reference to result data. Result must be casted into data type
+ * Inic_StdResult_t.
+ */
+void Xrm_DestroyResourcesResultCb(void *self, void *result_ptr)
+{
+ CExtendedResourceManager *self_ = (CExtendedResourceManager *)self;
+ Inic_StdResult_t *result_ptr_ = (Inic_StdResult_t *)result_ptr;
+ if(result_ptr_->result.code == UCS_RES_SUCCESS)
+ {
+ (void)Xrm_ReleaseResourceHandles(self_,
+ NULL,
+ &self_->inv_resource_handle_list[self_->inv_resource_handle_index],
+ self_->curr_dest_resource_handle_size,
+ XRM_INVALID_RESOURCE_HANDLE);
+
+ if (self_->inv_resource_handle_list_size >= self_->curr_dest_resource_handle_size)
+ {
+ self_->inv_resource_handle_list_size -= self_->curr_dest_resource_handle_size;
+ if (self_->inv_resource_handle_list_size > 0U)
+ {
+ self_->inv_resource_handle_index += self_->curr_dest_resource_handle_size;
+ Srv_SetEvent(&self_->xrm_srv, XRM_EVENT_DESTROY_INV_RES);
+ }
+ else
+ {
+ if(self_->inv_resource_handle_list[(self_->inv_resource_handle_index + self_->curr_dest_resource_handle_size) - 1U] != XRM_INVALID_RESOURCE_HANDLE)
+ {
+ Srv_SetEvent(&self_->xrm_srv, XRM_EVENT_REQ_INV_RES_LST);
+ }
+ else
+ {
+ Srv_SetEvent(&self_->xrm_srv, XRM_EVENT_RESET_RES_MONITOR);
+ }
+ TR_INFO((self_->base_ptr->ucs_user_ptr, "[XRM]", "INIC resources been successfully destroyed.", 0U));
+ }
+ }
+ else
+ {
+ self_->inv_resource_handle_list_size = 0U;
+ self_->report_result.details.result_type = UCS_XRM_RESULT_TYPE_INT;
+ self_->report_result.details.tx_result = UCS_MSG_STAT_OK;
+ self_->report_result.code = UCS_XRM_RES_ERR_DESTROY;
+ self_->report_result.details.inic_result = result_ptr_->result;
+ Srv_SetEvent(&self_->xrm_srv, XRM_EVENT_ERROR);
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[XRM]", "Destruction of invalid resources failed. Internal resources handles List is corrupted", 0U));
+ }
+ }
+ else if(result_ptr_->result.code == UCS_RES_ERR_BUSY)
+ {
+ uint8_t stop_index;
+ uint16_t failed_resource_handle;
+ MISC_DECODE_WORD(&(failed_resource_handle), &(result_ptr_->result.info_ptr[3]));
+ stop_index = Xrm_ReleaseResourceHandles(self_,
+ NULL,
+ &self_->inv_resource_handle_list[self_->inv_resource_handle_index],
+ self_->curr_dest_resource_handle_size,
+ failed_resource_handle);
+
+ if (stop_index > 0U)
+ {
+ self_->inv_resource_handle_index = stop_index;
+ self_->inv_resource_handle_list_size -= stop_index;
+ }
+ Srv_SetEvent(&self_->xrm_srv, XRM_EVENT_DESTROY_INV_RES);
+ }
+ else
+ {
+ self_->inv_resource_handle_list_size = 0U;
+ if (result_ptr_->result.code == UCS_RES_ERR_TRANSMISSION)
+ {
+ self_->report_result.details.tx_result = *(Ucs_MsgTxStatus_t *)(result_ptr_->data_info);
+ self_->report_result.details.result_type = UCS_XRM_RESULT_TYPE_TX;
+ }
+ else
+ {
+ self_->report_result.details.tx_result = UCS_MSG_STAT_OK;
+ self_->report_result.details.result_type = UCS_XRM_RESULT_TYPE_TGT;
+ }
+ self_->report_result.code = UCS_XRM_RES_ERR_DESTROY;
+ self_->report_result.details.inic_result = result_ptr_->result;
+ Srv_SetEvent(&self_->xrm_srv, XRM_EVENT_ERROR);
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[XRM]", "Destruction of invalid resources failed. Return value: 0x%02X", 1U, result_ptr_->result.code));
+ TR_ERROR_INIC_RESULT(self_->base_ptr->ucs_user_ptr, "[XRM]", result_ptr_->result.info_ptr, result_ptr_->result.info_size);
+ }
+}
+
+/*! \brief Handles the result of resource destructions for all resources of a job.
+ * \param self Instance pointer
+ * \param result_ptr Reference to result data. Result must be casted into data type
+ * Inic_StdResult_t.
+ */
+void Xrm_DestroyJobResourcesResultCb(void *self, void *result_ptr)
+{
+ CExtendedResourceManager *self_ = (CExtendedResourceManager *)self;
+ Inic_StdResult_t *result_ptr_ = (Inic_StdResult_t *)result_ptr;
+ if(result_ptr_->result.code == UCS_RES_SUCCESS)
+ {
+ (void)Xrm_ReleaseResourceHandles(self_,
+ self_->current_job_ptr,
+ &self_->inv_resource_handle_list[self_->inv_resource_handle_index],
+ self_->curr_dest_resource_handle_size,
+ XRM_INVALID_RESOURCE_HANDLE);
+
+ if (self_->inv_resource_handle_list_size >= self_->curr_dest_resource_handle_size)
+ {
+ self_->inv_resource_handle_list_size -= self_->curr_dest_resource_handle_size;
+ self_->inv_resource_handle_index = 0U;
+ Srv_SetEvent(&self_->xrm_srv, XRM_EVENT_RESUME_JOB_DESTRUCT);
+ TR_INFO((self_->base_ptr->ucs_user_ptr, "[XRM]", "INIC resources been successfully destroyed.", 0U));
+ }
+ else
+ {
+ self_->inv_resource_handle_list_size = 0U;
+ self_->report_result.details.result_type = UCS_XRM_RESULT_TYPE_INT;
+ self_->report_result.details.tx_result = UCS_MSG_STAT_OK;
+ self_->report_result.code = UCS_XRM_RES_ERR_DESTROY;
+ self_->report_result.details.inic_result = result_ptr_->result;
+ Srv_SetEvent(&self_->xrm_srv, XRM_EVENT_ERROR);
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[XRM]", "Destruction of invalid resources failed. Internal resources handles List is corrupted", 0U));
+ }
+ }
+ else if(result_ptr_->result.code == UCS_RES_ERR_BUSY)
+ {
+ uint16_t failed_handle;
+ MISC_DECODE_WORD(&(failed_handle), &(result_ptr_->result.info_ptr[3]));
+ (void)Xrm_ReleaseResourceHandles(self_,
+ NULL,
+ &self_->inv_resource_handle_list[self_->inv_resource_handle_index],
+ self_->curr_dest_resource_handle_size,
+ failed_handle);
+
+ Srv_SetEvent(&self_->xrm_srv, XRM_EVENT_RESUME_JOB_DESTRUCT);
+ }
+ else
+ {
+ self_->inv_resource_handle_list_size = 0U;
+ if (result_ptr_->result.code == UCS_RES_ERR_TRANSMISSION)
+ {
+ self_->report_result.details.tx_result = *(Ucs_MsgTxStatus_t *)(result_ptr_->data_info);
+ self_->report_result.details.result_type = UCS_XRM_RESULT_TYPE_TX;
+ }
+ else
+ {
+ self_->report_result.details.tx_result = UCS_MSG_STAT_OK;
+ self_->report_result.details.result_type = UCS_XRM_RESULT_TYPE_TGT;
+ }
+
+ self_->report_result.code = UCS_XRM_RES_ERR_DESTROY;
+ self_->report_result.details.inic_result = result_ptr_->result;
+ Srv_SetEvent(&self_->xrm_srv, XRM_EVENT_ERROR);
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[XRM]", "Destruction of invalid resources failed. Return value: 0x%02X", 1U, result_ptr_->result.code));
+ TR_ERROR_INIC_RESULT(self_->base_ptr->ucs_user_ptr, "[XRM]", result_ptr_->result.info_ptr, result_ptr_->result.info_size);
+ }
+}
+
+/*! \brief Handles the result of "create port", "create socket" and "create connection" operations.
+ * \param self Instance pointer
+ * \param result_ptr Reference to result data. Result must be casted into data type
+ * Inic_StdResult_t.
+ */
+void Xrm_StdResultCb(void *self, void *result_ptr)
+{
+ CExtendedResourceManager *self_ = (CExtendedResourceManager *)self;
+ Inic_StdResult_t *result_ptr_ = (Inic_StdResult_t *)result_ptr;
+
+ if((result_ptr_->result.code == UCS_RES_SUCCESS) && (result_ptr_->data_info != NULL))
+ {
+ uint16_t resource_handle = 0U;
+ if(*(UCS_XRM_CONST Ucs_Xrm_ResourceType_t *)(UCS_XRM_CONST void*)(*self_->current_obj_pptr) == UCS_XRM_RC_TYPE_MOST_SOCKET)
+ {
+ Inic_MostSocketCreate_Result_t res_ack = {0U, 0U};
+ res_ack = *((Inic_MostSocketCreate_Result_t *)result_ptr_->data_info);
+ resource_handle = res_ack.most_socket_handle;
+ self_->current_job_ptr->connection_label = res_ack.conn_label;
+ }
+ else
+ {
+ resource_handle = *((uint16_t *)result_ptr_->data_info);
+ }
+
+ if(Xrm_StoreResourceHandle(self_, resource_handle, self_->current_job_ptr, *self_->current_obj_pptr) != false)
+ {
+ if (self_->res_debugging_fptr != NULL)
+ {
+ self_->res_debugging_fptr(*(UCS_XRM_CONST Ucs_Xrm_ResourceType_t *)(UCS_XRM_CONST void*)(*self_->current_obj_pptr), *self_->current_obj_pptr, UCS_XRM_INFOS_BUILT,
+ self_->current_job_ptr->user_arg, self_->base_ptr->ucs_user_ptr);
+ }
+
+ self_->current_obj_pptr++;
+ Srv_SetEvent(&self_->xrm_srv, XRM_EVENT_PROCESS);
+ TR_INFO((self_->base_ptr->ucs_user_ptr, "[XRM]", "Resource has been successfully created. Handle: 0x%04X", 1U, resource_handle));
+ }
+ else
+ {
+ self_->report_result.code = UCS_XRM_RES_ERR_CONFIG;
+ Srv_SetEvent(&self_->xrm_srv, XRM_EVENT_ERROR);
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[XRM]", "Misconfiguration. Resource handle list is too small.", 0U));
+ }
+ }
+ else
+ {
+ self_->current_job_ptr->valid = false;
+
+ if (result_ptr_->result.code == UCS_RES_ERR_TRANSMISSION)
+ {
+ self_->report_result.details.tx_result = *(Ucs_MsgTxStatus_t *)(result_ptr_->data_info);
+ self_->report_result.details.result_type = UCS_XRM_RESULT_TYPE_TX;
+ }
+ else
+ {
+ self_->report_result.details.tx_result = UCS_MSG_STAT_OK;
+ self_->report_result.details.result_type = UCS_XRM_RESULT_TYPE_TGT;
+ }
+
+ self_->report_result.code = UCS_XRM_RES_ERR_BUILD;
+ self_->report_result.details.resource_type = *(UCS_XRM_CONST Ucs_Xrm_ResourceType_t *)(UCS_XRM_CONST void*)(*self_->current_obj_pptr);
+ self_->report_result.details.resource_index = Xrm_GetResourceObjectIndex(self_,
+ self_->current_job_ptr,
+ self_->current_obj_pptr);
+ self_->report_result.details.inic_result = result_ptr_->result;
+ Srv_SetEvent(&self_->xrm_srv, XRM_EVENT_ERROR);
+
+ if (self_->res_debugging_fptr != NULL)
+ {
+ self_->res_debugging_fptr(*(UCS_XRM_CONST Ucs_Xrm_ResourceType_t *)(UCS_XRM_CONST void*)(*self_->current_obj_pptr),
+ *self_->current_obj_pptr, UCS_XRM_INFOS_ERR_BUILT, self_->current_job_ptr->user_arg, self_->base_ptr->ucs_user_ptr);
+ }
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[XRM]", "Creation of resource failed. Result code: 0x%02X", 1U, result_ptr_->result.code));
+ if (result_ptr_->result.info_ptr != NULL)
+ {
+ TR_ERROR_INIC_RESULT(self_->base_ptr->ucs_user_ptr, "[XRM]", result_ptr_->result.info_ptr, result_ptr_->result.info_size);
+ }
+ }
+}
+
+/*! \brief Handles the result of "device.sync" operations.
+ * \param self Instance pointer
+ * \param result RSM result
+ */
+void Xrm_RmtDevAttachResultCb(void *self, Rsm_Result_t result)
+{
+ CExtendedResourceManager *self_ = (CExtendedResourceManager *)self;
+ if (result.code == RSM_RES_SUCCESS)
+ {
+ Srv_SetEvent(&self_->xrm_srv, self_->queued_event_mask);
+ self_->queued_event_mask = 0U;
+ TR_INFO((self_->base_ptr->ucs_user_ptr, "[XRM]", "Remote device has been successfully synchronized.", 0U));
+ }
+ else
+ {
+ /* In case of StreamingConfig, simulate an error configuration since there
+ * is currently no possibility to signal SyncLost
+ */
+ if ((self_->queued_event_mask == XRM_EVENT_STREAMPORT_CONFIG_SET) ||
+ (self_->queued_event_mask == XRM_EVENT_STREAMPORT_CONFIG_GET))
+ {
+ Inic_StdResult_t sim_inic_res;
+ sim_inic_res.result.code = result.details.inic_result.code;
+ sim_inic_res.result.info_ptr = NULL;
+ sim_inic_res.result.info_size = 0U;
+ sim_inic_res.data_info = NULL;
+
+ self_->queued_event_mask = 0U;
+ /* Force a Notification of the Streaming observer */
+ self_->obs.stream_port_config_fptr = self_->current_streamport_config.result_fptr;
+ self_->obs.stream_port_config_obs.update_fptr(self, &sim_inic_res);
+ }
+ else
+ {
+ if (result.details.inic_result.code == UCS_RES_ERR_TRANSMISSION)
+ {
+ self_->report_result.details.result_type = UCS_XRM_RESULT_TYPE_TX;
+ }
+ else
+ {
+ self_->report_result.details.result_type = UCS_XRM_RESULT_TYPE_TGT;
+ }
+ self_->report_result.code = UCS_XRM_RES_ERR_SYNC;
+ self_->report_result.details.inic_result.code = result.details.inic_result.code;
+ self_->report_result.details.inic_result.info_ptr = result.details.inic_result.info_ptr;
+ self_->report_result.details.inic_result.info_size = result.details.inic_result.info_size;
+ self_->report_result.details.resource_type = *(UCS_XRM_CONST Ucs_Xrm_ResourceType_t *)(UCS_XRM_CONST void*)(*self_->current_obj_pptr);
+ self_->report_result.details.resource_index = Xrm_GetResourceObjectIndex(self_,
+ self_->current_job_ptr,
+ self_->current_obj_pptr);
+ self_->report_result.details.tx_result = (Ucs_MsgTxStatus_t)result.details.tx_result;
+
+ self_->queued_event_mask = 0U;
+ Srv_SetEvent(&self_->xrm_srv, XRM_EVENT_ERROR);
+ TR_ERROR((self_->base_ptr->ucs_user_ptr, "[XRM]", "Synchronization to the remote device failed. Result code: 0x%02X", 1U, result));
+ }
+ }
+}
+
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation of class CExtendedResourceManager (INIC Resource Management API) */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief This function is used to configure a Streaming Port.
+ * \param self Instance pointer
+ * \param index Streaming Port instance.
+ * \param op_mode Operation mode of the Streaming Port.
+ * \param port_option Direction of the physical pins of the indexed Streaming Port.
+ * \param clock_mode Configuration of the FSY/SCK signals.
+ * \param clock_data_delay Configuration of the FSY/SCK signals for Generic Streaming.
+ * \param result_fptr Required result callback
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * --------------------------- | ------------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_PARAM | Invalid callback pointer
+ * UCS_RET_ERR_BUFFER_OVERFLOW | No message buffer available
+ * UCS_RET_ERR_API_LOCKED | API is currently locked
+ */
+Ucs_Return_t Xrm_Stream_SetPortConfig(CExtendedResourceManager *self,
+ uint8_t index,
+ Ucs_Stream_PortOpMode_t op_mode,
+ Ucs_Stream_PortOption_t port_option,
+ Ucs_Stream_PortClockMode_t clock_mode,
+ Ucs_Stream_PortClockDataDelay_t clock_data_delay,
+ Ucs_Xrm_Stream_PortCfgResCb_t result_fptr)
+{
+ Ucs_Return_t ret_val = UCS_RET_ERR_API_LOCKED;
+
+ if ((self != NULL) && (result_fptr != NULL) )
+ {
+ if(Xrm_IsApiFree(self) != false)
+ {
+ Xrm_ApiLocking(self, true);
+
+ self->current_streamport_config.index = index;
+ self->current_streamport_config.op_mode = op_mode;
+ self->current_streamport_config.port_option = port_option;
+ self->current_streamport_config.clock_mode = clock_mode;
+ self->current_streamport_config.clock_data_delay = clock_data_delay;
+ self->current_streamport_config.result_fptr = result_fptr;
+
+ ret_val = Xrm_SetStreamPortConfiguration(self);
+ }
+ }
+ else
+ {
+ ret_val = UCS_RET_ERR_PARAM;
+ }
+
+ return ret_val;
+}
+
+/*! \brief This function is used to configure a Streaming Port.
+ * \param self Instance pointer
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * --------------------------- | ------------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_PARAM | Invalid callback pointer
+ * UCS_RET_ERR_BUFFER_OVERFLOW | No message buffer available
+ * UCS_RET_ERR_API_LOCKED | API is currently locked
+ */
+Ucs_Return_t Xrm_SetStreamPortConfiguration (CExtendedResourceManager *self)
+{
+ Ucs_Return_t ret_val = UCS_RET_ERR_NOT_INITIALIZED;
+
+ if (Xrm_IsCurrDeviceAlreadyAttached(self) == false)
+ {
+ ret_val = Xrm_RemoteDeviceAttach(self, XRM_EVENT_STREAMPORT_CONFIG_SET);
+ }
+ else
+ {
+ ret_val = Inic_StreamPortConfig_SetGet(self->inic_ptr,
+ self->current_streamport_config.index,
+ self->current_streamport_config.op_mode,
+ self->current_streamport_config.port_option,
+ self->current_streamport_config.clock_mode,
+ self->current_streamport_config.clock_data_delay,
+ &self->obs.stream_port_config_obs);
+ if(ret_val == UCS_RET_SUCCESS)
+ {
+ self->obs.stream_port_config_fptr = self->current_streamport_config.result_fptr;
+ }
+ else if(ret_val == UCS_RET_ERR_BUFFER_OVERFLOW)
+ {
+ Xrm_WaitForTxMsgObj(self, XRM_EVENT_STREAMPORT_CONFIG_SET);
+ }
+ else if (ret_val == UCS_RET_ERR_API_LOCKED)
+ {
+ Xrm_ApiLocking(self, false);
+ }
+ }
+
+ return ret_val;
+}
+
+/*! \brief This function requests the configurations of a Streaming Port.
+ * \param self Instance pointer
+ * \param index Streaming Port instance.
+ * \param result_fptr Required result callback
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * --------------------------- | ----------------------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_PARAM | At least one parameter is wrong
+ * UCS_RET_ERR_BUFFER_OVERFLOW | No message buffer available
+ * UCS_RET_ERR_API_LOCKED | API is currently locked
+ * UCS_RET_ERR_NOT_AVAILABLE | Associated device not found
+ */
+Ucs_Return_t Xrm_Stream_GetPortConfig(CExtendedResourceManager *self,
+ uint8_t index,
+ Ucs_Xrm_Stream_PortCfgResCb_t result_fptr)
+{
+ Ucs_Return_t ret_val = UCS_RET_ERR_API_LOCKED;
+
+ if((self != NULL) && (result_fptr != NULL) )
+ {
+ if(Xrm_IsApiFree(self) != false)
+ {
+ Xrm_ApiLocking(self, true);
+
+ self->current_streamport_config.index = index;
+ self->current_streamport_config.result_fptr = result_fptr;
+
+ ret_val = Xrm_GetStreamPortConfiguration(self);
+ if (ret_val == UCS_RET_ERR_API_LOCKED)
+ {
+ /* from another process locked */
+ Xrm_ApiLocking(self, false);
+ }
+ }
+ }
+ else
+ {
+ ret_val = UCS_RET_ERR_PARAM;
+ }
+
+ return ret_val;
+}
+
+/*! \brief This function is used to configure a Streaming Port.
+ * \param self Instance pointer
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * --------------------------- | ------------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_PARAM | Invalid callback pointer
+ * UCS_RET_ERR_BUFFER_OVERFLOW | No message buffer available
+ */
+Ucs_Return_t Xrm_GetStreamPortConfiguration (CExtendedResourceManager *self)
+{
+ Ucs_Return_t ret_val = UCS_RET_ERR_NOT_INITIALIZED;
+
+ if (Xrm_IsCurrDeviceAlreadyAttached(self) == false)
+ {
+ ret_val = Xrm_RemoteDeviceAttach(self, XRM_EVENT_STREAMPORT_CONFIG_GET);
+ }
+ else
+ {
+ ret_val = Inic_StreamPortConfig_Get(self->inic_ptr,
+ self->current_streamport_config.index,
+ &self->obs.stream_port_config_obs);
+ if(ret_val == UCS_RET_SUCCESS)
+ {
+ self->obs.stream_port_config_fptr = self->current_streamport_config.result_fptr;
+ }
+ else if(ret_val == UCS_RET_ERR_BUFFER_OVERFLOW)
+ {
+ Xrm_WaitForTxMsgObj(self, XRM_EVENT_STREAMPORT_CONFIG_GET);
+ }
+ }
+
+ return ret_val;
+}
+
+/*! \brief Observer callback for Inic_StreamPortConfig_Get(). Casts the result and invokes
+ * the application result callback.
+ * \param self Instance pointer
+ * \param result_ptr Reference to result
+ */
+void Xrm_Stream_PortConfigResult(void *self, void *result_ptr)
+{
+ CExtendedResourceManager *self_ = (CExtendedResourceManager *)self;
+ Inic_StreamPortConfigStatus_t status;
+ Inic_StdResult_t *result_ptr_ = (Inic_StdResult_t *)result_ptr;
+ Ucs_StdResult_t res = result_ptr_->result;
+
+ if(self_->obs.stream_port_config_fptr != NULL)
+ {
+ if((result_ptr_->result.code == UCS_RES_SUCCESS) && (result_ptr_->data_info != NULL))
+ {
+ status = *((Inic_StreamPortConfigStatus_t *)result_ptr_->data_info);
+ }
+ else
+ {
+ /* Fill param callback function with default (dummy) values */
+ status.index = 0x00U;
+ status.op_mode = UCS_STREAM_PORT_OP_MODE_GENERIC;
+ status.port_option = UCS_STREAM_PORT_OPT_IN_OUT;
+ status.clock_mode = UCS_STREAM_PORT_CLK_MODE_OUTPUT;
+ status.clock_data_delay = UCS_STREAM_PORT_CLK_DLY_NONE;
+ }
+ self_->obs.stream_port_config_fptr(Inic_GetTargetAddress(self_->inic_ptr),
+ status.index,
+ status.op_mode,
+ status.port_option,
+ status.clock_mode,
+ status.clock_data_delay,
+ res,
+ self_->base_ptr->ucs_user_ptr);
+ }
+
+ Xrm_ApiLocking(self_, false);
+}
+
+/*! \brief Enables or disables a specific MOST Network Port.
+ * \param self Instance pointer
+ * \param most_port_handle Port resource handle.
+ * \param enabled State of the MOST Port.
+ * \param result_fptr Optional result callback.
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * --------------------------- | ------------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_BUFFER_OVERFLOW | No message buffer available
+ * UCS_RET_ERR_API_LOCKED | API is currently locked
+ * UCS_RET_ERR_NOT_INITIALIZED | UNICENS is not initialized
+ */
+Ucs_Return_t Xrm_Most_EnablePort(CExtendedResourceManager *self,
+ uint16_t most_port_handle,
+ bool enabled,
+ Ucs_StdResultCb_t result_fptr)
+{
+ Ucs_Return_t ret_val = UCS_RET_ERR_NOT_INITIALIZED;
+
+ if(Xrm_IsApiFree(self) != false)
+ {
+ ret_val = Inic_MostPortEnable(self->inic_ptr,
+ most_port_handle,
+ enabled,
+ &self->obs.most_port_enable_obs);
+ if(ret_val == UCS_RET_SUCCESS)
+ {
+ self->obs.most_port_enable_fptr = result_fptr;
+ }
+ }
+
+ return ret_val;
+}
+
+/*! \brief Enables full streaming for a specific MOST Network Port.
+ * \param self Instance pointer
+ * \param most_port_handle Port resource handle.
+ * \param enabled State of the MOST Port related to full streaming.
+ * \param result_fptr Optional result callback.
+ * \return Possible return values are shown in the table below.
+ * Value | Description
+ * --------------------------- | ------------------------------------
+ * UCS_RET_SUCCESS | No error
+ * UCS_RET_ERR_BUFFER_OVERFLOW | No message buffer available
+ * UCS_RET_ERR_API_LOCKED | API is currently locked
+ * UCS_RET_ERR_NOT_INITIALIZED | UNICENS is not initialized
+ */
+Ucs_Return_t Xrm_Most_PortEnFullStr(CExtendedResourceManager *self,
+ uint16_t most_port_handle,
+ bool enabled,
+ Ucs_StdResultCb_t result_fptr)
+{
+ Ucs_Return_t ret_val = UCS_RET_ERR_NOT_INITIALIZED;
+
+ if(Xrm_IsApiFree(self) != false)
+ {
+ ret_val = Inic_MostPortEnFullStr(self->inic_ptr,
+ most_port_handle,
+ enabled,
+ &self->obs.most_port_en_full_str_obs);
+ if(ret_val == UCS_RET_SUCCESS)
+ {
+ self->obs.most_port_en_full_str_fptr = result_fptr;
+ }
+ }
+
+ return ret_val;
+}
+
+/*! \brief Observer callback for Inic_MostPortEnable(). Casts the result and invokes
+ * the application result callback.
+ * \param self Instance pointer
+ * \param result_ptr Reference to result
+ */
+void Xrm_Most_PortEnableResult(void *self, void *result_ptr)
+{
+ CExtendedResourceManager *self_ = (CExtendedResourceManager *)self;
+ if(self_->obs.most_port_enable_fptr != NULL)
+ {
+ Inic_StdResult_t *result_ptr_ = (Inic_StdResult_t *)result_ptr;
+ self_->obs.most_port_enable_fptr(result_ptr_->result, self_->base_ptr->ucs_user_ptr);
+ }
+}
+
+/*! \brief Observer callback for Inic_MostPortEnFullStr(). Casts the result and invokes
+ * the application result callback.
+ * \param self Instance pointer
+ * \param result_ptr Reference to result
+ */
+void Xrm_Most_PortEnFullStrResult(void *self, void *result_ptr)
+{
+ CExtendedResourceManager *self_ = (CExtendedResourceManager *)self;
+ if(self_->obs.most_port_en_full_str_fptr != NULL)
+ {
+ Inic_StdResult_t *result_ptr_ = (Inic_StdResult_t *)result_ptr;
+ self_->obs.most_port_en_full_str_fptr(result_ptr_->result, self_->base_ptr->ucs_user_ptr);
+ }
+}
+
+/*! \brief Sets the current job pointer of the CExtendedResourceManager instance.
+ * \param resrc_ptr Reference to the resource handle list to be looked for.
+ * \param resrc_handle Reference to the resource handle to be found.
+ * \param job_ptr Reference to the job to be looked for.
+ * \param user_arg Reference to a user argument.
+ * \return \c false to continue the for-each-loop of the resources list table, otherwise \c true
+ */
+bool Xrm_SetCurrJobPtr(void *resrc_ptr, void *resrc_handle, void *job_ptr, void * user_arg)
+{
+ bool ret_val = false;
+ Xrm_ResourceHandleListItem_t * resrc_ptr_ = (Xrm_ResourceHandleListItem_t *)resrc_ptr;
+ uint16_t * resrc_handle_ = (uint16_t *)resrc_handle;
+ CExtendedResourceManager *self = (CExtendedResourceManager *)user_arg;
+
+ MISC_UNUSED(job_ptr);
+
+ if ((resrc_ptr_->resource_handle == *resrc_handle_) &&
+ (*resrc_handle_ != XRM_INVALID_RESOURCE_HANDLE) &&
+ (Dl_IsNodeInList(&self->job_list, &resrc_ptr_->job_ptr->node)))
+ {
+ self->current_job_ptr = resrc_ptr_->job_ptr;
+ ret_val = true;
+ }
+
+ return ret_val;
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+
diff --git a/ucs2-lib/src/ucs_xrmpool.c b/ucs2-lib/src/ucs_xrmpool.c
new file mode 100644
index 0000000..116253b
--- /dev/null
+++ b/ucs2-lib/src/ucs_xrmpool.c
@@ -0,0 +1,210 @@
+/*------------------------------------------------------------------------------------------------*/
+/* UNICENS V2.1.0-3491 */
+/* Copyright (c) 2017 Microchip Technology Germany II GmbH & Co. KG. */
+/* */
+/* This program is free software: you can redistribute it and/or modify */
+/* it under the terms of the GNU General Public License as published by */
+/* the Free Software Foundation, either version 2 of the License, or */
+/* (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* */
+/* You may also obtain this software under a propriety license from Microchip. */
+/* Please contact Microchip for further information. */
+/*------------------------------------------------------------------------------------------------*/
+
+/*!
+ * \file
+ * \brief Implementation of the Connection Storage Pool.
+ *
+ * \cond UCS_INTERNAL_DOC
+ * \addtogroup G_UCS_XRM_INT
+ * @{
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* Includes */
+/*------------------------------------------------------------------------------------------------*/
+#include "ucs_xrmpool.h"
+#include "ucs_xrm_pv.h"
+
+/*------------------------------------------------------------------------------------------------*/
+/* Implementation of class XrmPool */
+/*------------------------------------------------------------------------------------------------*/
+/*------------------------------------------------------------------------------------------------*/
+/* Initialization Methods */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Constructor of the XrmPool class.
+ * \param self Instance pointer
+ */
+void Xrmp_Ctor(CXrmPool * self)
+{
+ uint8_t i;
+ MISC_MEM_SET(self, 0, sizeof(CXrmPool));
+
+ /* Initialize resource handle list */
+ for(i=0U; i<XRM_NUM_RESOURCE_HANDLES; i++)
+ {
+ self->resource_handle_list[i].resource_handle = XRM_INVALID_RESOURCE_HANDLE;
+ self->resource_handle_list[i].job_ptr = NULL;
+ self->resource_handle_list[i].resource_object_ptr = NULL;
+ }
+}
+
+/*------------------------------------------------------------------------------------------------*/
+/* Service */
+/*------------------------------------------------------------------------------------------------*/
+/*! \brief Stores the given resource handle in the resource handle list.
+ * \param self_ptr XrmPool Instance pointer
+ * \param resource_handle Resource handle to save
+ * \param job_ptr Reference to job
+ * \param resource_object_ptr Reference to resource object
+ * \return \c true if free slot in handle list was found, otherwise \c false
+ */
+bool Xrmp_StoreResourceHandle(CXrmPool * self_ptr, uint16_t resource_handle, Xrm_Job_t * job_ptr, UCS_XRM_CONST Ucs_Xrm_ResObject_t * resource_object_ptr)
+{
+ bool ret_val = false;
+ uint8_t i;
+
+ for(i=0U; i<XRM_NUM_RESOURCE_HANDLES; i++)
+ {
+ if(self_ptr->resource_handle_list[i].job_ptr == NULL)
+ {
+ self_ptr->resource_handle_list[i].job_ptr = job_ptr;
+ self_ptr->resource_handle_list[i].resource_object_ptr = resource_object_ptr;
+ self_ptr->resource_handle_list[i].resource_handle = resource_handle;
+ ret_val = true;
+ break;
+ }
+ }
+
+ return ret_val;
+}
+
+/*! \brief Retrieves the resource handle identified by the given job reference and the given
+ * resource object reference.
+ * \param self Instance pointer
+ * \param job_ptr Reference to the job. Use NULL as wildcard.
+ * \param resource_object_ptr Reference to the resource object
+ * \param func_ptr Optional function pointer in order to check whether the found job belongs to the provided XRM instance.
+ * \param usr_ptr User pointer used to store the XRM instance to be looked for
+ * \return Resource handle if handle was found, otherwise XRM_INVALID_RESOURCE_HANDLE.
+ */
+uint16_t Xrmp_GetResourceHandle(CXrmPool * self, Xrm_Job_t * job_ptr, UCS_XRM_CONST Ucs_Xrm_ResObject_t * resource_object_ptr, Xrmp_CheckJobListFunc_t func_ptr, void * usr_ptr)
+{
+ uint16_t ret_val = XRM_INVALID_RESOURCE_HANDLE;
+ uint8_t i;
+ bool job_found = true;
+
+ for(i=0U; i<XRM_NUM_RESOURCE_HANDLES; i++)
+ {
+ if(((self->resource_handle_list[i].job_ptr == job_ptr) || (job_ptr == NULL)) &&
+ (self->resource_handle_list[i].resource_object_ptr == resource_object_ptr))
+ {
+ if ((func_ptr != NULL) && (usr_ptr != NULL))
+ {
+ job_found = func_ptr(usr_ptr, self->resource_handle_list[i].job_ptr);
+ }
+
+ if (job_found)
+ {
+ ret_val = self->resource_handle_list[i].resource_handle;
+ break;
+ }
+ }
+ }
+
+ return ret_val;
+}
+
+/*! \brief Returns the table index of the given resource object.
+ * \param self Instance pointer
+ * \param job_ptr Reference to job
+ * \param obj_pptr Reference to array of references to INIC resource objects
+ * \return Table index of the given resource object. If entry is not found 0xFF is returned.
+ */
+uint8_t Xrmp_GetResourceHandleIdx(CXrmPool *self, Xrm_Job_t *job_ptr, UCS_XRM_CONST Ucs_Xrm_ResObject_t **obj_pptr)
+{
+ uint8_t i = 0U;
+ uint8_t ret_val = 0xFFU;
+
+ MISC_UNUSED(self);
+
+ while(job_ptr->resource_object_list_ptr[i] != NULL)
+ {
+ if(job_ptr->resource_object_list_ptr[i] == *obj_pptr)
+ {
+ ret_val = i;
+ break;
+ }
+ i++;
+ }
+
+ return ret_val;
+}
+
+/*! \brief Returns the reference of the job that is identified by the given resource object list.
+ * \param self Instance pointer
+ * \param resource_object_list[] Reference to array of references to INIC resource objects
+ * \return Reference to the desired job if the job was found, otherwise NULL.
+ */
+Xrm_Job_t * Xrmp_GetJob(CXrmPool * self, UCS_XRM_CONST Ucs_Xrm_ResObject_t * resource_object_list[])
+{
+ uint8_t i;
+ Xrm_Job_t *ret_ptr = NULL;
+
+ for(i=0U; i<(uint8_t)XRM_NUM_JOBS; i++)
+ {
+ if(self->job_list[i].resource_object_list_ptr == resource_object_list)
+ {
+ ret_ptr = &self->job_list[i];
+ break;
+ }
+ else if((self->job_list[i].resource_object_list_ptr == NULL) && (ret_ptr == NULL))
+ {
+ ret_ptr = &self->job_list[i];
+ }
+ }
+
+ return ret_ptr;
+}
+
+/*! \brief Calls the given function for each node in the resource list. If the func_ptr
+ * returns true the loop is stopped.
+ * \param self Instance pointer
+ * \param func_ptr Reference of the callback function which is called for each node
+ * \param user_data_ptr1 Reference of optional user data 1 pass to func_ptr
+ * \param user_data_ptr2 Reference of optional user data 2 pass to func_ptr
+ * \param user_data_ptr3 Reference of optional user data 3 pass to func_ptr
+ */
+void Xrmp_Foreach(CXrmPool *self, Xrmp_ForeachFunc_t func_ptr, void *user_data_ptr1, void *user_data_ptr2, void *user_data_ptr3)
+{
+ uint8_t j;
+
+ for(j=0U; j<XRM_NUM_RESOURCE_HANDLES; j++)
+ {
+ if (self->resource_handle_list[j].job_ptr != NULL)
+ {
+ if (func_ptr(&self->resource_handle_list[j], user_data_ptr1, user_data_ptr2, user_data_ptr3) != false)
+ {
+ break;
+ }
+ }
+ }
+}
+
+/*!
+ * @}
+ * \endcond
+ */
+
+/*------------------------------------------------------------------------------------------------*/
+/* End of file */
+/*------------------------------------------------------------------------------------------------*/
+